infinite_pay 1.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 +7 -0
- data/.gitignore +1 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +35 -0
- data/README.md +51 -0
- data/RELEASE_NOTES.md +5 -0
- data/Rakefile +34 -0
- data/infinite_pay.gemspec +25 -0
- data/lib/main.rb +47 -0
- metadata +109 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 43bc736d974ec9a7b7682a52faa71df90ae68aab
|
4
|
+
data.tar.gz: 8a3ad1337641c79ceab7f4f7d9d7c48dfedc870a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a53670c568bd5004f60b52e70c5758f59521dacd0296ad0596ee503e1849d7184c96e28fd9a4f3802b325e3ac77ad558b2ea564ec98c7dcad15da86f4edc1177
|
7
|
+
data.tar.gz: 013e87587342522fdf3933f7526b568bbb2f2abe3f1b1030e2ea236597f10567c0a531ab535ca291ecfafb9414ea639503d3eafe3c3fae98b740993c1d5375f8
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
out/
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
GEM
|
2
|
+
remote: https://rubygems.org/
|
3
|
+
specs:
|
4
|
+
archive-zip (0.11.0)
|
5
|
+
io-like (~> 0.3.0)
|
6
|
+
cloudwalk (1.14.0)
|
7
|
+
bundler
|
8
|
+
rake
|
9
|
+
cloudwalk_handshake (0.13.2)
|
10
|
+
da_funk (2.3.0)
|
11
|
+
archive-zip (~> 0.5)
|
12
|
+
bundler
|
13
|
+
cloudwalk_handshake
|
14
|
+
funky-emv
|
15
|
+
posxml_parser
|
16
|
+
rake
|
17
|
+
funky-emv (0.20.1)
|
18
|
+
funky-tlv (~> 0.2)
|
19
|
+
funky-tlv (0.2.3)
|
20
|
+
io-like (0.3.0)
|
21
|
+
posxml_parser (2.10.0)
|
22
|
+
funky-emv (~> 0.3)
|
23
|
+
rake (12.3.2)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
ruby
|
27
|
+
|
28
|
+
DEPENDENCIES
|
29
|
+
cloudwalk
|
30
|
+
da_funk
|
31
|
+
posxml_parser
|
32
|
+
rake
|
33
|
+
|
34
|
+
BUNDLED WITH
|
35
|
+
1.16.1
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Funky Application
|
2
|
+
|
3
|
+
## Usage
|
4
|
+
|
5
|
+
### Setup
|
6
|
+
|
7
|
+
With Ruby installed and repository cloned, execute in root of repo:
|
8
|
+
|
9
|
+
bundle install # Install CloudWalk CLI
|
10
|
+
|
11
|
+
### Files and Directories
|
12
|
+
|
13
|
+
- `lib/` Contain .rb files that will be compiled.
|
14
|
+
- `test/` Contain all ruby files for test.
|
15
|
+
- `Gemfile/Gemfile.lock` Manage CloudWalk CLI version and any other Ruby gem, do not touch at `Gemfile.lock`
|
16
|
+
- `Cwfile.json` Manage Application attributes, application version and application modules versions.
|
17
|
+
- `Cwfile.json.lock` Contain the id's for all versions managed by `Cwfile.json`. **DO NOT MODIFY THIS FILE, IT'S AUTOMATICA GENERATED**
|
18
|
+
- `Rakefile` Defition of task files.
|
19
|
+
- `out` Contain the .mrb files compiled by tasks.
|
20
|
+
|
21
|
+
### Compiling
|
22
|
+
|
23
|
+
Compile all ./lib/**/*.rb files:
|
24
|
+
|
25
|
+
bundle exec rake cloudwalk:build
|
26
|
+
# or
|
27
|
+
bundle exec rake
|
28
|
+
|
29
|
+
### Deploying
|
30
|
+
|
31
|
+
Deploying all out files:
|
32
|
+
|
33
|
+
bundle exec rake cloudwalk:build <lib/path/to/file.xml>
|
34
|
+
|
35
|
+
### Testing
|
36
|
+
|
37
|
+
Execute all tests
|
38
|
+
|
39
|
+
bundle exec rake test
|
40
|
+
|
41
|
+
Execute unit tests
|
42
|
+
|
43
|
+
bundle exec rake test:unit
|
44
|
+
|
45
|
+
Execute integration tests
|
46
|
+
|
47
|
+
bundle exec rake test:integration
|
48
|
+
|
49
|
+
Execute unique test
|
50
|
+
|
51
|
+
bundle exec rake test </path/to/test/file_test.rb>
|
data/RELEASE_NOTES.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'bundler/setup'
|
6
|
+
|
7
|
+
Bundler.require(:default)
|
8
|
+
|
9
|
+
Cloudwalk::Ruby::RakeTask.new do |t|
|
10
|
+
t.debug = false
|
11
|
+
end
|
12
|
+
|
13
|
+
DaFunk::RakeTask.new do |t|
|
14
|
+
t.mrbc = "cloudwalk compile"
|
15
|
+
t.mruby = "cloudwalk run -b"
|
16
|
+
t.debug = false
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Generate infinitepay gem to upload to RubyGems.org. "
|
20
|
+
task :gem do
|
21
|
+
puts "Be careful this action will move out/cw_infinitepay to out/infinite_pay"
|
22
|
+
input = ""
|
23
|
+
while (input != "y" && input != "n") do
|
24
|
+
puts "Are you sure? (Y/N)"
|
25
|
+
input = STDIN.gets.to_s.chomp.downcase
|
26
|
+
end
|
27
|
+
|
28
|
+
if input == "y"
|
29
|
+
sh "rake"
|
30
|
+
FileUtils.mv("out/cw_infinitepay", "out/infinite_pay")
|
31
|
+
sh "gem build infinite_pay.gemspec"
|
32
|
+
FileUtils.mv("out/infinite_pay", "out/cw_infinitepay")
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'version.rb'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "infinite_pay"
|
8
|
+
spec.version = InfinitePay.version
|
9
|
+
spec.authors = ["Thiago Scalone"]
|
10
|
+
spec.email = ["thiago@cloudwalk.io"]
|
11
|
+
spec.summary = "InfinitePay Funky Library"
|
12
|
+
spec.description = "InfinitePay payment library to start transaction in DaFunk Runtime"
|
13
|
+
spec.homepage = "http://cloudwalk.io"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.files = %w(.gitignore Gemfile Gemfile.lock RELEASE_NOTES.md README.md Rakefile infinite_pay.gemspec lib/main.rb out/infinite_pay/main.mrb)
|
16
|
+
spec.extensions = []
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.8"
|
22
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
23
|
+
spec.add_dependency "da_funk", "~> 2"
|
24
|
+
spec.add_dependency "posxml_parser", "~> 2"
|
25
|
+
end
|
data/lib/main.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require "da_funk"
|
2
|
+
require "posxml_parser"
|
3
|
+
|
4
|
+
class Main < Device
|
5
|
+
def self.call(json = nil)
|
6
|
+
PosxmlInterpreter.new(parse(json), nil, false).start
|
7
|
+
true
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.parse(json)
|
11
|
+
if json && (hash = JSON.parse(json)) && hash["initialize"]
|
12
|
+
return hash["initialize"]
|
13
|
+
end
|
14
|
+
"cw_omni_main.posxml"
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.version
|
18
|
+
InfinitePay.version
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class InfinitePay
|
23
|
+
class InfinitePayError < StandardError; end
|
24
|
+
|
25
|
+
attr_accessor :amount
|
26
|
+
|
27
|
+
def initialize(amount, api_key = nil)
|
28
|
+
@amount = amount
|
29
|
+
FileDb.new("./shared/cw_emv_payment.dat")["paAmount"] = data
|
30
|
+
if api_key
|
31
|
+
@api_key = api_key
|
32
|
+
else
|
33
|
+
@api_key = DaFunk::ParamsDat.file["infinitepay_api_key"]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def start
|
38
|
+
raise InfinitePayError.new("InfinitePay API Key missing") if api_key.to_s.empty?
|
39
|
+
DaFunk::ParamsDat.file["infinitepay_api_key"] = api_key
|
40
|
+
|
41
|
+
data = ("%.2f" % amount).sub(".", "").rjust(12, "0")
|
42
|
+
FileDb.new("./shared/cw_emv_payment.dat")["paAmount"] = data
|
43
|
+
FileDb.new("./shared/cw_emv_payment.dat")["paValue"] = data
|
44
|
+
PosxmlInterpreter.new("cw_omni_readcard.posxml", nil, false).start
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: infinite_pay
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Thiago Scalone
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-01-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '12.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '12.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: da_funk
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: posxml_parser
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2'
|
69
|
+
description: InfinitePay payment library to start transaction in DaFunk Runtime
|
70
|
+
email:
|
71
|
+
- thiago@cloudwalk.io
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- Gemfile
|
78
|
+
- Gemfile.lock
|
79
|
+
- README.md
|
80
|
+
- RELEASE_NOTES.md
|
81
|
+
- Rakefile
|
82
|
+
- infinite_pay.gemspec
|
83
|
+
- lib/main.rb
|
84
|
+
- out/infinite_pay/main.mrb
|
85
|
+
homepage: http://cloudwalk.io
|
86
|
+
licenses:
|
87
|
+
- MIT
|
88
|
+
metadata: {}
|
89
|
+
post_install_message:
|
90
|
+
rdoc_options: []
|
91
|
+
require_paths:
|
92
|
+
- lib
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
requirements: []
|
104
|
+
rubyforge_project:
|
105
|
+
rubygems_version: 2.6.14
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: InfinitePay Funky Library
|
109
|
+
test_files: []
|