activeuuid 0.6.0 → 0.6.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.
- checksums.yaml +4 -4
- data/.rvmrc +1 -1
- data/.travis.yml +14 -0
- data/activeuuid.gemspec +10 -3
- data/lib/activeuuid.rb +1 -1
- data/lib/activeuuid/patches.rb +28 -0
- data/lib/activeuuid/uuid.rb +16 -2
- data/lib/activeuuid/version.rb +1 -1
- data/spec/lib/uuid_mokeypatch_spec.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d15ef1e740f7978061ce1b7fb5806f0087b4232d
|
4
|
+
data.tar.gz: 3dc8b818564e59e4b9986a31091337cb87cd293e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 822ee89119c1efdc50429b2956bfe79b5a2a2c986d69701b0b35234e66e43494a744ddd8b06f8e6163a0cb2275e8ed95139e65638f7442f78ece6a6b15850bd9
|
7
|
+
data.tar.gz: a6de0eb4b24f109b701b4dc6033889fcb4fc717753093cf2bf3f42529de4316fbf4bd0931ba4c600092954f8e5d2420a658fc118936160947d88bd0f193af606
|
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 2.
|
1
|
+
rvm use 2.2@activeuuid --create
|
data/.travis.yml
CHANGED
@@ -8,6 +8,7 @@ rvm:
|
|
8
8
|
- 2.1.5
|
9
9
|
- 2.2.0
|
10
10
|
- rbx-2
|
11
|
+
- jruby
|
11
12
|
|
12
13
|
gemfile:
|
13
14
|
- Gemfile
|
@@ -31,3 +32,16 @@ matrix:
|
|
31
32
|
gemfile: gemfiles/Gemfile.rails-3-1
|
32
33
|
- rvm: 2.2.0
|
33
34
|
gemfile: gemfiles/Gemfile.rails-3-2
|
35
|
+
- rvm: jruby
|
36
|
+
gemfile: gemfiles/Gemfile.rails-3-1
|
37
|
+
env: DB=postgresql
|
38
|
+
- rvm: jruby
|
39
|
+
gemfile: gemfiles/Gemfile.rails-3-2
|
40
|
+
env: DB=postgresql
|
41
|
+
- rvm: jruby
|
42
|
+
gemfile: gemfiles/Gemfile.rails-4-0
|
43
|
+
env: DB=postgresql
|
44
|
+
- rvm: jruby
|
45
|
+
gemfile: gemfiles/Gemfile.rails-4-1
|
46
|
+
env: DB=postgresql
|
47
|
+
|
data/activeuuid.gemspec
CHANGED
@@ -23,9 +23,16 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency "database_cleaner"
|
24
24
|
s.add_development_dependency "forgery"
|
25
25
|
s.add_development_dependency "fabrication"
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
|
27
|
+
if RUBY_ENGINE == 'jruby'
|
28
|
+
s.add_development_dependency "activerecord-jdbcsqlite3-adapter"
|
29
|
+
s.add_development_dependency "activerecord-jdbcpostgresql-adapter"
|
30
|
+
s.add_development_dependency "activerecord-jdbcmysql-adapter"
|
31
|
+
else
|
32
|
+
s.add_development_dependency "sqlite3"
|
33
|
+
s.add_development_dependency "pg"
|
34
|
+
s.add_development_dependency "mysql2"
|
35
|
+
end
|
29
36
|
|
30
37
|
s.add_runtime_dependency "uuidtools"
|
31
38
|
s.add_runtime_dependency "activerecord", '>= 3.1'
|
data/lib/activeuuid.rb
CHANGED
data/lib/activeuuid/patches.rb
CHANGED
@@ -69,6 +69,32 @@ module ActiveUUID
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
module MysqlJdbcColumn
|
73
|
+
extend ActiveSupport::Concern
|
74
|
+
|
75
|
+
included do
|
76
|
+
# This is a really hacky solution, but it's the only way to support the
|
77
|
+
# MySql JDBC adapter without breaking backwards compatibility.
|
78
|
+
# It would be a lot easier if AR had support for custom defined types.
|
79
|
+
#
|
80
|
+
# Here's the path of execution:
|
81
|
+
# (1) JdbcColumn calls ActiveRecord::ConnectionAdapters::Column super constructor
|
82
|
+
# (2) super constructor calls simplified_type from MysqlJdbcColumn, since it's redefined here
|
83
|
+
# (3) if it's not a uuid, it calls original_simplified_type from ArJdbc::MySQL::Column module
|
84
|
+
# (4) if there's no match ArJdbc::MySQL::Column calls super (ActiveUUID::Column.simplified_type_with_uuid)
|
85
|
+
# (5) Since it's no a uuid (see step 3), simplified_type_without_uuid is called,
|
86
|
+
# which maps to AR::ConnectionAdapters::Column.simplified_type (which has no super call, so we're good)
|
87
|
+
#
|
88
|
+
alias_method :original_simplified_type, :simplified_type
|
89
|
+
|
90
|
+
def simplified_type(field_type)
|
91
|
+
return :uuid if field_type == 'binary(16)' || field_type == 'binary(16,0)'
|
92
|
+
original_simplified_type(field_type)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
72
98
|
module PostgreSQLColumn
|
73
99
|
extend ActiveSupport::Concern
|
74
100
|
|
@@ -162,7 +188,9 @@ module ActiveUUID
|
|
162
188
|
ActiveRecord::ConnectionAdapters::Column.send :include, Column
|
163
189
|
ActiveRecord::ConnectionAdapters::PostgreSQLColumn.send :include, PostgreSQLColumn if defined? ActiveRecord::ConnectionAdapters::PostgreSQLColumn
|
164
190
|
end
|
191
|
+
ArJdbc::MySQL::Column.send :include, MysqlJdbcColumn if defined? ArJdbc::MySQL::Column
|
165
192
|
|
193
|
+
ActiveRecord::ConnectionAdapters::MysqlAdapter.send :include, Quoting if defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
|
166
194
|
ActiveRecord::ConnectionAdapters::Mysql2Adapter.send :include, Quoting if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
167
195
|
ActiveRecord::ConnectionAdapters::SQLite3Adapter.send :include, Quoting if defined? ActiveRecord::ConnectionAdapters::SQLite3Adapter
|
168
196
|
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send :include, PostgreSQLQuoting if defined? ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
|
data/lib/activeuuid/uuid.rb
CHANGED
@@ -8,6 +8,10 @@ module UUIDTools
|
|
8
8
|
# duck typing activerecord 3.1 dirty hack )
|
9
9
|
def gsub *; self; end
|
10
10
|
|
11
|
+
def ==(another_uuid)
|
12
|
+
self.to_s == another_uuid.to_s
|
13
|
+
end
|
14
|
+
|
11
15
|
def next
|
12
16
|
self.class.random_create
|
13
17
|
end
|
@@ -18,11 +22,11 @@ module UUIDTools
|
|
18
22
|
end
|
19
23
|
|
20
24
|
def as_json(options = nil)
|
21
|
-
|
25
|
+
to_s
|
22
26
|
end
|
23
27
|
|
24
28
|
def to_param
|
25
|
-
|
29
|
+
to_s
|
26
30
|
end
|
27
31
|
|
28
32
|
def self.serialize(value)
|
@@ -36,6 +40,10 @@ module UUIDTools
|
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
43
|
+
def bytesize
|
44
|
+
16
|
45
|
+
end
|
46
|
+
|
39
47
|
private
|
40
48
|
|
41
49
|
def self.parse_string(str)
|
@@ -65,6 +73,12 @@ module Arel
|
|
65
73
|
end
|
66
74
|
end
|
67
75
|
|
76
|
+
class WhereSql < Arel::Visitors::ToSql
|
77
|
+
def visit_UUIDTools_UUID(o)
|
78
|
+
o.quoted_id
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
68
82
|
class SQLite < Arel::Visitors::ToSql
|
69
83
|
def visit_UUIDTools_UUID(o, a = nil)
|
70
84
|
o.quoted_id
|
data/lib/activeuuid/version.rb
CHANGED
@@ -10,8 +10,8 @@ describe UUIDTools::UUID do
|
|
10
10
|
let(:sql_out) { "x'e4618518cb9f11e1aa7c14dae903e06a'" }
|
11
11
|
|
12
12
|
its(:quoted_id) {should == sql_out}
|
13
|
-
its(:as_json) {should ==
|
14
|
-
its(:to_param) {should ==
|
13
|
+
its(:as_json) {should == uuid.to_s}
|
14
|
+
its(:to_param) {should == uuid.to_s}
|
15
15
|
its(:next) {should be_a(described_class)}
|
16
16
|
end
|
17
17
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeuuid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Murray
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
240
|
version: '0'
|
241
241
|
requirements: []
|
242
242
|
rubyforge_project:
|
243
|
-
rubygems_version: 2.4.5
|
243
|
+
rubygems_version: 2.4.5.1
|
244
244
|
signing_key:
|
245
245
|
specification_version: 4
|
246
246
|
summary: Add binary UUIDs to ActiveRecord in MySQL
|