diff --git a/lib/cask.rb b/lib/cask.rb index 8219358fb61..e35b2e3b630 100644 --- a/lib/cask.rb +++ b/lib/cask.rb @@ -48,7 +48,7 @@ class Cask end def self.title - self.name.gsub(/([a-z\d])([A-Z])/,'\1-\2').downcase + self.name.gsub(/([a-zA-Z\d])([A-Z])/,'\1-\2').gsub(/([a-zA-Z\d])([A-Z])/,'\1-\2').downcase end attr_reader :title diff --git a/test/cask_test.rb b/test/cask_test.rb index a0e54e52664..3b853a754b5 100644 --- a/test/cask_test.rb +++ b/test/cask_test.rb @@ -22,4 +22,16 @@ describe Cask do all_casks.each { |cask| cask.must_be_kind_of String } end end + + describe "title" do + it "converts class constant to dasherized string" do + PascalCasedConstant = Class.new(Cask) + PascalCasedConstant.title.must_equal 'pascal-cased-constant' + end + + it "properly dasherizes constants with single letters in the middle" do + GamesXChange = Class.new(Cask) + GamesXChange.title.must_equal 'games-x-change' + end + end end