objectid_columns 1.0.3 → 1.0.5

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OTM2ZmNmNTFhMTVhOGU5YjM3NjJhYWMwMjQ2MTMzZWY5M2QzZjlmOA==
5
- data.tar.gz: !binary |-
6
- NTdmODI1NjE4NGNjOTBlZjhiYjI3OGJhOTZiNDEzZDc0M2MyYjMxMg==
2
+ SHA1:
3
+ metadata.gz: 01caf94a3f04125c21d77a1956729388f6a113c8
4
+ data.tar.gz: 498bd6ccad78240d27f0c138de15a1213ac166c3
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODQ3M2Q4NjhhMTk4ZWQzNGM1MDhjM2U4OWQ4N2E0YmY1ZTk0Yzg5ZTFmYWE3
10
- M2Q4MzkxODFlMzVlZmJjNWJkNjUzOTVkMDdmYzg3YmFjOWIzNWI0M2VlNjYx
11
- NzViZmZmN2I1MGU5MGU4MGFiNmExNzA5YzZhOTcyMDA3MGE0YTA=
12
- data.tar.gz: !binary |-
13
- NmQ4NGM2NTM3MDg1NWM5NjJhZjk2OWQ4N2Q4ZjI0MDA4NmI5Y2Y2YmEyYzI0
14
- ODMwNDI0Y2MwMTg1MDI2YjA4NGVmNjIyNzdlYjAzN2IyZjI3MGJkM2UwM2E1
15
- MTZkNmQ0M2M5NzkxYTYyMzcyZTcyZWVhNTgyMjk0NTliNjFlYWM=
6
+ metadata.gz: 624d4c997b0a1ae924312bc6f6e810b29989f764c658cbc8b8ba10280cb0aef31f4c38c9f655106b32a87a5fb42a67ec297e4a53e6a67943e0ea72263b2d00a7
7
+ data.tar.gz: 72f525d605c017fac9d8475bab4e2551c0a96bea851466c08ca4a27dc9a8b061c2238d9aea6e147c6ffe2c3dd95af99e0b34d00f8b415496245175c843bc6f47
data/.travis.yml CHANGED
@@ -2,8 +2,8 @@ rvm:
2
2
  - "1.8.7"
3
3
  - "1.9.3"
4
4
  - "2.0.0"
5
- - "2.1.0"
6
- - "jruby-1.7.9"
5
+ - "2.1.3"
6
+ - "jruby-1.7.16"
7
7
  env:
8
8
  - OBJECTID_COLUMNS_AR_TEST_VERSION=3.0.20 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
9
9
  - OBJECTID_COLUMNS_AR_TEST_VERSION=3.0.20 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
@@ -11,15 +11,15 @@ env:
11
11
  - OBJECTID_COLUMNS_AR_TEST_VERSION=3.1.12 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
12
12
  - OBJECTID_COLUMNS_AR_TEST_VERSION=3.1.12 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
13
13
  - OBJECTID_COLUMNS_AR_TEST_VERSION=3.1.12 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
14
- - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.18 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
15
- - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.18 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
16
- - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.18 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
17
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
18
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
19
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
20
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
21
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
22
- - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
14
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.19 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
15
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.19 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
16
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.19 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
17
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
18
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
19
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
20
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
21
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
22
+ - OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
23
23
  before_script:
24
24
  - mysql -e 'create database myapp_test;'
25
25
  - psql -c 'create database myapp_test;' -U postgres
@@ -27,18 +27,18 @@ matrix:
27
27
  exclude:
28
28
  # ActiveRecord 4.x doesn't support Ruby 1.8.7
29
29
  - rvm: 1.8.7
30
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
30
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
31
31
  - rvm: 1.8.7
32
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
32
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
33
33
  - rvm: 1.8.7
34
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.5 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
34
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.10 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
35
35
  - rvm: 1.8.7
36
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
36
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
37
37
  - rvm: 1.8.7
38
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
38
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
39
39
  - rvm: 1.8.7
40
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.1 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
40
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.6 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
41
41
  allow_failures:
