mongo_doc 0.6.26 → 0.6.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/README.textile +14 -203
  2. data/Rakefile +0 -134
  3. data/lib/mongo_doc/collection.rb +4 -0
  4. data/lib/mongo_doc/finders.rb +1 -0
  5. data/lib/mongo_doc/timestamps.rb +4 -3
  6. data/lib/mongo_doc/version.rb +3 -0
  7. data/lib/mongo_doc.rb +0 -5
  8. metadata +25 -212
  9. data/.document +0 -5
  10. data/.gitignore +0 -8
  11. data/.rspec +0 -2
  12. data/.rvmrc +0 -1
  13. data/.watchr +0 -32
  14. data/Gemfile +0 -3
  15. data/Gemfile.lock +0 -72
  16. data/HISTORY.md +0 -11
  17. data/VERSION +0 -1
  18. data/examples/simple_document.rb +0 -46
  19. data/examples/simple_object.rb +0 -34
  20. data/features/collections.feature +0 -9
  21. data/features/connection.feature +0 -13
  22. data/features/db_references.feature +0 -21
  23. data/features/embed_hash.feature +0 -16
  24. data/features/finders.feature +0 -76
  25. data/features/indexes.feature +0 -28
  26. data/features/mongodb.yml +0 -7
  27. data/features/mongodoc_base.feature +0 -128
  28. data/features/new_record.feature +0 -36
  29. data/features/partial_updates.feature +0 -95
  30. data/features/polymorphic_collections.feature +0 -16
  31. data/features/references.feature +0 -28
  32. data/features/removing_documents.feature +0 -68
  33. data/features/saving_an_object.feature +0 -15
  34. data/features/scopes.feature +0 -66
  35. data/features/step_definitions/collection_steps.rb +0 -17
  36. data/features/step_definitions/connection_steps.rb +0 -13
  37. data/features/step_definitions/document_steps.rb +0 -155
  38. data/features/step_definitions/documents.rb +0 -61
  39. data/features/step_definitions/embed_hash_steps.rb +0 -6
  40. data/features/step_definitions/field_steps.rb +0 -28
  41. data/features/step_definitions/finder_steps.rb +0 -15
  42. data/features/step_definitions/index_steps.rb +0 -10
  43. data/features/step_definitions/json_steps.rb +0 -9
  44. data/features/step_definitions/object_steps.rb +0 -50
  45. data/features/step_definitions/objects.rb +0 -24
  46. data/features/step_definitions/partial_update_steps.rb +0 -31
  47. data/features/step_definitions/query_steps.rb +0 -69
  48. data/features/step_definitions/removing_documents_steps.rb +0 -14
  49. data/features/step_definitions/scope_steps.rb +0 -18
  50. data/features/step_definitions/string_casting_steps.rb +0 -29
  51. data/features/step_definitions/util_steps.rb +0 -7
  52. data/features/string_casting.feature +0 -10
  53. data/features/support/support.rb +0 -12
  54. data/features/timestamps.feature +0 -14
  55. data/features/using_criteria.feature +0 -148
  56. data/mongo_doc.gemspec +0 -272
  57. data/mongodb.example.yml +0 -14
  58. data/perf/mongo_doc_object.rb +0 -83
  59. data/perf/mongo_document.rb +0 -84
  60. data/perf/ruby_driver.rb +0 -49
  61. data/script/console +0 -8
  62. data/spec/active_model_behavior.rb +0 -64
  63. data/spec/array_including_argument_matcher.rb +0 -62
  64. data/spec/associations/collection_proxy_spec.rb +0 -233
  65. data/spec/associations/document_proxy_spec.rb +0 -45
  66. data/spec/associations/hash_proxy_spec.rb +0 -181
  67. data/spec/associations/proxy_base_spec.rb +0 -92
  68. data/spec/associations_spec.rb +0 -218
  69. data/spec/attributes_accessor_spec.rb +0 -39
  70. data/spec/attributes_spec.rb +0 -184
  71. data/spec/bson_matchers.rb +0 -54
  72. data/spec/bson_spec.rb +0 -196
  73. data/spec/collection_spec.rb +0 -169
  74. data/spec/connection_spec.rb +0 -169
  75. data/spec/contexts/ids_spec.rb +0 -49
  76. data/spec/contexts/mongo_spec.rb +0 -241
  77. data/spec/contexts_spec.rb +0 -56
  78. data/spec/criteria/optional_spec.rb +0 -26
  79. data/spec/criteria_spec.rb +0 -73
  80. data/spec/cursor_spec.rb +0 -91
  81. data/spec/database_cleaner_spec.rb +0 -24
  82. data/spec/document_ext.rb +0 -9
  83. data/spec/document_spec.rb +0 -569
  84. data/spec/embedded_save_spec.rb +0 -73
  85. data/spec/ext_spec.rb +0 -100
  86. data/spec/finders_spec.rb +0 -61
  87. data/spec/hash_matchers.rb +0 -29
  88. data/spec/index_spec.rb +0 -79
  89. data/spec/matchers_spec.rb +0 -342
  90. data/spec/mongodb.yml +0 -6
  91. data/spec/mongodb_pairs.yml +0 -8
  92. data/spec/new_record_spec.rb +0 -128
  93. data/spec/polymorphic_collection_spec.rb +0 -47
  94. data/spec/references_many_spec.rb +0 -214
  95. data/spec/references_spec.rb +0 -121
  96. data/spec/root_spec.rb +0 -41
  97. data/spec/scope_spec.rb +0 -88
  98. data/spec/spec_helper.rb +0 -16
  99. data/spec/timestamps_spec.rb +0 -154
  100. data/spec/update_spec.rb +0 -167
  101. data/spec/validations_spec.rb +0 -30
