Module: DPay::Internal::Coerce

Defined in:
lib/dpay/internal/coerce.rb,
sig/dpay/internal/coerce.rbs

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.boolean(value) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/dpay/internal/coerce.rb', line 19

def boolean(value)
  return value if value.is_a?(TrueClass) || value.is_a?(FalseClass)
  return value != 0 if value.is_a?(Numeric)
  return !value.empty? && value != "0" if value.is_a?(String)

  false
end

.integer(value) ⇒ Object



27
28
29
30
31
32
# File 'lib/dpay/internal/coerce.rb', line 27

def integer(value)
  return value.to_i if value.is_a?(Numeric)
  return value.to_i if value.is_a?(String) && /\A\s*[+-]?\d+/.match?(value)

  0
end

.list(value) ⇒ Object



41
42
43
# File 'lib/dpay/internal/coerce.rb', line 41

def list(value)
  value.is_a?(Array) ? value.grep(Hash) : []
end

.money(value, currency = Currency::PLN) ⇒ Object



15
16
17
# File 'lib/dpay/internal/coerce.rb', line 15

def money(value, currency = Currency::PLN)
  Money.try_from_api_number(value.nil? ? 0 : value, currency) || Money.pln(0)
end

.optional_integer(value) ⇒ Object



34
35
36
37
38
39
# File 'lib/dpay/internal/coerce.rb', line 34

def optional_integer(value)
  return value.to_i if value.is_a?(Numeric)
  return value.to_i if value.is_a?(String) && /\A\s*[+-]?\d+\z/.match?(value)

  nil
end

.string(value) ⇒ Object



8
9
10
11
12
13
# File 'lib/dpay/internal/coerce.rb', line 8

def string(value)
  return nil unless value.is_a?(String) || value.is_a?(Numeric) ||
                    value.is_a?(TrueClass) || value.is_a?(FalseClass)

  PHP.strval(value)
end

Instance Method Details

#self?.booleanBoolean

Parameters:

  • value (Object)

Returns:

  • (Boolean)


6
# File 'sig/dpay/internal/coerce.rbs', line 6

def self?.boolean: (untyped value) -> bool

#self?.integerInteger

Parameters:

  • value (Integer, Float, String, bool, nil)

Returns:

  • (Integer)


7
# File 'sig/dpay/internal/coerce.rbs', line 7

def self?.integer: (Integer | Float | String | bool | nil value) -> Integer

#self?.listArray[Hash[String, untyped]]

Parameters:

  • value (Object)

Returns:

  • (Array[Hash[String, untyped]])


9
# File 'sig/dpay/internal/coerce.rbs', line 9

def self?.list: (untyped value) -> Array[Hash[String, untyped]]

#self?.moneyMoney

Parameters:

  • value (Object)
  • currency (String)

Returns:



5
# File 'sig/dpay/internal/coerce.rbs', line 5

def self?.money: (untyped value, ?String currency) -> Money

#self?.optional_integerInteger?

Parameters:

  • value (Integer, Float, String, bool, nil)

Returns:

  • (Integer, nil)


8
# File 'sig/dpay/internal/coerce.rbs', line 8

def self?.optional_integer: (Integer | Float | String | bool | nil value) -> Integer?

#self?.stringString?

Parameters:

  • value (Object)

Returns:

  • (String, nil)


4
# File 'sig/dpay/internal/coerce.rbs', line 4

def self?.string: (untyped value) -> String?