allorails 0.3.1 → 0.3.2

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.
data/Manifest CHANGED
@@ -1,6 +1,5 @@
1
1
  README.md
2
2
  Rakefile
3
- allorails.gemspec
4
3
  init.rb
5
4
  lib/allorails.rb
6
5
  lib/allorails/api/api.rb
data/README.md CHANGED
@@ -1,7 +1,69 @@
1
- *IMPORTANT:* Allorails is still being developed and tested. Use at your own risk ;)
1
+ # Allorails
2
2
 
3
- ## Allorails
3
+ Allorails is a Ruby client for Allopass's online payment REST API. It allows Ruby and Rails developers to easily integrate their software with the Allopass online payment platform.
4
4
 
5
- Allorails is a Ruby gem which allows to interact with Allopass's online payment REST API.
5
+ ### Setup
6
6
 
7
- It is a Ruby port of the Allopass ApiKit for Python written by Pierre Geoffroy and available [here](http://developer.allopass.com/apidoc/kit/python3.1/index.html).
7
+ Despite the name, Allorails *does not* require Rails, and can be used just like any ordinary Ruby gem:
8
+
9
+ gem install allorails
10
+
11
+ will install the `allorails` gem on your system. You can then `require "allorails"` from your Ruby code, which makes the `Allorails` class available.
12
+
13
+ **Rails users**, you can simply add the following line to your `Gemfile`
14
+
15
+ gem allorails
16
+
17
+ ### Configuration
18
+
19
+ You can provide configuration options to Allorails by calling `Allorails.config` :
20
+
21
+ Allorails.config({
22
+ :accounts => {
23
+ :'your@account.email' => {
24
+ :api_key => 'your-allopass-api-key',
25
+ :private_key => 'your-allopass-private-key'
26
+ }
27
+ }
28
+ })
29
+
30
+ **Rails users**: you can put the above code in an initializer, e.g. `config/initializers/allorails.rb`, or use the `allorails.yml` configuration method explained below.
31
+
32
+ **Multiple accounts** can be set up by adding other email addresses to the `:accounts` hash.
33
+
34
+ ### Usage
35
+
36
+ Now that the configuration is done, let's start using the API:
37
+
38
+ api = Allorails::Api.new
39
+ response = api.get_onetime_pricing({'site_id' => YOUR_SITE_ID, 'country' => 'UK'})
40
+ puts response.creation_date
41
+
42
+ If you have set up multiple accounts, you can choose which one to use by passing the email address to Api.new: `Allorails::Api.new('your@account.email')`
43
+
44
+ ### Rails users: `allorails.yml` configuration file
45
+
46
+ You can put your configuration options in a yaml file located at `config/allorails.yml`. This file must have the same structure as the standard `database.yml` file found in all Rails applications, i.e. it must include a key for each environment:
47
+
48
+ development:
49
+ accounts:
50
+ your@account.email:
51
+ api_key: "YOUR_API_KEY"
52
+ private_key: "YOUR_PRIVATE_KEY"
53
+
54
+ # optional settings
55
+ # (the values below are the defaults)
56
+ default_hash: "sha1"
57
+ default_format: "json"
58
+ network_timeout: 20
59
+ network_protocol: "http"
60
+ network_port: 80
61
+ host: "api.allopass.com"
62
+
63
+
64
+
65
+
66
+
67
+ ### Credits
68
+
69
+ Allorails is inspired by the Allopass ApiKit for Python written by Pierre Geoffroy and available [here](http://developer.allopass.com/apidoc/kit/python3.1/index.html).
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('allorails', '0.3.1') do |p|
5
+ Echoe.new('allorails', '0.3.2') do |p|
6
6
  p.description = "Ruby client for the Allopass online payment REST API"
7
7
  p.url = "http://github.com/davb/allorails"
8
8
  p.author = "Davide Bonapersona"
data/allorails.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "allorails"
5
- s.version = "0.3.1"
5
+ s.version = "0.3.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Davide Bonapersona"]
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.description = "Ruby client for the Allopass online payment REST API"
11
11
  s.email = "davide@feeligo.com"
12
12
  s.extra_rdoc_files = ["README.md", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/model.rb", "lib/allorails/response/response.rb"]
13
- s.files = ["README.md", "Rakefile", "allorails.gemspec", "init.rb", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/model.rb", "lib/allorails/response/response.rb", "test/allorails_spec.rb", "test/test-conf-sample.yml", "test/test-conf.yml", "Manifest"]
13
+ s.files = ["README.md", "Rakefile", "init.rb", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/model.rb", "lib/allorails/response/response.rb", "test/allorails_spec.rb", "test/test-conf-sample.yml", "test/test-conf.yml", "Manifest", "allorails.gemspec"]
14
14
  s.homepage = "http://github.com/davb/allorails"
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Allorails", "--main", "README.md"]
16
16
  s.require_paths = ["lib"]
@@ -38,7 +38,7 @@ module Allorails
38
38
  # @param emailAccount (string) Configurated email account
39
39
  def initialize(parameters, mapping = true, email_account = nil)
40
40
  @_mapping = mapping
41
- @_parameters = parameters
41
+ @_parameters = _stringify_symbols parameters
42
42
  @_email_account = email_account
43
43
  end
44
44
 
@@ -55,6 +55,14 @@ module Allorails
55
55
  return Allorails::Response::ApiResponse.new(signature, headers, body)
56
56
  end
57
57
  end
58
+
59
+ # Internal method to turn symbols (keys and values) into strings
60
+ def _stringify_symbols x
61
+ return x.to_s if x.is_a?(Symbol)
62
+ return x.map{|y| _stringify_symbols y} if x.is_a?(Array)
63
+ return x.inject({}) {|h, (k,v)| h[_stringify_symbols k] = _stringify_symbols v; h} if x.is_a?(Hash)
64
+ return x
65
+ end
58
66
 
59
67
  ## Internal method building special required API parameters
60
68
  #
@@ -123,7 +123,7 @@ module Allorails
123
123
 
124
124
  ## Provides the website
125
125
  # @return (Website) website
126
- node_reader :website
126
+ node_reader :website, Website
127
127
 
128
128
  ## Provides the pricepoints by countries
129
129
  # @return (Array) available countries (list of Country object)
@@ -190,7 +190,7 @@ module Allorails
190
190
 
191
191
  ## Provides the website
192
192
  # @return (Website) website
193
- node_reader :website
193
+ node_reader :website, Website
194
194
 
195
195
  ## Provides the customer ip
196
196
  # @return (string) customer ip
@@ -256,7 +256,7 @@ module Allorails
256
256
 
257
257
  ## Provides the website
258
258
  # @return (Website) website
259
- node_reader :website
259
+ node_reader :website, Website
260
260
 
261
261
  ## Provides the expected number of codes
262
262
  # @return (int) expected number of codes
@@ -306,7 +306,7 @@ module Allorails
306
306
 
307
307
  ## Provides the website
308
308
  # @return (Website) website
309
- node_reader :website
309
+ node_reader :website, Website
310
310
 
311
311
  ## Provides the buy url
312
312
  # @return (string) buy url
@@ -31,10 +31,11 @@ end
31
31
 
32
32
  describe Allorails::Api, "#get_onetime_pricing" do
33
33
  api = Allorails::Api.new
34
- resp = api.get_onetime_pricing({'site_id' => YOUR_SITE_ID, 'country' => TEST_COUNTRY_CODE})
35
34
  it "returns a valid response" do
35
+ resp = api.get_onetime_pricing({'site_id' => YOUR_SITE_ID, 'country' => TEST_COUNTRY_CODE})
36
36
  resp.to_s.should_not be_nil
37
37
  resp.creation_date.is_a?(DateTime).should be_true
38
+ resp.website.is_a?(Allorails::Website).should be_true
38
39
  resp.regions.is_a?(Array).should be_true
39
40
  resp.regions.each do |reg|
40
41
  reg.is_a?(Allorails::Region).should be_true
@@ -45,6 +46,10 @@ describe Allorails::Api, "#get_onetime_pricing" do
45
46
  end
46
47
  end
47
48
  end
49
+ it "works with symbol keys and values" do
50
+ resp = api.get_onetime_pricing({:site_id => YOUR_SITE_ID, :country => TEST_COUNTRY_CODE.to_sym})
51
+ resp.creation_date.is_a?(DateTime).should be_true
52
+ end
48
53
  end
49
54
 
50
55
  describe Allorails::Api, "#create_discrete_button" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allorails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -28,7 +28,6 @@ extra_rdoc_files:
28
28
  files:
29
29
  - README.md
30
30
  - Rakefile
31
- - allorails.gemspec
32
31
  - init.rb
33
32
  - lib/allorails.rb
34
33
  - lib/allorails/api/api.rb
@@ -42,6 +41,7 @@ files:
42
41
  - test/test-conf-sample.yml
43
42
  - test/test-conf.yml
44
43
  - Manifest
44
+ - allorails.gemspec
45
45
  homepage: http://github.com/davb/allorails
46
46
  licenses: []
47
47
  post_install_message: