summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Bana <me@banafederico.com>2013-03-25 16:58:19 -0300
committerpushmatrix <daniel.beauchamp@gmail.com>2013-05-09 20:54:20 +0200
commit31bdc6da2706eec95c54ca46cb8e544661296bf6 (patch)
tree9fbf355aa46ab084d649d918a69cd0bef4728e23
parentaadfbf1027faeb724e81eecb1a9495b908864b1a (diff)
Properly hyphenate css class names for widgets.
-rwxr-xr-xbin/dashing7
-rw-r--r--templates/widget/%name%/%name%.scss.tt2
-rw-r--r--test/cli_test.rb8
3 files changed, 15 insertions, 2 deletions
diff --git a/bin/dashing b/bin/dashing
index 4fb4b50..8c7e348 100755
--- a/bin/dashing
+++ b/bin/dashing
@@ -28,6 +28,11 @@ module Dashing
class << self
attr_accessor :auth_token
+
+ def hyphenate(str)
+ return str.downcase if str =~ /^[A-Z-]+$/
+ str.gsub('_', '-').gsub(/\B[A-Z]/, '-\&').squeeze('-').downcase
+ end
end
attr_accessor :name
@@ -106,4 +111,4 @@ module Dashing
end
end
-Dashing::CLI.start \ No newline at end of file
+Dashing::CLI.start
diff --git a/templates/widget/%name%/%name%.scss.tt b/templates/widget/%name%/%name%.scss.tt
index 0da5c49..660a554 100644
--- a/templates/widget/%name%/%name%.scss.tt
+++ b/templates/widget/%name%/%name%.scss.tt
@@ -1,3 +1,3 @@
-.widget-<%= name %> {
+.widget-<%= Dashing::CLI.hyphenate(name) %> {
} \ No newline at end of file
diff --git a/test/cli_test.rb b/test/cli_test.rb
index 4dc1eb3..6c43e2c 100644
--- a/test/cli_test.rb
+++ b/test/cli_test.rb
@@ -17,4 +17,12 @@ class CliTest < Dashing::Test
end
end
+ def test_hyphenate
+ assert_equal 'power', Dashing::CLI.hyphenate('Power')
+ assert_equal 'power', Dashing::CLI.hyphenate('POWER')
+ assert_equal 'power-rangers', Dashing::CLI.hyphenate('PowerRangers')
+ assert_equal 'power-ranger', Dashing::CLI.hyphenate('Power_ranger')
+ assert_equal 'super-power-rangers', Dashing::CLI.hyphenate('SuperPowerRangers')
+ end
+
end \ No newline at end of file