activerecord-grouping_enum 0.1.0 → 1.0.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
2
  SHA1:
3
- metadata.gz: e61c19aaa99aef3eb517943283a64d18ee081e4a
4
- data.tar.gz: d5825cb43d374b8f9231126c5072f403d2b5e039
3
+ metadata.gz: 99b15a6aca80d09d560d3f356b2229bad160276d
4
+ data.tar.gz: c926ddf0ecc4ece6474f1adf7184b3a6c9885daa
5
5
  SHA512:
6
- metadata.gz: 64fc5c631ce2af68e63d5fcc0d32ccfec64aa1c466fe2962e2df1136d4bc2f45c807e7ee7d9451177b4a1c40830a7a549770550de16c376ca86c9f2c03108abf
7
- data.tar.gz: cf65c9b20cf6ab1093e1ec23e4d8d9d4531aaae98082c9387e5d7197c2d39125d28c795981fc680650280f0024a83e03c1201958b65c573d50b1b5248e09a931
6
+ metadata.gz: 390d935d1f174c4ac7820262d670fc5ca667fa43ac2515ae484ff2f7dd53bdae22dced102dc4769e6d8ad2ce2b56366b9781607130323be737e4a68886ac0828
7
+ data.tar.gz: cd5c48ba881b6b6216b5a94a854f891eedb9b04924bbd974d1416e38f6b9edec08d9760cb1d4b69ea85fb27d6d2ea377b8a51066cccbd181be8a8b62699c7c3e
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ActiveRecord::GroupingEnum
2
2
 
3
- Allows you to group enum and can use enum's scope and boolean method.
3
+ Grouping the enum of ActiveRecord
4
4
 
5
5
  ## Installation
6
6
 
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Tomohiro Suwa"]
10
10
  spec.email = ["neoen.gsn@gmail.com"]
11
11
 
12
- spec.summary = %q{Allows you to group enum}
13
- spec.description = %q{Allows you to group enum and can use enum's scope and boolean methods.}
12
+ spec.summary = %q{Grouping the enum of ActiveRecord}
13
+ spec.description = %q{Grouping the enum of ActiveRecord}
14
14
  spec.homepage = "https://github.com/tsuwatch/activerecord-grouping_enum"
15
15
  spec.license = "MIT"
16
16
 
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_runtime_dependency 'activerecord', '>=4.1.0'
22
+ spec.add_runtime_dependency 'activerecord', '~> 5.0.0'
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.11"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
@@ -7,21 +7,14 @@ module ActiveRecord
7
7
  values.each do |key, enums|
8
8
  _grouping_enum_methods_module.module_eval do
9
9
  klass.send(:detect_enum_conflict!, name, "#{key}?")
10
- define_method("#{key}?") do
11
- values = []
12
- enums.each do |enum|
13
- values << klass.defined_enums[name.to_s].fetch(enum.to_s)
14
- end
15
- values.include?(self[name])
16
- end
10
+ define_method("#{key}?") { enums.map(&:to_s).include?(self[name]) }
17
11
 
18
- klass.send(:detect_enum_conflict!, name, "#{key}", true)
19
- klass.scope "#{key}", lambda {
20
- query = "#{name} == #{klass.defined_enums[name.to_s][enums.shift.to_s]}"
21
- enums.each do |enum|
22
- query << " or #{name} == #{klass.defined_enums[name.to_s][enum.to_s]}"
12
+ klass.send(:detect_enum_conflict!, name, key.to_s, true)
13
+ klass.scope key.to_s, lambda {
14
+ clause = enums.each_with_object Hash.new { |h, k| h[k] = [] } do |enum, obj|
15
+ obj[name] << klass.public_send(name.to_s.pluralize.to_sym)[enum.to_s]
23
16
  end
24
- klass.where(query)
17
+ klass.where(clause)
25
18
  }
26
19
  end
27
20
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module GroupingEnum
3
- VERSION = "0.1.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-grouping_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomohiro Suwa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-06 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.1.0
19
+ version: 5.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.1.0
26
+ version: 5.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- description: Allows you to group enum and can use enum's scope and boolean methods.
125
+ description: Grouping the enum of ActiveRecord
126
126
  email:
127
127
  - neoen.gsn@gmail.com
128
128
  executables: []
@@ -164,5 +164,5 @@ rubyforge_project:
164
164
  rubygems_version: 2.4.5.1
165
165
  signing_key:
166
166
  specification_version: 4
167
- summary: Allows you to group enum
167
+ summary: Grouping the enum of ActiveRecord
168
168
  test_files: []