komagire 0.2.2 → 0.6.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/.github/workflows/ruby.yml +38 -0
- data/.gitignore +2 -0
- data/Appraisals +24 -0
- data/CHANGELOG.md +23 -0
- data/Gemfile +2 -0
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/gemfiles/rails_5.2.gemfile +8 -0
- data/gemfiles/rails_6.0.gemfile +9 -0
- data/gemfiles/rails_6.1.gemfile +9 -0
- data/gemfiles/rails_7.0.gemfile +9 -0
- data/komagire.gemspec +9 -7
- data/lib/komagire/active_record_extension.rb +2 -0
- data/lib/komagire/id_list.rb +7 -6
- data/lib/komagire/key_list.rb +16 -21
- data/lib/komagire/railtie.rb +2 -0
- data/lib/komagire/version.rb +3 -1
- data/lib/komagire.rb +2 -0
- metadata +35 -34
- data/.travis.yml +0 -31
- data/gemfiles/rails_4.0.gemfile +0 -6
- data/gemfiles/rails_4.1.gemfile +0 -6
- data/gemfiles/rails_4.2.gemfile +0 -6
- data/gemfiles/rails_5.0.gemfile +0 -6
- data/gemfiles/rails_5.1.gemfile +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '08112e71017b77c5d9eacece167c6138c2d4aec68f42e00c8634a33290a4875e'
|
4
|
+
data.tar.gz: 91b7db0ac2005076e2bc25b282ecbc6bd69b5191ebf8e2c23c3ece60eb3575eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c0602d61599ae90e3dbe61c25ff4716e18f911e3fc3396cbeee21b070c63e941e0a9c18501faed9392146820d34868d286f5ea1471f3955aa3e56542ffc4d2e
|
7
|
+
data.tar.gz: 48de96f1ab5cc03b6d7e2afc41f24ec34feb839aacb04f70dc739a735e4c4ba5764bf1d0223d28d66c0cbe479a81070fa5835af151790a9bd3a28277dea26bcf
|
@@ -0,0 +1,38 @@
|
|
1
|
+
name: Ruby
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
branches: [ master ]
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
test:
|
10
|
+
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby-version: ['2.6', '2.7', '3.0']
|
15
|
+
rails-version: ['5.2', '6.0', '6.1', '7.0']
|
16
|
+
exclude:
|
17
|
+
- ruby-version: '2.6'
|
18
|
+
rails-version: '7.0'
|
19
|
+
- ruby-version: '2.7'
|
20
|
+
rails-version: '5.2'
|
21
|
+
- ruby-version: '3.0'
|
22
|
+
rails-version: '5.2'
|
23
|
+
|
24
|
+
env:
|
25
|
+
APPRAISAL: rails_${{ matrix.rails-version }}
|
26
|
+
|
27
|
+
steps:
|
28
|
+
- uses: actions/checkout@v2
|
29
|
+
- name: Set up Ruby
|
30
|
+
uses: ruby/setup-ruby@v1
|
31
|
+
with:
|
32
|
+
ruby-version: ${{ matrix.ruby-version }}
|
33
|
+
- name: Install dependencies
|
34
|
+
run: |
|
35
|
+
bundle install
|
36
|
+
bundle exec appraisal $APPRAISAL bundle install
|
37
|
+
- name: Run tests
|
38
|
+
run: bundle exec appraisal $APPRAISAL rake
|
data/.gitignore
CHANGED
data/Appraisals
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
appraise "rails_5.2" do
|
4
|
+
gem "activerecord", "~> 5.2.0"
|
5
|
+
gem "activesupport", "~> 5.2.0"
|
6
|
+
end
|
7
|
+
|
8
|
+
appraise "rails_6.0" do
|
9
|
+
gem "activerecord", "~> 6.0.0"
|
10
|
+
gem "activesupport", "~> 6.0.0"
|
11
|
+
gem "sqlite3", "~> 1.4"
|
12
|
+
end
|
13
|
+
|
14
|
+
appraise "rails_6.1" do
|
15
|
+
gem "activerecord", "~> 6.1.0"
|
16
|
+
gem "activesupport", "~> 6.1.0"
|
17
|
+
gem "sqlite3", "~> 1.4"
|
18
|
+
end
|
19
|
+
|
20
|
+
appraise "rails_7.0" do
|
21
|
+
gem "activerecord", "~> 7.0.0"
|
22
|
+
gem "activesupport", "~> 7.0.0"
|
23
|
+
gem "sqlite3", "~> 1.4"
|
24
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,28 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.6.0
|
4
|
+
|
5
|
+
- Avoid needless override in `KeyList#freeze` (#13)
|
6
|
+
- Change required ruby version to 2.6+ (#14)
|
7
|
+
- Change required rails version to 5.2+ (#14)
|
8
|
+
- Migrate CI from Travis CI to GitHub Actions (#14)
|
9
|
+
|
10
|
+
## 0.5.0
|
11
|
+
|
12
|
+
- Support Ruby 2.7 (#10)
|
13
|
+
- Change required ruby version to 2.4+ (#11)
|
14
|
+
- Prevent extra query when cskeys are empty (#12)
|
15
|
+
- Add support Rails 6.1.0.rc1 (#13)
|
16
|
+
|
17
|
+
## 0.4.0
|
18
|
+
|
19
|
+
- CI against for Rails 6.0.0 and drop Ruby 2.2/2.3 supports (#9)
|
20
|
+
- Add Rails 6.0.0.rc2 support and update Ruby version for CI (#8)
|
21
|
+
|
22
|
+
## 0.3.0
|
23
|
+
|
24
|
+
- Change support versions of Ruby and Rails (#7)
|
25
|
+
|
3
26
|
## 0.2.2
|
4
27
|
|
5
28
|
- Support Rails 5.1 (#4)
|
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,15 @@ 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.6.0'
|
23
24
|
|
24
|
-
spec.add_runtime_dependency "
|
25
|
-
spec.add_runtime_dependency "
|
25
|
+
spec.add_runtime_dependency "activerecord", ">= 5.2"
|
26
|
+
spec.add_runtime_dependency "activesupport", ">= 5.2"
|
26
27
|
spec.add_development_dependency "active_hash"
|
27
28
|
|
28
|
-
spec.add_development_dependency "
|
29
|
-
spec.add_development_dependency "
|
29
|
+
spec.add_development_dependency "appraisal", ">= 2.4.1"
|
30
|
+
spec.add_development_dependency "bundler", ">= 1.16"
|
31
|
+
spec.add_development_dependency "rake", ">= 10.0"
|
30
32
|
spec.add_development_dependency "rspec"
|
31
33
|
spec.add_development_dependency "sqlite3"
|
32
34
|
|
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
|
@@ -30,15 +32,6 @@ module Komagire
|
|
30
32
|
([''] + key_values + ['']).join(@delimiter)
|
31
33
|
end
|
32
34
|
|
33
|
-
def freeze
|
34
|
-
case __getobj__
|
35
|
-
when ActiveRecord::Relation
|
36
|
-
# avoid ActiveRecord::Relation is frozen
|
37
|
-
else
|
38
|
-
super
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
35
|
private
|
43
36
|
|
44
37
|
def _convert(cskeys)
|
@@ -50,11 +43,14 @@ module Komagire
|
|
50
43
|
end
|
51
44
|
|
52
45
|
def _find_by_cskeys
|
53
|
-
|
46
|
+
keys = _keys
|
47
|
+
return [] if keys.empty?
|
48
|
+
|
49
|
+
values = content_class_name.constantize.where(@attribute => keys).compact
|
54
50
|
if @sort
|
55
51
|
values.sort_by { |v| v.public_send(@attribute) }
|
56
52
|
else
|
57
|
-
values.index_by { |v| v.public_send(@attribute).to_s }.values_at(*
|
53
|
+
values.index_by { |v| v.public_send(@attribute).to_s }.values_at(*keys)
|
58
54
|
end
|
59
55
|
end
|
60
56
|
|
@@ -79,27 +75,26 @@ module Komagire
|
|
79
75
|
if value.content_class_name == content_class_name && value.attribute == attribute
|
80
76
|
return value.cskeys
|
81
77
|
end
|
82
|
-
|
78
|
+
|
79
|
+
raise DifferentContentClass
|
83
80
|
else
|
84
|
-
values =
|
85
|
-
|
86
|
-
|
87
|
-
when value.respond_to?(:to_ary) then value.to_ary
|
81
|
+
values = if value.is_a?(Array) then value
|
82
|
+
elsif value.respond_to?(:to_a) then value.to_a
|
83
|
+
elsif value.respond_to?(:to_ary) then value.to_ary
|
88
84
|
else
|
89
|
-
|
85
|
+
raise ArgumentError
|
90
86
|
end
|
91
87
|
convert_to_cskeys_from_array(values.compact)
|
92
88
|
end
|
93
89
|
end
|
94
90
|
|
95
91
|
def convert_to_cskeys_from_array(values)
|
96
|
-
|
97
|
-
when values.all? { |v| v.is_a?(String) }
|
92
|
+
if values.all? { |v| v.is_a?(String) }
|
98
93
|
values.join(delimiter)
|
99
|
-
|
94
|
+
elsif values.all? { |v| v.is_a?(content_class_name.constantize) }
|
100
95
|
values.map(&attribute).join(delimiter)
|
101
96
|
else
|
102
|
-
|
97
|
+
raise ArgumentError
|
103
98
|
end
|
104
99
|
end
|
105
100
|
end
|
data/lib/komagire/railtie.rb
CHANGED
data/lib/komagire/version.rb
CHANGED
data/lib/komagire.rb
CHANGED
metadata
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: komagire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takumi IINO
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-21 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
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '4.0'
|
20
|
-
- - "<"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '5.2'
|
23
20
|
type: :runtime
|
@@ -25,19 +22,13 @@ dependencies:
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '4.0'
|
30
|
-
- - "<"
|
31
25
|
- !ruby/object:Gem::Version
|
32
26
|
version: '5.2'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: activesupport
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - ">="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '4.0'
|
40
|
-
- - "<"
|
41
32
|
- !ruby/object:Gem::Version
|
42
33
|
version: '5.2'
|
43
34
|
type: :runtime
|
@@ -45,9 +36,6 @@ dependencies:
|
|
45
36
|
version_requirements: !ruby/object:Gem::Requirement
|
46
37
|
requirements:
|
47
38
|
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '4.0'
|
50
|
-
- - "<"
|
51
39
|
- !ruby/object:Gem::Version
|
52
40
|
version: '5.2'
|
53
41
|
- !ruby/object:Gem::Dependency
|
@@ -64,32 +52,46 @@ dependencies:
|
|
64
52
|
- - ">="
|
65
53
|
- !ruby/object:Gem::Version
|
66
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: appraisal
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.4.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.4.1
|
67
69
|
- !ruby/object:Gem::Dependency
|
68
70
|
name: bundler
|
69
71
|
requirement: !ruby/object:Gem::Requirement
|
70
72
|
requirements:
|
71
|
-
- - "
|
73
|
+
- - ">="
|
72
74
|
- !ruby/object:Gem::Version
|
73
|
-
version: '1.
|
75
|
+
version: '1.16'
|
74
76
|
type: :development
|
75
77
|
prerelease: false
|
76
78
|
version_requirements: !ruby/object:Gem::Requirement
|
77
79
|
requirements:
|
78
|
-
- - "
|
80
|
+
- - ">="
|
79
81
|
- !ruby/object:Gem::Version
|
80
|
-
version: '1.
|
82
|
+
version: '1.16'
|
81
83
|
- !ruby/object:Gem::Dependency
|
82
84
|
name: rake
|
83
85
|
requirement: !ruby/object:Gem::Requirement
|
84
86
|
requirements:
|
85
|
-
- - "
|
87
|
+
- - ">="
|
86
88
|
- !ruby/object:Gem::Version
|
87
89
|
version: '10.0'
|
88
90
|
type: :development
|
89
91
|
prerelease: false
|
90
92
|
version_requirements: !ruby/object:Gem::Requirement
|
91
93
|
requirements:
|
92
|
-
- - "
|
94
|
+
- - ">="
|
93
95
|
- !ruby/object:Gem::Version
|
94
96
|
version: '10.0'
|
95
97
|
- !ruby/object:Gem::Dependency
|
@@ -141,9 +143,10 @@ executables: []
|
|
141
143
|
extensions: []
|
142
144
|
extra_rdoc_files: []
|
143
145
|
files:
|
146
|
+
- ".github/workflows/ruby.yml"
|
144
147
|
- ".gitignore"
|
145
148
|
- ".rspec"
|
146
|
-
-
|
149
|
+
- Appraisals
|
147
150
|
- CHANGELOG.md
|
148
151
|
- CODE_OF_CONDUCT.md
|
149
152
|
- Gemfile
|
@@ -152,11 +155,10 @@ files:
|
|
152
155
|
- Rakefile
|
153
156
|
- bin/console
|
154
157
|
- bin/setup
|
155
|
-
- gemfiles/
|
156
|
-
- gemfiles/
|
157
|
-
- gemfiles/
|
158
|
-
- gemfiles/
|
159
|
-
- gemfiles/rails_5.1.gemfile
|
158
|
+
- gemfiles/rails_5.2.gemfile
|
159
|
+
- gemfiles/rails_6.0.gemfile
|
160
|
+
- gemfiles/rails_6.1.gemfile
|
161
|
+
- gemfiles/rails_7.0.gemfile
|
160
162
|
- komagire.gemspec
|
161
163
|
- lib/komagire.rb
|
162
164
|
- lib/komagire/active_record_extension.rb
|
@@ -168,7 +170,7 @@ homepage: https://github.com/troter/komagire
|
|
168
170
|
licenses:
|
169
171
|
- MIT
|
170
172
|
metadata: {}
|
171
|
-
post_install_message:
|
173
|
+
post_install_message:
|
172
174
|
rdoc_options: []
|
173
175
|
require_paths:
|
174
176
|
- lib
|
@@ -176,16 +178,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
176
178
|
requirements:
|
177
179
|
- - ">="
|
178
180
|
- !ruby/object:Gem::Version
|
179
|
-
version: 2.
|
181
|
+
version: 2.6.0
|
180
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
183
|
requirements:
|
182
184
|
- - ">="
|
183
185
|
- !ruby/object:Gem::Version
|
184
186
|
version: '0'
|
185
187
|
requirements: []
|
186
|
-
|
187
|
-
|
188
|
-
signing_key:
|
188
|
+
rubygems_version: 3.1.2
|
189
|
+
signing_key:
|
189
190
|
specification_version: 4
|
190
191
|
summary: Compose an object from comma separated keys.
|
191
192
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.0.0
|
4
|
-
- 2.1.0
|
5
|
-
- 2.2.2
|
6
|
-
- 2.3.0
|
7
|
-
- 2.4.0
|
8
|
-
gemfile:
|
9
|
-
- gemfiles/rails_4.0.gemfile
|
10
|
-
- gemfiles/rails_4.1.gemfile
|
11
|
-
- gemfiles/rails_4.2.gemfile
|
12
|
-
- gemfiles/rails_5.0.gemfile
|
13
|
-
- gemfiles/rails_5.1.gemfile
|
14
|
-
matrix:
|
15
|
-
exclude:
|
16
|
-
- rvm: 2.0.0
|
17
|
-
gemfile: gemfiles/rails_5.0.gemfile
|
18
|
-
- rvm: 2.0.0
|
19
|
-
gemfile: gemfiles/rails_5.1.gemfile
|
20
|
-
- rvm: 2.1.0
|
21
|
-
gemfile: gemfiles/rails_5.0.gemfile
|
22
|
-
- rvm: 2.1.0
|
23
|
-
gemfile: gemfiles/rails_5.1.gemfile
|
24
|
-
- rvm: 2.4.0
|
25
|
-
gemfile: gemfiles/rails_4.0.gemfile
|
26
|
-
- rvm: 2.4.0
|
27
|
-
gemfile: gemfiles/rails_4.1.gemfile
|
28
|
-
before_install: gem install bundler -v 1.10.5
|
29
|
-
script:
|
30
|
-
- bundle install
|
31
|
-
- bundle exec rake spec
|
data/gemfiles/rails_4.0.gemfile
DELETED
data/gemfiles/rails_4.1.gemfile
DELETED
data/gemfiles/rails_4.2.gemfile
DELETED
data/gemfiles/rails_5.0.gemfile
DELETED