mongomodel 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d20a72c67b166e32f7b15d679f2be9da9e4aeb9a
4
+ data.tar.gz: 579a68306b9f69d20e6b18fd1c39dde098a66d50
5
+ SHA512:
6
+ metadata.gz: 4d9493996ffb93bbb4fdb1c26ab3e4ac7311f10b97f10b7873fb443c4624c0972fc536bafae0a3e31e2049a573e612167cbc8c9fdea27f6f05c0808137624523
7
+ data.tar.gz: b4560d5934a94b17c14505838d2cfded8cdd5bdeb9d54ec000b7f360760b108e043d3d259c1e56133b9b94bf5809e2ceaf2f5bfc104f58349005215cd68b4fc0
@@ -7,11 +7,13 @@ rvm:
7
7
  - 1.8.7
8
8
  - 1.9.3
9
9
  - 2.0.0
10
+ - 2.1.0
10
11
 
11
12
  gemfile:
12
13
  - gemfiles/rails-3.1.gemfile
13
14
  - gemfiles/rails-3.2.gemfile
14
- - gemfiles/rails-4.gemfile
15
+ - gemfiles/rails-4.0.gemfile
16
+ - gemfiles/rails-4.1.gemfile
15
17
  - gemfiles/rails-4-observers.gemfile
16
18
  - gemfiles/rails-4-protected-attributes.gemfile
17
19
  - gemfiles/mongo_mapper.gemfile
@@ -20,7 +22,9 @@ gemfile:
20
22
  matrix:
21
23
  exclude:
22
24
  - rvm: 1.8.7
23
- gemfile: gemfiles/rails-4.gemfile
25
+ gemfile: gemfiles/rails-4.0.gemfile
26
+ - rvm: 1.8.7
27
+ gemfile: gemfiles/rails-4.1.gemfile
24
28
  - rvm: 1.8.7
25
29
  gemfile: gemfiles/rails-4-observers.gemfile
26
30
  - rvm: 1.8.7
@@ -1,7 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "activesupport", "3.2.13"
4
- gem "activemodel", "3.2.13"
3
+ gem "activesupport", "3.2.17"
4
+ gem "activemodel", "3.2.17"
5
5
 
6
6
  gem "bson_ext", "~> 1.8"
7
7
  gem "tzinfo"
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activesupport", "4.0.3"
4
+ gem "activemodel", "4.0.3"
5
+
6
+ gem "bson_ext", "~> 1.8"
7
+ gem "tzinfo"
8
+ gem "rake"
9
+
10
+ gemspec :path => "../"
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activesupport", :github => "rails/rails", :branch => "4-1-stable"
4
+ gem "activemodel", :github => "rails/rails", :branch => "4-1-stable"
5
+
6
+ gem "bson_ext", "~> 1.8"
7
+ gem "tzinfo"
8
+ gem "rake"
9
+
10
+ gemspec :path => "../"
@@ -199,34 +199,16 @@ module MongoModel
199
199
  :after_create, :before_update, :around_update, :after_update,
200
200
  :before_destroy, :around_destroy, :after_destroy
201
201
  ]
202
-
202
+
203
+ module ClassMethods
204
+ include ActiveModel::Callbacks
205
+ end
206
+
203
207
  included do
204
- extend ActiveModel::Callbacks
208
+ include ActiveModel::Validations::Callbacks
205
209
 
206
210
  define_model_callbacks :initialize, :find, :only => :after
207
211
  define_model_callbacks :save, :create, :update, :destroy
208
-
209
- define_callbacks :validation, :terminator => "result == false", :scope => [:kind, :name]
210
- end
211
-
212
- module ClassMethods
213
- def before_validation(*args, &block)
214
- options = args.extract_options!
215
- if options[:on]
216
- options[:if] = Array.wrap(options[:if])
217
- options[:if] << "@_on_validate == :#{options[:on]}"
218
- end
219
- set_callback(:validation, :before, *(args << options), &block)
220
- end
221
-
222
- def after_validation(*args, &block)
223
- options = args.extract_options!
224
- options[:if] = Array.wrap(options[:if])
225
- options[:if] << "!halted && value != false"
226
- options[:if] << "@_on_validate == :#{options[:on]}" if options[:on]
227
- options[:prepend] = true
228
- set_callback(:validation, :after, *(args << options), &block)
229
- end
230
212
  end
231
213
 
232
214
  def initialize(*args, &block) #:nodoc:
@@ -234,11 +216,6 @@ module MongoModel
234
216
  run_callbacks_with_embedded(:initialize)
235
217
  end