@@ -1,155 +0,0 @@
1
- Given /^an empty (\w+) document collection$/ do |doc|
2
- klass = doc.constantize
3
- Given "an empty #{klass.collection_name} collection"
4
- end
5
-
6
- Given /^an? (\w+) document named '(.*)' :$/ do |doc, name, table|
7
- @all = []
8
- klass = doc.constantize
9
- table.hashes.each do |hash|
10
- @last = klass.new
11
- hash.each do |attr, value|
12
- @last.send("#{attr.underscore.gsub(' ', '_')}=", value)
13
- end
14
- @all << @last
15
- end
16
- instance_variable_set("@#{name}", @last)
17
- end
18
-
19
- Given /^'(.*)' has one (.*?) as (.*) :$/ do |doc_name, class_name, assoc_name, table|
20
- doc = instance_variable_get("@#{doc_name}")
21
- obj = class_name.constantize.new
22
- table.hashes.each do |hash|
23
- hash.each do |key, value|
24
- obj.send("#{key.underscore.gsub(' ', '_')}=", value)
25
- end
26
- end
27
- doc.send("#{assoc_name.underscore.gsub(' ', '_')}=", obj)
28
- @last = obj
29
- end
30
-
31
- Given /^'(.*)' has (?:a|an|many) (.*) :$/ do |doc_name, assoc_name, table|
32
- doc = instance_variable_get("@#{doc_name}")
33
- table.hashes.each do |hash|
34
- doc.send(assoc_name).build(hash.inject({}) do |attrs, (attr, value)|
35
- attrs["#{attr.underscore.gsub(' ', '_')}"] = value
36
- attrs
37
- end)
38
- end
39
- @all = doc.send(assoc_name)
40
- @last = @all.last
41
- end
42
-
43
- Given /^I set the id on the document '(.*)' to (.*)$/ do |doc_name, value|
44
- doc = instance_variable_get("@#{doc_name}")
45
- doc._id = BSON::ObjectID.from_string("%024x" % value.to_i(16))
46
- end
47
-
48
- Given /^'(.+)' has one (.+?) as (.+?) \(identified by '(.+)'\):$/ do |doc_name, class_name, assoc_name, var_name, table|
49
- doc = instance_variable_get("@#{doc_name}")
50
- obj = class_name.constantize.new
51
- table.hashes.each do |hash|
52
- hash.each do |key, value|
53
- obj.send("#{key.underscore.gsub(' ', '_')}=", value)
54
- end
55
- end
56
- instance_variable_set("@#{var_name}", obj)
57
- doc.send("#{assoc_name.underscore.gsub(' ', '_')}=", obj)
58
- @last = obj
59
- end
60
-
61
- When /^I save the document '(.*)'$/ do |name|
62
- object = instance_variable_get("@#{name}")
63
- @last_return = object.save
64
- end
65
-
66
- When /^I save the last document$/ do
67
- @last_return = @last.save
68
- end
69
-
70
- When /^I create an (.*) '(.*)' from the hash '(.*)'$/ do |doc, name, hash|
71
- klass = doc.constantize
72
- attrs = instance_variable_get("@#{hash}")
73
- instance_variable_set("@#{name}", klass.create(attrs))
74
- end
75
-
76
- When /^I update the document '(.*)' with the hash named '(.*)'$/ do |doc_name, hash_name|
77
- doc = instance_variable_get("@#{doc_name}")
78
- attrs = instance_variable_get("@#{hash_name}")
79
- @last_return = doc.update_attributes(attrs)
80
- end
81
-
82
- When /^I query (.*) with criteria (.*)$/ do |doc, criteria_text|
83
- klass = doc.singularize.camelize
84
- @query = @last_return = eval("#{klass}.criteria.#{criteria_text}")
85
- end
86
-
87
- When /^I query (.*) with the '(.*)' id$/ do |doc, name|
88
- klass = doc.singularize.camelize.constantize
89
- doc = instance_variable_get("@#{name}")
90
- @query = @last_return = klass.criteria.id(doc.id).entries
91
- end
92
-
93
- When /^I find a (.*) using the id of '(.*)'$/ do |type, doc_name|
94
- klass = type.camelize.constantize
95
- doc = instance_variable_get("@#{doc_name}")
96
- @last_return = klass.find(doc.id)
97
- end
98
-
99
- When /^'(.+)' is the first (.+?) of '(.+)'$/ do |var_name, single_assoc, doc_name|
100
- doc = instance_variable_get("@#{doc_name}")
101
- instance_variable_set("@#{var_name}", doc.send(single_assoc.pluralize).first)
102
- end
103
-
104
- Then /^'(.*)' is not a new record$/ do |name|
105
- instance_variable_get("@#{name}").new_record?.should be_false
106
- end
107
-
108
- Then /the (.*) collection should have (\d+) documents?/ do |doc, count|
109
- klass = doc.constantize
110
- klass.count.should == count.to_i
111
- end
112
-
113
- Then /^the document '(.*)' roundtrips$/ do |name|
114
- object = instance_variable_get("@#{name}")
115
- from_db = object.class.find_one(object._id)
116
- from_db.should == object
117
- instance_variable_set("@#{name}", from_db)
118
- end
119
-
120
- Then /^the document '(.+)' does not roundtrip$/ do |name|
121
- object = instance_variable_get("@#{name}")
122
- from_db = object.class.find_one(object._id)
123
- from_db.should_not == object
124
- end
125
-
126
- Then /^the document '(\w+)' is reloaded$/ do |name|
127
- object = instance_variable_get("@#{name}")
128
- from_db = object.class.find_one(object._id)
129
- instance_variable_set("@#{name}", from_db)
130
- end
131
-
132
- Then /^the last return value is (.+)$/ do |bool_val|
133
- @last_return.should send("be_#{bool_val}")
134
- end
135
-
136
- Then /^the first (.*) of '(.*)' is not a new record$/ do |assoc, name|
137
- object = instance_variable_get("@#{name}")
138
- plural = assoc.pluralize
139
- object.send(plural).first.should_not be_new_record
140
- end
141
-
142
- Then /^the (\w*) of '(.*)' is not a new record$/ do |assoc, name|
143
- object = instance_variable_get("@#{name}")
144
- object.send(assoc).should_not be_new_record
145
- end
146
-
147
- Then /^the (\w*) of '(.*)' roundtrips$/ do |assoc, name|
148
- object = instance_variable_get("@#{name}")
149
- from_db = object.class.find_one(object._id)
150
- object.send(assoc).id.should == from_db.send(assoc).id
151
- end
152
-
153
- Then /^the size of the last return value is (.*)$/ do |count|
154
- @last_return.size.should == count.to_i
155
- end
@@ -1,61 +0,0 @@
1
- class Address
2
- include MongoDoc::Document
3
-
4
- attr_accessor :street
5
- attr_accessor :city
6
- attr_accessor :state
7
- attr_accessor :zip_code
8
- end
9
-
10
- class Place
11
- include MongoDoc::Document
12
-
13
- attr_accessor :name
14
- attr_accessor :type
15
- embed :address
16
- end
17
-
18
- class Contact
19
- include MongoDoc::Document
20
-
21
- attr_accessor :name
22
- attr_accessor :type
23
- attr_accessor :note
24
- attr_accessor :interests
25
- embed_many :addresses
26
-
27
- scope :rubyists, any_in(:interests => ['ruby'])
28
- scope :contract_work, any_in(:interests => ['contract work'])
29
- scope :in_state, lambda {|state| where('addresses.state' => state)}
30
- end
31
-
32
- class Event
33
- include MongoDoc::Document
34
-
35
- attr_accessor :name
36
- attr_accessor :venue
37
- attr_accessor :date, :type => Date
38
-
39
- embed_hash :addresses
40
- end
41
-
42
- class Person
43
- include MongoDoc::Document
44
-
45
- attr_accessor :name
46
- references :address
47
- references_many :addresses, :as => :previous_addresses
48
-
49
- timestamps!
50
- end
51
-
52
- class VIP < Person
53
- attr_accessor :title
54
- end
55
-
56
- class Character
57
- include MongoDoc::Document
58
-
59
- attr_accessor :name
60
- references :as_ref => :address
61
- end
@@ -1,6 +0,0 @@
1
- Given /^I put the '(\w+)' object on key '(\w+)' of the '(\w+)' hash of '(\w+)'$/ do |value_name, key, assoc, doc_name|
2
- value = instance_variable_get("@#{value_name}")
3
- doc = instance_variable_get("@#{doc_name}")
4
- doc.send(assoc)[key] = value
5
- end
6
-
@@ -1,28 +0,0 @@
1
- Then /^the field (\w+) of the document '(\w+)' is not nil$/ do |field, name|
2
- doc = instance_variable_get("@#{name}")
3
- doc.send(field).should_not be_nil
4
- end
5
-
6
- When /^'(\w+)' references '(\w+)' as '(\w+)'$/ do |parent, child, field|
7
- parent_doc = instance_variable_get("@#{parent}")
8
- child_doc = instance_variable_get("@#{child}")
9
- parent_doc.send("#{field}=", child_doc)
10
- end
11
-
12
- When /^'(\w+)' references '(\w+)' through '(\w+)'$/ do |parent, child, field|
13
- parent_doc = instance_variable_get("@#{parent}")
14
- child_doc = instance_variable_get("@#{child}")
15
- parent_doc.send("#{field.singularize}_ids") << child_doc._id
16
- end
17
-
18
- Then /^'(\w+)' refers to '(\w+)' as '(\w+)'$/ do |name, other, field|
19
- doc = instance_variable_get("@#{name}")
20
- other_doc = instance_variable_get("@#{other}")
21
- doc.send("#{field}").should == other_doc
22
- end
23
-
24
- Then /^'(\w+)' has '(\w+)' that include '(\w+)'$/ do |name, field, included|
25
- doc = instance_variable_get("@#{name}")
26
- included_doc = instance_variable_get("@#{included}")
27
- doc.send("#{field}").should include(included_doc)
28
- end
@@ -1,15 +0,0 @@
1
- def finder_query=(finder)
2
- @query = finder
3
- end
4
-
5
- When /^I query (.+) with (\w+)$/ do |doc, finder|
6
- self.finder_query = klass(doc).send(finder)
7
- end
8
-
9
- When /^I query (.+) to find_one with the (.+) of the '(.+)' document$/ do |collection, id, doc_name|
10
- self.finder_query = klass(collection).find_one(instance_variable_get("@#{doc_name}").send(id))
11
- end
12
-
13
- Then /^the query result (?:is|was) (\d+) documents$/ do |count|
14
- query.should == count.to_i
15
- end
@@ -1,10 +0,0 @@
1
- When /^I create an index named (.*) on the (.*) collection$/ do |index_name, doc|
2
- klass = doc.constantize
3
- klass.index(index_name)
4
- end
5
-
6
- Then /^there is an index on (.*) on the (.*) collection$/ do |index_name, doc|
7
- klass = doc.constantize
8
- klass.collection.index_information.should include("#{index_name}_1")
9
- end
10
-
@@ -1,9 +0,0 @@
1
- When /^I save the json '(\{.*\})'$/ do |json_text|
2
- json = JSON.parse(json_text)
3
- @last_save = @collection.save(json)
4
- end
5
-
6
- Then /^the json '(\{.*\})' roundtrips$/ do |json_text|
7
- json = JSON.parse(json_text)
8
- @collection.find_one(@last_save).should be_mongo_eql(json, false)
9
- end
@@ -1,50 +0,0 @@
1
- Given /^an object '(.*)'$/ do |name|
2
- @movie = Movie.new
3
- @movie.title = 'Gone with the Wind'
4
- @movie.director = 'Victor Fleming'
5
- @movie.writers = ['Sidney Howard']
6
- @director = Director.new
7
- @director.name = 'Victor Fleming'
8
- @award = AcademyAward.new
9
- @award.year = '1940'
10
- @award.category = 'Best Director'
11
- @director.awards = [@award]
12
- @movie.director = @director
13
- end
14
-
15
- Given /^a hash named '(.*)':$/ do |name, table|
16
- @all = []
17
- table.hashes.each do |hash|
18
- @last = hash.inject({}) do |h, (key, value)|
19
- h["#{key.underscore.gsub(' ', '_')}"] = value
20
- h
21
- end
22
- @all << @last
23
- end
24
- instance_variable_set("@#{name}", @last)
25
- end
26
-
27
- Given /^'(.*)' has (.*), an array of:$/ do |name, attribute, table|
28
- object = instance_variable_get("@#{name}")
29
- object.send(attribute + "=", [])
30
- table.hashes.each do |hash|
31
- hash.each {|key, value| object.send(attribute) << value}
32
- end
33
- end
34
-
35
-
36
- When /^I save the object '(.*)'$/ do |name|
37
- object = instance_variable_get("@#{name}")
38
- @last_save = @collection.save(object)
39
- end
40
-
41
- Then /^the object '(.*)' roundtrips$/ do |name|
42
- object = instance_variable_get("@#{name}")
43
- object.instance_variable_set("@_id", @last_save)
44
- @collection.find_one(@last_save).should == object
45
- end
46
-
47
- Then /^the attribute '(.*)' of '(.*)' is '(.*)'$/ do |attr, var, value|
48
- object = instance_variable_get("@#{var}")
49
- object.send(attr).to_s.should == value
50
- end
@@ -1,24 +0,0 @@
1
- module ValueEquals
2
- def ==(other)
3
- return false unless instance_variables.size == other.instance_variables.size
4
- instance_variables.all? {|var| self.instance_variable_get(var) == other.instance_variable_get(var)}
5
- end
6
- end
7
-
8
- class Movie
9
- include ValueEquals
10
-
11
- attr_accessor :title, :director, :writers
12
- end
13
-
14
- class Director
15
- include ValueEquals
16
-
17
- attr_accessor :name, :awards
18
- end
19
-
20
- class AcademyAward
21
- include ValueEquals
22
-
23
- attr_accessor :year, :category
24
- end
@@ -1,31 +0,0 @@
1
- When /^I update the '(.+)' for '(.+)' to '(.+)'$/ do |attr, doc_name, value|
2
- doc = instance_variable_get("@#{doc_name}")
3
- attrs = {attr => value}
4
- @last_return = doc.update_attributes(attrs)
5
- end
6
-
7
- When /^someone else changes the (.+?) '(.+)' of '(.+)' to$/ do |assoc_klass, assoc_name, name, table|
8
- orig = instance_variable_get("@#{name}")
9
- doc = orig.class.find_one(orig._id)
10
- obj = assoc_klass.constantize.new
11
- table.hashes.each do |hash|
12
- hash.each do |key, value|
13
- obj.send("#{key.underscore.gsub(' ', '_')}=", value)
14
- end
15
- end
16
- doc.send("#{assoc_name.underscore.gsub(' ', '_')}=", obj)
17
- doc.save
18
- end
19
-
20
- When /^someone else changes the (.+) of '(.+)':$/ do |assoc_name, name, table|
21
- orig = instance_variable_get("@#{name}")
22
- doc = orig.class.find_one(orig._id)
23
- doc.send(assoc_name).clear
24
- table.hashes.each do |hash|
25
- doc.send(assoc_name) << hash.inject({}) do |attrs, (attr, value)|
26
- attrs["#{attr.underscore.gsub(' ', '_')}"] = value
27
- attrs
28
- end
29
- end
30
- doc.save
31
- end
@@ -1,69 +0,0 @@
1
- def klass(klass_name = nil)
2
- @klass ||= klass_name.singularize.camelize.constantize
3
- end
4
-
5
- def query(klass_name = nil)
6
- @query ||= klass(klass_name).criteria
7
- end
8
-
9
- When "I also want a $number query with criteria $criteria" do |number, criteria|
10
- instance_variable_set("@#{number}", eval("query.#{criteria}"))
11
- end
12
-
13
- When /^I requery$/ do
14
- # do nothing
15
- end
16
-
17
- Then /^the query result is equal to the document '(.*)'$/ do |name|
18
- doc = instance_variable_get("@#{name}")
19
- query.should == doc
20
- end
21
-
22
- Then /^one of the query results is the document '(.*)'$/ do |name|
23
- doc = instance_variable_get("@#{name}")
24
- query.any? {|d| d == doc}.should be_true
25
- end
26
-
27
- Then /^the query result with "(.*)" == "(.*)" has a count of (.*)$/ do |key, value, count|
28
- query.find {|r| r.has_key?(key) and r[key] == value }['count'].should == count.to_i
29
- end
30
-
31
- Then /^the query result with "([^\"]*)" == "([^\"]*)" has the document '(.*)'$/ do |key, value, name|
32
- doc = instance_variable_get("@#{name}")
33
- query.find {|r| r.has_key?(key) and r[key] == value }['group'].should include(doc)
34
- end
35
-
36
- Then /^the query result has (.*) documents*$/ do |count|
37
- if query.respond_to?(:size)
38
- query.size.should == count.to_i
39
- else
40
- query.count.should == count.to_i
41
- end
42
- end
43
-
44
- Then /^the (first|last) query result is the document '(.*)'$/ do |position, name|
45
- doc = instance_variable_get("@#{name}")
46
- query.entries.send(position).should == doc
47
- end
48
-
49
- Then /^the size of the query result is (.*)$/ do |count|
50
- query.to_a.size.should == count.to_i
51
- end
52
-
53
- Then /^the query result is the document '(.*)'$/ do |name|
54
- object = instance_variable_get("@#{name}")
55
- if query.kind_of?(Array)
56
- query.size.should == 1
57
- query.first.should == object
58
- else
59
- query.should == object
60
- end
61
- end
62
-
63
- Then /^the query (is|is not) (empty|blank)$/ do |is, empty|
64
- query.send("#{empty}?").should == (is == 'is')
65
- end
66
-
67
- Then /^the (.+) query (is|is not) (empty|blank)$/ do |number, is, empty|
68
- instance_variable_get("@#{number}").send("#{empty}?").should == (is == 'is')
69
- end
@@ -1,14 +0,0 @@
1
- When /^I remove '(.+)'$/ do |doc_name|
2
- doc = instance_variable_get("@#{doc_name}")
3
- doc.remove
4
- end
5
-
6
- Then /^the document '(.+)' is not found$/ do |doc_name|
7
- doc = instance_variable_get("@#{doc_name}")
8
- doc.class.find_one(doc.id)
9
- end
10
-
11
- Then /^an exception is raised if I remove '(.+)'$/ do |doc_name|
12
- doc = instance_variable_get("@#{doc_name}")
13
- lambda { doc.remove }.should raise_error
14
- end
@@ -1,18 +0,0 @@
1
- def scope_query=(scope)
2
- @query = scope
3
- end
4
-
5
- When /^I query (.*) with scope '(.*)'$/ do |doc, scope|
6
- self.scope_query = klass(doc).send(scope)
7
- end
8
-
9
- When /^I query (.*) with scopes '(.*)'$/ do |doc, scopes|
10
- self.scope_query = scopes.split(',').inject(klass(doc)) do |result, scope|
11
- result.send(scope.strip)
12
- end
13
- end
14
-
15
- When /^I query (.*) with lambda scope '(.*)' with parameters '(.*)'$/ do |doc, scope, params_text|
16
- params = params_text.split(',').map(&:strip)
17
- self.scope_query = klass(doc).send(scope, *params)
18
- end
@@ -1,29 +0,0 @@
1
- def last
2
- @last
3
- end
4
-
5
- def last=(value)
6
- @last = value
7
- end
8
-
9
- def all
10
- @all ||= []
11
- end
12
-
13
- def all=(value)
14
- @all = value
15
- end
16
-
17
- Given /^a class (.+)$/ do |type_name|
18
- type_name.constantize.should be_kind_of(Class)
19
- end
20
-
21
- Given /^I create an (.+) '(.+)' with:$/ do |klass_name, object_name, table|
22
- Given "an #{klass_name} document named '#{object_name}' :", table
23
- end
24
-
25
- Then /^the object '(.+)' has an attribute '(.+)' of type (.*)$/ do |object_name, attr_name, type_name|
26
- object = instance_variable_get("@#{object_name}")
27
- type_name.constantize.should === object.send(attr_name)
28
- end
29
-
@@ -1,7 +0,0 @@
1
- Given /^that @last is named '(.*)'$/ do |name|
2
- instance_variable_set("@#{name}", @last)
3
- end
4
-
5
- Then /^I invoke the debugger$/ do
6
- require 'ruby-debug'; Debugger.start; Debugger.settings[:autoeval] = 1; Debugger.settings[:autolist] = 1; debugger
7
- end
@@ -1,10 +0,0 @@
1
- Feature: String casting
2
-
3
- Background:
4
- Given a class Event
5
-
6
- Scenario: Creating a new document
7
- When I create an Event 'event' with:
8
- | Name | Venue | Date |
9
- | NoSQL Live | John Hancock Conference Center | 2010-03-11 |
10
- Then the object 'event' has an attribute 'date' of type Date
@@ -1,12 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..'))
3
- require 'cucumber'
4
- require 'rspec/expectations'
5
- require 'spec/bson_matchers'
6
- require 'mongo_doc'
7
- require 'active_support/json'
8
-
9
- MongoDoc::Connection.env = 'cucumber'
10
- MongoDoc::Connection.config_path = './features/mongodb.yml'
11
-
12
- World(BsonMatchers)
@@ -1,14 +0,0 @@
1
- Feature: Timestamps
2
-
3
- Background:
4
- Given an empty Person document collection
5
- And a Person document named 'Fry' :
6
- | Name |
7
- | Philip J. Fry |
8
-
9
- Scenario: Creation time
10
- When I save the document 'Fry'
11
- And the document 'Fry' is reloaded
12
- Then the field created_at of the document 'Fry' is not nil
13
- And the field updated_at of the document 'Fry' is not nil
14
-