numon 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. data/.gitignore +10 -0
  2. data/LICENSE +20 -0
  3. data/README.rdoc +31 -0
  4. data/Rakefile +52 -0
  5. data/bin/mmconsole +60 -0
  6. data/lib/mongo_mapper.rb +138 -0
  7. data/lib/mongo_mapper/document.rb +359 -0
  8. data/lib/mongo_mapper/embedded_document.rb +61 -0
  9. data/lib/mongo_mapper/plugins.rb +34 -0
  10. data/lib/mongo_mapper/plugins/associations.rb +105 -0
  11. data/lib/mongo_mapper/plugins/associations/base.rb +123 -0
  12. data/lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb +30 -0
  13. data/lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb +25 -0
  14. data/lib/mongo_mapper/plugins/associations/collection.rb +21 -0
  15. data/lib/mongo_mapper/plugins/associations/embedded_collection.rb +39 -0
  16. data/lib/mongo_mapper/plugins/associations/in_array_proxy.rb +144 -0
  17. data/lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb +28 -0
  18. data/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb +120 -0
  19. data/lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb +31 -0
  20. data/lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb +23 -0
  21. data/lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb +13 -0
  22. data/lib/mongo_mapper/plugins/associations/one_proxy.rb +68 -0
  23. data/lib/mongo_mapper/plugins/associations/proxy.rb +118 -0
  24. data/lib/mongo_mapper/plugins/callbacks.rb +234 -0
  25. data/lib/mongo_mapper/plugins/clone.rb +13 -0
  26. data/lib/mongo_mapper/plugins/descendants.rb +16 -0
  27. data/lib/mongo_mapper/plugins/dirty.rb +119 -0
  28. data/lib/mongo_mapper/plugins/equality.rb +23 -0
  29. data/lib/mongo_mapper/plugins/identity_map.rb +122 -0
  30. data/lib/mongo_mapper/plugins/inspect.rb +14 -0
  31. data/lib/mongo_mapper/plugins/keys.rb +336 -0
  32. data/lib/mongo_mapper/plugins/logger.rb +17 -0
  33. data/lib/mongo_mapper/plugins/modifiers.rb +87 -0
  34. data/lib/mongo_mapper/plugins/pagination.rb +24 -0
  35. data/lib/mongo_mapper/plugins/pagination/proxy.rb +72 -0
  36. data/lib/mongo_mapper/plugins/protected.rb +45 -0
  37. data/lib/mongo_mapper/plugins/rails.rb +53 -0
  38. data/lib/mongo_mapper/plugins/serialization.rb +75 -0
  39. data/lib/mongo_mapper/plugins/timestamps.rb +21 -0
  40. data/lib/mongo_mapper/plugins/userstamps.rb +14 -0
  41. data/lib/mongo_mapper/plugins/validations.rb +46 -0
  42. data/lib/mongo_mapper/query.rb +130 -0
  43. data/lib/mongo_mapper/support.rb +216 -0
  44. data/lib/mongo_mapper/support/descendant_appends.rb +46 -0
  45. data/lib/mongo_mapper/support/find.rb +77 -0
  46. data/lib/mongo_mapper/version.rb +3 -0
  47. data/numon.gemspec +207 -0
  48. data/performance/read_write.rb +52 -0
  49. data/specs.watchr +51 -0
  50. data/test/NOTE_ON_TESTING +1 -0
  51. data/test/active_model_lint_test.rb +11 -0
  52. data/test/functional/associations/test_belongs_to_polymorphic_proxy.rb +63 -0
  53. data/test/functional/associations/test_belongs_to_proxy.rb +101 -0
  54. data/test/functional/associations/test_in_array_proxy.rb +325 -0
  55. data/test/functional/associations/test_many_documents_as_proxy.rb +229 -0
  56. data/test/functional/associations/test_many_documents_proxy.rb +453 -0
  57. data/test/functional/associations/test_many_embedded_polymorphic_proxy.rb +176 -0
  58. data/test/functional/associations/test_many_embedded_proxy.rb +256 -0
  59. data/test/functional/associations/test_many_polymorphic_proxy.rb +302 -0
  60. data/test/functional/associations/test_one_proxy.rb +161 -0
  61. data/test/functional/test_associations.rb +44 -0
  62. data/test/functional/test_binary.rb +27 -0
  63. data/test/functional/test_callbacks.rb +151 -0
  64. data/test/functional/test_dirty.rb +163 -0
  65. data/test/functional/test_document.rb +1165 -0
  66. data/test/functional/test_embedded_document.rb +130 -0
  67. data/test/functional/test_identity_map.rb +508 -0
  68. data/test/functional/test_indexing.rb +44 -0
  69. data/test/functional/test_logger.rb +20 -0
  70. data/test/functional/test_modifiers.rb +322 -0
  71. data/test/functional/test_pagination.rb +93 -0
  72. data/test/functional/test_protected.rb +161 -0
  73. data/test/functional/test_string_id_compatibility.rb +67 -0
  74. data/test/functional/test_timestamps.rb +64 -0
  75. data/test/functional/test_userstamps.rb +28 -0
  76. data/test/functional/test_validations.rb +329 -0
  77. data/test/models.rb +232 -0
  78. data/test/support/custom_matchers.rb +55 -0
  79. data/test/support/timing.rb +16 -0
  80. data/test/test_helper.rb +61 -0
  81. data/test/unit/associations/test_base.rb +207 -0
  82. data/test/unit/associations/test_proxy.rb +105 -0
  83. data/test/unit/serializers/test_json_serializer.rb +202 -0
  84. data/test/unit/test_descendant_appends.rb +71 -0
  85. data/test/unit/test_document.rb +231 -0
  86. data/test/unit/test_dynamic_finder.rb +123 -0
  87. data/test/unit/test_embedded_document.rb +663 -0
  88. data/test/unit/test_keys.rb +173 -0
  89. data/test/unit/test_mongo_mapper.rb +155 -0
  90. data/test/unit/test_pagination.rb +160 -0
  91. data/test/unit/test_plugins.rb +50 -0
  92. data/test/unit/test_query.rb +340 -0
  93. data/test/unit/test_rails.rb +123 -0
  94. data/test/unit/test_rails_compatibility.rb +52 -0
  95. data/test/unit/test_serialization.rb +51 -0
  96. data/test/unit/test_support.rb +366 -0
  97. data/test/unit/test_time_zones.rb +39 -0
  98. data/test/unit/test_validations.rb +544 -0
  99. metadata +305 -0
