komagire 0.2.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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.