komagire 0.2.0 → 0.5.0
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 +5 -5
- data/.travis.yml +25 -4
- data/CHANGELOG.md +26 -0
- data/Gemfile +2 -0
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/gemfiles/rails_4.2.gemfile +9 -0
- data/gemfiles/rails_5.0.gemfile +9 -0
- data/gemfiles/rails_5.1.gemfile +8 -0
- data/gemfiles/rails_5.2.gemfile +8 -0
- data/gemfiles/rails_6.0.gemfile +8 -0
- data/gemfiles/rails_6.1.gemfile +8 -0
- data/komagire.gemspec +8 -7
- data/lib/komagire.rb +2 -0
- data/lib/komagire/active_record_extension.rb +2 -0
- data/lib/komagire/id_list.rb +7 -6
- data/lib/komagire/key_list.rb +16 -12
- data/lib/komagire/railtie.rb +2 -0
- data/lib/komagire/version.rb +3 -1
- metadata +34 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6d5336efdba118ffeb861d0e4975cfa2718abd80b225623421ed30cc298901fb
|
4
|
+
data.tar.gz: ddfad6a6ef6a4104d477acca9ed3eb15a5bfb12a5abee7028b0f09948c71925e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8626dc808d40df4be9f2acb4b58a48f2d650067e3a94e6c985a24aee74e1a6b6f4d49ae09dc893c97a8646e2249190527ff285dcd3ae9f4cec9abf327a929569
|
7
|
+
data.tar.gz: 7417972d05f22a8f2975a9437e2daa3da55ce73c9be0eea1b5011d47efe192aa234dea330043f01ea8d8e8b4a8435f9193c5d2c84cde8ed0eabeee2376b26e4e
|
data/.travis.yml
CHANGED
@@ -1,9 +1,30 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 2.
|
4
|
-
- 2.
|
5
|
-
- 2.
|
6
|
-
|
3
|
+
- 2.4.6
|
4
|
+
- 2.5.5
|
5
|
+
- 2.6.3
|
6
|
+
- 2.7.0
|
7
|
+
gemfile:
|
8
|
+
- gemfiles/rails_4.2.gemfile
|
9
|
+
- gemfiles/rails_5.0.gemfile
|
10
|
+
- gemfiles/rails_5.1.gemfile
|
11
|
+
- gemfiles/rails_5.2.gemfile
|
12
|
+
- gemfiles/rails_6.0.gemfile
|
13
|
+
- gemfiles/rails_6.1.gemfile
|
7
14
|
script:
|
8
15
|
- bundle install
|
9
16
|
- bundle exec rake spec
|
17
|
+
matrix:
|
18
|
+
exclude:
|
19
|
+
- rvm: 2.4.6
|
20
|
+
gemfile: gemfiles/rails_6.0.gemfile
|
21
|
+
- rvm: 2.4.6
|
22
|
+
gemfile: gemfiles/rails_6.1.gemfile
|
23
|
+
- rvm: 2.7.0
|
24
|
+
gemfile: gemfiles/rails_4.2.gemfile
|
25
|
+
- rvm: 2.7.0
|
26
|
+
gemfile: gemfiles/rails_5.0.gemfile
|
27
|
+
- rvm: 2.7.0
|
28
|
+
gemfile: gemfiles/rails_5.1.gemfile
|
29
|
+
- rvm: 2.7.0
|
30
|
+
gemfile: gemfiles/rails_5.2.gemfile
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,31 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.5.0
|
4
|
+
|
5
|
+
- Support Ruby 2.7 (#10)
|
6
|
+
- Change required ruby version to 2.4+ (#11)
|
7
|
+
- Prevent extra query when cskeys are empty (#12)
|
8
|
+
- Add support Rails 6.1.0.rc1 (#13)
|
9
|
+
|
10
|
+
## 0.4.0
|
11
|
+
|
12
|
+
- CI against for Rails 6.0.0 and drop Ruby 2.2/2.3 supports (#9)
|
13
|
+
- Add Rails 6.0.0.rc2 support and update Ruby version for CI (#8)
|
14
|
+
|
15
|
+
## 0.3.0
|
16
|
+
|
17
|
+
- Change support versions of Ruby and Rails (#7)
|
18
|
+
|
19
|
+
## 0.2.2
|
20
|
+
|
21
|
+
- Support Rails 5.1 (#4)
|
22
|
+
- Fix deprecation warning of simplecov (#5)
|
23
|
+
- CI against Ruby 2.4 (#6)
|
24
|
+
|
25
|
+
## 0.2.1
|
26
|
+
|
27
|
+
- Support Rails5 (#3)
|
28
|
+
|
3
29
|
## 0.2.0
|
4
30
|
|
5
31
|
- Add sort option for comma separated keys order (default: false)
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/komagire.gemspec
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'komagire/version'
|
5
6
|
|
@@ -19,14 +20,14 @@ Gem::Specification.new do |spec|
|
|
19
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
21
|
spec.require_paths = ["lib"]
|
21
22
|
|
22
|
-
spec.required_ruby_version = '>= 2.
|
23
|
+
spec.required_ruby_version = '>= 2.4.0'
|
23
24
|
|
24
|
-
spec.add_runtime_dependency "
|
25
|
-
spec.add_runtime_dependency "
|
25
|
+
spec.add_runtime_dependency "activerecord", ">= 4.0", "< 6.2"
|
26
|
+
spec.add_runtime_dependency "activesupport", ">= 4.0", "< 6.2"
|
26
27
|
spec.add_development_dependency "active_hash"
|
27
28
|
|
28
|
-
spec.add_development_dependency "bundler", "
|
29
|
-
spec.add_development_dependency "rake", "
|
29
|
+
spec.add_development_dependency "bundler", ">= 1.16"
|
30
|
+
spec.add_development_dependency "rake", ">= 10.0"
|
30
31
|
spec.add_development_dependency "rspec"
|
31
32
|
spec.add_development_dependency "sqlite3"
|
32
33
|
|
data/lib/komagire.rb
CHANGED
data/lib/komagire/id_list.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Komagire
|
2
4
|
class IdList < KeyList
|
3
5
|
# @param [String] content_class_name
|
@@ -28,7 +30,7 @@ module Komagire
|
|
28
30
|
if ancestors.include?('ActiveHash::Base')
|
29
31
|
values = _keys.map { |id| content_class_name.constantize.find_by_id(id) }.compact
|
30
32
|
if @sort
|
31
|
-
values.sort_by
|
33
|
+
values.sort_by(&:id)
|
32
34
|
else
|
33
35
|
values
|
34
36
|
end
|
@@ -39,15 +41,14 @@ module Komagire
|
|
39
41
|
|
40
42
|
class Converter < KeyList::Converter
|
41
43
|
def convert_to_cskeys_from_array(values)
|
42
|
-
|
43
|
-
when values.all? { |v| v.is_a?(String) }
|
44
|
+
if values.all? { |v| v.is_a?(String) }
|
44
45
|
values.join(delimiter)
|
45
|
-
|
46
|
+
elsif values.all? { |v| v.is_a?(Integer) }
|
46
47
|
values.join(delimiter)
|
47
|
-
|
48
|
+
elsif values.all? { |v| v.is_a?(content_class_name.constantize) }
|
48
49
|
values.map(&attribute).join(delimiter)
|
49
50
|
else
|
50
|
-
|
51
|
+
raise DifferentContentClass
|
51
52
|
end
|
52
53
|
end
|
53
54
|
end
|
data/lib/komagire/key_list.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'delegate'
|
2
4
|
|
3
5
|
module Komagire
|
@@ -50,11 +52,14 @@ module Komagire
|
|
50
52
|
end
|
51
53
|
|
52
54
|
def _find_by_cskeys
|
53
|
-
|
55
|
+
keys = _keys
|
56
|
+
return [] if keys.empty?
|
57
|
+
|
58
|
+
values = content_class_name.constantize.where(@attribute => keys).compact
|
54
59
|
if @sort
|
55
60
|
values.sort_by { |v| v.public_send(@attribute) }
|
56
61
|
else
|
57
|
-
values.index_by { |v| v.public_send(@attribute).to_s }.values_at(*
|
62
|
+
values.index_by { |v| v.public_send(@attribute).to_s }.values_at(*keys)
|
58
63
|
end
|
59
64
|
end
|
60
65
|
|
@@ -79,27 +84,26 @@ module Komagire
|
|
79
84
|
if value.content_class_name == content_class_name && value.attribute == attribute
|
80
85
|
return value.cskeys
|
81
86
|
end
|
82
|
-
|
87
|
+
|
88
|
+
raise DifferentContentClass
|
83
89
|
else
|
84
|
-
values =
|
85
|
-
|
86
|
-
|
87
|
-
when value.respond_to?(:to_ary) then value.to_ary
|
90
|
+
values = if value.is_a?(Array) then value
|
91
|
+
elsif value.respond_to?(:to_a) then value.to_a
|
92
|
+
elsif value.respond_to?(:to_ary) then value.to_ary
|
88
93
|
else
|
89
|
-
|
94
|
+
raise ArgumentError
|
90
95
|
end
|
91
96
|
convert_to_cskeys_from_array(values.compact)
|
92
97
|
end
|
93
98
|
end
|
94
99
|
|
95
100
|
def convert_to_cskeys_from_array(values)
|
96
|
-
|
97
|
-
when values.all? { |v| v.is_a?(String) }
|
101
|
+
if values.all? { |v| v.is_a?(String) }
|
98
102
|
values.join(delimiter)
|
99
|
-
|
103
|
+
elsif values.all? { |v| v.is_a?(content_class_name.constantize) }
|
100
104
|
values.map(&attribute).join(delimiter)
|
101
105
|
else
|
102
|
-
|
106
|
+
raise ArgumentError
|
103
107
|
end
|
104
108
|
end
|
105
109
|
end
|
data/lib/komagire/railtie.rb
CHANGED
data/lib/komagire/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: komagire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takumi IINO
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '6.2'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '4.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '6.2'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: activesupport
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '4.0'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '6.2'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: '4.0'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '6.2'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: active_hash
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,28 +68,28 @@ dependencies:
|
|
56
68
|
name: bundler
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - ">="
|
60
72
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
73
|
+
version: '1.16'
|
62
74
|
type: :development
|
63
75
|
prerelease: false
|
64
76
|
version_requirements: !ruby/object:Gem::Requirement
|
65
77
|
requirements:
|
66
|
-
- - "
|
78
|
+
- - ">="
|
67
79
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
80
|
+
version: '1.16'
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
82
|
name: rake
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
72
84
|
requirements:
|
73
|
-
- - "
|
85
|
+
- - ">="
|
74
86
|
- !ruby/object:Gem::Version
|
75
87
|
version: '10.0'
|
76
88
|
type: :development
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
|
-
- - "
|
92
|
+
- - ">="
|
81
93
|
- !ruby/object:Gem::Version
|
82
94
|
version: '10.0'
|
83
95
|
- !ruby/object:Gem::Dependency
|
@@ -140,6 +152,12 @@ files:
|
|
140
152
|
- Rakefile
|
141
153
|
- bin/console
|
142
154
|
- bin/setup
|
155
|
+
- gemfiles/rails_4.2.gemfile
|
156
|
+
- gemfiles/rails_5.0.gemfile
|
157
|
+
- gemfiles/rails_5.1.gemfile
|
158
|
+
- gemfiles/rails_5.2.gemfile
|
159
|
+
- gemfiles/rails_6.0.gemfile
|
160
|
+
- gemfiles/rails_6.1.gemfile
|
143
161
|
- komagire.gemspec
|
144
162
|
- lib/komagire.rb
|
145
163
|
- lib/komagire/active_record_extension.rb
|
@@ -159,15 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
177
|
requirements:
|
160
178
|
- - ">="
|
161
179
|
- !ruby/object:Gem::Version
|
162
|
-
version: 2.
|
180
|
+
version: 2.4.0
|
163
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
182
|
requirements:
|
165
183
|
- - ">="
|
166
184
|
- !ruby/object:Gem::Version
|
167
185
|
version: '0'
|
168
186
|
requirements: []
|
169
|
-
|
170
|
-
rubygems_version: 2.4.5.1
|
187
|
+
rubygems_version: 3.1.2
|
171
188
|
signing_key:
|
172
189
|
specification_version: 4
|
173
190
|
summary: Compose an object from comma separated keys.
|