236
218
 
237
- def valid?(*) #:nodoc:
238
- @_on_validate = new_record? ? :create : :update
239
- run_callbacks(:validation) { super }
240
- end
241
-
242
219
  def run_callbacks_with_embedded(kind, *args, &block)
243
220
  if block_given?
244
221
  embedded_callbacks = nest_embedded_callbacks(kind, *args, &block)
@@ -5,25 +5,14 @@ module MongoModel
5
5
  module Validations
6
6
  class UniquenessValidator < ActiveModel::EachValidator
7
7
  def initialize(options)
8
- super(options.reverse_merge(:case_sensitive => true))
8
+ options = options.reverse_merge(:case_sensitive => true)
9
+
10
+ ActiveSupport::Deprecation.silence { super }
11
+ setup!(options[:class]) if options[:class] && !@klass
9
12
  end
10
13
 
11
14
  def setup(klass)
12
- @klass = klass
13
-
14
- # Enable safety checks on save
15
- klass.save_safely = true
16
-
17
- # Create unique indexes to deal with race condition
18
- attributes.each do |attr_name|
19
- if options[:case_sensitive]
20
- klass.index *[attr_name] + Array.wrap(options[:scope]) << { :unique => true }
21
- else
22
- lowercase_key = "_lowercase_#{attr_name}"
23
- klass.before_save { attributes[lowercase_key] = send(attr_name).downcase }
24
- klass.index *[lowercase_key] + Array.wrap(options[:scope]) << { :unique => true }
25
- end
26
- end
15
+ setup!(klass)
27
16
  end
28
17
 
29
18
  def validate_each(record, attribute, value)
@@ -48,7 +37,24 @@ module MongoModel
48
37
  end
49
38
 
50
39
  private
51
-
40
+ def setup!(klass)
41
+ @klass = klass
42
+
43
+ # Enable safety checks on save
44
+ klass.save_safely = true
45
+
46
+ # Create unique indexes to deal with race condition
47
+ attributes.each do |attr_name|
48
+ if options[:case_sensitive]
49
+ klass.index *[attr_name] + Array.wrap(options[:scope]) << { :unique => true }
50
+ else
51
+ lowercase_key = "_lowercase_#{attr_name}"
52
+ klass.before_save { attributes[lowercase_key] = send(attr_name).downcase }
53
+ klass.index *[lowercase_key] + Array.wrap(options[:scope]) << { :unique => true }
54
+ end
55
+ end
56
+ end
57
+
52
58
  # The check for an existing value should be run from a class that
53
59
  # isn't abstract. This means working down from the current class
54
60
  # (self), to the first non-abstract class. Since classes don't know
@@ -1,3 +1,3 @@
1
1
  module MongoModel
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -5,6 +5,7 @@ Gem::Specification.new do |s|
5
5
  s.name = "mongomodel"
6
6
  s.version = MongoModel::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
+ s.licenses = ["MIT"]
8
9
  s.authors = ["Sam Pohlenz"]
9
10
  s.email = ["sam@sampohlenz.com"]
10
11
  s.homepage = "http://www.mongomodel.org"
@@ -18,9 +19,9 @@ Gem::Specification.new do |s|
18
19
  s.add_dependency "activemodel", ">= 3.1"
19
20
  s.add_dependency "mongo", "~> 1.8"
20
21
 
21
- s.add_development_dependency "bundler", ">= 1.0.0"
22
- s.add_development_dependency "rspec", "~> 2.8"
23
- s.add_development_dependency "guard-rspec", "~> 0.5.0"
22
+ s.add_development_dependency "bundler", ">= 1.0"
23
+ s.add_development_dependency "rspec", "~> 2.8"
24
+ s.add_development_dependency "minitest", ">= 4.2"
24
25
 
25
26
  s.files = `git ls-files`.split("\n")
26
27
  s.require_path = 'lib'
@@ -3,8 +3,16 @@ require 'spec_helper'
3
3
  module MongoModel
4
4
  specs_for(Document, EmbeddedDocument) do
5
5
  shared_examples_for "ActiveModel" do
6
- require 'test/unit/assertions'
7
- include Test::Unit::Assertions
6
+ begin
7
+ require 'minitest/assertions'
8
+ rescue LoadError
9
+ require 'minitest/unit'
10
+ end
11
+
12
+ include Minitest::Assertions
13
+
14
+ attr_accessor :assertions
15
+ before(:all) { self.assertions = 0 }
8
16
 
9
17
  include ActiveModel::Lint::Tests
10
18
 
@@ -36,7 +36,7 @@ module MongoModel
36
36
  end
