uuidable 0.1.3 → 0.2.4

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,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7243fffe7adb312c2dbf701e37b459c4e5d3cd12
4
- data.tar.gz: 9925352679e6fba0c5a6df14497f72d47170a939
2
+ SHA256:
3
+ metadata.gz: 5d5c504f4058c9844aec8cac752c479b305fc70985c51088b5f4cde9e66dce93
4
+ data.tar.gz: 8612c5425755b7873703366fbbe50bd6f3eb0745e4167e0d88852cd51fa7a50e
5
5
  SHA512:
6
- metadata.gz: 28fe8675eee77c1d8b6ae4ca32603fe0a020533e0f3bf5cac68bf72e5b8a3e1d0447be37331d3d7d8569081e9c30e1d704417d2ef3b5ed698ce59d1c12087c81
7
- data.tar.gz: 594ab432715ebbe4a4a9872550c967a4f476e3d0682eb11813ad835ab902b7f13aa12a52f9494b56213b1da49e49173f5e83eb0f4517955109f332c0a5ec56ae
6
+ metadata.gz: 62996d031d6130a20f3026692ad8db6e46f9e4947d87d2fd5fc87cd49d8806ffbec30d7a483c80ca19db87452711a5035b5dfddb3b03c22e96c14c562248ddb2
7
+ data.tar.gz: d79784039ab9c747f72e8e551f9c9574aa5ac7bd869e174f6e36e4d8599c23b8e81c8e5adf5c464dba84ad7838fb0b96f5ba875ea5ace3b3b03ac921a524ef6c
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.4
4
- before_install: gem install bundler -v 1.11.2
3
+ - 2.5.1
4
+ before_install: gem install bundler -v 1.17.3
5
5
  script:
6
6
  - bundle exec rubocop
7
7
  - bundle exec rspec
@@ -0,0 +1,114 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ uuidable (0.2.4)
5
+ activerecord (>= 4.2, < 6.1)
6
+ uuidtools (>= 2.1, < 3)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (5.2.4.4)
12
+ activesupport (= 5.2.4.4)
13
+ activerecord (5.2.4.4)
14
+ activemodel (= 5.2.4.4)
15
+ activesupport (= 5.2.4.4)
16
+ arel (>= 9.0)
17
+ activesupport (5.2.4.4)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 0.7, < 2)
20
+ minitest (~> 5.1)
21
+ tzinfo (~> 1.1)
22
+ addressable (2.4.0)
23
+ arel (9.0.0)
24
+ ast (2.3.0)
25
+ backports (3.6.8)
26
+ concurrent-ruby (1.1.7)
27
+ diff-lcs (1.2.5)
28
+ ethon (0.8.1)
29
+ ffi (>= 1.3.0)
30
+ faraday (0.9.2)
31
+ multipart-post (>= 1.2, < 3)
32
+ faraday_middleware (0.10.0)
33
+ faraday (>= 0.7.4, < 0.10)
34
+ ffi (1.13.1)
35
+ gh (0.14.0)
36
+ addressable
37
+ backports
38
+ faraday (~> 0.8)
39
+ multi_json (~> 1.0)
40
+ net-http-persistent (>= 2.7)
41
+ net-http-pipeline
42
+ highline (1.7.8)
43
+ i18n (1.8.5)
44
+ concurrent-ruby (~> 1.0)
45
+ json (2.3.1)
46
+ launchy (2.4.3)
47
+ addressable (~> 2.3)
48
+ minitest (5.14.2)
49
+ multi_json (1.11.2)
50
+ multipart-post (2.0.0)
51
+ net-http-persistent (2.9.4)
52
+ net-http-pipeline (1.0.1)
53
+ parallel (1.12.0)
54
+ parser (2.4.0.2)
55
+ ast (~> 2.3)
56
+ powerpack (0.1.1)
57
+ pusher-client (0.6.2)
58
+ json
59
+ websocket (~> 1.0)
60
+ rainbow (2.2.2)
61
+ rake
62
+ rake (13.0.1)
63
+ rspec (3.4.0)
64
+ rspec-core (~> 3.4.0)
65
+ rspec-expectations (~> 3.4.0)
66
+ rspec-mocks (~> 3.4.0)
67
+ rspec-core (3.4.3)
68
+ rspec-support (~> 3.4.0)
69
+ rspec-expectations (3.4.0)
70
+ diff-lcs (>= 1.2.0, < 2.0)
71
+ rspec-support (~> 3.4.0)
72
+ rspec-mocks (3.4.1)
73
+ diff-lcs (>= 1.2.0, < 2.0)
74
+ rspec-support (~> 3.4.0)
75
+ rspec-support (3.4.1)
76
+ rubocop (0.50.0)
77
+ parallel (~> 1.10)
78
+ parser (>= 2.3.3.1, < 3.0)
79
+ powerpack (~> 0.1)
80
+ rainbow (>= 2.2.2, < 3.0)
81
+ ruby-progressbar (~> 1.7)
82
+ unicode-display_width (~> 1.0, >= 1.0.1)
83
+ ruby-progressbar (1.9.0)
84
+ thread_safe (0.3.6)
85
+ travis (1.8.2)
86
+ backports
87
+ faraday (~> 0.9)
88
+ faraday_middleware (~> 0.9, >= 0.9.1)
89
+ gh (~> 0.13)
90
+ highline (~> 1.6)
91
+ launchy (~> 2.1)
92
+ pusher-client (~> 0.4)
93
+ typhoeus (~> 0.6, >= 0.6.8)
94
+ typhoeus (0.8.0)
95
+ ethon (>= 0.8.0)
96
+ tzinfo (1.2.7)
97
+ thread_safe (~> 0.1)
98
+ unicode-display_width (1.3.0)
99
+ uuidtools (2.1.5)
100
+ websocket (1.2.2)
101
+
102
+ PLATFORMS
103
+ ruby
104
+
105
+ DEPENDENCIES
106
+ bundler (~> 1.11)
107
+ rake (~> 13.0)
108
+ rspec (~> 3.0)
109
+ rubocop
110
+ travis (~> 1.8, >= 1.8.2)
111
+ uuidable!
112
+
113
+ BUNDLED WITH
114
+ 1.17.3
@@ -1,22 +1,43 @@
1
1
  module Uuidable
