komagire 0.4.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 +4 -4
- data/.travis.yml +12 -3
- data/CHANGELOG.md +7 -0
- data/Gemfile +2 -0
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/gemfiles/rails_4.2.gemfile +3 -1
- data/gemfiles/rails_5.0.gemfile +3 -1
- data/gemfiles/rails_5.1.gemfile +3 -1
- data/gemfiles/rails_5.2.gemfile +3 -1
- data/gemfiles/rails_6.0.gemfile +3 -1
- data/gemfiles/rails_6.1.gemfile +8 -0
- data/komagire.gemspec +7 -6
- 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 +13 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
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
|
@@ -3,13 +3,14 @@ rvm:
|
|
|
3
3
|
- 2.4.6
|
|
4
4
|
- 2.5.5
|
|
5
5
|
- 2.6.3
|
|
6
|
-
- 2.7.0
|
|
6
|
+
- 2.7.0
|
|
7
7
|
gemfile:
|
|
8
8
|
- gemfiles/rails_4.2.gemfile
|
|
9
9
|
- gemfiles/rails_5.0.gemfile
|
|
10
10
|
- gemfiles/rails_5.1.gemfile
|
|
11
11
|
- gemfiles/rails_5.2.gemfile
|
|
12
12
|
- gemfiles/rails_6.0.gemfile
|
|
13
|
+
- gemfiles/rails_6.1.gemfile
|
|
13
14
|
script:
|
|
14
15
|
- bundle install
|
|
15
16
|
- bundle exec rake spec
|
|
@@ -17,5 +18,13 @@ matrix:
|
|
|
17
18
|
exclude:
|
|
18
19
|
- rvm: 2.4.6
|
|
19
20
|
gemfile: gemfiles/rails_6.0.gemfile
|
|
20
|
-
|
|
21
|
-
|
|
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,12 @@
|
|
|
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
|
+
|
|
3
10
|
## 0.4.0
|
|
4
11
|
|
|
5
12
|
- CI against for Rails 6.0.0 and drop Ruby 2.2/2.3 supports (#9)
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/gemfiles/rails_4.2.gemfile
CHANGED
data/gemfiles/rails_5.0.gemfile
CHANGED
data/gemfiles/rails_5.1.gemfile
CHANGED
data/gemfiles/rails_5.2.gemfile
CHANGED
data/gemfiles/rails_6.0.gemfile
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
29
|
spec.add_development_dependency "bundler", ">= 1.16"
|
|
29
|
-
spec.add_development_dependency "rake", "
|
|
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,17 +1,17 @@
|
|
|
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
|
- - ">="
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: '4.0'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '6.
|
|
22
|
+
version: '6.2'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,9 +29,9 @@ dependencies:
|
|
|
29
29
|
version: '4.0'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '6.
|
|
32
|
+
version: '6.2'
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
|
-
name:
|
|
34
|
+
name: activesupport
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
version: '4.0'
|
|
40
40
|
- - "<"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '6.
|
|
42
|
+
version: '6.2'
|
|
43
43
|
type: :runtime
|
|
44
44
|
prerelease: false
|
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -49,7 +49,7 @@ dependencies:
|
|
|
49
49
|
version: '4.0'
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '6.
|
|
52
|
+
version: '6.2'
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: active_hash
|
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,14 +82,14 @@ dependencies:
|
|
|
82
82
|
name: rake
|
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
|
84
84
|
requirements:
|
|
85
|
-
- - "
|
|
85
|
+
- - ">="
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
87
|
version: '10.0'
|
|
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: '10.0'
|
|
95
95
|
- !ruby/object:Gem::Dependency
|
|
@@ -157,6 +157,7 @@ files:
|
|
|
157
157
|
- gemfiles/rails_5.1.gemfile
|
|
158
158
|
- gemfiles/rails_5.2.gemfile
|
|
159
159
|
- gemfiles/rails_6.0.gemfile
|
|
160
|
+
- gemfiles/rails_6.1.gemfile
|
|
160
161
|
- komagire.gemspec
|
|
161
162
|
- lib/komagire.rb
|
|
162
163
|
- lib/komagire/active_record_extension.rb
|
|
@@ -176,14 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
176
177
|
requirements:
|
|
177
178
|
- - ">="
|
|
178
179
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: 2.
|
|
180
|
+
version: 2.4.0
|
|
180
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
182
|
requirements:
|
|
182
183
|
- - ">="
|
|
183
184
|
- !ruby/object:Gem::Version
|
|
184
185
|
version: '0'
|
|
185
186
|
requirements: []
|
|
186
|
-
rubygems_version: 3.
|
|
187
|
+
rubygems_version: 3.1.2
|
|
187
188
|
signing_key:
|
|
188
189
|
specification_version: 4
|
|
189
190
|
summary: Compose an object from comma separated keys.
|