fxpotato 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c663877043cec3366eb337064238ed648b1a74a
4
- data.tar.gz: 55fa3d7842e78720c8770cd42634387ecd8aaac4
3
+ metadata.gz: 31a78bc0584864acd3b1f2c006bf9c9479a1db7f
4
+ data.tar.gz: 09772d1ab1bd769040464dedc738c2e3a70bb78c
5
5
  SHA512:
6
- metadata.gz: e9eb66998f8cd0eb01e649b0599685954c2db8040d0a235a1ffead475eb8792055e8a295b894a944204761ba068b5a7413991f1a7127d297cd01bbe6f93a99e3
7
- data.tar.gz: a918f7f9b03768a49242610610c4fc26a800aae87cc6eeb83e507314de75729daf32066a09db6c3d2fd7bfd2578fe363c8be6b6d866e596c9f9bc30a2f557e49
6
+ metadata.gz: ab10371c5b6c5b84fc14244aa0bf533731887a4b4c2851800365ffa0e52e8b1d7b546b0ec6975d10e142d5d8decb35d4d8410a04846957b949e710136b819fdb
7
+ data.tar.gz: 3a6b5c3ca08d75358bdeab6742b32312c5d0f7d6c5eb5963a0d71b3e66b6f971493d71689e238803b6a51df1db86019eb7822f5d46e3160c0b19b471080441d6
data/Dockerfile CHANGED
@@ -1,8 +1,8 @@
1
1
  FROM ruby:2.4.1-alpine
2
2
 
3
3
  RUN apk update && apk upgrade && \
4
- apk add --no-cache bash git
5
-
4
+ apk add --no-cache bash git libxml2-dev libxslt-dev build-base
5
+
6
6
  COPY . /usr/src/app/
7
7
 
8
8
  WORKDIR /usr/src/app
data/Rakefile CHANGED
@@ -7,14 +7,19 @@ Rake::TestTask.new(:test) do |t|
7
7
  t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
+ desc "Bump version and release gem"
11
+ task :bump_release do
12
+ sh %{ gem bump && rake release }
13
+ end
14
+
10
15
  desc "Build and test in a container"
11
16
  task :docker_test do
12
- sh %{ docker build --force-rm -t fx-potato . && docker run -it --rm fx-potato }
17
+ sh %{ docker build --force-rm -t fx-potato . && docker run --rm fx-potato }
13
18
  end
14
19
 
15
20
  desc "Build, test, bump version, and release in a container"
16
21
  task :docker_release do
17
- sh %{ docker build --force-rm -t fx-potato . && docker run -it --rm fx-potato rake test && gem bump && rake release }
22
+ sh %{ docker build --force-rm -t fx-potato . && docker run --rm fx-potato rake test && gem bump && rake release }
18
23
  end
19
24
 
20
25
  task :default => :test
data/fxpotato.gemspec CHANGED
@@ -25,4 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "minitest", "~> 5.0"
27
27
  spec.add_development_dependency "gem-release", "~> 1.0"
28
+
29
+ spec.add_dependency 'nokogiri', '~> 1.6'
28
30
  end
@@ -0,0 +1,7 @@
1
+ module FxPotato
2
+ class RateCalculator
3
+ def self.calculate(base, target)
4
+ target / base
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ require 'nokogiri'
2
+
3
+ module FxPotato
4
+ class RateStore
5
+ def initialize(xml_data)
6
+ @data = Nokogiri::XML(xml_data)
7
+ @data.remove_namespaces!
8
+ end
9
+
10
+ def get(date, currency)
11
+ query = "//Cube[@time=\'#{date.to_s}\']//Cube[@currency=\'#{currency}\']"
12
+ @data.at_xpath(query)["rate"].to_f
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module FxPotato
2
- VERSION = '0.1.4'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/fxpotato.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  require 'fxpotato/version'
2
+ require 'fxpotato/rate_calculator'
3
+ require 'fxpotato/rate_store'
2
4
 
3
5
  module FxPotato
4
6
  def self.at(date, from_currency, to_currency)
7
+ raise "Must specify date" if date.nil?
8
+ raise "Must specify from_currency" if from_currency.nil?
9
+ raise "Must specify to_currency" if to_currency.nil?
5
10
  true
6
11
  end
7
12
  end
data/shippable.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.1
4
+
5
+ build:
6
+ ci:
7
+ - bundle install
8
+ - rake docker_test
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fxpotato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liam Stupid Name Humphreys
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.6'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.6'
69
83
  description: Uses last daily feed from European Central Bank website, and exposes
70
84
  a simple interface to get the conversion rates for one currency to another on a
71
85
  given day.
@@ -87,7 +101,10 @@ files:
87
101
  - bin/setup
88
102
  - fxpotato.gemspec
89
103
  - lib/fxpotato.rb
104
+ - lib/fxpotato/rate_calculator.rb
105
+ - lib/fxpotato/rate_store.rb
90
106
  - lib/fxpotato/version.rb
107
+ - shippable.yml
91
108
  homepage: https://github.com/Angry-Potato/fxpotato
92
109
  licenses:
93
110
  - MIT