moneris_simulator 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 438ed44f5d599ac823ccc20fd72c997f0cdb778c
4
+ data.tar.gz: c93ba233becba66c51fd78ba9647b8f3ec0c4556
5
+ SHA512:
6
+ metadata.gz: b08e42c3289ab3c84fce111f7e22f08b70e08238e259a893be552d3ebf33766bd33b1b74e40dbc9b9819a3e3ab86766bf9d20b24da82633f262e4fd39bcd28ee
7
+ data.tar.gz: f5aeb184c768298af5012914bec5e9101108c01f25d8968aec1feebfb4b1fe34d4d88c0240043e0aafcff8607f83d1ec444364dfa7dc8e80f812bab42ae56f63
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/internal/db/*.sqlite
9
+ /spec/internal/tmp
10
+ /spec/reports/
11
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require rails_helper
@@ -0,0 +1,4 @@
1
+ SimpleCov.start 'rails' do
2
+ SimpleCov.minimum_coverage 100.00
3
+ add_filter "lib/moneris_simulator/version"
4
+ end
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.0
4
+ before_install: gem install bundler -v 1.11.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in moneris_simulator.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Michael van den Beuken
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,71 @@
1
+ # MonerisSimulator
2
+
3
+ MonerisSimulator is an engine that acts like the Moneris Hosted Tokenization service.
4
+
5
+ This allows us to test payment pages that use Moneris Hosted Tokenization in a way that is consistent with how the forms would work in a staging or production environment.
6
+
7
+ The engine will automatically mount itself in whichever environments the gem is included in, and will add its assets to the precompile list in those environments as well.
8
+
9
+ ```moneris_simulator.new_credit_card_path``` (/moneris/credit_cards/new) will return a credit card input with CSS styles applied, and javascript that will handle a postMessage event in a way that is consistent with Moneris' behaviour.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ group :development, :test do
17
+ gem 'moneris_simulator'
18
+ end
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ $ bundle
24
+
25
+ Or install it yourself as:
26
+
27
+ $ gem install moneris_simulator
28
+
29
+ ## Usage
30
+
31
+ Moneris Hosted Tokenization requires a payment form to include the tokenization page in an iframe, and render that as the credit card number input.
32
+ When the payment form is submitted, the click event is intercepted and a postMessage is sent to the iframe. A postMessage handler is included on the form, and waits for Moneris to post back to the parent page after it has validated the card and generated a token. It posts back with a stringified JSON object that contains dataKey (the credit card token), bin (the first 6 digits of the credit card), and responseCode (1 is a success, 50+ is a failure).
33
+
34
+ To use the MonerisSimulator, make the iframe URL variable like so:
35
+
36
+ ```
37
+ <iframe id="monerisFrame" class="moneris" src="<%= Rails.configuration.moneris_hosted_tokenization_url" frameborder="0" scrolling="no" height="37px"></iframe>
38
+ ```
39
+
40
+ in config/environments/test.rb:
41
+
42
+ ```
43
+ config.moneris_hosted_tokenization_url = "/moneris/credit_cards/new"
44
+ ```
45
+
46
+ in your feature spec:
47
+
48
+ ```
49
+ within_frame "monerisFrame" do
50
+ fill_in "monerisDataInput", with: credit_card_number
51
+ end
52
+ ```
53
+
54
+ where ```credit_card_number``` can be changed depending on the test context; a valid test credit card number from MonerisSimulator.CreditCard.validCreditCards, or an invalid test credit card number.
55
+
56
+
57
+ ## Development
58
+
59
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
60
+
61
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
62
+
63
+ ## Contributing
64
+
65
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/moneris_simulator.
66
+
67
+
68
+ ## License
69
+
70
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
71
+
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,37 @@
1
+ class MonerisSimulator.CreditCard
2
+ constructor: (args = {}) ->
3
+ args = $.extend {}, @defaults(), args
4
+ @validCreditCards = args.validCreditCards
5
+ @creditCardNumberInput = args.creditCardNumberInput
6
+ @setUpMonerisPostback()
7
+
8
+ setUpMonerisPostback: () ->
9
+ $(window).on 'message onmessage', (e) =>
10
+ window.parent.postMessage @response(), "*"
11
+
12
+ response: () ->
13
+ JSON.stringify { dataKey: @dataKey(), bin: @bin(), responseCode: @responseCode() }
14
+
15
+ creditCardNumber: () ->
16
+ @creditCardNumberInput.val().replace /\D/g, ""
17
+
18
+ dataKey: () ->
19
+ "ot-6mj5lng5b3bnnieo6ccf95p3eap4mjd"
20
+
21
+ bin: () ->
22
+ @creditCardNumber().substring 0, 6
23
+
24
+ responseCode: () ->
25
+ if @validCreditCard() then "1" else "51"
26
+
27
+ validCreditCard: () ->
28
+ @creditCardNumber() in @validCreditCards
29
+
30
+ defaults: () ->
31
+ validCreditCards: ["4502285070000007", "4924190000003750", "4551210032790206", "4924190000000145", "4524000000015080", \
32
+ "4001272222222222", "5454545454545454", "5191111111111111", "5191222222222224", "5191333333333337", \
33
+ "5191444444444440", "5191555555555557", "5191666666666660", "5191777777777773", "5191888888888886"]
34
+ creditCardNumberInput: $("#monerisDataInput")
35
+
36
+ $(document).ready ->
37
+ new MonerisSimulator.CreditCard
@@ -0,0 +1,4 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require ./namespace
4
+ //= require ./credit_card
@@ -0,0 +1 @@
1
+ @MonerisSimulator = window.MonerisSimulator ? {}
@@ -0,0 +1 @@
1
+ @import "inputs";
@@ -0,0 +1,70 @@
1
+ body{
2
+ margin: 0;
3
+ }
4
+
5
+ .monerisInput{
6
+ display: block;
7
+ -webkit-appearance: none;
8
+ -webkit-box-shadow: rgba(0, 0, 0, 0.0980392) 0px 1px 2px 0px inset;
9
+ -webkit-rtl-ordering: logical;
10
+ -webkit-transition-delay: 0s, 0s;
11
+ -webkit-transition-duration: 0.45s, 0.45s;
12
+ -webkit-transition-property: box-shadow, border-color;
13
+ -webkit-transition-timing-function: ease, ease-in-out;
14
+ -webkit-user-select: text;
15
+ -webkit-writing-mode: horizontal-tb;
16
+ background-color: rgb(255, 255, 255);
17
+ border-bottom-color: rgb(204, 204, 204);
18
+ border-bottom-left-radius: 3px;
19
+ border-bottom-right-radius: 3px;
20
+ border-bottom-style: solid;
21
+ border-bottom-width: 1px;
22
+ border-image-outset: 0px;
23
+ border-image-repeat: stretch;
24
+ border-image-slice: 100%;
25
+ border-image-source: none;
26
+ border-image-width: 1;
27
+ border-left-color: rgb(204, 204, 204);
28
+ border-left-style: solid;
29
+ border-left-width: 1px;
30
+ border-right-color: rgb(204, 204, 204);
31
+ border-right-style: solid;
32
+ border-right-width: 1px;
33
+ border-top-color: rgb(204, 204, 204);
34
+ border-top-left-radius: 3px;
35
+ border-top-right-radius: 3px;
36
+ border-top-style: solid;
37
+ border-top-width: 1px;
38
+ box-shadow: rgba(0, 0, 0, 0.0980392) 0px 1px 2px 0px inset;
39
+ box-sizing: border-box;
40
+ color: rgba(0, 0, 0, 0.74902);
41
+ cursor: auto;
42
+ display: block;
43
+ font-family: Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
44
+ font-size: 14px;
45
+ font-style: normal;
46
+ font-variant: normal;
47
+ font-weight: normal;
48
+ height: 37px;
49
+ letter-spacing: normal;
50
+ line-height: normal;
51
+ margin-bottom: 0px;
52
+ margin-left: 0px;
53
+ margin-right: 0px;
54
+ margin-top: 0px;
55
+ padding-bottom: 8px;
56
+ padding-left: 8px;
57
+ padding-right: 8px;
58
+ padding-top: 8px;
59
+ text-align: start;
60
+ text-indent: 0px;
61
+ text-shadow: none;
62
+ text-transform: none;
63
+ transition-delay: 0s, 0s;
64
+ transition-duration: 0.45s, 0.45s;
65
+ transition-property: box-shadow, border-color;
66
+ transition-timing-function: ease, ease-in-out;
67
+ width: 100%;
68
+ word-spacing: 0px;
69
+ writing-mode: lr-tb;
70
+ }
@@ -0,0 +1,5 @@
1
+ module MonerisSimulator
2
+ class CreditCardsController < ActionController::Base
3
+ layout "moneris_simulator/application"
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ <html>
2
+ <head>
3
+ <%= stylesheet_link_tag "moneris_simulator", media: "all" %>
4
+ <%= javascript_include_tag "moneris_simulator" %>
5
+ <%= javascript_include_tag "vendor/modernizr" %>
6
+ <%= csrf_meta_tags %>
7
+ </head>
8
+ <body>
9
+ <%= yield %>
10
+ </body>
11
+ </html>
12
+
@@ -0,0 +1 @@
1
+ <input type="tel" class="monerisInput" id="monerisDataInput" autocomplete="cc-number" />
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "moneris_simulator"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ Bundler.require :default, :development
5
+
6
+ Combustion.initialize! :all
7
+ run Combustion::Application
@@ -0,0 +1,3 @@
1
+ MonerisSimulator::Engine.routes.draw do
2
+ resources :credit_cards, only: :new
3
+ end
@@ -0,0 +1,7 @@
1
+ require "rails"
2
+ require "moneris_simulator/engine"
3
+ require "moneris_simulator/version"
4
+ require "jquery-rails"
5
+
6
+ module MonerisSimulator
7
+ end
@@ -0,0 +1,13 @@
1
+ module MonerisSimulator
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace MonerisSimulator
4
+
5
+ config.after_initialize do |app|
6
+ app.routes.prepend do
7
+ mount MonerisSimulator::Engine, at: "moneris"
8
+ end
9
+
10
+ app.config.assets.precompile += %w(moneris_simulator/index.js moneris_simulator/index.css)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module MonerisSimulator
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'moneris_simulator/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "moneris_simulator"
8
+ spec.version = MonerisSimulator::VERSION
9
+ spec.authors = ["Michael van den Beuken", "Ruben Estevez", "Jordan Babe", "Mathieu Gilbert", "Ryan Jones", "Darko Dosenovic", "Jonathan Weyermann", "Adam Melnyk", "Kayt Campbell", "Kathleen Robertson", "Jesse Doyle"]
10
+ spec.email = ["michael.beuken@gmail.com", "ruben.a.estevez@gmail.com", "jorbabe@gmail.com", "mathieu.gilbert@ama.ab.ca", "ryan.michael.jones@gmail.com", "darko.dosenovic@ama.ab.ca", "jonathan.weyermann@ama.ab.ca", "adam.melnyk@ama.ab.ca", "kayt.campbell@ama.ab.ca", "kathleen.robertson@ama.ab.ca", "jesse.doyle@ama.ab.ca"]
11
+
12
+ spec.summary = %q{Simulator for Moneris Hosted Tokenization}
13
+ spec.description = %q{Simulator for Moneris Hosted Tokenization}
14
+ spec.homepage = "https://github.com/amaabca/moneris_simulator"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency "coffee-rails"
23
+ spec.add_dependency "jquery-rails"
24
+ spec.add_dependency "rails", "~> 4.2"
25
+ spec.add_dependency "sass-rails"
26
+ spec.add_development_dependency "bundler", "~> 1.11"
27
+ spec.add_development_dependency "capybara"
28
+ spec.add_development_dependency "capybara-webkit"
29
+ spec.add_development_dependency "combustion"
30
+ spec.add_development_dependency "database_cleaner"
31
+ spec.add_development_dependency "factory_girl_rails"
32
+ spec.add_development_dependency "launchy"
33
+ spec.add_development_dependency "pry"
34
+ spec.add_development_dependency "rake", "~> 10.0"
35
+ spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_development_dependency "rspec-rails"
37
+ spec.add_development_dependency "shoulda-matchers"
38
+ spec.add_development_dependency "simplecov"
39
+ spec.add_development_dependency "sqlite3"
40
+ spec.add_development_dependency "webmock"
41
+ end
metadata ADDED
@@ -0,0 +1,354 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: moneris_simulator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Michael van den Beuken
8
+ - Ruben Estevez
9
+ - Jordan Babe
10
+ - Mathieu Gilbert
11
+ - Ryan Jones
12
+ - Darko Dosenovic
13
+ - Jonathan Weyermann
14
+ - Adam Melnyk
15
+ - Kayt Campbell
16
+ - Kathleen Robertson
17
+ - Jesse Doyle
18
+ autorequire:
19
+ bindir: exe
20
+ cert_chain: []
21
+ date: 2016-03-14 00:00:00.000000000 Z
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: coffee-rails
25
+ requirement: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ type: :runtime
31
+ prerelease: false
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ - !ruby/object:Gem::Dependency
38
+ name: jquery-rails
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ - !ruby/object:Gem::Dependency
52
+ name: rails
53
+ requirement: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '4.2'
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '4.2'
65
+ - !ruby/object:Gem::Dependency
66
+ name: sass-rails
67
+ requirement: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ type: :runtime
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: bundler
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '1.11'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.11'
93
+ - !ruby/object:Gem::Dependency
94
+ name: capybara
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ - !ruby/object:Gem::Dependency
108
+ name: capybara-webkit
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: combustion
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ - !ruby/object:Gem::Dependency
136
+ name: database_cleaner
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: factory_girl_rails
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ - !ruby/object:Gem::Dependency
164
+ name: launchy
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: pry
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: rake
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: '10.0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: '10.0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: rspec
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '3.0'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '3.0'
219
+ - !ruby/object:Gem::Dependency
220
+ name: rspec-rails
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ - !ruby/object:Gem::Dependency
234
+ name: shoulda-matchers
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ - !ruby/object:Gem::Dependency
248
+ name: simplecov
249
+ requirement: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ type: :development
255
+ prerelease: false
256
+ version_requirements: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: '0'
261
+ - !ruby/object:Gem::Dependency
262
+ name: sqlite3
263
+ requirement: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ">="
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
268
+ type: :development
269
+ prerelease: false
270
+ version_requirements: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ - !ruby/object:Gem::Dependency
276
+ name: webmock
277
+ requirement: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ type: :development
283
+ prerelease: false
284
+ version_requirements: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '0'
289
+ description: Simulator for Moneris Hosted Tokenization
290
+ email:
291
+ - michael.beuken@gmail.com
292
+ - ruben.a.estevez@gmail.com
293
+ - jorbabe@gmail.com
294
+ - mathieu.gilbert@ama.ab.ca
295
+ - ryan.michael.jones@gmail.com
296
+ - darko.dosenovic@ama.ab.ca
297
+ - jonathan.weyermann@ama.ab.ca
298
+ - adam.melnyk@ama.ab.ca
299
+ - kayt.campbell@ama.ab.ca
300
+ - kathleen.robertson@ama.ab.ca
301
+ - jesse.doyle@ama.ab.ca
302
+ executables: []
303
+ extensions: []
304
+ extra_rdoc_files: []
305
+ files:
306
+ - ".gitignore"
307
+ - ".rspec"
308
+ - ".simplecov"
309
+ - ".travis.yml"
310
+ - Gemfile
311
+ - LICENSE.txt
312
+ - README.md
313
+ - Rakefile
314
+ - app/assets/javascripts/moneris_simulator/credit_card.coffee
315
+ - app/assets/javascripts/moneris_simulator/index.js
316
+ - app/assets/javascripts/moneris_simulator/namespace.coffee
317
+ - app/assets/stylesheets/moneris_simulator/index.scss
318
+ - app/assets/stylesheets/moneris_simulator/inputs.scss
319
+ - app/controllers/moneris_simulator/credit_cards_controller.rb
320
+ - app/views/layouts/moneris_simulator/application.html.erb
321
+ - app/views/moneris_simulator/credit_cards/new.html.erb
322
+ - bin/console
323
+ - bin/setup
324
+ - config.ru
325
+ - config/routes.rb
326
+ - lib/moneris_simulator.rb
327
+ - lib/moneris_simulator/engine.rb
328
+ - lib/moneris_simulator/version.rb
329
+ - moneris_simulator.gemspec
330
+ homepage: https://github.com/amaabca/moneris_simulator
331
+ licenses:
332
+ - MIT
333
+ metadata: {}
334
+ post_install_message:
335
+ rdoc_options: []
336
+ require_paths:
337
+ - lib
338
+ required_ruby_version: !ruby/object:Gem::Requirement
339
+ requirements:
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ version: '0'
343
+ required_rubygems_version: !ruby/object:Gem::Requirement
344
+ requirements:
345
+ - - ">="
346
+ - !ruby/object:Gem::Version
347
+ version: '0'
348
+ requirements: []
349
+ rubyforge_project:
350
+ rubygems_version: 2.4.5
351
+ signing_key:
352
+ specification_version: 4
353
+ summary: Simulator for Moneris Hosted Tokenization
354
+ test_files: []