Module: FormalWear::InstanceMethods
- Defined in:
- lib/formal_wear/instance_methods.rb
Instance Method Summary collapse
-
#initialize(primary) ⇒ Object
Start the configuration process.
- #required_attributes ⇒ Object
-
#required_fields ⇒ Object
Return the list of required fields for this configurator.
- #required_fields_with_custom_stores ⇒ Object
- #required_fields_without_custom_stores ⇒ Object
- #save ⇒ Object
- #to_h ⇒ Object
- #update(attrs) ⇒ Object
- #valid? ⇒ Boolean
Instance Method Details
#initialize(primary) ⇒ Object
Start the configuration process
6 7 8 9 |
# File 'lib/formal_wear/instance_methods.rb', line 6 def initialize(primary) @primary = primary update_sources end |
#required_attributes ⇒ Object
11 12 13 14 15 |
# File 'lib/formal_wear/instance_methods.rb', line 11 def required_attributes required_fields.dup.each do |field, | .slice!(:name, :type) end end |
#required_fields ⇒ Object
Return the list of required fields for this configurator
18 19 20 |
# File 'lib/formal_wear/instance_methods.rb', line 18 def required_fields @@required_fields end |
#required_fields_with_custom_stores ⇒ Object
26 27 28 |
# File 'lib/formal_wear/instance_methods.rb', line 26 def required_fields_with_custom_stores required_fields.select { |f,o| custom_store?(o) } end |
#required_fields_without_custom_stores ⇒ Object
22 23 24 |
# File 'lib/formal_wear/instance_methods.rb', line 22 def required_fields_without_custom_stores required_fields.reject { |f,o| custom_store?(o) } end |
#save ⇒ Object
47 48 49 50 51 52 |
# File 'lib/formal_wear/instance_methods.rb', line 47 def save return false unless valid? saving do required_fields.each { |field, | set_field(field, ) } end end |
#to_h ⇒ Object
30 31 32 33 34 |
# File 'lib/formal_wear/instance_methods.rb', line 30 def to_h {}.merge(required_attributes: required_attributes).tap do |h| required_fields.keys.each { |k| h[k] = self.send(k) } end end |
#update(attrs) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/formal_wear/instance_methods.rb', line 36 def update(attrs) raise ArgumentError, "update requires a Hash" attrs.each do |field, value| self.send(:"#{field}=", value) if instance_method_defined?(field) end end |
#valid? ⇒ Boolean
43 44 45 |
# File 'lib/formal_wear/instance_methods.rb', line 43 def valid? required_fields.keys.all? { |k| self.send(k).present? } end |