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,76 +0,0 @@
1
- Feature: Finders
2
-
3
- Background:
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name | Type |
7
- | Hashrocket | company |
8
- And 'hashrocket' has interests, an array of:
9
- | Interest |
10
- | ruby |
11
- | rails |
12
- | employment |
13
- | contract work |
14
- | restaurants |
15
- | hotels |
16
- | flights |
17
- | car rentals |
18
- And 'hashrocket' has many addresses :
19
- | Street | City | State | Zip Code |
20
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
21
- | 1 Lake Michigan Street | Chicago | IL | 60611 |
22
- | 1 Main Street | Santiago | Chile | |
23
- And I save the document 'hashrocket'
24
- And a Contact document named 'rocketeer' :
25
- | Name |
26
- | Rocketeer Mike |
27
- And 'rocketeer' has interests, an array of:
28
- | Interest |
29
- | ruby |
30
- | rails |
31
- | restaurants |
32
- | employment |
33
- And 'rocketeer' has many addresses :
34
- | Street | City | State | Zip Code |
35
- | 1 Main Street | Atlantic Beach | FL | 32233 |
36
- And I save the document 'rocketeer'
37
- And a Contact document named 'contractor' :
38
- | Name |
39
- | Contractor Joe |
40
- And 'contractor' has interests, an array of:
41
- | Interest |
42
- | ruby |
43
- | rails |
44
- | contract work |
45
- | flights |
46
- | car rentals |
47
- | hotels |
48
- | restaurants |
49
- And 'contractor' has many addresses :
50
- | Street | City | State | Zip Code |
51
- | 1 Main St. | Jacksonville | FL | 32218 |
52
- And I save the document 'contractor'
53
-
54
- Scenario: All
55
- When I query contacts with find_all
56
- Then the query result has 3 documents
57
-
58
- Scenario: Count
59
- When I query contacts with count
60
- Then the query result was 3 documents
61
-
62
- Scenario: First
63
- When I query contacts with first
64
- Then the query result is the document 'hashrocket'
65
-
66
- Scenario: Last
67
- When I query contacts with last
68
- Then the query result is the document 'contractor'
69
-
70
- Scenario: Find One
71
- When I query contacts to find_one with the id of the 'contractor' document
72
- Then the query result is the document 'contractor'
73
-
74
- Scenario: Find One by Param
75
- When I query contacts to find_one with the to_param of the 'contractor' document
76
- Then the query result is the document 'contractor'
@@ -1,28 +0,0 @@
1
- Feature: Indexes
2
-
3
- Background:
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name | Type |
7
- | Hashrocket | company |
8
- And 'hashrocket' has interests, an array of:
9
- | Interest |
10
- | ruby |
11
- | rails |
12
- | employment |
13
- | contract work |
14
- | restaurants |
15
- | hotels |
16
- | flights |
17
- | car rentals |
18
- And 'hashrocket' has many addresses :
19
- | Street | City | State | Zip Code |
20
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
21
- | 1 Lake Michigan Street | Chicago | IL | 60611 |
22
- | 1 Main Street | Santiago | Chile | |
23
- And I save the document 'hashrocket'
24
-
25
- Scenario: Simple index
26
- When I create an index named name on the Contact collection
27
- Then there is an index on name on the Contact collection
28
-
data/features/mongodb.yml DELETED
@@ -1,7 +0,0 @@
1
- cucumber:
2
- name: cucumber
3
- host: localhost
4
- port: 27017
5
- options:
6
- auto_reconnect: true
7
-
@@ -1,128 +0,0 @@
1
- Feature: MongoDoc::Base
2
-
3
- Scenario: creating a simple document
4
- Given an empty Address document collection
5
- And a hash named 'hashrocket':
6
- | Street | City | State | Zip Code |
7
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
8
- When I create an Address 'address' from the hash 'hashrocket'
9
- Then 'address' is not a new record
10
- And the Address collection should have 1 document
11
- And the document 'address' roundtrips
12
-
13
- Scenario: saving a simple document
14
- Given an empty Address document collection
15
- And an Address document named 'hashrocket' :
16
- | Street | City | State | Zip Code |
17
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
18
- When I save the document 'hashrocket'
19
- Then 'hashrocket' is not a new record
20
- And the Address collection should have 1 document
21
- And the document 'hashrocket' roundtrips
22
-
23
- Scenario: updating an attribute of a simple document
24
- Given an empty Address document collection
25
- And an Address document named 'hashrocket' :
26
- | Street | City | State | Zip Code |
27
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
28
- And a hash named 'street':
29
- | Street |
30
- | 320 First St N |
31
- And I save the document 'hashrocket'
32
- When I update the document 'hashrocket' with the hash named 'street'
33
- And the document 'hashrocket' roundtrips
34
- Then the attribute 'street' of 'hashrocket' is '320 First St N'
35
-
36
- Scenario: failing to update an attribute of a simple document
37
- Given an empty Address document collection
38
- And an Address document named 'hashrocket' :
39
- | Street | City | State | Zip Code |
40
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
41
- And a hash named 'street':
42
- | Street |
43
- | 320 First St N |
44
- And I save the document 'hashrocket'
45
- And I set the id on the document 'hashrocket' to 1
46
- When I update the document 'hashrocket' with the hash named 'street'
47
- Then the last return value is false
48
-
49
- Scenario: saving a has_many document
50
- Given an empty Contact document collection
51
- And a Contact document named 'hashrocket' :
52
- | Name |
53
- | Hashrocket |
54
- And 'hashrocket' has many addresses :
55
- | Street | City | State | Zip Code |
56
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
57
- | 1 Main Street | Santiago | Chile | |
58
- When I save the document 'hashrocket'
59
- Then 'hashrocket' is not a new record
60
- And the Contact collection should have 1 document
61
- And the document 'hashrocket' roundtrips
62
-
63
- Scenario: saving from a child document
64
- Given an empty Contact document collection
65
- And a Contact document named 'hashrocket' :
66
- | Name |
67
- | Hashrocket |
68
- And 'hashrocket' has many addresses :
69
- | Street | City | State | Zip Code |
70
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
71
- | 1 Main Street | Santiago | Chile | |
72
- When I save the last document
73
- Then 'hashrocket' is not a new record
74
- And the Contact collection should have 1 document
75
- And the document 'hashrocket' roundtrips
76
-
77
- Scenario: Update attributes from a has_many child document
78
- Given an empty Contact document collection
79
- And a Contact document named 'hashrocket' :
80
- | Name |
81
- | Hashrocket |
82
- And 'hashrocket' has many addresses :
83
- | Street | City | State | Zip Code |
84
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
85
- | 1 Main Street | Santiago | Chile | |
86
- And I save the last document
87
- And that @last is named 'chile'
88
- And a hash named 'street':
89
- | Street |
90
- | 1a Calle |
91
- When I update the document 'chile' with the hash named 'street'
92
- Then the last return value is true
93
- And the document 'hashrocket' roundtrips
94
-
95
- Scenario: update attributes from a has_one child document
96
- Given an empty Place document collection
97
- And a Place document named 'hashrocket' :
98
- | Name |
99
- | Hashrocket |
100
- And 'hashrocket' has one Address as address :
101
- | Street | City | State | Zip Code |
102
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
103
- And I save the last document
104
- And that @last is named 'address'
105
- And a hash named 'street':
106
- | Street | City |
107
- | 320 1st St. N. | Jax Bch |
108
- When I update the document 'address' with the hash named 'street'
109
- Then the Place collection should have 1 document
110
- And the document 'hashrocket' roundtrips
111
-
112
- Scenario: Class criteria
113
- Given an empty Contact document collection
114
- And a Contact document named 'hashrocket' :
115
- | Name | Type |
116
- | Hashrocket | company |
117
- And I save the last document
118
- When I query contacts with criteria where('type' => 'company')
119
- Then the size of the last return value is 1
120
-
121
- Scenario: Finder
122
- Given an empty Contact document collection
123
- And a Contact document named 'hashrocket' :
124
- | Name | Type |
125
- | Hashrocket | company |
126
- And I save the document 'hashrocket'
127
- When I find a contact using the id of 'hashrocket'
128
- Then the size of the last return value is 1
@@ -1,36 +0,0 @@
1
- Feature: New record
2
-
3
- Scenario: saving a has_many children document
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name |
7
- | Hashrocket |
8
- And 'hashrocket' has many addresses :
9
- | Street | City | State | Zip Code |
10
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
11
- | 1 Main Street | Santiago | Chile | |
12
- When I save the document 'hashrocket'
13
- Then the first address of 'hashrocket' is not a new record
14
-
15
- Scenario: saving a has_one child document
16
- Given an empty Place document collection
17
- And a Place document named 'hashrocket' :
18
- | Name |
19
- | Hashrocket |
20
- And 'hashrocket' has one Address as address :
21
- | Street | City | State | Zip Code |
22
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
23
- When I save the document 'hashrocket'
24
- Then the address of 'hashrocket' is not a new record
25
-
26
- Scenario: id is roundtripped when saving a has_one child document
27
- Given an empty Place document collection
28
- And a Place document named 'hashrocket' :
29
- | Name |
30
- | Hashrocket |
31
- And 'hashrocket' has one Address as address :
32
- | Street | City | State | Zip Code |
33
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
34
- When I save the document 'hashrocket'
35
- Then the address of 'hashrocket' roundtrips
36
-
@@ -1,95 +0,0 @@
1
- Feature: Partial Updates
2
-
3
- Background:
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name | Type | Note |
7
- | Hashrocket | company | Premier Rails development shop! |
8
- And 'hashrocket' has interests, an array of:
9
- | Interest |
10
- | ruby |
11
- | rails |
12
- | employment |
13
- | contract work |
14
- | restaurants |
15
- | hotels |
16
- | flights |
17
- | car rentals |
18
- And 'hashrocket' has many addresses :
19
- | Street | City | State | Zip Code |
20
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
21
- | 1 Lake Michigan Street | Chicago | IL | 60611 |
22
- | 1 Main Street | Santiago | Chile | |
23
- And I save the document 'hashrocket'
24
- And a Contact document named 'rocketeer' :
25
- | Name | Note |
26
- | Rocketeer Mike | Fantastic developer |
27
- And 'rocketeer' has interests, an array of:
28
- | Interest |
29
- | ruby |
30
- | rails |
31
- | restaurants |
32
- | employment |
33
- And 'rocketeer' has many addresses :
34
- | Street | City | State | Zip Code |
35
- | 1 Main Street | Atlantic Beach | FL | 32233 |
36
- And I save the document 'rocketeer'
37
- And a Contact document named 'contractor' :
38
- | Name | Note |
39
- | Contractor Joe | Knows MongoDB |
40
- And 'contractor' has interests, an array of:
41
- | Interest |
42
- | ruby |
43
- | rails |
44
- | contract work |
45
- | flights |
46
- | car rentals |
47
- | hotels |
48
- | restaurants |
49
- And 'contractor' has many addresses :
50
- | Street | City | State | Zip Code |
51
- | 1 Main St. | Jacksonville | FL | 32218 |
52
- And I save the document 'contractor'
53
- And an empty Place document collection
54
- And a Place document named 'hashrocket_hq' :
55
- | Name | Type |
56
- | Hashrocket | company |
57
- And 'hashrocket_hq' has one Address as address (identified by 'hq_address'):
58
- | Street | City | State | Zip Code |
59
- | 1 Main St. | Jacksonville | FL | 32218 |
60
- And I save the document 'hashrocket_hq'
61
-
62
- Scenario: Update
63
- When I update the 'note' for 'contractor' to 'Knows MongoDB and MongoDoc'
64
- Then the last return value is true
65
- And the document 'contractor' roundtrips
66
-
67
- Scenario: Update on a has one
68
- When I update the 'street' for 'hq_address' to '320 1st Street North'
69
- Then the last return value is true
70
- And the document 'hashrocket_hq' roundtrips
71
-
72
- Scenario: Update on a has many
73
- When 'hq_address' is the first address of 'hashrocket'
74
- And I update the 'street' for 'hq_address' to '320 1st Street North'
75
- Then the last return value is true
76
- And the document 'hashrocket' roundtrips
77
-
78
- Scenario: Failing Update on a has one
79
- When someone else changes the Address 'address' of 'hashrocket_hq' to
80
- | Street | City | State | Zip Code |
81
- | 1 Ocean Blvd. | Jacksonville | FL | 32218 |
82
- And I update the 'street' for 'hq_address' to '320 1st Street North'
83
- Then the last return value is false
84
- And the document 'hashrocket_hq' does not roundtrip
85
-
86
- Scenario: Failing Update on a has many
87
- When 'hq_address' is the first address of 'hashrocket'
88
- And someone else changes the addresses of 'hashrocket':
89
- | Street | City | State | Zip Code |
90
- | 320 1st N, #712 | Jacksonville Beach | FL | 32250 |
91
- | 1001 Mulligan Street | Chicago | IL | 60611 |
92
- | 345 Avenida Grande | Santiago | Chile | |
93
- And I update the 'street' for 'hq_address' to '320 1st Street North'
94
- Then the last return value is false
95
- And the document 'hashrocket' does not roundtrip
@@ -1,16 +0,0 @@
1
- Feature: Polymorphic Collections
2
-
3
- Background:
4
- Given an empty Person document collection
5
- And a Person document named 'Fry' :
6
- | Name |
7
- | Philip J. Fry |
8
- And a VIP document named 'Leela' :
9
- | Name | Title |
10
- | Turanga Leela | Captain |
11
-
12
- Scenario: Subclassed documents are in the same collection
13
- Given I save the document 'Fry'
14
- And I save the document 'Leela'
15
- When I query people with count
16
- Then the query result is 2 documents
@@ -1,28 +0,0 @@
1
- Feature: References
2
-
3
- Background:
4
- Given an empty Person document collection
5
- And a Person document named 'Fry' :
6
- | Name |
7
- | Philip J. Fry |
8
- And an empty Address document collection
9
- And an Address document named 'office' :
10
- | City |
11
- | New New York City |
12
- And an Address document named 'old_office' :
13
- | City |
14
- | New York City |
15
-
16
- Scenario: Automatically dereferences in references association
17
- When I save the document 'office'
18
- And 'Fry' references 'office' as 'address'
19
- And I save the document 'Fry'
20
- And the document 'Fry' is reloaded
21
- Then 'Fry' refers to 'office' as 'address'
22
-
23
- Scenario: Automatically dereferences in references_many association
24
- When I save the document 'old_office'
25
- And 'Fry' references 'old_office' through 'previous_addresses'
26
- And I save the document 'Fry'
27
- And the document 'Fry' is reloaded
28
- Then 'Fry' has 'previous_addresses' that include 'old_office'
@@ -1,68 +0,0 @@
1
- Feature: Removing Documents
2
-
3
- Background:
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name | Type | Note |
7
- | Hashrocket | company | Premier Rails development shop! |
8
- And 'hashrocket' has interests, an array of:
9
- | Interest |
10
- | ruby |
11
- | rails |
12
- | employment |
13
- | contract work |
14
- | restaurants |
15
- | hotels |
16
- | flights |
17
- | car rentals |
18
- And 'hashrocket' has many addresses :
19
- | Street | City | State | Zip Code |
20
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
21
- | 1 Lake Michigan Street | Chicago | IL | 60611 |
22
- | 1 Main Street | Santiago | Chile | |
23
- And I save the document 'hashrocket'
24
- And a Contact document named 'rocketeer' :
25
- | Name | Note |
26
- | Rocketeer Mike | Fantastic developer |
27
- And 'rocketeer' has interests, an array of:
28
- | Interest |
29
- | ruby |
30
- | rails |
31
- | restaurants |
32
- | employment |
33
- And 'rocketeer' has many addresses :
34
- | Street | City | State | Zip Code |
35
- | 1 Main Street | Atlantic Beach | FL | 32233 |
36
- And I save the document 'rocketeer'
37
- And a Contact document named 'contractor' :
38
- | Name | Note |
39
- | Contractor Joe | Knows MongoDB |
40
- And 'contractor' has interests, an array of:
41
- | Interest |
42
- | ruby |
43
- | rails |
44
- | contract work |
45
- | flights |
46
- | car rentals |
47
- | hotels |
48
- | restaurants |
49
- And 'contractor' has many addresses :
50
- | Street | City | State | Zip Code |
51
- | 1 Main St. | Jacksonville | FL | 32218 |
52
- And I save the document 'contractor'
53
- And a Place document named 'hashrocket_hq' :
54
- | Name | Type |
55
- | Hashrocket | company |
56
- And 'hashrocket_hq' has one Address as address (identified by 'hq_address'):
57
- | Street | City | State | Zip Code |
58
- | 1 Main St. | Jacksonville | FL | 32218 |
59
- And I save the document 'hashrocket_hq'
60
-
61
- Scenario: Simple Remove
62
- Given the document 'contractor' roundtrips
63
- When I remove 'contractor'
64
- Then the document 'contractor' is not found
65
-
66
- Scenario: Embedded Remove
67
- When the document 'hashrocket_hq' roundtrips
68
- Then an exception is raised if I remove 'hq_address'
@@ -1,15 +0,0 @@
1
- Feature: saving an object
2
-
3
- Scenario: saving simple json
4
- Given a new collection named 'test'
5
- When I save the json '{"name":"name"}'
6
- Then the collection should have 1 document
7
- And the json '{"name":"name"}' roundtrips
8
-
9
- Scenario: saving a ruby object
10
- Given a new collection named 'test'
11
- And an object 'movie'
12
- When I save the object 'movie'
13
- Then the collection should have 1 document
14
- And the object 'movie' roundtrips
15
-
@@ -1,66 +0,0 @@
1
- Feature: Named Scopes
2
-
3
- Background:
4
- Given an empty Contact document collection
5
- And a Contact document named 'hashrocket' :
6
- | Name | Type |
7
- | Hashrocket | company |
8
- And 'hashrocket' has interests, an array of:
9
- | Interest |
10
- | ruby |
11
- | rails |
12
- | employment |
13
- | contract work |
14
- | restaurants |
15
- | hotels |
16
- | flights |
17
- | car rentals |
18
- And 'hashrocket' has many addresses :
19
- | Street | City | State | Zip Code |
20
- | 320 First Street North | Jacksonville Beach | FL | 32250 |
21
- | 1 Lake Michigan Street | Chicago | IL | 60611 |
22
- | 1 Main Street | Santiago | Chile | |
23
- And I save the document 'hashrocket'
24
- And a Contact document named 'rocketeer' :
25
- | Name |
26
- | Rocketeer Mike |
27
- And 'rocketeer' has interests, an array of:
28
- | Interest |
29
- | ruby |
30
- | rails |
31
- | restaurants |
32
- | employment |
33
- And 'rocketeer' has many addresses :
34
- | Street | City | State | Zip Code |
35
- | 1 Main Street | Atlantic Beach | FL | 32233 |
36
- And I save the document 'rocketeer'
37
- And a Contact document named 'contractor' :
38
- | Name |
39
- | Contractor Joe |
40
- And 'contractor' has interests, an array of:
41
- | Interest |
42
- | ruby |
43
- | rails |
44
- | contract work |
45
- | flights |
46
- | car rentals |
47
- | hotels |
48
- | restaurants |
49
- And 'contractor' has many addresses :
50
- | Street | City | State | Zip Code |
51
- | 1 Main St. | Jacksonville | FL | 32218 |
52
- And I save the document 'contractor'
53
-
54
- Scenario: Simple named scope
55
- When I query contacts with scope 'rubyists'
56
- Then the query result has 3 documents
57
-
58
- Scenario: Simple chained scope
59
- When I query contacts with scopes 'rubyists, contract_work'
60
- Then the query result has 2 documents
61
- And one of the query results is the document 'contractor'
62
-
63
- Scenario: Named scope with lambda
64
- When I query contacts with lambda scope 'in_state' with parameters 'IL'
65
- Then the query result has 1 documents
66
- And one of the query results is the document 'hashrocket'
@@ -1,17 +0,0 @@
1
- Given /a new collection named '(.*)'/ do |name|
2
- MongoDoc::Connection.database.drop_collection(name)
3
- @collection = MongoDoc::Collection.new(name)
4
- end
5
-
6
- Given /^an empty (\w+) collection$/ do |name|
7
- MongoDoc::Connection.database.drop_collection(name)
8
- MongoDoc::Connection.database.create_collection(name, :strict => true)
9
- end
10
-
11
- Then /the collection should have (\d+) documents?/ do |count|
12
- @collection.count.should == count.to_i
13
- end
14
-
15
- When "I query the collection '$collection_name' with the criteria $criteria" do |collection_name, criteria|
16
- @query = eval("@collection.#{criteria}")
17
- end
@@ -1,13 +0,0 @@
1
- Given /^a new connection to the database "([^"]*)" with user "([^"]*)" and password "([^"]*)"$/ do |db, user, password|
2
- begin
3
- MongoDoc::Connection.connection = Mongo::Connection.from_uri("mongodb://#{user}:#{password}@localhost/#{db}")
4
- MongoDoc::Connection.send(:verify_server_version)
5
- rescue StandardError => e
6
- @exception = e
7
- end
8
- end
9
-
10
- Then /^a "([^"]*)" exception is thrown$/ do |exception|
11
- @exception.class.name.should == exception
12
- end
13
-