mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
![]() |
require 'fog/cloudsigma/nested_model'
|
||
|
require 'bigdecimal'
|
||
|
|
||
|
module Fog
|
||
|
module Compute
|
||
|
class CloudSigma
|
||
|
class PriceRecord < Fog::CloudSigma::CloudsigmaModel
|
||
|
attribute :resource, :type => :string
|
||
|
attribute :multiplier, :type => :integer
|
||
|
attribute :price, :type => :string
|
||
|
attribute :level, :type => :integer
|
||
|
attribute :currency, :type => :string
|
||
|
attribute :unit, :type => :string
|
||
|
|
||
|
def price
|
||
|
if attributes[:price]
|
||
|
BigDecimal(attributes[:price])
|
||
|
else
|
||
|
nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def price=(new_price)
|
||
|
attributes[:price] = new_price.kind_of?(String) ? new_price : new_price.to_s('F')
|
||
|
end
|
||
|
|
||
|
# The base price of the resource.
|
||
|
# This is the price for the base API unit which is byte for memory, data, etc. and MHz for CPU.
|
||
|
# Also the price is per second for time based resource (basically everything except data transfer which is not
|
||
|
# limited in time)
|
||
|
def base_price
|
||
|
price / multiplier
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|