42
42
  - env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.1.12 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
43
43
  - rvm: 1.8.7
44
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.18 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
44
+ env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.19 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
data/CHANGES.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change History for ObjectidColumns
2
2
 
3
+ ### Version 1.0.5: October 10, 2014
4
+
5
+ * Fixed an issue where using `objectid_columns` on a parent model class that was then inherited from (via STI) could cause an internal exception.
6
+ * Updated Travis testing specifications to the latest versions of Ruby/JRuby and ActiveRecord.
7
+
3
8
  ### Version 1.0.3: June 11, 2014
4
9
 
5
10
  * Fixed an issue where, if you tried to declare `has_objectid_primary_key` on a table that didn't exist (usually meaning it just hadn't been migrated into existence yet), you'd get an error. Now, we ignore this declaration.
@@ -44,15 +44,38 @@ module ObjectidColumns
44
44
 
45
45
  # Unfortunately, there appears to be no way to "un-include" a Module in Ruby -- so we have no way of replacing
46
46
  # an existing DynamicMethodsModule on the target class, which is what we'd really like to do in this situation.
47
- if @target_class.const_defined?(@name)
48
- existing = @target_class.const_get(@name)
49
47
 
50
- if existing && existing != self
51
- raise NameError, %{You tried to define a #{self.class.name} named #{name.inspect} on class #{target_class.name},
52
- but that class already has a constant named #{name.inspect}: #{existing.inspect}}
48
+ # Sigh. From the docs for Method#arity:
49
+ #
50
+ # "For Ruby methods that take a variable number of arguments, returns -n-1, where n is the number of required
51
+ # arguments. For methods written in C, returns -1 if the call takes a variable number of arguments."
52
+ #
53
+ # It turns out that .const_defined? is written in C, which means it returns -1 if it takes a variable number of
54
+ # arguments. So we can't check for arity.abs >= 2 here, but rather must look for <= -1...
55
+ if @target_class.method(:const_defined?).arity <= -1
56
+ if @target_class.const_defined?(@name, false)
57
+ existing = @target_class.const_get(@name, false)
58
+
59
+ if existing && existing != self
60
+ raise NameError, %{You tried to define a #{self.class.name} named #{name.inspect} on class #{target_class.name},
61
+ but that class already has a constant named #{name.inspect}: #{existing.inspect}}
62
+ end
63
+ end
64
+ else
65
+ # So...in Ruby 1.8.7, .const_defined? and .const_get don't accept the second parameter, which tells you whether
66
+ # to search superclass constants as well. But, amusingly, we're not only not stuck, this is fine: in Ruby
67
+ # 1.8.7, constant lookup doesn't search superclasses, either -- so we're OK.
68
+ if @target_class.const_defined?(@name)
69
+ existing = @target_class.const_get(@name)
70
+
71
+ if existing && existing != self
72
+ raise NameError, %{You tried to define a #{self.class.name} named #{name.inspect} on class #{target_class.name},
73
+ but that class already has a constant named #{name.inspect}: #{existing.inspect}}
74
+ end
53
75
  end
54
76
  end
55
77
 
78
+
56
79
  @class_methods_module = Module.new
57
80
  (class << @class_methods_module; self; end).send(:public, :private)
58
81
  @target_class.const_set("#{@name}ClassMethods", @class_methods_module)
@@ -347,7 +347,7 @@ module ObjectidColumns
347
347
  #
348
348
  # MyModel.where(:foo_oid => "52ec126d78161f56d8000001")
349
349
  def translate_objectid_query_pair(query_key, query_value)
350
- if (type = oid_columns[query_key.to_sym])
350
+ if (type = net_oid_columns[query_key.to_sym])
351
351
 
352
352
  # Handle nil, false
353
353
  if (! query_value)
@@ -381,7 +381,17 @@ module ObjectidColumns
381
381
 
382
382
  # Given the name of a column, tell whether or not it is an ObjectId column.
383
383
  def is_objectid_column?(column_name)
384
- oid_columns.has_key?(column_name.to_sym)
384
+ net_oid_columns.has_key?(column_name.to_sym)
385
+ end
386
+
387
+ # Returns the same thing as +oid_columns+, except merges in the ActiveRecord class's superclass's columns, if
388
+ # any.
389
+ def net_oid_columns
390
+ out = { }
391
+ if (socm = superclass_objectid_columns_manager)
392
+ out = socm.net_oid_columns
393
+ end
394
+ out.merge(oid_columns)
385
395
  end
386
396
 
387
397
  private
@@ -390,11 +400,18 @@ module ObjectidColumns
390
400
  # Given the name of a column -- which must be an ObjectId column -- returns its type, either +:binary+ or
391
401
  # +:string+.
392
402
  def objectid_column_type(column_name)
393
- out = oid_columns[column_name.to_sym]
394
- raise "Something is horribly wrong; #{column_name.inspect} is not an ObjectId column -- we have: #{oid_columns.keys.inspect}" unless out
403
+ out = net_oid_columns[column_name.to_sym]
404
+ raise "Something is horribly wrong; #{column_name.inspect} is not an ObjectId column -- we have: #{net_oid_columns.keys.inspect}" unless out
395
405
  out
396
406
  end
397
407
 
408
+ # If our +@active_record_class+ has a superclass that in turn is using +objectid_columns+, returns the
409
+ # ObjectidColumnsManager for that class, if any.
410
+ def superclass_objectid_columns_manager
411
+ ar_superclass = @active_record_class.superclass
412
+ ar_superclass.objectid_columns_manager if ar_superclass.respond_to?(:objectid_columns_manager)
413
+ end
414
+
398
415
  # Raises an exception -- used for +case+ statements where we switch on the type of the column. Useful so that if,
399
416
  # in the future, we support a new column type, we won't forget to add a case for it in various places.
400
417
  def unknown_type(type)
@@ -1,4 +1,4 @@
1
1
  # What's the current version of this gem?
2
2
  module ObjectidColumns
3
- VERSION = "1.0.3"
3
+ VERSION = "1.0.5"
4
4
  end
@@ -15,12 +15,14 @@ module ObjectidColumns
15
15
  end
16
16
  end
17
17
 
18
- def define_model_class(name, table_name, &block)
19
- model_class = Class.new(::ActiveRecord::Base)
18
+ def define_model_class(name, table_name, options = { }, &block)
19
+ superclass = options[:superclass] || ::ActiveRecord::Base
20
+ model_class = Class.new(superclass)
20
21
  ::Object.send(:remove_const, name) if ::Object.const_defined?(name)
21
22
  ::Object.const_set(name, model_class)
22
- model_class.table_name = table_name
23
- model_class.class_eval(&block)
23
+ model_class.table_name = table_name if table_name
24
+ model_class.class_eval(&block) if block
25
+ model_class
24
26
  end
25
27
 
26
28
  def ensure_database_is_set_up!
@@ -71,6 +71,50 @@ describe "ObjectidColumns basic operations" do
71
71
  @tc.new
72
72
  end
73
73
 
74
+ context "with an STI table and model" do
75
+ before :each do
76
+ migrate do
77
+ drop_table :objectidcols_spec_table_sti rescue nil
78
+ create_table :objectidcols_spec_table_sti do |t|
79
+ t.string :type
80
+ t.column :some_oid, 'VARCHAR(24)'
81
+ end
82
+ end
83
+ end
84
+
85
+ after :each do
86
+ migrate do
87
+ drop_table :objectidcols_spec_table_sti rescue nil
88
+ end
89
+ end
90
+
91
+ let(:parent_model_class) { define_model_class(:SpectableStiParent, 'objectidcols_spec_table_sti') { has_objectid_columns } }
92
+ let(:child_model_class) { define_model_class(:SpectableStiChild, 'objectidcols_spec_table_sti', :superclass => parent_model_class) { } }
93
+
94
+ it "should work from both the parent and child class" do
95
+ id_1 = new_oid
96
+ id_2 = new_oid
97
+
98
+ parent_instance = parent_model_class.new(:some_oid => id_1)
99
+ parent_instance.save!
100
+
101
+ child_instance = child_model_class.new(:some_oid => id_2)
102
+ child_instance.save!
103
+
104
+ all_models = parent_model_class.all.to_a
105
+ expect(all_models.length).to eq(2)
106
+ parent_instance_again = all_models.detect { |m| m.id == parent_instance.id }
107
+ child_instance_again = all_models.detect { |m| m.id == child_instance.id }
108
+
109
+ expect(parent_instance_again.some_oid).to be_an_objectid_object_matching(id_1)
110
+ expect(child_instance_again.some_oid).to be_an_objectid_object_matching(id_2)
111
+
112
+ child_models = child_model_class.all.to_a
113
+ expect(child_models.length).to eq(1)
114
+ expect(child_models[0].some_oid).to be_an_objectid_object_matching(id_2)
115
+ end
116
+ end
117
+
74
118
  it "should not allow defining a column that's too short" do
75
119
  if ObjectidColumns::Helpers::SystemHelpers.supports_length_limits_on_binary_columns?
76
120
  expect { ::Spectable.class_eval { has_objectid_column :too_short_b } }.to raise_error(ArgumentError)
metadata CHANGED
@@ -1,151 +1,151 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: objectid_columns
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Geweke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-12 00:00:00.000000000 Z
11
+ date: 2014-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
- - - <=
20
+ - - "<="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 4.99.99
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ! '>='
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.0'
30
- - - <=
30
+ - - "<="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 4.99.99
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activesupport
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ! '>='
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '3.0'
40
- - - <=
40
+ - - "<="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 4.99.99
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ! '>='
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '3.0'
50
- - - <=
50
+ - - "<="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 4.99.99
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ~>
57
+ - - "~>"
58
58
  - !ruby/object:Gem::Version
59
59
  version: '1.5'
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ~>
64
+ - - "~>"
65
65
  - !ruby/object:Gem::Version
66
66
  version: '1.5'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: rake
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ! '>='
71
+ - - ">="
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  type: :development
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ! '>='
78
+ - - ">="
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rspec
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ~>
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
87
  version: '2.14'
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ~>
92
+ - - "~>"
93
93
  - !ruby/object:Gem::Version
94
94
  version: '2.14'
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: moped
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ~>
99
+ - - "~>"
100
100
  - !ruby/object:Gem::Version
101
101
  version: '1.5'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ~>
106
+ - - "~>"
107
107
  - !ruby/object:Gem::Version
108
108
  version: '1.5'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: bson
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ~>
113
+ - - "~>"
114
114
  - !ruby/object:Gem::Version
115
115
  version: '1.9'
116
116
  type: :development
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ~>
120
+ - - "~>"
121
121
  - !ruby/object:Gem::Version
122
122
  version: '1.9'
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: mysql2
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ! '>='
127
+ - - ">="
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  type: :development
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ! '>='
134
+ - - ">="
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: composite_primary_keys
139
139
  requirement: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - ! '>='
141
+ - - ">="
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - ! '>='
148
+ - - ">="
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  description:
@@ -155,8 +155,8 @@ executables: []
155
155
  extensions: []
156
156
  extra_rdoc_files: []
157
157
  files:
158
- - .gitignore
159
- - .travis.yml
158
+ - ".gitignore"
159
+ - ".travis.yml"
160
160
  - CHANGES.md
161
161
  - Gemfile
162
162
  - LICENSE.txt
@@ -186,17 +186,17 @@ require_paths:
186
186
  - lib
187
187
  required_ruby_version: !ruby/object:Gem::Requirement
188
188
  requirements:
189
- - - ! '>='
189
+ - - ">="
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0'
192
192
  required_rubygems_version: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ! '>='
194
+ - - ">="
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  requirements: []
198
198
  rubyforge_project:
199
- rubygems_version: 2.2.1
199
+ rubygems_version: 2.2.2
200
200
  signing_key:
201
201
  specification_version: 4
202
202
  summary: Transparently store MongoDB ObjectId values in ActiveRecord.