Module: Cashbox::Type

Defined in:
lib/cashbox/type.rb

Class Method Summary collapse

Class Method Details

.BooleanObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/cashbox/type.rb', line 15

def self.Boolean
  @boolean ||= -> (value) do
    case value
    when String
      !!(value =~ /\A(true|t|yes|y|1)\z/i)
    when Numeric
      !value.to_i.zero?
    else
      value == true
    end
  end
end

.DateTimeObject



11
12
13
# File 'lib/cashbox/type.rb', line 11

def self.DateTime
  @date_time ||= -> (value) { value.is_a?(DateTime) ? value : DateTime.parse(value) }
end

.List(type) ⇒ Object



2
3
4
5
6
7
8
9
# File 'lib/cashbox/type.rb', line 2

def self.List(type)
  @list ||= {}
  @list[type] ||= -> (data) do
    data = data.is_a?(Hash) ? data['data'] : data
    data.map { |value| type.new(value) }
  end
  @list[type]
end