samurai 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :gemcutter
2
+
3
+ # Specify your gem's dependencies in samurai.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ Samurai
2
+ -------
3
+
4
+ If you are an online merchant and using samurai.feefighers.com,
5
+ this gem will make your life easy. Integrate with the
6
+ samuari.feefighters.com portal and process transactions.
7
+
8
+
9
+ Easy.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,9 @@
1
+ class Samurai::Base < ActiveResource::Base
2
+
3
+ def self.setup_site!
4
+ self.site = Samurai.site
5
+ self.user = Samurai.merchant_key
6
+ self.password = Samurai.merchant_password
7
+ end
8
+
9
+ end
@@ -0,0 +1,26 @@
1
+ class Samurai::Gateway < Samurai::Base
2
+
3
+ def self.the_gateway
4
+ Ubergateway::Gateway.new(:id => Samurai.gateway_token)
5
+ end
6
+
7
+ def purchase(payment_method_token, amount)
8
+ # send a purchase request
9
+ resp = post(:purchase,
10
+ :transaction => {
11
+ :amount => amount,
12
+ :type => 'purchase',
13
+ :payment_method_token => payment_method_token,
14
+ :currency_code => 'USD'
15
+ }
16
+ )
17
+ # return the response, wrapped in a Samurai::Transaction
18
+ Samurai::Transaction.new.load_attributes_from_response(resp)
19
+ end
20
+
21
+ # TODO implement this functionality
22
+ # def authorize
23
+ # post(:authorize)
24
+ # end
25
+
26
+ end
@@ -0,0 +1,22 @@
1
+ class Samurai::PaymentMethod < Samurai::Base
2
+
3
+ def id
4
+ self.token
5
+ end
6
+
7
+ def token
8
+ self.payment_method_token
9
+ end
10
+
11
+ def retain
12
+ self.post(:retain)
13
+ end
14
+
15
+ def redact
16
+ self.post(:redact)
17
+ end
18
+
19
+ def custom_data
20
+ @custom_data ||= self.custom && (JSON.parse(self.custom) rescue {}).symbolize_keys
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ class Samurai::Transaction < Samurai::Base
2
+
3
+ def id
4
+ self.reference_id
5
+ end
6
+
7
+ def token
8
+ transaction_token
9
+ end
10
+
11
+ def capture
12
+
13
+ end
14
+
15
+ def void
16
+
17
+ end
18
+
19
+ def credit
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,3 @@
1
+ module Samurai
2
+ VERSION = "0.0.3".freeze
3
+ end
data/lib/samurai.rb ADDED
@@ -0,0 +1,36 @@
1
+ module Samurai
2
+
3
+ mattr_accessor :site
4
+ @@site = case Rails.env
5
+ when 'development'
6
+ 'http://localhost:3002'
7
+ when 'staging'
8
+ 'http://staging.api.ubergateway.com'
9
+ else
10
+ 'http://api.ubergateway.com'
11
+ end << '/v1/'
12
+
13
+ mattr_accessor :merchant_key
14
+ @@merchant_key = nil
15
+
16
+ mattr_accessor :merchant_password
17
+ @@merchant_password = nil
18
+
19
+ mattr_accessor :gateway_token
20
+ @@gateway_token = nil
21
+
22
+ def self.setup_site(site, merchant_key, merchant_password, gateway_token = nil)
23
+ site += '/v1/' unless site =~ /\/v1\/$/
24
+ @@site = site
25
+ @@merchant_key = merchant_key
26
+ @@merchant_password = merchant_password
27
+ @@gateway_token = gateway_token if gateway_token
28
+ Samurai::Base.setup_site!
29
+ end
30
+
31
+ end
32
+
33
+ require 'samurai/base'
34
+ require 'samurai/gateway'
35
+ require 'samurai/payment_method'
36
+ require 'samurai/transaction'
data/samurai.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/samurai/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "samurai"
6
+ s.version = Samurai::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Graeme Rouse", "Derek Zak"]
9
+ s.email = ["graeme@ubergateway.com", "derek@ubergateway.com"]
10
+ s.homepage = "http://rubygems.org/gems/samurai"
11
+ s.summary = "Integration gem for samurai.feefighters.com"
12
+ s.description = "If you are an online merchant and using samurai.feefighers.com, this gem will make your life easy. Integrate with the samuari.feefighters.com portal and process transaction."
13
+
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+ s.rubyforge_project = "samurai"
16
+
17
+ s.add_development_dependency "bundler", ">= 1.0.0"
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
21
+ s.require_path = 'lib'
22
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: samurai
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Graeme Rouse
14
+ - Derek Zak
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2011-07-13 00:00:00 -07:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: bundler
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 23
31
+ segments:
32
+ - 1
33
+ - 0
34
+ - 0
35
+ version: 1.0.0
36
+ type: :development
37
+ version_requirements: *id001
38
+ description: If you are an online merchant and using samurai.feefighers.com, this gem will make your life easy. Integrate with the samuari.feefighters.com portal and process transaction.
39
+ email:
40
+ - graeme@ubergateway.com
41
+ - derek@ubergateway.com
42
+ executables: []
43
+
44
+ extensions: []
45
+
46
+ extra_rdoc_files: []
47
+
48
+ files:
49
+ - .gitignore
50
+ - Gemfile
51
+ - README.md
52
+ - Rakefile
53
+ - lib/samurai.rb
54
+ - lib/samurai/base.rb
55
+ - lib/samurai/gateway.rb
56
+ - lib/samurai/payment_method.rb
57
+ - lib/samurai/transaction.rb
58
+ - lib/samurai/version.rb
59
+ - samurai.gemspec
60
+ has_rdoc: true
61
+ homepage: http://rubygems.org/gems/samurai
62
+ licenses: []
63
+
64
+ post_install_message:
65
+ rdoc_options: []
66
+
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 23
84
+ segments:
85
+ - 1
86
+ - 3
87
+ - 6
88
+ version: 1.3.6
89
+ requirements: []
90
+
91
+ rubyforge_project: samurai
92
+ rubygems_version: 1.3.7
93
+ signing_key:
94
+ specification_version: 3
95
+ summary: Integration gem for samurai.feefighters.com
96
+ test_files: []
97
+