Skip to content

Instantly share code, notes, and snippets.

@elvanja
Last active December 15, 2015 08:08
Show Gist options
  • Save elvanja/5228179 to your computer and use it in GitHub Desktop.
Save elvanja/5228179 to your computer and use it in GitHub Desktop.
In memory Data Mapper example spec
require 'dm-mapper'
require 'data_mapper/support/veritas/adapter/in_memory'
class Person
attr_reader :id, :name
def initialize(attributes)
@id, @name = attributes.values_at(:id, :name)
end
end
describe "PersonMapper" do
before(:all) do
env = DataMapper::Environment.coerce({in_memory: "in_memory://test"})
env.build(Person, :in_memory) do
map :id, Integer, key: true
map :name, String
end
env.finalize
@mapper = env[Person]
end
it "adds a person" do
# taken from example /data_mapper/relation/mapper.rb:518
# fails with undefined method `id' for [#<Person:0x00000002812048 @id=1, @name="Jane">]:Array
# exception occurs in /data_mapper/attribute_set.rb:248
# @mapper.insert([Person.new(id: 1, name: 'Jane')])
# no errors if written like this
@mapper.insert(Person.new(id: 1, name: 'Jane'))
# but is not inserted
expect(@mapper.all.size).to eq(1)
end
end
@zekefast
Copy link

Need to replace veritas with axiom as it was renamed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment