custom_fielder 0.5.0 → 0.5.2

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: 648a2e684dae174f93a7d853c5b407938e1c8794
4
- data.tar.gz: 595befc53d7a9bd52f472316d65e6f2c360c6a3c
3
+ metadata.gz: 57116a86043be57d309bdb3d0bf477e5bca1fc12
4
+ data.tar.gz: 09b44f4232247891266e7b088868dbc4594ea7d3
5
5
  SHA512:
6
- metadata.gz: 4dc3de13896746fcede6569e862bc147e7952fc8238cc277e1cddae8ff763701f8a483750299cec6a8f2098c5bb2c5ae0d308d4a46f0a9fa0135379ff9e44979
7
- data.tar.gz: cf8ec45b8d4068cabf2ce3620a513015f4acbc3d2cffed34d2033406534ddda6733dae4750ea24dfa234cf4046a42d2b1f4d31ebf1f13ffdc9249f94ada96682
6
+ metadata.gz: ed4013e514ea6bcad03c3e702b58e95baa94d19cf85109deddfb88c83e9f7bcc058aee51c06d112919749a6d7a7915e60c0a0e4ef33402b7ba3a06234edd859d
7
+ data.tar.gz: 5da4f4f282d96bcaefeef25bbe57d4270af6d6ccb6b731fe225461c8ae9da09f9f6114e8a711c9022fe6d4f9c72e66791fb871cf59741ef30a94706e4993232a
@@ -9,8 +9,13 @@ module CustomFielder
9
9
  validate :check_allow_blank
10
10
  validate :check_allowed_values
11
11
 
12
- belongs_to :field_attributes, dependent: :destroy, class_name: 'FieldAttributes'
13
12
  belongs_to :custom_fieldable, polymorphic: true
13
+ belongs_to :field_attributes, dependent: :destroy, class_name: 'FieldAttributes'
14
+
15
+ scope :active, -> { where(active: true) }
16
+ scope :inactive, -> { where(active: false) }
17
+
18
+ scope :fields_with_attributes, -> (field_attrs) { where(field_attributes: field_attrs) }
14
19
 
15
20
  ##
16
21
  # Because everything is stored as string with ActiveRecord
@@ -22,22 +27,29 @@ module CustomFielder
22
27
  alias_method :raw_value, :value
23
28
  def value; deserialize_value; end;
24
29
 
25
- ##
26
- # Adds class methods to deactivate or activate all the fields
27
- # that belong to the passed attribute object
28
- #
29
30
  class << self
30
- {
31
- deactivate_field_for_all: false,
32
- activate_field_for_all: true
33
- }.each do |change_field_active_value, field_active_value|
34
- define_method change_field_active_value do |field_attrs|
35
- fields = all.where(field_attributes_id: field_attrs.id)
36
- fields.each do |field|
37
- field.active = field_active_value
38
- field.save
39
- end
40
- end
31
+ ##
32
+ # Activates all CustomFields that belong to passed field attributes
33
+ #
34
+ # @param field_attrs [CustomField::FieldAttributes]
35
+ #
36
+ # @return [Nil]
37
+ #
38
+ def activate_field_for_all(field_attrs)
39
+ fields = all.where(field_attributes: field_attrs)
40
+ fields.each { |field| field.active = true; field.save }
41
+ end
42
+
43
+ ##
44
+ # Activates all CustomFields that belong to passed field attributes
45
+ #
46
+ # @param field_attrs [CustomField::FieldAttributes]
47
+ #
48
+ # @return [Nil]
49
+ #
50
+ def deactivate_field_for_all(field_attrs)
51
+ fields = all.where(field_attributes: field_attrs)
52
+ fields.each { |field| field.active = false; field.save }
41
53
  end
42
54
  end
43
55
 
@@ -100,57 +112,37 @@ module CustomFielder
100
112
  # @return [Nil]
101
113
  #
102
114
  def set_default
103
- if (default and default != '') and (!raw_value or raw_value == '')
104
- update_attribute(:value, default)
105
- end
115
+ update_attribute(:value, default) if default? and raw_value_blank?
106
116
  end
