Module: FormalWear::InstanceMethods
- Defined in:
- lib/formal_wear/instance_methods.rb
Instance Method Summary collapse
- #attributes ⇒ Object (also: #to_h)
-
#initialize(options = {}) ⇒ Object
Start the configuration process.
- #optional_attributes ⇒ Object
- #optional_fields ⇒ Object
- #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
- #update(attrs) ⇒ Object
- #update!(attrs) ⇒ Object
- #valid? ⇒ Boolean
Instance Method Details
#attributes ⇒ Object Also known as: to_h
19 20 21 22 23 24 |
# File 'lib/formal_wear/instance_methods.rb', line 19 def attributes {}.tap do |h| h.merge!(required_attributes: required_attributes) if required_attributes h.merge!(optional_attributes: optional_attributes) if optional_attributes end end |
#initialize(options = {}) ⇒ Object
Start the configuration process
6 7 8 9 |
# File 'lib/formal_wear/instance_methods.rb', line 6 def initialize( = {}) set_sources() update_sources end |
#optional_attributes ⇒ Object
15 16 17 |
# File 'lib/formal_wear/instance_methods.rb', line 15 def optional_attributes sanitize_and_fill_attributes(optional_fields) end |
#optional_fields ⇒ Object
32 33 34 |
# File 'lib/formal_wear/instance_methods.rb', line 32 def optional_fields @@optional_fields end |
#required_attributes ⇒ Object
11 12 13 |
# File 'lib/formal_wear/instance_methods.rb', line 11 def required_attributes sanitize_and_fill_attributes(required_fields) end |
#required_fields ⇒ Object
Return the list of required fields for this configurator
28 29 30 |
# File 'lib/formal_wear/instance_methods.rb', line 28 def required_fields @@required_fields end |
#required_fields_with_custom_stores ⇒ Object
40 41 42 |
# File 'lib/formal_wear/instance_methods.rb', line 40 def required_fields_with_custom_stores required_fields.select { |f,o| custom_store?(o) } end |
#required_fields_without_custom_stores ⇒ Object
36 37 38 |
# File 'lib/formal_wear/instance_methods.rb', line 36 def required_fields_without_custom_stores required_fields.reject { |f,o| custom_store?(o) } end |
#save ⇒ Object
60 61 62 63 64 65 |
# File 'lib/formal_wear/instance_methods.rb', line 60 def save return false unless valid? saving do required_fields.each { |field, | set_field(field, ) } end end |
#update(attrs) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/formal_wear/instance_methods.rb', line 44 def update(attrs) raise ArgumentError, "update requires a Hash" unless attrs.is_a?(Hash) attrs.each do |field, value| send(:"#{field}=", value) if respond_to?(field) end end |
#update!(attrs) ⇒ Object
51 52 53 54 |
# File 'lib/formal_wear/instance_methods.rb', line 51 def update!(attrs) update(attrs) save if valid? end |
#valid? ⇒ Boolean
56 57 58 |
# File 'lib/formal_wear/instance_methods.rb', line 56 def valid? required_fields.keys.all? { |k| self.send(k).present? } end |