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
- .config ⇒ Object
- .including(price:, time: Time.current, reduced: false, rounding: config[:rounding]) ⇒ Object
- .rate_on(time = Time.current, reduced: false) ⇒ Object
Class Method Details
.config ⇒ Object
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 |