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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: db899ad581973f576f0ff378aa6bf9243dbdb830
4
- data.tar.gz: d85052ab6d758f54484c5c6234225c1c500ce341
2
+ SHA256:
3
+ metadata.gz: 6d5336efdba118ffeb861d0e4975cfa2718abd80b225623421ed30cc298901fb
4
+ data.tar.gz: ddfad6a6ef6a4104d477acca9ed3eb15a5bfb12a5abee7028b0f09948c71925e
5
5
  SHA512:
6
- metadata.gz: c02f65725a2f9eb47c3f43f434763fd4aa03156fabec83ff6878668c136955f16c4c718cec45ba0ce9888c3efc0e60feace1adc8d317c8c40225ccae51de4df3
7
- data.tar.gz: 8e6e6cafecf88af7b47626f971ea8b41dc556d6d2fbaac9b309057921f99a5a92e1ec91dbe6b8be45061d8694ceb70aa1245b7404b0c5858ca5e821d3ca61280
6
+ metadata.gz: 8626dc808d40df4be9f2acb4b58a48f2d650067e3a94e6c985a24aee74e1a6b6f4d49ae09dc893c97a8646e2249190527ff285dcd3ae9f4cec9abf327a929569
7
+ data.tar.gz: 7417972d05f22a8f2975a9437e2daa3da55ce73c9be0eea1b5011d47efe192aa234dea330043f01ea8d8e8b4a8435f9193c5d2c84cde8ed0eabeee2376b26e4e
@@ -1,9 +1,30 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
4
- - 2.1
5
- - 2.2
6
- before_install: gem install bundler -v 1.10.5
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
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in komagire.gemspec
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "komagire"
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 4.2.0'
6
+ gem 'activesupport', '~> 4.2.0'
7
+ gem 'sqlite3', '~> 1.3.6'
8
+
9
+ gemspec path: '../'
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 5.0.0'
6
+ gem 'activesupport', '~> 5.0.0'
7
+ gem 'sqlite3', '~> 1.3.6'
8
+
9
+ gemspec path: '../'
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 5.1.0'
6
+ gem 'activesupport', '~> 5.1.0'
7
+
8
+ gemspec path: '../'
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 5.2.0'
6
+ gem 'activesupport', '~> 5.2.0'
7
+
8
+ gemspec path: '../'
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 6.0.0'
6
+ gem 'activesupport', '~> 6.0.0'
7
+
8
+ gemspec path: '../'
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org/'
4
+
5
+ gem 'activerecord', '~> 6.1.0.rc1'
6
+ gem 'activesupport', '~> 6.1.0.rc1'
7
+
8
+ gemspec path: '../'
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
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.0.0'
23
+ spec.required_ruby_version = '>= 2.4.0'
23
24
 
24
- spec.add_runtime_dependency "activesupport", "~> 4.0"
25
- spec.add_runtime_dependency "activerecord", "~> 4.0"
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", "~> 1.10"
29
- spec.add_development_dependency "rake", "~> 10.0"
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
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'komagire/version'
2
4
  require 'komagire/key_list'
3
5
  require 'komagire/id_list'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Komagire
2
4
  module ActiveRecordExtension
3
5
  # @param [Symbol] part_id
@@ -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 { |v| v.id }
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
- case
43
- when values.all? { |v| v.is_a?(String) }
44
+ if values.all? { |v| v.is_a?(String) }
44
45
  values.join(delimiter)
45
- when values.all? { |v| v.is_a?(Integer) }
46
+ elsif values.all? { |v| v.is_a?(Integer) }
46
47
  values.join(delimiter)
47
- when values.all? { |v| v.is_a?(content_class_name.constantize) }
48
+ elsif values.all? { |v| v.is_a?(content_class_name.constantize) }
48
49
  values.map(&attribute).join(delimiter)
49
50
  else
50
- fail DifferentContentClass
51
+ raise DifferentContentClass
51
52
  end
52
53
  end
53
54
  end
@@ -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
- values = content_class_name.constantize.where(@attribute => _keys).compact
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(*_keys)
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
- fail DifferentContentClass
87
+
88
+ raise DifferentContentClass
83
89
  else
84
- values = case
85
- when value.is_a?(Array) then value
86
- when value.respond_to?(:to_a) then value.to_a
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
- fail ArgumentError
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
- case
97
- when values.all? { |v| v.is_a?(String) }
101
+ if values.all? { |v| v.is_a?(String) }
98
102
  values.join(delimiter)
99
- when values.all? { |v| v.is_a?(content_class_name.constantize) }
103
+ elsif values.all? { |v| v.is_a?(content_class_name.constantize) }
100
104
  values.map(&attribute).join(delimiter)
101
105
  else
102
- fail ArgumentError
106
+ raise ArgumentError
103
107
  end
104
108
  end
105
109
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Komagire
2
4
  class Railtie < Rails::Railtie
3
5
  initializer 'komagire' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Komagire
2
- VERSION = '0.2.0'
4
+ VERSION = '0.5.0'
3
5
  end
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.2.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: 2016-01-23 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
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: activerecord
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.10'
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.10'
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.0.0
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
- rubyforge_project:
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.