objectid_columns 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +19 -10
- data/CHANGES.md +6 -0
- data/README.md +4 -3
- data/lib/objectid_columns/arel/visitors/to_sql.rb +2 -3
- data/lib/objectid_columns/version.rb +1 -1
- data/spec/objectid_columns/system/basic_system_spec.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA512:
|
3
|
-
metadata.gz: 216e3a0b18aa9ff589f728a7ba6d95fa56ada067b51a99cff26dac0b19cb3f49cb4fa9deb2b2ae227498123bb5d8aa286aa76760eed1fbf96cfc6599dd7e423f
|
4
|
-
data.tar.gz: c9a48a9b4e065da3a3b45555cf7c2acd0c3a5687c6e5cf752318934553110fed9906d7d72b4e87cef431a4df7386e5fab1001c0ffbcf4cef655b8e59f8d1a169
|
5
2
|
SHA1:
|
6
|
-
|
7
|
-
|
3
|
+
data.tar.gz: a7f678bd14b88d042886baff1b5414b11deb4707
|
4
|
+
metadata.gz: e7b852e2a9fd9f1d1ca584b2cfd7e3af2cd9f03f
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 9dd1a74b4e4923f9502f46ddded57492019f7cea242cf57ca7289174c4e37babadd0eb2ceb32a32df464cc83d7932462ead3d8ed8079e1d105524e2f6e7f10b2
|
7
|
+
metadata.gz: bf0a9bcf3f653674d3a04ddc84bd25a2127cf05465be7582baa3e62445a95993b92c52c0b83cae4822b70c2b84d74f436a81ac876a59e192310863afea6ce0ad
|
data/.travis.yml
CHANGED
@@ -11,12 +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.
|
15
|
-
- OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.
|
16
|
-
- OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.
|
17
|
-
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
18
|
-
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
19
|
-
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
14
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.17 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
|
15
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.17 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
|
16
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.17 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
17
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
|
18
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
|
19
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
20
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
|
21
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
|
22
|
+
- OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
20
23
|
before_script:
|
21
24
|
- mysql -e 'create database myapp_test;'
|
22
25
|
- psql -c 'create database myapp_test;' -U postgres
|
@@ -24,12 +27,18 @@ matrix:
|
|
24
27
|
exclude:
|
25
28
|
# ActiveRecord 4.x doesn't support Ruby 1.8.7
|
26
29
|
- rvm: 1.8.7
|
27
|
-
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
30
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
|
28
31
|
- rvm: 1.8.7
|
29
|
-
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
32
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
|
30
33
|
- rvm: 1.8.7
|
31
|
-
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.
|
34
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.0.4 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
35
|
+
- rvm: 1.8.7
|
36
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=mysql
|
37
|
+
- rvm: 1.8.7
|
38
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=postgres
|
39
|
+
- rvm: 1.8.7
|
40
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=4.1.0 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
32
41
|
allow_failures:
|
33
42
|
- env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.1.12 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
34
43
|
- rvm: 1.8.7
|
35
|
-
env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.
|
44
|
+
env: OBJECTID_COLUMNS_AR_TEST_VERSION=3.2.17 OBJECTID_COLUMNS_TRAVIS_CI_DATABASE_TYPE=sqlite
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Change History for ObjectidColumns
|
2
2
|
|
3
|
+
### Version 1.0.2: April 14, 2014
|
4
|
+
|
5
|
+
* Fixed an issue where, if you tried to pass an ObjectID instance in a `where` clause for a column that didn't exist or wasn't on a table that declared any ObjectID columns, you could get an error from deep down in `ObjectidColumns`. (Now, you'll still get an error, but it will be the ActiveRecord error you expect, instead.)
|
6
|
+
* Rails 4.1 support.
|
7
|
+
* Bumped Travis version matrix to the latest point-releases of Rails 3.2 and 4.0.
|
8
|
+
|
3
9
|
### Version 1.0.1: March 7, 2014
|
4
10
|
|
5
11
|
* Compatibility with the [`composite_primary_keys`](https://github.com/composite-primary-keys/composite_primary_keys)
|
data/README.md
CHANGED
@@ -26,9 +26,10 @@ want to allow you to use either one. It will accept either one when assigning Ob
|
|
26
26
|
whichever one you have loaded, (currently) preferring `BSON::ObjectId` if you have both.
|
27
27
|
|
28
28
|
ObjectidColumns supports Ruby 1.8.7, 1.9.3, 2.0.0, and 2.1.0, plus JRuby 1.7.9; it supports ActiveRecord 3.0.20,
|
29
|
-
3.1.12, 3.2.
|
30
|
-
tested against; while it will not work with ActiveRecord 2.x, it is otherwise highly unlikely to
|
31
|
-
exact ActiveRecord or Ruby versions, or type of RDBMS, and generally should work with most
|
29
|
+
3.1.12, 3.2.17, 4.0.4, and 4.1.0. It supports SQLite 3.x, MySQL 5.x, and PostgreSQL 8.x. (These are just the
|
30
|
+
versions it's tested against; while it will not work with ActiveRecord 2.x, it is otherwise highly unlikely to
|
31
|
+
be sensitive to exact ActiveRecord or Ruby versions, or type of RDBMS, and generally should work with most
|
32
|
+
combinations.)
|
32
33
|
|
33
34
|
*Note*: If you use SQLite3 with ActiveRecord 3.1.x on MRI (_i.e._, not JRuby), or SQLite3 with ActiveRecord 3.2.x on
|
34
35
|
MRI 1.8.7, there is a bug in the SQLite3-ActiveRecord integration that causes ObjectId primary keys to not work. (They
|
@@ -45,8 +45,7 @@ module ObjectidColumns
|
|
45
45
|
column = if a then column_for(a) else last_column end
|
46
46
|
relation = if a then a.relation else last_relation end
|
47
47
|
|
48
|
-
|
49
|
-
raise "no relation?!?" unless relation
|
48
|
+
return quote(o.to_s) unless column && relation
|
50
49
|
|
51
50
|
quote(bson_objectid_value_from_parameter(o, column, relation), column)
|
52
51
|
end
|
@@ -77,7 +76,7 @@ that contains a BSON ObjectId value -- you're trying to use the value '#{o}'
|
|
77
76
|
|
78
77
|
While we can find a record of some ObjectId columns being declared for
|
79
78
|
that table, they don't appear to include #{column_name.inspect}. As such,
|
80
|
-
we don't
|
79
|
+
we don't know whether this column should be treated as a binary or a hexadecimal
|
81
80
|
ObjectId, and hence don't know how to transform this value properly.}
|
82
81
|
end
|
83
82
|
|
@@ -461,6 +461,23 @@ describe "ObjectidColumns basic operations" do
|
|
461
461
|
expect(::Spectable.where(:perfect_s_oid => @oid2.to_binary).to_a.map(&:id)).to eq([ r2.id ])
|
462
462
|
expect(::Spectable.where(:perfect_s_oid => [ @oid1, @oid2 ].map(&:to_binary)).to_a.map(&:id).sort).to eq([ r1.id, r2.id ].sort)
|
463
463
|
end
|
464
|
+
|
465
|
+
it "should give a good exception if you try to pass an ObjectID for a column that isn't an official ObjectID column" do
|
466
|
+
oid = new_oid
|
467
|
+
expect { ::Spectable.where(:perfect_b_oid => oid).to_a }.to raise_error(/ObjectidColumns:.*perfect_b_oid/mi)
|
468
|
+
end
|
469
|
+
|
470
|
+
it "should not blow up (and instead let ActiveRecord blow up) if you try to pass an ObjectID for a column that isn't a column at all" do
|
471
|
+
oid = new_oid
|
472
|
+
expect { ::Spectable.where(:something => oid).to_a }.to raise_error(/something/mi)
|
473
|
+
end
|
474
|
+
|
475
|
+
it "should not blow up (and instead let ActiveRecord just find no records, or blow up) if you try to pass an ObjectID for a column on a table that isn't using this gem at all" do
|
476
|
+
define_model_class(:SpectableNondeclared, 'objectidcols_spec_table') { }
|
477
|
+
expect(::SpectableNondeclared.where(:perfect_s_oid => new_oid).to_a).to eq([ ])
|
478
|
+
|
479
|
+
expect { ::SpectableNondeclared.where(:something => new_oid).to_a }.to raise_error(/something/i)
|
480
|
+
end
|
464
481
|
end
|
465
482
|
|
466
483
|
it "should allow using any column that's long enough, including binary or string columns" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: objectid_columns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Geweke
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-14 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|