apilayer 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []