Sha256: 84dcd3d6c41b73b57d458f63fb5885b0eee314a651508a22b4180b16b1ffcbf1

Contents?: true

Size: 1.01 KB

Versions: 16

Compression:

Stored size: 1.01 KB

Contents

require "spec_helper"

describe String do

  describe "snakecase" do
    it "lowercases one word CamelCase" do
      expect("Merb".snakecase).to eq("merb")
    end

    it "makes one underscore snakecase two word CamelCase" do
      expect("MerbCore".snakecase).to eq("merb_core")
    end

    it "handles CamelCase with more than 2 words" do
      expect("SoYouWantContributeToMerbCore".snakecase).to eq("so_you_want_contribute_to_merb_core")
    end

    it "handles CamelCase with more than 2 capital letter in a row" do
      expect("CNN".snakecase).to eq("cnn")
      expect("CNNNews".snakecase).to eq("cnn_news")
      expect("HeadlineCNNNews".snakecase).to eq("headline_cnn_news")
    end

    it "does NOT change one word lowercase" do
      expect("merb".snakecase).to eq("merb")
    end

    it "leaves snake_case as is" do
      expect("merb_core".snakecase).to eq("merb_core")
    end

    it "converts period characters to underscores" do
      expect("User.GetEmail".snakecase).to eq("user_get_email")
    end
  end

end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
savon-2.12.1 spec/savon/core_ext/string_spec.rb
savon-2.12.0 spec/savon/core_ext/string_spec.rb
savon-2.11.2 spec/savon/core_ext/string_spec.rb
savon-SU-2.11.1b spec/savon/core_ext/string_spec.rb
savon-SU-2.11.1 spec/savon/core_ext/string_spec.rb
savon-2.11.1 spec/savon/core_ext/string_spec.rb
savon-2.11.0 spec/savon/core_ext/string_spec.rb
savon-2.10.1 spec/savon/core_ext/string_spec.rb
savon-2.10.0 spec/savon/core_ext/string_spec.rb
savon-2.9.0 spec/savon/core_ext/string_spec.rb
savon-2.8.1 spec/savon/core_ext/string_spec.rb
savon-2.8.0 spec/savon/core_ext/string_spec.rb
savon-2.7.2 spec/savon/core_ext/string_spec.rb
savon-2.7.1 spec/savon/core_ext/string_spec.rb
savon-2.7.0 spec/savon/core_ext/string_spec.rb
savon-2.6.0 spec/savon/core_ext/string_spec.rb