Sha256: d4b3ce4bcaaca6ddeea68c6e5721add980e37fa3bf651f73b5d911f0b0aa2020

Contents?: true

Size: 1.69 KB

Versions: 8

Compression:

Stored size: 1.69 KB

Contents

require File.join(File.dirname(__FILE__), "..", "spec_helper")

describe SafeYAML::Transform::ToSymbol do
  def with_symbol_deserialization_value(value)
    symbol_deserialization_flag = SafeYAML::OPTIONS[:deserialize_symbols]
    SafeYAML::OPTIONS[:deserialize_symbols] = value

    yield

  ensure
    SafeYAML::OPTIONS[:deserialize_symbols] = symbol_deserialization_flag
  end

  def with_symbol_deserialization(&block)
    with_symbol_deserialization_value(true, &block)
  end

  def without_symbol_deserialization(&block)
    with_symbol_deserialization_value(false, &block)
  end

  it "returns true when the value matches a valid Symbol" do
    with_symbol_deserialization { subject.transform?(":foo")[0].should be_true }
  end

  it "returns true when the value matches a valid String+Symbol" do
    with_symbol_deserialization { subject.transform?(':"foo"')[0].should be_true }
  end

  it "returns true when the value matches a valid String+Symbol with 's" do
    with_symbol_deserialization { subject.transform?(":'foo'")[0].should be_true }
  end

  it "returns true when the value has special characters and is wrapped in a String" do
    with_symbol_deserialization { subject.transform?(':"foo.bar"')[0].should be_true }
  end

  it "returns false when symbol deserialization is disabled" do
    without_symbol_deserialization { subject.transform?(":foo").should be_false }
  end

  it "returns false when the value does not match a valid Symbol" do
    with_symbol_deserialization { subject.transform?("foo").should be_false }
  end

  it "returns false when the symbol does not begin the line" do
    with_symbol_deserialization do
      subject.transform?("NOT A SYMBOL\n:foo").should be_false
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
safe_yaml-1.0.1 spec/transform/to_symbol_spec.rb
safe_yaml-1.0.0 spec/transform/to_symbol_spec.rb
safe_yaml-1.0.0rc2 spec/transform/to_symbol_spec.rb
safe_yaml-1.0.0rc1 spec/transform/to_symbol_spec.rb
safe_yaml-0.9.7 spec/transform/to_symbol_spec.rb
safe_yaml-0.9.6 spec/transform/to_symbol_spec.rb
safe_yaml-0.9.5 spec/transform/to_symbol_spec.rb
safe_yaml-0.9.4 spec/transform/to_symbol_spec.rb