Module: Moneybird::Resource::ClassMethods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



49
50
51
# File 'lib/moneybird/resource.rb', line 49

def attributes
  @attributes
end

#loggerObject



56
57
58
59
60
# File 'lib/moneybird/resource.rb', line 56

def logger
  @logger ||= begin
    logger = Logger.new(STDOUT)
  end
end

#nillable_attributesObject (readonly)

Returns the value of attribute nillable_attributes.



49
50
51
# File 'lib/moneybird/resource.rb', line 49

def nillable_attributes
  @nillable_attributes
end

Instance Method Details

#build(attributes) ⇒ Object



52
53
54
# File 'lib/moneybird/resource.rb', line 52

def build(attributes)
  new(attributes)
end

#has_attributes(attributes) ⇒ Object



66
67
68
# File 'lib/moneybird/resource.rb', line 66

def has_attributes(attributes)
  attr_accessor(*@attributes = attributes)
end

#has_boolean_attributes(attributes) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/moneybird/resource.rb', line 74

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



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/moneybird/resource.rb', line 106

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



93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/moneybird/resource.rb', line 93

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



70
71
72
# File 'lib/moneybird/resource.rb', line 70

def has_nillable_attributes(attributes)
  @nillable_attributes = attributes
end

#resourceObject



62
63
64
# File 'lib/moneybird/resource.rb', line 62

def resource
  self.name.split('::').last.downcase
end