symbolic_enum 1.1.3 → 1.1.4

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: d1e625d255144aa763f7ea2a4b7c8fcda6f906f9
4
- data.tar.gz: dbae9b3428f5b9544f65effa87fe14efd5af9f4a
3
+ metadata.gz: 7bab3f4857d2b6fd5311bdbed94fbcd9b9f1fe0d
4
+ data.tar.gz: 4fdf2952c698c3b8c8fd7015fced15afd50c4255
5
5
  SHA512:
6
- metadata.gz: 3a280f424aea94f1e611138c8e0d4c59bce943907d54e8257443d0566f0d3faa0fd2d7b9cff16ece09ca22b6373d421b3b86045fbd38ff6ef7b26eb6137958bb
7
- data.tar.gz: 1383c5db0d5c45b0ef84fa4715c081df2951139e1bcd78d15f1a3d7f228bd9701d6ccfd8865f14112005c2d343ca66f8b565f896e9bc9df772f62deeb323ae92
6
+ metadata.gz: 9acdb097d4d77cffe2766f404350bb242405d8de999f6949472bfb1ee95f8841239295cb91764de1e696c920f428e3ab0b1e6289e6efe588926d9376d574e872
7
+ data.tar.gz: bdb272cbebe7a50aded976bb45a7e0c5a74212c2b376677d30741398323665c68052dd92a297e6143b1e88ea5bb4004cbd4cfcffccf473e495b8c80f3273bf14
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- symbolic_enum (1.1.2)
4
+ symbolic_enum (1.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -70,18 +70,6 @@ module SymbolicEnum
70
70
  end
71
71
  end
72
72
 
73
- if is_array
74
- define_method("#{ field }=") do |value|
75
- raise ArgumentError.new("can only assign a valid array of enums") unless value.nil? || (value.is_a?(Array) && value.map(&:class).to_set.subset?([String, Symbol].to_set) && value.map(&:to_sym).to_set.subset?(mapping.keys.to_set))
76
- self[field] = value.nil? ? nil : value.map{|s| mapping[s.to_sym] }
77
- end
78
- else
79
- define_method("#{ field }=") do |value|
80
- raise ArgumentError.new("can only assign a valid enum") unless value.nil? || ((value.is_a?(Symbol) || value.is_a?(String)) && mapping.keys.include?(value.to_sym))
81
- self[field] = value.nil? ? nil : mapping[value.to_sym]
82
- end
83
- end
84
-
85
73
  mapping.each_pair do |state_name, state_value|
86
74
  unless disable_scopes
87
75
  scope state_name, -> { where(field => state_value) }
@@ -95,6 +83,18 @@ module SymbolicEnum
95
83
  define_method("#{ state_name }!".to_sym) do
96
84
  self.update_attributes!(field => state_value)
97
85
  end
86
+
87
+ if is_array
88
+ define_method("#{ field }=") do |value|
89
+ raise ArgumentError.new("can only assign a valid array of enums") unless value.nil? || (value.is_a?(Array) && value.map(&:class).to_set.subset?([String, Symbol].to_set) && value.map(&:to_sym).to_set.subset?(mapping.keys.to_set))
90
+ self[field] = value.nil? ? nil : value.map{|s| mapping[s.to_sym] }
91
+ end
92
+ else
93
+ define_method("#{ field }=") do |value|
94
+ raise ArgumentError.new("can only assign a valid enum") unless value.nil? || ((value.is_a?(Symbol) || value.is_a?(String)) && mapping.keys.include?(value.to_sym))
95
+ self[field] = value.nil? ? nil : mapping[value.to_sym]
96
+ end
97
+ end
98
98
  end
99
99
  end
100
100
  end
@@ -1,3 +1,3 @@
1
1
  module SymbolicEnum
2
- VERSION = "1.1.3"
2
+ VERSION = "1.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symbolic_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ajith Hussain
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-12 00:00:00.000000000 Z
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler