麻烦将字符串转换为驼峰案例

时间:2014-06-13 14:10:43

标签: ruby-on-rails ruby

我一直试图弄清楚如何满足我正在做的教程的一些条件。

我有以下测试规范可供使用:

describe "String" do
  describe "camel_case" do
    it "leaves first word lowercase" do
      "test".camel_case.should eq("test")
    end
    it "should lowercase first letter if it isn't" do
      "Test".camel_case.should eq("test")
    end
    it "should combine words using camel case" do
      "This is a test".camel_case.should eq("thisIsATest")
    end
    it "should downcase words with capitals" do
      "MUST dOWNCASE words".camel_case.should eq("mustDowncaseWords")
    end
  end
end

我已经设法使用下面的代码获得前两个条件,但是我尝试了一些不同的东西来获得加入和向下转换大写条件,但没有成功。

class String
  def camel_case
    self.downcase 
  end
end

我一直在想使用.split然后使用.join方法可行,但事实并非如此。

2 个答案:

答案 0 :(得分:1)

问题是你实际上没有做任何骆驼。你的camel_case方法所做的唯一事情就是使这个短语的所有字母......呃......顺着。 之后splitjoin是正确的事情。

class String
  def camel_case
    downcased = self.downcase # here you only downcased your input
    array_of_words = downcased.split
    # now you should make the first letter of each word upper-cased
    # ...
    words_with_first_letter_capitalized.join
  end
end

答案 1 :(得分:1)

而不是使用camelize或camelcase。