Module: Moneybird::Resource::ClassMethods
- Included in:
- Administration, Contact, DocumentStyle, Documents::GeneralDocument, Documents::GeneralJournalDocument, Documents::PurchaseInvoice, Documents::Receipt, Documents::TypelessDocument, Estimate, FinancialAccount, FinancialMutation, Generic::Event, Generic::Note, Identity, Invoice::Details, Invoice::Payment, LedgerAccount, Product, PurchaseInvoice, RecurringSalesInvoice, SalesInvoice, Synchronization, TaxRate, Webhook, Workflow, Webhook
- Defined in:
- lib/moneybird/resource.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
- #logger ⇒ Object
-
#nillable_attributes ⇒ Object
readonly
Returns the value of attribute nillable_attributes.
Instance Method Summary collapse
- #build(attributes) ⇒ Object
- #has_attributes(attributes) ⇒ Object
- #has_boolean_attributes(attributes) ⇒ Object
- #has_datetime_attributes(attributes) ⇒ Object
- #has_integer_attributes(attributes) ⇒ Object
- #has_nillable_attributes(attributes) ⇒ Object
- #resource ⇒ Object
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
50 51 52 |
# File 'lib/moneybird/resource.rb', line 50 def attributes @attributes end |
#logger ⇒ Object
57 58 59 60 61 |
# File 'lib/moneybird/resource.rb', line 57 def logger @logger ||= begin Logger.new(STDOUT) end end |
#nillable_attributes ⇒ Object (readonly)
Returns the value of attribute nillable_attributes.
50 51 52 |
# File 'lib/moneybird/resource.rb', line 50 def nillable_attributes @nillable_attributes end |
Instance Method Details
#build(attributes) ⇒ Object
53 54 55 |
# File 'lib/moneybird/resource.rb', line 53 def build(attributes) new(attributes) end |
#has_attributes(attributes) ⇒ Object
67 68 69 |
# File 'lib/moneybird/resource.rb', line 67 def has_attributes(attributes) attr_accessor(*@attributes = attributes) end |
#has_boolean_attributes(attributes) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/moneybird/resource.rb', line 75 def has_boolean_attributes(attributes) attributes.each do |attribute| define_method(attribute) do input = instance_variable_get('@' + attribute) if input.kind_of?(String) if input == 'true' true elsif input == 'false' false else nil end else input end end end end |
#has_datetime_attributes(attributes) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/moneybird/resource.rb', line 107 def has_datetime_attributes(attributes) attributes.each do |attribute| define_method(attribute) do input = instance_variable_get('@' + attribute) if input.kind_of?(Time) input elsif input.kind_of?(Date) input.to_time elsif input.kind_of?(String) input.strip == '' ? nil : Time.parse(input) end end end end |
#has_integer_attributes(attributes) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/moneybird/resource.rb', line 94 def has_integer_attributes(attributes) attributes.each do |attribute| define_method(attribute) do input = instance_variable_get('@' + attribute) if input.kind_of?(String) input.to_i else input end end end end |
#has_nillable_attributes(attributes) ⇒ Object
71 72 73 |
# File 'lib/moneybird/resource.rb', line 71 def has_nillable_attributes(attributes) @nillable_attributes = attributes end |
#resource ⇒ Object
63 64 65 |
# File 'lib/moneybird/resource.rb', line 63 def resource self.name.split('::').last.underscore end |