2
2
  COLUMN_NAME = :uuid
3
3
  COLUMN_TYPE = :binary
4
- COLUMN_OPTIONS = { limit: 36, null: false, index: true }.freeze
4
+ COLUMN_OPTIONS = { limit: 36, null: false }.freeze
5
+ INDEX_OPTIONS = { unique: true }.freeze
5
6
 
6
7
  # Module adds method to table definition
7
8
  module TableDefinition
8
9
  def uuid(opts = {})
9
- column COLUMN_NAME, COLUMN_TYPE, opts.merge(COLUMN_OPTIONS)
10
+ index_opts = opts.delete(:index)
11
+ index_opts = {} if index_opts.nil?
12
+
13
+ column_name = opts.delete(:column_name) || COLUMN_NAME
14
+
15
+ column column_name, COLUMN_TYPE, COLUMN_OPTIONS.merge(opts)
16
+ index column_name, INDEX_OPTIONS.merge(index_opts) if index_opts
10
17
  end
11
18
  end
12
19
 
13
20
  # Module adds method to alter table migration
14
21
  module Migration
15
22
  def add_uuid_column(table_name, opts = {})
16
- add_column table_name, COLUMN_NAME, COLUMN_TYPE, opts.merge(COLUMN_OPTIONS)
23
+ index_opts = opts.delete(:index)
24
+ index_opts = {} if index_opts == true
25
+
26
+ column_name = opts.delete(:column_name) || COLUMN_NAME
27
+
28
+ add_column table_name, column_name, COLUMN_TYPE, COLUMN_OPTIONS.merge(opts)
29
+
30
+ add_uuid_index(table_name, index_opts.merge(column_name: column_name)) if index_opts
31
+ end
32
+
33
+ def add_uuid_index(table_name, opts = {})
34
+ column_name = opts.delete(:column_name) || COLUMN_NAME
35
+
36
+ add_index table_name, column_name, INDEX_OPTIONS.merge(opts)
17
37
  end
18
38
  end
19
39
  end
40
+
20
41
  if defined? ActiveRecord::ConnectionAdapters::TableDefinition
21
42
  ActiveRecord::ConnectionAdapters::TableDefinition.send :include, Uuidable::TableDefinition
22
43
  end
@@ -1,3 +1,3 @@
1
1
  module Uuidable
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '0.2.4'.freeze
3
3
  end
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  lib = File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'uuidable/version'
@@ -21,10 +19,10 @@ Gem::Specification.new do |spec|
21
19
  spec.require_paths = ['lib']
22
20
 
23
21
  spec.add_development_dependency 'bundler', '~> 1.11'
24
- spec.add_development_dependency 'rake', '~> 10.0'
22
+ spec.add_development_dependency 'rake', '~> 13.0'
25
23
  spec.add_development_dependency 'rspec', '~> 3.0'
26
24
  spec.add_development_dependency 'travis', '~> 1.8', '>= 1.8.2'
27
25
 
26
+ spec.add_dependency 'activerecord', '>= 4.2', '< 6.1'
28
27
  spec.add_dependency 'uuidtools', '>= 2.1', '< 3'
29
- spec.add_dependency 'activerecord', '>= 4.2', '< 5.1'
30
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uuidable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Gnuskov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-05 00:00:00.000000000 Z
11
+ date: 2020-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -73,45 +73,45 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: 1.8.2
75
75
  - !ruby/object:Gem::Dependency
76
- name: uuidtools
76
+ name: activerecord
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '2.1'
81
+ version: '4.2'
82
82
  - - "<"
83
83
  - !ruby/object:Gem::Version
84
- version: '3'
84
+ version: '6.1'
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ">="
90
90
  - !ruby/object:Gem::Version
91
- version: '2.1'
91
+ version: '4.2'
92
92
  - - "<"
93
93
  - !ruby/object:Gem::Version
94
- version: '3'
94
+ version: '6.1'
95
95
  - !ruby/object:Gem::Dependency
96
- name: activerecord
96
+ name: uuidtools
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - ">="
100
100
  - !ruby/object:Gem::Version
101
- version: '4.2'
101
+ version: '2.1'
102
102
  - - "<"
103
103
  - !ruby/object:Gem::Version
104
- version: '5.1'
104
+ version: '3'
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: '4.2'
111
+ version: '2.1'
112
112
  - - "<"
113
113
  - !ruby/object:Gem::Version
114
- version: '5.1'
114
+ version: '3'
115
115
  description: ''
116
116
  email:
117
117
  - sergey.gnuskov@flant.com
@@ -125,6 +125,7 @@ files:
125
125
  - ".rubocop.yml"
126
126
  - ".travis.yml"
127
127
  - Gemfile
128
+ - Gemfile.lock
128
129
  - LICENSE.txt
129
130
  - README.md
130
131
  - Rakefile
@@ -154,8 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
155
  - !ruby/object:Gem::Version
155
156
  version: '0'
156
157
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 2.6.12
158
+ rubygems_version: 3.0.8
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: Helps using uuid everywhere in routes instead of id for ActiveRecord models.