Sha256: 3eec42c7452167efa507869ca3ff897bab21c7adea94fbb374f375f5b43576ad

Contents?: true

Size: 717 Bytes

Versions: 2

Compression:

Stored size: 717 Bytes

Contents

describe "JSONSelect", "Ruby extensions" do
  
  it "treats Symbol keys as Strings" do
    JSONSelect('.name .first').
      match(:name => { :first => 'hello' }).
      should == 'hello'
  end
  
  it "treats Symbol values as Strings" do
    JSONSelect('.name string.uid').
      match(:name => { :uid => :hello }).
      should == :hello
  end
  
  it "treats Objects which respond to #json_select_each as Objects" do
    class Person < Struct.new(:name, :age)
      def json_select_each
        yield(:name, self.name)
        yield(:age, self.age)
      end
    end
    
    JSONSelect('object.person string.name').
      match(:person => Person.new('Simon Menke', 24)).
      should == 'Simon Menke'
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
json_select-0.1.2 spec/ruby_extensions_spec.rb
json_select-0.1.1 spec/ruby_extensions_spec.rb