objectid_columns 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
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.