czech_exchange_rates 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ # encoding : utf-8
2
+
3
+ require 'net/http'
4
+ require 'date'
5
+
6
+ class CzechExchangeRates
7
+
8
+ attr_reader :date, :currency, :exchange_rate
9
+
10
+ def initialize
11
+ @exchange_rate = 0
12
+ end
13
+
14
+ PAGE_URI = 'http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date='
15
+
16
+ def get_exchange_rate(currency, date = Date.new)
17
+ table = get_table(date)
18
+
19
+ first_line = table.split("\n").first
20
+
21
+ table.each_line do |line|
22
+ if line.match(currency)
23
+ l = line.split('|')
24
+
25
+ @exchange_rate = l[4].strip.gsub(',','.').to_f
26
+ @currency = l[3]
27
+ @date = Date.parse(first_line)
28
+
29
+ return true
30
+ end
31
+ end
32
+ end
33
+
34
+ def get_table(date = Date.new)
35
+ uri = "#{PAGE_URI}#{date.day}.#{date.month}.#{date.year}"
36
+ response = Net::HTTP.get_response(URI.parse(uri))
37
+
38
+ return response.body
39
+ end
40
+
41
+ end
@@ -0,0 +1,27 @@
1
+ # encoding : utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ require 'date'
6
+
7
+ describe CzechExchangeRates do
8
+
9
+ context 'returns course for currency and date' do
10
+
11
+ it 'gets exchange rate table' do
12
+ subject.get_table.should be_instance_of String
13
+ end
14
+
15
+ it 'finds exchange rate for currency' do
16
+ date = Date.parse('9.10.2012')
17
+ subject.get_exchange_rate('EUR', date)
18
+
19
+ subject.date.should == date
20
+ subject.currency.should == 'EUR'
21
+ subject.exchange_rate.should be_instance_of Float
22
+ subject.exchange_rate.should > 0
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,5 @@
1
+ # encoding : utf-8
2
+
3
+ $LOAD_PATH.unshift 'lib'
4
+
5
+ require 'czech_exchange_rates'
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: czech_exchange_rates
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Adam Tomeček
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-09 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Simple gem for grabbing course from Czech National Bank course table
15
+ email: adam.tomecek@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/czech_exchange_rates.rb
21
+ - spec/spec_helper.rb
22
+ - spec/czech_exchange_rates_spec.rb
23
+ homepage: https://github.com/adamtomecek/Czech-Exchange-Rates-gem
24
+ licenses: []
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 1.8.15
44
+ signing_key:
45
+ specification_version: 3
46
+ summary: CNB exchange rates grabber
47
+ test_files:
48
+ - spec/spec_helper.rb
49
+ - spec/czech_exchange_rates_spec.rb