Class: Fixer::Request
- Inherits:
-
Object
- Object
- Fixer::Request
- Defined in:
- lib/fixer/request.rb
Instance Attribute Summary collapse
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Instance Method Summary collapse
- #get_rate {|r_obj| ... } ⇒ Object
-
#initialize(base = Fixer.base) ⇒ Request
constructor
A new instance of Request.
- #transfer(data) ⇒ Object
Constructor Details
Instance Attribute Details
#response ⇒ Object (readonly)
Returns the value of attribute response.
3 4 5 |
# File 'lib/fixer/request.rb', line 3 def response @response end |
Instance Method Details
#get_rate {|r_obj| ... } ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/fixer/request.rb', line 26 def get_rate result = JSON.parse @response.body, symbolize_names: true base = {base: @base} rates = result[:rates] currencies = base.merge(rates) r_obj = OpenStruct.new currencies yield r_obj end |
#transfer(data) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fixer/request.rb', line 10 def transfer(data) if data.is_a? Hash if [:target, :ammount].all? { |k| data.key? k } target = data[:target] if (valid_currency?(target)) && data[:ammount].is_a?(Numeric) result = JSON.parse @response.body, symbolize_names: true data[:ammount] * result[:rates][target.to_sym] else raise "current currency is not supported or ammount set to an non-integer value" end end else raise "only hash allowed" end end |