From 31bdc6da2706eec95c54ca46cb8e544661296bf6 Mon Sep 17 00:00:00 2001 From: Federico Bana Date: Mon, 25 Mar 2013 16:58:19 -0300 Subject: Properly hyphenate css class names for widgets. --- bin/dashing | 7 ++++++- templates/widget/%name%/%name%.scss.tt | 2 +- test/cli_test.rb | 8 ++++++++ 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 -- cgit v1.2.3