Class: StarkBank::Transfer::Rule

Inherits:
StarkCore::Utils::SubResource
  • Object
show all
Defined in:
lib/transfer/rule.rb

Overview

# Transfer::Rule object

The Transfer::Rule object modifies the behavior of Transfer objects when passed as an argument upon their creation.

## Parameters (required):

  • key [string]: Rule to be customized, describes what Transfer behavior will be altered. ex: “resendingLimit”

  • value [integer]: Value of the rule. ex: 5

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key:, value:) ⇒ Rule

Returns a new instance of Rule.



17
18
19
20
# File 'lib/transfer/rule.rb', line 17

def initialize(key:, value:)
  @key = key
  @value = value
end

Instance Attribute Details

#keyObject (readonly)

Returns the value of attribute key.



16
17
18
# File 'lib/transfer/rule.rb', line 16

def key
  @key
end

#valueObject (readonly)

Returns the value of attribute value.



16
17
18
# File 'lib/transfer/rule.rb', line 16

def value
  @value
end

Class Method Details

.parse_rules(rules) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/transfer/rule.rb', line 22

def self.parse_rules(rules)
  resource_maker = StarkBank::Transfer::Rule.resource[:resource_maker]
  return rules if rules.nil?

  parsed_rules = []
  rules.each do |rule|
    unless rule.is_a? Rule
      rule = StarkCore::Utils::API.from_api_json(resource_maker, rule)
    end
    parsed_rules << rule
  end
  return parsed_rules
end

.resourceObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/transfer/rule.rb', line 36

def self.resource
{
  resource_name: 'Rule',
  resource_maker: proc { |json|
    Rule.new(
      key: json['key'],
      value: json['value']
    )
  }
}
end