@@ -0,0 +1,216 @@
1
+ class Array
2
+ def to_mongo(value)
3
+ value = value.respond_to?(:lines) ? value.lines : value
4
+ value.to_a
5
+ end
6
+
7
+ def from_mongo(value)
8
+
9
+ value || []
10
+ end
11
+ end
12
+
13
+ class Binary
14
+ def self.to_mongo(value)
15
+ if value.is_a?(ByteBuffer)
16
+ value
17
+ else
18
+ value.nil? ? nil : ByteBuffer.new(value)
19
+ end
20
+ end
21
+
22
+ def self.from_mongo(value)
23
+ value
24
+ end
25
+ end
26
+
27
+ class Boolean
28
+ BOOLEAN_MAPPING = {
29
+ true => true, 'true' => true, 'TRUE' => true, 'True' => true, 't' => true, 'T' => true, '1' => true, 1 => true, 1.0 => true,
30
+ false => false, 'false' => false, 'FALSE' => false, 'False' => false, 'f' => false, 'F' => false, '0' => false, 0 => false, 0.0 => false, nil => false
31
+ }
32
+
33
+ def self.to_mongo(value)
34
+ if value.is_a?(Boolean)
35
+ value
36
+ else
37
+ v = BOOLEAN_MAPPING[value]
38
+ v = value.to_s.downcase == 'true' if v.nil? # Check all mixed case spellings for true
39
+ v
40
+ end
41
+ end
42
+
43
+ def self.from_mongo(value)
44
+ !!value
45
+ end
46
+ end
47
+
48
+ class Date
49
+ def self.to_mongo(value)
50
+ if value.nil? || value == ''
51
+ nil
52
+ else
53
+ date = value.is_a?(Date) || value.is_a?(Time) ? value : Date.parse(value.to_s)
54
+ Time.utc(date.year, date.month, date.day)
55
+ end
56
+ rescue
57
+ nil
58
+ end
59
+
60
+ def self.from_mongo(value)
61
+ value.to_date if value.present?
62
+ end
63
+ end
64
+
65
+ class Float
66
+ def self.to_mongo(value)
67
+ value.to_f
68
+ end
69
+ end
70
+
71
+ class Hash
72
+ def self.from_mongo(value)
73
+ HashWithIndifferentAccess.new(value || {})
74
+ end
75
+
76
+ def to_mongo
77
+ self
78
+ end
79
+ end
80
+
81
+ class Integer
82
+ def self.to_mongo(value)
83
+ value_to_i = value.to_i
84
+ if value_to_i == 0 && value != value_to_i
85
+ value.to_s =~ /^(0x|0b)?0+/ ? 0 : nil
86
+ else
87
+ value_to_i
88
+ end
89
+ end
90
+ end
91
+
92
+ class NilClass
93
+ def to_mongo(value)
94
+ value
95
+ end
96
+
97
+ def from_mongo(value)
98
+ value
99
+ end
100
+ end
101
+
102
+ class Object
103
+ # The hidden singleton lurks behind everyone
104
+ def metaclass
105
+ class << self; self end
106
+ end
107
+
108
+ def meta_eval(&blk)
109
+ metaclass.instance_eval(&blk)
110
+ end
111
+
112
+ # Adds methods to a metaclass
113
+ def meta_def(name, &blk)
114
+ meta_eval { define_method(name, &blk) }
115
+ end
116
+
117
+ # Defines an instance method within a class
118
+ def class_def(name, &blk)
119
+ class_eval { define_method(name, &blk) }
120
+ end
121
+
122
+ def self.to_mongo(value)
123
+ value
124
+ end
125
+
126
+ def self.from_mongo(value)
127
+ value
128
+ end
129
+ end
130
+
131
+ class ObjectId
132
+ def self.to_mongo(value)
133
+ if value.blank?
134
+ nil
135
+ elsif value.is_a?(Mongo::ObjectID)
136
+ value
137
+ else
138
+ Mongo::ObjectID.from_string(value.to_s)
139
+ end
140
+ end
141
+
142
+ def self.from_mongo(value)
143
+ value
144
+ end
145
+ end
146
+
147
+ class Set
148
+ def self.to_mongo(value)
149
+ value.to_a
150
+ end
151
+
152
+ def self.from_mongo(value)
153
+ Set.new(value || [])
154
+ end
155
+ end
156
+
157
+ class String
158
+ def self.to_mongo(value)
159
+ value.nil? ? nil : value.to_s
160
+ end
161
+
162
+ def self.from_mongo(value)
163
+ value.nil? ? nil : value.to_s
164
+ end
165
+ end
166
+
167
+ class SymbolOperator
168
+ attr_reader :field, :operator
169
+
170
+ def initialize(field, operator, options={})
171
+ @field, @operator = field, operator
172
+ end unless method_defined?(:initialize)
173
+ end
174
+
175
+ class Symbol
176
+ %w(gt lt gte lte ne in nin mod all size where exists asc desc).each do |operator|
177
+ define_method(operator) do
178
+ SymbolOperator.new(self, operator)
179
+ end unless method_defined?(operator)
180
+ end
181
+ end
182
+
183
+ class Time
184
+ def self.to_mongo(value)
185
+ if value.nil? || value == ''
186
+ nil
187
+ else
188
+ time = value.is_a?(Time) ? value : MongoMapper.time_class.parse(value.to_s)
189
+ # Convert time to milliseconds since BSON stores dates with that accurracy, but Ruby uses microseconds
190
+ Time.at((time.to_f * 1000).round / 1000.0).utc if time
191
+ end
192
+ end
193
+
194
+ def self.from_mongo(value)
195
+ if MongoMapper.use_time_zone? && value.present?
196
+ value.in_time_zone(Time.zone)
197
+ else
198
+ value
199
+ end
200
+ end
201
+ end
202
+
203
+ class Mongo::ObjectID
204
+ alias_method :original_to_json, :to_json
205
+
206
+ def to_json(options = nil)
207
+ %Q("#{to_s}")
208
+ end
209
+ end
210
+
211
+ module MongoMapper
212
+ module Support
213
+ autoload :DescendantAppends, 'mongo_mapper/support/descendant_appends'
214
+ autoload :Find, 'mongo_mapper/support/find'
215
+ end
216
+ end
@@ -0,0 +1,46 @@
1
+ module MongoMapper
2
+ module Support
3
+ module DescendantAppends
4
+ def included(model)
5
+ extra_extensions.each { |extension| model.extend(extension) }
6
+ extra_inclusions.each { |inclusion| model.send(:include, inclusion) }
7
+ descendants << model
8
+ end
9
+
10
+ # @api public
11
+ def descendants
12
+ @descendants ||= Set.new
13
+ end
14
+
15
+ # @api public
16
+ def append_extensions(*extensions)
17
+ extra_extensions.concat extensions
18
+
19
+ # Add the extension to existing descendants
20
+ descendants.each do |model|
21
+ extensions.each { |extension| model.extend(extension) }
22
+ end
23
+ end
24
+
25
+ # @api public
26
+ def append_inclusions(*inclusions)
27
+ extra_inclusions.concat inclusions
28
+
29
+ # Add the inclusion to existing descendants
30
+ descendants.each do |model|
31
+ inclusions.each { |inclusion| model.send(:include, inclusion) }
32
+ end
33
+ end
34
+
35
+ # @api private
36
+ def extra_extensions
37
+ @extra_extensions ||= []
38
+ end
39
+
40
+ # @api private
41
+ def extra_inclusions
42
+ @extra_inclusions ||= []
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,77 @@
1
+ module MongoMapper
2
+ module Support
3
+ # @api private
4
+ module Find
5
+ def dynamic_find(finder, args)
6
+ attributes = {}
7
+
8
+ finder.attributes.each_with_index do |attr, index|
9
+ attributes[attr] = args[index]
10
+ end
11
+
12
+ options = args.extract_options!.merge(attributes)
13
+
14
+ if result = send(finder.finder, options)
15
+ result
16
+ else
17
+ if finder.raise?
18
+ raise DocumentNotFound, "Couldn't find Document with #{attributes.inspect} in collection named #{collection.name}"
19
+ end
20
+
21
+ if finder.instantiator
22
+ self.send(finder.instantiator, attributes)
23
+ end
24
+ end
25
+ end
26
+
27
+ class DynamicFinder
28
+ attr_reader :method, :attributes, :finder, :bang, :instantiator
29
+
30
+ def initialize(method)
31
+ @method = method
32
+ @finder = :first
33
+ @bang = false
34
+ match
35
+ end
36
+
37
+ def found?
38
+ @finder.present?
39
+ end
40
+
41
+ def raise?
42
+ bang == true
43
+ end
44
+
45
+ protected
46
+ def match
47
+ case method.to_s
48
+ when /^find_(all_by|by)_([_a-zA-Z]\w*)$/
49
+ @finder = :all if $1 == 'all_by'
50
+ names = $2
51
+ when /^find_by_([_a-zA-Z]\w*)\!$/
52
+ @bang = true
53
+ names = $1
54
+ when /^find_or_(initialize|create)_by_([_a-zA-Z]\w*)$/
55
+ @instantiator = $1 == 'initialize' ? :new : :create
56
+ names = $2
57
+ else
58
+ @finder = nil
59
+ end
60
+
61
+ @attributes = names && names.split('_and_')
62
+ end
63
+ end
64
+
65
+ protected
66
+ def method_missing(method, *args, &block)
67
+ finder = DynamicFinder.new(method)
68
+
69
+ if finder.found?
70
+ dynamic_find(finder, args)
71
+ else
72
+ super
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,3 @@
1
+ module MongoMapper
2
+ Version = '0.7.1'
3
+ end
@@ -0,0 +1,207 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{numon}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Nutheory"]
12
+ s.date = %q{2010-03-29}
13
+ s.default_executable = %q{mmconsole}
14
+ s.email = %q{drush81@gmail.com}
15
+ s.executables = ["mmconsole"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE",
18
+ "README.rdoc"
19
+ ]
20
+ s.files = [
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "bin/mmconsole",
26
+ "lib/mongo_mapper.rb",
27
+ "lib/mongo_mapper/document.rb",
28
+ "lib/mongo_mapper/embedded_document.rb",
29
+ "lib/mongo_mapper/plugins.rb",
30
+ "lib/mongo_mapper/plugins/associations.rb",
31
+ "lib/mongo_mapper/plugins/associations/base.rb",
32
+ "lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb",
33
+ "lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb",
34
+ "lib/mongo_mapper/plugins/associations/collection.rb",
35
+ "lib/mongo_mapper/plugins/associations/embedded_collection.rb",
36
+ "lib/mongo_mapper/plugins/associations/in_array_proxy.rb",
37
+ "lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb",
38
+ "lib/mongo_mapper/plugins/associations/many_documents_proxy.rb",
39
+ "lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb",
40
+ "lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb",
41
+ "lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb",
42
+ "lib/mongo_mapper/plugins/associations/one_proxy.rb",
43
+ "lib/mongo_mapper/plugins/associations/proxy.rb",
44
+ "lib/mongo_mapper/plugins/callbacks.rb",
45
+ "lib/mongo_mapper/plugins/clone.rb",
46
+ "lib/mongo_mapper/plugins/descendants.rb",
47
+ "lib/mongo_mapper/plugins/dirty.rb",
48
+ "lib/mongo_mapper/plugins/equality.rb",
49
+ "lib/mongo_mapper/plugins/identity_map.rb",
50
+ "lib/mongo_mapper/plugins/inspect.rb",
51
+ "lib/mongo_mapper/plugins/keys.rb",
52
+ "lib/mongo_mapper/plugins/logger.rb",
53
+ "lib/mongo_mapper/plugins/modifiers.rb",
54
+ "lib/mongo_mapper/plugins/pagination.rb",
55
+ "lib/mongo_mapper/plugins/pagination/proxy.rb",
56
+ "lib/mongo_mapper/plugins/protected.rb",
57
+ "lib/mongo_mapper/plugins/rails.rb",
58
+ "lib/mongo_mapper/plugins/serialization.rb",
59
+ "lib/mongo_mapper/plugins/timestamps.rb",
60
+ "lib/mongo_mapper/plugins/userstamps.rb",
61
+ "lib/mongo_mapper/plugins/validations.rb",
62
+ "lib/mongo_mapper/query.rb",
63
+ "lib/mongo_mapper/support.rb",
64
+ "lib/mongo_mapper/support/descendant_appends.rb",
65
+ "lib/mongo_mapper/support/find.rb",
66
+ "lib/mongo_mapper/version.rb",
67
+ "numon.gemspec",
68
+ "performance/read_write.rb",
69
+ "specs.watchr",
70
+ "test/NOTE_ON_TESTING",
71
+ "test/active_model_lint_test.rb",
72
+ "test/functional/associations/test_belongs_to_polymorphic_proxy.rb",
73
+ "test/functional/associations/test_belongs_to_proxy.rb",
74
+ "test/functional/associations/test_in_array_proxy.rb",
75
+ "test/functional/associations/test_many_documents_as_proxy.rb",
76
+ "test/functional/associations/test_many_documents_proxy.rb",
77
+ "test/functional/associations/test_many_embedded_polymorphic_proxy.rb",
78
+ "test/functional/associations/test_many_embedded_proxy.rb",
79
+ "test/functional/associations/test_many_polymorphic_proxy.rb",
80
+ "test/functional/associations/test_one_proxy.rb",
81
+ "test/functional/test_associations.rb",
82
+ "test/functional/test_binary.rb",
83
+ "test/functional/test_callbacks.rb",
84
+ "test/functional/test_dirty.rb",
85
+ "test/functional/test_document.rb",
86
+ "test/functional/test_embedded_document.rb",
87
+ "test/functional/test_identity_map.rb",
88
+ "test/functional/test_indexing.rb",
89
+ "test/functional/test_logger.rb",
90
+ "test/functional/test_modifiers.rb",
91
+ "test/functional/test_pagination.rb",
92
+ "test/functional/test_protected.rb",
93
+ "test/functional/test_string_id_compatibility.rb",
94
+ "test/functional/test_timestamps.rb",
95
+ "test/functional/test_userstamps.rb",
96
+ "test/functional/test_validations.rb",
97
+ "test/models.rb",
98
+ "test/support/custom_matchers.rb",
99
+ "test/support/timing.rb",
100
+ "test/test_helper.rb",
101
+ "test/unit/associations/test_base.rb",
102
+ "test/unit/associations/test_proxy.rb",
103
+ "test/unit/serializers/test_json_serializer.rb",
104
+ "test/unit/test_descendant_appends.rb",
105
+ "test/unit/test_document.rb",
106
+ "test/unit/test_dynamic_finder.rb",
107
+ "test/unit/test_embedded_document.rb",
108
+ "test/unit/test_keys.rb",
109
+ "test/unit/test_mongo_mapper.rb",
110
+ "test/unit/test_pagination.rb",
111
+ "test/unit/test_plugins.rb",
112
+ "test/unit/test_query.rb",
113
+ "test/unit/test_rails.rb",
114
+ "test/unit/test_rails_compatibility.rb",
115
+ "test/unit/test_serialization.rb",
116
+ "test/unit/test_support.rb",
117
+ "test/unit/test_time_zones.rb",
118
+ "test/unit/test_validations.rb"
119
+ ]
120
+ s.homepage = %q{http://github.com/jnunemaker/mongomapper}
121
+ s.rdoc_options = ["--charset=UTF-8"]
122
+ s.require_paths = ["lib"]
123
+ s.rubygems_version = %q{1.3.5}
124
+ s.summary = %q{A Ruby Object Mapper for Mongo}
125
+ s.test_files = [
126
+ "test/active_model_lint_test.rb",
127
+ "test/functional/associations/test_belongs_to_polymorphic_proxy.rb",
128
+ "test/functional/associations/test_belongs_to_proxy.rb",
129
+ "test/functional/associations/test_in_array_proxy.rb",
130
+ "test/functional/associations/test_many_documents_as_proxy.rb",
131
+ "test/functional/associations/test_many_documents_proxy.rb",
132
+ "test/functional/associations/test_many_embedded_polymorphic_proxy.rb",
133
+ "test/functional/associations/test_many_embedded_proxy.rb",
134
+ "test/functional/associations/test_many_polymorphic_proxy.rb",
135
+ "test/functional/associations/test_one_proxy.rb",
136
+ "test/functional/test_associations.rb",
137
+ "test/functional/test_binary.rb",
138
+ "test/functional/test_callbacks.rb",
139
+ "test/functional/test_dirty.rb",
140
+ "test/functional/test_document.rb",
141
+ "test/functional/test_embedded_document.rb",
142
+ "test/functional/test_identity_map.rb",
143
+ "test/functional/test_indexing.rb",
144
+ "test/functional/test_logger.rb",
145
+ "test/functional/test_modifiers.rb",
146
+ "test/functional/test_pagination.rb",
147
+ "test/functional/test_protected.rb",
148
+ "test/functional/test_string_id_compatibility.rb",
149
+ "test/functional/test_timestamps.rb",
150
+ "test/functional/test_userstamps.rb",
151
+ "test/functional/test_validations.rb",
152
+ "test/models.rb",
153
+ "test/support/custom_matchers.rb",
154
+ "test/support/timing.rb",
155
+ "test/test_helper.rb",
156
+ "test/unit/associations/test_base.rb",
157
+ "test/unit/associations/test_proxy.rb",
158
+ "test/unit/serializers/test_json_serializer.rb",
159
+ "test/unit/test_descendant_appends.rb",
160
+ "test/unit/test_document.rb",
161
+ "test/unit/test_dynamic_finder.rb",
162
+ "test/unit/test_embedded_document.rb",
163
+ "test/unit/test_keys.rb",
164
+ "test/unit/test_mongo_mapper.rb",
165
+ "test/unit/test_pagination.rb",
166
+ "test/unit/test_plugins.rb",
167
+ "test/unit/test_query.rb",
168
+ "test/unit/test_rails.rb",
169
+ "test/unit/test_rails_compatibility.rb",
170
+ "test/unit/test_serialization.rb",
171
+ "test/unit/test_support.rb",
172
+ "test/unit/test_time_zones.rb",
173
+ "test/unit/test_validations.rb"
174
+ ]
175
+
176
+ if s.respond_to? :specification_version then
177
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
178
+ s.specification_version = 3
179
+
180
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
181
+ s.add_runtime_dependency(%q<activesupport>, ["= 3.0.0.beta"])
182
+ s.add_runtime_dependency(%q<mongo>, ["= 0.19.1"])
183
+ s.add_runtime_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
184
+ s.add_development_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
185
+ s.add_development_dependency(%q<shoulda>, ["= 2.10.2"])
186
+ s.add_development_dependency(%q<timecop>, ["= 0.3.1"])
187
+ s.add_development_dependency(%q<mocha>, ["= 0.9.8"])
188
+ else
189
+ s.add_dependency(%q<activesupport>, ["= 3.0.0.beta"])
190
+ s.add_dependency(%q<mongo>, ["= 0.19.1"])
191
+ s.add_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
192
+ s.add_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
193
+ s.add_dependency(%q<shoulda>, ["= 2.10.2"])
194
+ s.add_dependency(%q<timecop>, ["= 0.3.1"])
195
+ s.add_dependency(%q<mocha>, ["= 0.9.8"])
196
+ end
197
+ else
198
+ s.add_dependency(%q<activesupport>, ["= 3.0.0.beta"])
199
+ s.add_dependency(%q<mongo>, ["= 0.19.1"])
200
+ s.add_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
201
+ s.add_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
202
+ s.add_dependency(%q<shoulda>, ["= 2.10.2"])
203
+ s.add_dependency(%q<timecop>, ["= 0.3.1"])
204
+ s.add_dependency(%q<mocha>, ["= 0.9.8"])
205
+ end
206
+ end
207
+