apilayer 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7c74d7ef9158c6816618bfdefc24b46add14a17f
4
+ data.tar.gz: 0925e5677d3797905b3904681c05c68da90b38f9
5
+ SHA512:
6
+ metadata.gz: 072fe6a9874a9c5bf297fddc8fd78d6f45d07e88aa97fd19fef7795ac24cdcc9350d8013a41afabe34bd12924073b6bb9729b35e8eb0a2e5cccd3a8fa157ce55
7
+ data.tar.gz: 204aeaf2ee0049706999a04d31e516f420254ac54cf35333d91c6aa66bfda0a9fdd16f8bc17bdc27d213760aa2c6d23cfe1316d56ea457909a5763a414d23090
data/lib/apilayer.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'rubygems'
2
+ require "faraday"
3
+ require "json"
4
+
5
+ module Apilayer
6
+ class << self
7
+ attr_writer :configs
8
+ end
9
+
10
+ def self.init_configs
11
+ keys = Struct.new(:currency_key, :vat_key)
12
+ keys.new
13
+ end
14
+
15
+ def self.configs
16
+ @configs ||= init_configs
17
+ end
18
+
19
+ def self.reset
20
+ @configs = init_configs
21
+ end
22
+
23
+ def self.configure
24
+ yield(configs)
25
+ end
26
+ end
27
+
28
+ require "apilayer/currency"
29
+ require "apilayer/vat"
30
+ require "apilayer/error"
@@ -0,0 +1,42 @@
1
+ module Apilayer
2
+
3
+ module Currency
4
+
5
+ def self.connection
6
+ if Apilayer.configs[:currency_key].nil?
7
+ raise Apilayer::Error.new "Please configure access_key for currency_layer first!"
8
+ else
9
+ @connection ||= ::Faraday.new(:url => 'http://apilayer.net',
10
+ :params => {"access_key" => Apilayer.configs[:currency_key]})
11
+ end
12
+ end
13
+
14
+ def self.live(*currencies)
15
+ resp = connection.get do |req|
16
+ req.url 'api/live'
17
+ req.params['currencies'] = currencies.map(&:strip).join(",")
18
+ end
19
+ JSON.parse(resp.body)
20
+ end
21
+
22
+ def self.historical(date, *currencies)
23
+ resp = connection.get do |req|
24
+ req.url 'api/historical'
25
+ req.params['date'] = date
26
+ req.params['currencies'] = currencies.map(&:strip).join(",") if currencies.any?
27
+ end
28
+ JSON.parse(resp.body)
29
+ end
30
+
31
+ def self.convert(from, to, amount, date=nil)
32
+ resp = connection.get do |req|
33
+ req.url 'api/convert' # static
34
+ req.params['from'] = from
35
+ req.params['to'] = to
36
+ req.params['amount'] = amount
37
+ req.params['date'] = date if date
38
+ end
39
+ JSON.parse(resp.body)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,51 @@
1
+ module Apilayer
2
+
3
+ module Vat
4
+ def self.connection
5
+ if Apilayer.configs[:vat_key].nil?
6
+ raise Apilayer::Error.new "Please configure access_key for vat_layer first!"
7
+ else
8
+ @connection ||= ::Faraday.new(:url => 'http://apilayer.net',
9
+ :params => {"access_key" => Apilayer.configs[:vat_key]})
10
+ end
11
+ end
12
+
13
+ def self.validate(vat_number)
14
+ resp = connection.get do |req|
15
+ req.url 'api/validate'
16
+ req.params['vat_number'] = vat_number
17
+ end
18
+ JSON.parse(resp.body)
19
+ end
20
+
21
+ def self.rate(criteria, value)
22
+ unless [:country_code, :ip_address].include? criteria
23
+ raise Apilayer::Error.new("You must provide either :country_code or :ip_address")
24
+ end
25
+ resp = connection.get do |req|
26
+ req.url 'api/rate'
27
+ req.params[criteria.to_s] = value
28
+ end
29
+ JSON.parse(resp.body)
30
+ end
31
+
32
+ def self.rate_list
33
+ resp = connection.get do |req|
34
+ req.url 'api/rate_list'
35
+ end
36
+ JSON.parse(resp.body)
37
+ end
38
+
39
+ def self.price(price, criteria, value)
40
+ unless [:country_code, :ip_address].include? criteria
41
+ raise Apilayer::Error.new("You must provide either :country_code or :ip_address")
42
+ end
43
+ resp = connection.get do |req|
44
+ req.url 'api/price'
45
+ req.params['amount'] = price
46
+ req.params[criteria.to_s] = value
47
+ end
48
+ JSON.parse(resp.body)
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apilayer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Fong
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.7.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.7'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.7.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: faraday
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.9'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.9.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.9'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.9.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: pry
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.10'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.10.1
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.10'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.10.1
73
+ - !ruby/object:Gem::Dependency
74
+ name: bundler
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.7'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.7.9
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.7'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.7.9
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '3.0'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 3.0.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.0'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 3.0.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: vcr
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '3.0'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 3.0.1
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '3.0'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 3.0.1
133
+ - !ruby/object:Gem::Dependency
134
+ name: webmock
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '2.0'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 2.0.1
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '2.0'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 2.0.1
153
+ description: Ruby wrapper for various services of apilayer. Currently supporting currencylayer
154
+ and vatlayer. See https://apilayer.com/ for more details.
155
+ email:
156
+ - actfong@gmail.com
157
+ executables: []
158
+ extensions: []
159
+ extra_rdoc_files: []
160
+ files:
161
+ - lib/apilayer.rb
162
+ - lib/apilayer/currency.rb
163
+ - lib/apilayer/vat.rb
164
+ homepage: https://github.com/actfong/apilayer
165
+ licenses:
166
+ - MIT
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.4.5
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: Ruby wrapper for various services of apilayer. See https://apilayer.com/
188
+ for more details.
189
+ test_files: []