bloom_remit 0.0.1
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/Rakefile +37 -0
- data/app/assets/javascripts/bloom_remit/application.js +13 -0
- data/app/assets/stylesheets/bloom_remit/application.css +15 -0
- data/app/concepts/bloom_remit/txns/callbacks/after_create.rb +15 -0
- data/app/concepts/bloom_remit/txns/contracts/create.rb +17 -0
- data/app/concepts/bloom_remit/txns/contracts/update.rb +11 -0
- data/app/concepts/bloom_remit/txns/operations/create.rb +25 -0
- data/app/concepts/bloom_remit/txns/operations/update.rb +26 -0
- data/app/controllers/bloom_remit/api/v1/txns_controller.rb +15 -0
- data/app/controllers/bloom_remit/application_controller.rb +13 -0
- data/app/helpers/bloom_remit/application_helper.rb +4 -0
- data/app/jobs/bloom_remit/sync_billers_job.rb +19 -0
- data/app/jobs/bloom_remit/txns/payout_job.rb +15 -0
- data/app/models/bloom_remit/biller.rb +21 -0
- data/app/models/bloom_remit/txn.rb +23 -0
- data/app/services/bloom_remit/billers/sync.rb +15 -0
- data/app/services/bloom_remit/create_txn.rb +17 -0
- data/app/services/bloom_remit/initialize_client.rb +17 -0
- data/app/services/bloom_remit/txns/payout.rb +16 -0
- data/app/services/bloom_remit/txns/post.rb +25 -0
- data/app/views/layouts/bloom_remit/application.html.erb +14 -0
- data/config/routes.rb +7 -0
- data/db/migrate/20160720038018_install_hstore.rb +5 -0
- data/db/migrate/20160720040018_create_bloom_remit_billers.rb +12 -0
- data/db/migrate/20160729070509_create_bloom_remit_txns.rb +14 -0
- data/lib/bloom_remit/engine.rb +11 -0
- data/lib/bloom_remit/version.rb +3 -0
- data/lib/bloom_remit.rb +32 -0
- data/lib/tasks/bloom_remit_tasks.rake +4 -0
- metadata +380 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 329b69261f0dd3ce1c80717973da1c342393f21d
|
4
|
+
data.tar.gz: 6a1a4a41a31bbe5186508b63c9cfaeef30aa4046
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9a789f5dd11c5966934e18b8135a7d947a5a4d7b53ff28d8b50c744de0ee600dd1c4516f31b4dc09d92c38a6636de9fa86d78db4a59d45581ba0e419c694f961
|
7
|
+
data.tar.gz: 82ac77e0ebf73065012728771226e532a8976835e7d651181a29d615e77004f5b2adff9f15eb9c81479fef25e7b8e14dbcc0a64dda6abefd8847f7e184251260
|
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'BloomRemit'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
load 'rails/tasks/statistics.rake'
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Bundler::GemHelper.install_tasks
|
26
|
+
|
27
|
+
require 'rake/testtask'
|
28
|
+
|
29
|
+
Rake::TestTask.new(:test) do |t|
|
30
|
+
t.libs << 'lib'
|
31
|
+
t.libs << 'test'
|
32
|
+
t.pattern = 'test/**/*_test.rb'
|
33
|
+
t.verbose = false
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
task default: :test
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
+
* file per style scope.
|
12
|
+
*
|
13
|
+
*= require_tree .
|
14
|
+
*= require_self
|
15
|
+
*/
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
module Txns
|
3
|
+
module Contracts
|
4
|
+
class Create < Reform::Form
|
5
|
+
|
6
|
+
property :recipient_type
|
7
|
+
property :recipient_id
|
8
|
+
property :sender_type
|
9
|
+
property :sender_id
|
10
|
+
property :amount
|
11
|
+
property :account_name
|
12
|
+
property :account_id
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
module Txns
|
3
|
+
module Operations
|
4
|
+
class Create < Trailblazer::Operation
|
5
|
+
|
6
|
+
include Model
|
7
|
+
model Txn, :create
|
8
|
+
|
9
|
+
contract Contracts::Create
|
10
|
+
|
11
|
+
include Dispatch
|
12
|
+
callback :after_create, Callbacks::AfterCreate
|
13
|
+
|
14
|
+
def process(params)
|
15
|
+
validate(params[:txn]) do |f|
|
16
|
+
f.model.secret = SecureRandom.uuid
|
17
|
+
f.save
|
18
|
+
dispatch! :after_create
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
module Txns
|
3
|
+
module Operations
|
4
|
+
class Update < Trailblazer::Operation
|
5
|
+
|
6
|
+
include Model
|
7
|
+
model Txn, :update
|
8
|
+
|
9
|
+
contract Contracts::Update
|
10
|
+
|
11
|
+
def process(params)
|
12
|
+
validate(params[:txn]) do |f|
|
13
|
+
f.save
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def model!(params)
|
20
|
+
Txn.find_by!(id: params[:id], secret: params[:secret])
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class ApplicationController < ActionController::Base
|
3
|
+
|
4
|
+
include Trailblazer::Operation::Controller
|
5
|
+
|
6
|
+
rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
|
7
|
+
|
8
|
+
def record_not_found
|
9
|
+
render nothing: true, status: 404
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class SyncBillersJob
|
3
|
+
|
4
|
+
include Sidekiq::Worker
|
5
|
+
sidekiq_options retry: false
|
6
|
+
|
7
|
+
def perform
|
8
|
+
Billers::Sync.()
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
if Sidekiq.server?
|
15
|
+
Sidekiq::Cron::Job.create(
|
16
|
+
class: BloomRemit::SyncBillersJob.name,
|
17
|
+
cron: '0 * * * *',
|
18
|
+
)
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class Biller < ActiveRecord::Base
|
3
|
+
|
4
|
+
scope :active, -> { where(deactivated_at: nil) }
|
5
|
+
|
6
|
+
include Storext.model
|
7
|
+
store_attributes(:fields) do
|
8
|
+
first_field String
|
9
|
+
first_field_format String
|
10
|
+
first_field_width Integer
|
11
|
+
second_field String
|
12
|
+
second_field_format String
|
13
|
+
second_field_width Integer
|
14
|
+
end
|
15
|
+
|
16
|
+
def active?
|
17
|
+
self.deactivated_at.nil?
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class Txn < ActiveRecord::Base
|
3
|
+
|
4
|
+
belongs_to :recipient, polymorphic: true
|
5
|
+
belongs_to :sender, polymorphic: true
|
6
|
+
|
7
|
+
enum status: {
|
8
|
+
bank_error: -2,
|
9
|
+
incomplete: 0,
|
10
|
+
paid: 1,
|
11
|
+
completed: 3,
|
12
|
+
rejected: 4,
|
13
|
+
refunded: 5,
|
14
|
+
cancelled: 6,
|
15
|
+
error: 7,
|
16
|
+
delayed: 8,
|
17
|
+
waiting: 9,
|
18
|
+
unpaid: 10,
|
19
|
+
outstanding: 11,
|
20
|
+
}
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
module Billers
|
3
|
+
class Sync
|
4
|
+
|
5
|
+
def self.call
|
6
|
+
client = InitializeClient.execute.client
|
7
|
+
client.billers.billers.each do |remote_biller|
|
8
|
+
biller = Biller.where(slug: remote_biller.slug).first_or_initialize
|
9
|
+
biller.update_attributes(remote_biller.attributes)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class CreateTxn
|
3
|
+
|
4
|
+
def self.call(recipient:, sender:, amount:, account_name:, account_id:)
|
5
|
+
Txns::Operations::Create.(txn: {
|
6
|
+
recipient_id: recipient.id,
|
7
|
+
recipient_type: recipient.class.name,
|
8
|
+
sender_id: sender.id,
|
9
|
+
sender_type: sender.class.name,
|
10
|
+
amount: amount,
|
11
|
+
account_name: account_name,
|
12
|
+
account_id: account_id,
|
13
|
+
})
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
class InitializeClient
|
3
|
+
|
4
|
+
extend LightService::Action
|
5
|
+
promises :client
|
6
|
+
|
7
|
+
executed do |c|
|
8
|
+
c.client = BloomRemitClient.new(
|
9
|
+
token: BloomRemit.token,
|
10
|
+
secret: BloomRemit.secret,
|
11
|
+
agent_id: BloomRemit.agent_id,
|
12
|
+
url: BloomRemit.url,
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module BloomRemit
|
2
|
+
module Txns
|
3
|
+
class Post
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :client, :txn
|
7
|
+
|
8
|
+
executed do |c|
|
9
|
+
txn = c.txn
|
10
|
+
|
11
|
+
c.client.create_payment(
|
12
|
+
sender_id: txn.sender.send(BloomRemit.sender_id_method),
|
13
|
+
account_name: txn.account_name,
|
14
|
+
account_number: txn.account_id,
|
15
|
+
callback_url: Engine.routes.url_helpers.api_v1_txn_url(txn),
|
16
|
+
dest_currency: "PHP",
|
17
|
+
orig_currency: "PHP",
|
18
|
+
payout_method: txn.recipient.slug,
|
19
|
+
receivable_in_dest_currency: txn.amount,
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>BloomRemit</title>
|
5
|
+
<%= stylesheet_link_tag "bloom_remit/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "bloom_remit/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
class CreateBloomRemitBillers < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :bloom_remit_billers do |t|
|
4
|
+
t.string :slug, null: false
|
5
|
+
t.text :description
|
6
|
+
t.hstore :fields
|
7
|
+
t.decimal :service_charge, default: 0.0, null: false
|
8
|
+
t.datetime :deactivated_at
|
9
|
+
t.timestamps null: false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateBloomRemitTxns < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :bloom_remit_txns do |t|
|
4
|
+
t.integer :status, null: false, default: 0
|
5
|
+
t.string :recipient_type, null: false
|
6
|
+
t.string :recipient_id, null: false
|
7
|
+
t.references :sender, polymorphic: true, null: false
|
8
|
+
t.decimal :amount, null: false
|
9
|
+
t.string :account_name
|
10
|
+
t.string :account_id
|
11
|
+
t.uuid :secret, null: false
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/bloom_remit.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require "storext"
|
2
|
+
require "sidekiq"
|
3
|
+
require "light-service"
|
4
|
+
require "disposable"
|
5
|
+
require "disposable/callback"
|
6
|
+
require "trailblazer"
|
7
|
+
require "trailblazer/operation/model"
|
8
|
+
require "trailblazer/operation/controller"
|
9
|
+
require "trailblazer/operation/representer"
|
10
|
+
require "trailblazer/operation/dispatch"
|
11
|
+
require "reform/rails"
|
12
|
+
require "roar-rails"
|
13
|
+
require "active_support/core_ext/module/attribute_accessors"
|
14
|
+
require "bloom_remit_client"
|
15
|
+
require "bloom_remit/engine"
|
16
|
+
|
17
|
+
module BloomRemit
|
18
|
+
|
19
|
+
mattr_accessor :token
|
20
|
+
mattr_accessor :secret
|
21
|
+
mattr_accessor :agent_id
|
22
|
+
mattr_accessor :url
|
23
|
+
mattr_reader :sender_id_method_default
|
24
|
+
@@sender_id_method_default = :bloom_remit_id
|
25
|
+
mattr_accessor :sender_id_method
|
26
|
+
self.sender_id_method = self.sender_id_method_default
|
27
|
+
|
28
|
+
def self.configure(&block)
|
29
|
+
yield self
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,380 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bloom_remit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ramon Tayag
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pg
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: storext
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bloom_remit_client
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sidekiq
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sidekiq-cron
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: trailblazer
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: light-service
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: disposable
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: reform-rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: roar-rails
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: representable
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: multi_json
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: sqlite3
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rspec-rails
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: factory_girl_rails
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: storext-matchers
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: vcr
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: webmock
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: dotenv
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: rspec-sidekiq
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: shoulda-matchers
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
type: :development
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - ">="
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '0'
|
321
|
+
description:
|
322
|
+
email:
|
323
|
+
- ramon.tayag@gmail.com
|
324
|
+
executables: []
|
325
|
+
extensions: []
|
326
|
+
extra_rdoc_files: []
|
327
|
+
files:
|
328
|
+
- Rakefile
|
329
|
+
- app/assets/javascripts/bloom_remit/application.js
|
330
|
+
- app/assets/stylesheets/bloom_remit/application.css
|
331
|
+
- app/concepts/bloom_remit/txns/callbacks/after_create.rb
|
332
|
+
- app/concepts/bloom_remit/txns/contracts/create.rb
|
333
|
+
- app/concepts/bloom_remit/txns/contracts/update.rb
|
334
|
+
- app/concepts/bloom_remit/txns/operations/create.rb
|
335
|
+
- app/concepts/bloom_remit/txns/operations/update.rb
|
336
|
+
- app/controllers/bloom_remit/api/v1/txns_controller.rb
|
337
|
+
- app/controllers/bloom_remit/application_controller.rb
|
338
|
+
- app/helpers/bloom_remit/application_helper.rb
|
339
|
+
- app/jobs/bloom_remit/sync_billers_job.rb
|
340
|
+
- app/jobs/bloom_remit/txns/payout_job.rb
|
341
|
+
- app/models/bloom_remit/biller.rb
|
342
|
+
- app/models/bloom_remit/txn.rb
|
343
|
+
- app/services/bloom_remit/billers/sync.rb
|
344
|
+
- app/services/bloom_remit/create_txn.rb
|
345
|
+
- app/services/bloom_remit/initialize_client.rb
|
346
|
+
- app/services/bloom_remit/txns/payout.rb
|
347
|
+
- app/services/bloom_remit/txns/post.rb
|
348
|
+
- app/views/layouts/bloom_remit/application.html.erb
|
349
|
+
- config/routes.rb
|
350
|
+
- db/migrate/20160720038018_install_hstore.rb
|
351
|
+
- db/migrate/20160720040018_create_bloom_remit_billers.rb
|
352
|
+
- db/migrate/20160729070509_create_bloom_remit_txns.rb
|
353
|
+
- lib/bloom_remit.rb
|
354
|
+
- lib/bloom_remit/engine.rb
|
355
|
+
- lib/bloom_remit/version.rb
|
356
|
+
- lib/tasks/bloom_remit_tasks.rake
|
357
|
+
homepage: https://github.com/imacchiato/bloom_remit-rails
|
358
|
+
licenses: []
|
359
|
+
metadata: {}
|
360
|
+
post_install_message:
|
361
|
+
rdoc_options: []
|
362
|
+
require_paths:
|
363
|
+
- lib
|
364
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
365
|
+
requirements:
|
366
|
+
- - ">="
|
367
|
+
- !ruby/object:Gem::Version
|
368
|
+
version: '0'
|
369
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
370
|
+
requirements:
|
371
|
+
- - ">="
|
372
|
+
- !ruby/object:Gem::Version
|
373
|
+
version: '0'
|
374
|
+
requirements: []
|
375
|
+
rubyforge_project:
|
376
|
+
rubygems_version: 2.6.4
|
377
|
+
signing_key:
|
378
|
+
specification_version: 4
|
379
|
+
summary: Rails engine for Bloom Remit users
|
380
|
+
test_files: []
|