symbolic_enum 1.1.3 → 1.1.4

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
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