37
37
 
38
38
  context "on a class with an included concern that defines the property" do
39
- module TestConcern
39
+ define_module(:TestConcern) do
40
40
  extend ActiveSupport::Concern
41
41
 
42
42
  included do
@@ -12,6 +12,12 @@ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
12
12
  require 'active_support/time'
13
13
  Time.zone = "Australia/Melbourne"
14
14
 
15
+ begin
16
+ I18n.config.enforce_available_locales = false
17
+ rescue NoMethodError
18
+ # Ignore
19
+ end
20
+
15
21
  RSpec.configure do |config|
16
22
  include SpecsFor
17
23
  include DefineClass
@@ -21,4 +21,17 @@ module DefineClass
21
21
  klass
22
22
  end
23
23
  end
24
+
25
+ def define_module(name, &block)
26
+ before(:each) do
27
+ Object.send(:remove_const, name) if Object.const_defined?(name)
28
+
29
+ mod = Module.new
30
+
31
+ Object.const_set(name, mod)
32
+
33
+ mod.class_eval(&block) if block_given?
34
+ mod
35
+ end
36
+ end
24
37
  end
metadata CHANGED
@@ -1,112 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongomodel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.5.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sam Pohlenz
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-05 00:00:00.000000000 Z
11
+ date: 2014-02-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.1'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.1'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activemodel
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '3.1'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '3.1'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mongo
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: '1.8'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: '1.8'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bundler
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
- version: 1.0.0
61
+ version: '1.0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
- version: 1.0.0
68
+ version: '1.0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: '2.8'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: '2.8'
94
83
  - !ruby/object:Gem::Dependency
95
- name: guard-rspec
84
+ name: minitest
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
- version: 0.5.0
89
+ version: '4.2'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
- version: 0.5.0
96
+ version: '4.2'
110
97
  description: MongoModel is a MongoDB ORM for Ruby/Rails similar to ActiveRecord and
111
98
  DataMapper.
112
99
  email:
@@ -115,8 +102,8 @@ executables: []
115
102
  extensions: []
116
103
  extra_rdoc_files: []
117
104
  files:
118
- - .gitignore
119
- - .travis.yml
105
+ - ".gitignore"
106
+ - ".travis.yml"
120
107
  - Gemfile
121
108
  - Guardfile
122
109
  - LICENSE
@@ -129,7 +116,8 @@ files:
129
116
  - gemfiles/rails-3.2.gemfile
130
117
  - gemfiles/rails-4-observers.gemfile
131
118
  - gemfiles/rails-4-protected-attributes.gemfile
132
- - gemfiles/rails-4.gemfile
119
+ - gemfiles/rails-4.0.gemfile
120
+ - gemfiles/rails-4.1.gemfile
133
121
  - lib/mongomodel.rb
134
122
  - lib/mongomodel/attributes/mongo.rb
135
123
  - lib/mongomodel/attributes/store.rb
@@ -289,30 +277,27 @@ files:
289
277
  - spec/support/matchers/run_callbacks.rb
290
278
  - spec/support/models.rb
291
279
  homepage: http://www.mongomodel.org
292
- licenses: []
280
+ licenses:
281
+ - MIT
282
+ metadata: {}
293
283
  post_install_message:
294
284
  rdoc_options: []
295
285
  require_paths:
296
286
  - lib
297
287
  required_ruby_version: !ruby/object:Gem::Requirement
298
- none: false
299
288
  requirements:
300
- - - ! '>='
289
+ - - ">="
301
290
  - !ruby/object:Gem::Version
302
291
  version: '0'
303
- segments:
304
- - 0
305
- hash: -3084382199068025224
306
292
  required_rubygems_version: !ruby/object:Gem::Requirement
307
- none: false
308
293
  requirements:
309
- - - ! '>='
294
+ - - ">="
310
295
  - !ruby/object:Gem::Version
311
296
  version: 1.3.6
312
297
  requirements: []
313
298
  rubyforge_project: mongomodel
314
- rubygems_version: 1.8.24
299
+ rubygems_version: 2.2.2
315
300
  signing_key:
316
- specification_version: 3
301
+ specification_version: 4
317
302
  summary: MongoDB ORM for Ruby/Rails
318
303
  test_files: []
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "activesupport", :github => "rails/rails", :branch => "4-0-stable"
4
- gem "activemodel", :github => "rails/rails", :branch => "4-0-stable"
5
-
6
- gem "bson_ext", "~> 1.8"
7
- gem "tzinfo"
8
- gem "rake"
9
-
10
- gemspec :path => "../"