107
117
 
108
118
  ##
109
- # @return [Boolean|Nil] Adds error if invalid
119
+ # @return [Nil] Adds error if invalid
110
120
  #
111
121
  def check_type
112
- if raw_value == nil or raw_value == ''
113
- return true
114
- end
115
-
116
- unless is_correct_type?(type, raw_value)
117
- value_mismatch_error
118
- else
119
- true
120
- end
122
+ return if raw_value_blank?
123
+ value_mismatch_error unless is_correct_type?(type, raw_value)
121
124
  end
122
125
 
123
126
  ##
124
- # @return [Boolean|Nil] Adds error if invalid
127
+ # @return [Nil] Adds error if invalid
125
128
  #
126
129
  def check_allow_blank
127
- if allow_blank == false and (raw_value == nil or raw_value == '')
128
- value_blank_error
129
- else
130
- true
131
- end
130
+ value_blank_error if !allow_blank and raw_value_blank?
132
131
  end
133
132
 
134
133
  ##
135
- # @return [Boolean|Nil] Adds error if invalid
134
+ # @return [Nil] Adds error if invalid
136
135
  #
137
136
  def check_allowed_values
138
- if allowed_values == nil
139
- return true
140
- end
141
-
142
- unless allowed_values.include?(value)
143
- value_not_allowed_error
144
- else
145
- true
146
- end
137
+ return true unless allowed_values
138
+ value_not_allowed_error unless allowed_values.include?(value)
147
139
  end
148
140
 
149
141
  ##
150
142
  # If a value is passed that does not match field type adds
151
143
  # a mismatch error
152
144
  #
153
- # @return [nil]
145
+ # @return [Nil]
154
146
  #
155
147
  def value_mismatch_error
156
148
  errors.add(:value, 'value passed does not match field type')
@@ -160,7 +152,7 @@ module CustomFielder
160
152
  # If a value is passed that is blank and allow_blank is false
161
153
  # adds a value blank error
162
154
  #
163
- # @return [nil]
155
+ # @return [Nil]
164
156
  #
165
157
  def value_blank_error
166
158
  errors.add(:value, 'blank value passed when allow blank is false')
@@ -170,11 +162,28 @@ module CustomFielder
170
162
  # If a value is passed that is not included in allowed values
171
163
  # adds a value not allowed error
172
164
  #
173
- # @return [nil]
165
+ # @return [Nil]
174
166
  #
175
167
  def value_not_allowed_error
176
168
  errors.add(:value, 'value passed not in allowed values')
177
169
  end
178
170
 
171
+ ##
172
+ # Return true if raw_value is nil or an empty string
173
+ #
174
+ # @return [Boolean]
175
+ #
176
+ def raw_value_blank?
177
+ raw_value == nil or raw_value == ''
178
+ end
179
+
180
+ ##
181
+ # Return true if default is set and is not an empty string
182
+ #
183
+ # @return [Boolean]
184
+ #
185
+ def default?
186
+ default and default != ''
187
+ end
179
188
  end
180
189
  end
@@ -5,6 +5,7 @@ class CreateCustomFielderCustomFields < ActiveRecord::Migration
5
5
  t.integer :field_attributes_id, null: false
6
6
  t.boolean :active, null: false, default: true
7
7
  t.string :value
8
+ t.text :note
8
9
 
9
10
  t.timestamps null: false
10
11
  end
@@ -5,7 +5,8 @@ class CreateCustomFielderFieldAttributes < ActiveRecord::Migration
5
5
  t.string :field_type, null: false
6
6
  t.string :default
7
7
  t.boolean :allow_blank, null: false
8
- t.text :allowed_values, array: true
8
+ t.string :allowed_values
9
+ t.text :note
9
10
 
10
11
  t.timestamps null: false
11
12
  end
@@ -1,3 +1,3 @@
1
1
  module CustomFielder
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: custom_fielder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Hurst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-26 00:00:00.000000000 Z
11
+ date: 2016-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.6
19
+ version: '4.2'
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.2.6
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sqlite3
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec-rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  description:
70
56
  email:
71
57
  - hurst.178@osu.edu