Module: Shouhizei

Defined in:
lib/shouhizei.rb,
lib/shouhizei/version.rb

Constant Summary collapse

RoundUp =
'Up'
RoundDown =
'Down'
Round =
'Round'
VERSION =
'0.5.2'

Class Method Summary collapse

Class Method Details

.configObject



29
30
31
# File 'lib/shouhizei.rb', line 29

def self.config
  @@config ||= {rounding: RoundDown}
end

.including(price:, time: Time.current, reduced: false, rounding: config[:rounding]) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/shouhizei.rb', line 21

def self.including(price:, time: Time.current, reduced: false, rounding: config[:rounding])
  including_price = price + price * rate_on(time, reduced: reduced)

  return including_price.round if rounding == Round
  return including_price.ceil if rounding == RoundUp
  including_price.floor
end

.rate_on(time = Time.current, reduced: false) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/shouhizei.rb', line 11

def self.rate_on(time = Time.current, reduced: false)
  date = time.in_time_zone('Asia/Tokyo').to_date
  rate_list.reverse_each do |key_date, rate|
    rate_key = reduced && rate['reduced'] ? 'reduced' : 'default'

    return rate[rate_key].to_r if date >= key_date
  end
  0.0r
end