transfer_to 0.1.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 +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/lib/transfer_to.rb +12 -0
- data/lib/transfer_to/api.rb +175 -0
- data/lib/transfer_to/base.rb +31 -0
- data/lib/transfer_to/dsl.rb +19 -0
- data/lib/transfer_to/errors.rb +9 -0
- data/lib/transfer_to/reply.rb +75 -0
- data/lib/transfer_to/request.rb +82 -0
- data/lib/transfer_to/version.rb +3 -0
- data/transfer_to.gemspec +27 -0
- metadata +114 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2e00bcf3929974ec3401ec726a90aac36d75b06a
|
4
|
+
data.tar.gz: 926d7948ed5fdb4818bd23019f07c66a84a2ce5f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2e0a876c2acb854f3cdcee54db5d6bf33f00ab4f59a962ae347ae74db4b53288181f0196968558db651f739aa4b52f2372389c63b214200265f2bbac31a90726
|
7
|
+
data.tar.gz: a563d0072d5cb4332e47290228468fb16c169113452188b8306ba3f4f87921b3cd8b7740af4eafd89dbec0188da353744866d8b847e88deae3287d9d3b767d84
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Nikhil Gupta
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# TransferTo
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'transfer_to'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install transfer_to
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/transfer_to.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "pry"
|
2
|
+
require "faraday"
|
3
|
+
require "net/http"
|
4
|
+
|
5
|
+
# require transfer_to files..
|
6
|
+
require "transfer_to/version"
|
7
|
+
require "transfer_to/errors"
|
8
|
+
require "transfer_to/request"
|
9
|
+
require "transfer_to/reply"
|
10
|
+
require "transfer_to/base"
|
11
|
+
require "transfer_to/api"
|
12
|
+
require "transfer_to/dsl"
|
@@ -0,0 +1,175 @@
|
|
1
|
+
module TransferTo
|
2
|
+
class API < Base
|
3
|
+
|
4
|
+
# This method can be used when you want to test the connection and your
|
5
|
+
# account credentials.
|
6
|
+
def ping
|
7
|
+
run_action :ping
|
8
|
+
end
|
9
|
+
|
10
|
+
# This function is used to retrieve the credit balance in your TransferTo
|
11
|
+
# account.
|
12
|
+
def check_wallet
|
13
|
+
run_action :check_wallet
|
14
|
+
end
|
15
|
+
|
16
|
+
# This method is used to recharge a destination number with a specified
|
17
|
+
# denomination (“product” field).
|
18
|
+
# This is the API’s most important action as it is required when sending
|
19
|
+
# a topup to a prepaid account phone numberin a live! environment.
|
20
|
+
#
|
21
|
+
# parameters
|
22
|
+
# ==========
|
23
|
+
# msisdn
|
24
|
+
# ------
|
25
|
+
# The international phone number of the user requesting to credit
|
26
|
+
# a TransferToAPI phone number. The format must contain the country code,
|
27
|
+
# and will be valid with or without the ‘+’ or ‘00’ placed before it. For
|
28
|
+
# example: “6012345678” or “+6012345678” or “006012345678” (Malaysia) are
|
29
|
+
# all valid.
|
30
|
+
#
|
31
|
+
# product
|
32
|
+
# -------
|
33
|
+
# This field is used to define the remote product(often, the same as the
|
34
|
+
# amount in destination currency) to use in the request.
|
35
|
+
#
|
36
|
+
# destination
|
37
|
+
# -----------
|
38
|
+
# This is the destination phone number that will be credited with the
|
39
|
+
# amount transferred. Format is similar to “msisdn”.
|
40
|
+
#
|
41
|
+
# operator_id
|
42
|
+
# -----------
|
43
|
+
# It defines the operator id of the destination MSISDN that must be used
|
44
|
+
# when treating the request. If set, the platform will be forced to use
|
45
|
+
# this operatorID and will not identify the operator of the destination
|
46
|
+
# MSISDN based on the numbering plan. It must be very useful in case of
|
47
|
+
# countries with number portability if you are able to know the destination
|
48
|
+
# operator.
|
49
|
+
|
50
|
+
def topup(msisdn, destination, product, reserved_id = nil,
|
51
|
+
recipient_sms = nil, sender_sms = nil, operator_id = nil)
|
52
|
+
@params = { msisdn: msisdn, destination_msisdn: destination, product: product }
|
53
|
+
self.oid = operator_id
|
54
|
+
|
55
|
+
@params.merge({
|
56
|
+
cid1: "", cid2: "", cid3: "",
|
57
|
+
reserved_id: reserved_id,
|
58
|
+
sender_sms: (sender_sms ? "yes" : "no"),
|
59
|
+
sms: recipient_sms,
|
60
|
+
sender_text: sender_sms,
|
61
|
+
delivered_amount_info: "1",
|
62
|
+
return_service_fee: "1",
|
63
|
+
return_timestamp: "1",
|
64
|
+
return_version: "1"
|
65
|
+
})
|
66
|
+
|
67
|
+
run_action :topup
|
68
|
+
end
|
69
|
+
|
70
|
+
# This method is used to retrieve various information of a specific MSISDN
|
71
|
+
# (operator, country…) as well as the list of all products configured for
|
72
|
+
# your specific account and the destination operator of the MSISDN.
|
73
|
+
def msisdn_info(msisdn, operator_id=nil)
|
74
|
+
@params = {
|
75
|
+
destination_msisdn: msisdn,
|
76
|
+
delivered_amount_info: "1",
|
77
|
+
return_service_fee: 1
|
78
|
+
}
|
79
|
+
self.oid = operator_id
|
80
|
+
run_action :msisdn_info
|
81
|
+
end
|
82
|
+
|
83
|
+
# This method can be used to retrieve available information on a specific
|
84
|
+
# transaction. Please note that values of “input_value” and
|
85
|
+
# “debit_amount_validated” are rounded to 2 digits after the comma but are
|
86
|
+
# the same as the values returned in the fields “input_value” and
|
87
|
+
# “validated_input_value” of the “topup” method response.
|
88
|
+
def trans_info(id)
|
89
|
+
@params = { transactionid: id }
|
90
|
+
run_action :trans_info
|
91
|
+
end
|
92
|
+
|
93
|
+
# This method is used to retrieve the list of transactions performed within
|
94
|
+
# the date range by the MSISDN if set. Note that both dates are included
|
95
|
+
# during the search.
|
96
|
+
#
|
97
|
+
# parameters
|
98
|
+
# ==========
|
99
|
+
# msisdn
|
100
|
+
# ------
|
101
|
+
# The format must be international with or without the ‘+’ or ‘00’:
|
102
|
+
# “6012345678” or “+6012345678” or “006012345678” (Malaysia)
|
103
|
+
#
|
104
|
+
# destination_msisdn
|
105
|
+
# ------------------
|
106
|
+
# The format must be international with or without the ‘+’ or ‘00’:
|
107
|
+
# “6012345678” or “+6012345678” or “006012345678” (Malaysia)
|
108
|
+
#
|
109
|
+
# code
|
110
|
+
# ----
|
111
|
+
# The error_code of the transactions to search for. E.g “0” to search for
|
112
|
+
# only all successful transactions. If left empty, all transactions will be
|
113
|
+
# returned(Failed and successful).
|
114
|
+
#
|
115
|
+
# start_date
|
116
|
+
# ----------
|
117
|
+
# Defines the start date of the search. Format must be YYYY-MM-DD.
|
118
|
+
#
|
119
|
+
# stop_date
|
120
|
+
# ---------
|
121
|
+
# Defines the end date of the search (included). Format must be YYYY-MM-DD.
|
122
|
+
|
123
|
+
def trans_list(start, stop, msisdn = nil, destination = nil, code = nil)
|
124
|
+
@params[:code] = code unless code
|
125
|
+
@params[:msisdn] = msisdn unless msisdn
|
126
|
+
@params[:stop_date] = to_yyyymmdd(stop)
|
127
|
+
@params[:start_date] = to_yyyymmdd(start)
|
128
|
+
@params[:destination_msisdn] = destination unless destination
|
129
|
+
run_action :trans_list
|
130
|
+
end
|
131
|
+
|
132
|
+
# This method is used to reserve an ID in the system. This ID can then be
|
133
|
+
# used in the “topup” or “simulation” requests.
|
134
|
+
# This way, your system knows the IDof the transaction before sending the
|
135
|
+
# request to TransferTo (else it will only be displayed in the response).
|
136
|
+
def reserve_id
|
137
|
+
run_action :reserve_id
|
138
|
+
end
|
139
|
+
|
140
|
+
# This method is used to retrieve the ID of a transaction previously
|
141
|
+
# performed based on the key used in the request at that time.
|
142
|
+
def get_id_from_key(key)
|
143
|
+
@params = { from_key: key }
|
144
|
+
run_action :get_id_from_key
|
145
|
+
end
|
146
|
+
|
147
|
+
# This method is used to retrieve coverage and pricelist offered to you.
|
148
|
+
# parameters
|
149
|
+
# ==========
|
150
|
+
# info_type
|
151
|
+
# ---------
|
152
|
+
# i) “countries”: Returns a list of all countries offered to you
|
153
|
+
# ii) “country” : Returns a list of operators in the country
|
154
|
+
# iii) “operator” : Returns a list of wholesale and retail price for the operator
|
155
|
+
#
|
156
|
+
# content
|
157
|
+
# -------
|
158
|
+
# i) Not used if info_type = “countries”
|
159
|
+
# ii) countryid of the requested country if info_type = “country”
|
160
|
+
# iii) operatorid of the requested operator if info_type = “operator”
|
161
|
+
|
162
|
+
def pricelist(info_type, content = nil)
|
163
|
+
@params[:info_type] = info_type
|
164
|
+
@params[:content] = content unless content
|
165
|
+
run_action :pricelist
|
166
|
+
end
|
167
|
+
|
168
|
+
private
|
169
|
+
|
170
|
+
def oid=(operator_id)
|
171
|
+
@params[:operatorid] = operator_id.to_i if operator_id.is_a?(Integer)
|
172
|
+
end
|
173
|
+
|
174
|
+
end
|
175
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module TransferTo
|
2
|
+
class Base
|
3
|
+
|
4
|
+
attr_reader :reply, :request
|
5
|
+
|
6
|
+
def initialize(user, password)
|
7
|
+
aurl = "https://fm.transfer-to.com:5443"
|
8
|
+
@params = {}
|
9
|
+
@request = ::TransferTo::Request.new user, password, aurl
|
10
|
+
end
|
11
|
+
|
12
|
+
def run_action(name, method = :get)
|
13
|
+
|
14
|
+
@request.action = name
|
15
|
+
@request.params = @params
|
16
|
+
|
17
|
+
@request.run(method).on_complete do |reply|
|
18
|
+
@reply = ::TransferTo::Reply.new(reply)
|
19
|
+
raise ::TransferTo::Error.new @reply.error_code, @reply.error_message unless @reply.success?
|
20
|
+
return @reply
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_numbers(num = nil)
|
25
|
+
numbers = [ "628123456710", "628123456770", "628123456780",
|
26
|
+
"628123456781", "628123456790", "628123456798",
|
27
|
+
"628123456799" ]
|
28
|
+
num > 0 && num < 8 ? numbers[num-1] : numbers
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module TransferTo
|
2
|
+
class DSL < API
|
3
|
+
|
4
|
+
# check the status of the TranferTo API
|
5
|
+
def check_status
|
6
|
+
self.ping
|
7
|
+
reply.success? && reply.message == "pong" && reply.auth_key == request.key
|
8
|
+
end
|
9
|
+
|
10
|
+
# get information about a phone number
|
11
|
+
def phone_search(number, operator_id = nil)
|
12
|
+
information = msisdn_info(number, operator_id).information
|
13
|
+
information[:product_list] = information[:product_list].split(",")
|
14
|
+
information
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module TransferTo
|
2
|
+
class Reply
|
3
|
+
|
4
|
+
# "reply" as received from Faraday's request
|
5
|
+
def initialize(reply)
|
6
|
+
@response = reply.to_hash[:response]
|
7
|
+
end
|
8
|
+
|
9
|
+
def format_it
|
10
|
+
{
|
11
|
+
data: data,
|
12
|
+
status: status,
|
13
|
+
success: success?,
|
14
|
+
method: @response.env[:method],
|
15
|
+
url: url,
|
16
|
+
headers: headers,
|
17
|
+
raw_response: raw
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
######## CONVENIENCE METHODS ##########
|
23
|
+
|
24
|
+
# get the actual data returned by the TransferTo API
|
25
|
+
def data
|
26
|
+
hash = {}
|
27
|
+
@response.body.lines.each do |line|
|
28
|
+
key, value = line.strip.split "="
|
29
|
+
hash[key.to_sym] = (key == "error_code") ? value.to_i : value
|
30
|
+
end; hash
|
31
|
+
end
|
32
|
+
|
33
|
+
def status
|
34
|
+
@response.status
|
35
|
+
end
|
36
|
+
|
37
|
+
def error_code
|
38
|
+
data[:error_code]
|
39
|
+
end
|
40
|
+
|
41
|
+
def error_message
|
42
|
+
data[:error_txt]
|
43
|
+
end
|
44
|
+
|
45
|
+
def success?
|
46
|
+
status == 200 && error_code == 0
|
47
|
+
end
|
48
|
+
|
49
|
+
def url
|
50
|
+
@response.env[:url].to_s
|
51
|
+
end
|
52
|
+
|
53
|
+
def information
|
54
|
+
data.reject do |key, value|
|
55
|
+
[:authentication_key, :error_code, :error_txt].include?(key)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def message
|
60
|
+
information[:info_txt]
|
61
|
+
end
|
62
|
+
|
63
|
+
def auth_key
|
64
|
+
data[:authentication_key]
|
65
|
+
end
|
66
|
+
|
67
|
+
def headers
|
68
|
+
@response.headers
|
69
|
+
end
|
70
|
+
|
71
|
+
def raw
|
72
|
+
@response.body
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module TransferTo
|
2
|
+
class Request
|
3
|
+
|
4
|
+
attr_reader :user, :name, :params
|
5
|
+
|
6
|
+
def initialize(user, password, aurl = nil)
|
7
|
+
@user = user
|
8
|
+
@pass = password
|
9
|
+
@conn = Faraday.new(url: aurl) do |faraday|
|
10
|
+
faraday.request :url_encoded
|
11
|
+
faraday.adapter :net_http
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def reset
|
16
|
+
@params = {}
|
17
|
+
authenticate
|
18
|
+
end
|
19
|
+
|
20
|
+
def authenticate
|
21
|
+
time = Time.now.to_i.to_s
|
22
|
+
add_param :key, time
|
23
|
+
add_param :md5, md5_hash(@user + @pass + time.to_s)
|
24
|
+
add_param :login, @user
|
25
|
+
end
|
26
|
+
|
27
|
+
def action=(name)
|
28
|
+
reset
|
29
|
+
@name = name
|
30
|
+
add_param :action, name
|
31
|
+
end
|
32
|
+
|
33
|
+
def params=(parameters)
|
34
|
+
@params.merge!(parameters)
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_param(key, value)
|
38
|
+
@params[key.to_sym] = value
|
39
|
+
end
|
40
|
+
|
41
|
+
def key
|
42
|
+
@params[:key]
|
43
|
+
end
|
44
|
+
|
45
|
+
def get?
|
46
|
+
@params[:method] == :get
|
47
|
+
end
|
48
|
+
|
49
|
+
def post?
|
50
|
+
@params[:method] == :post
|
51
|
+
end
|
52
|
+
|
53
|
+
def run(method = :get)
|
54
|
+
add_param :method, method
|
55
|
+
@conn.send(method, "/cgi-bin/shop/topup", @params) do |req|
|
56
|
+
req.options = { timeout: 600, open_timeout: 600 }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def md5_hash(str)
|
63
|
+
(Digest::MD5.new << str).to_s
|
64
|
+
end
|
65
|
+
|
66
|
+
def to_time(time)
|
67
|
+
case time.class.name
|
68
|
+
when "String" then return Time.parse(time)
|
69
|
+
when "Integer" then return Time.at(time)
|
70
|
+
when "Time" then return time
|
71
|
+
else raise ArgumentError
|
72
|
+
end
|
73
|
+
rescue
|
74
|
+
Time.now
|
75
|
+
end
|
76
|
+
|
77
|
+
def to_yyyymmdd(time)
|
78
|
+
to_time(time).strftime("%Y-%m-%d")
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
data/transfer_to.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'transfer_to/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "transfer_to"
|
8
|
+
spec.version = TransferTo::VERSION
|
9
|
+
spec.authors = ["Nikhil Gupta"]
|
10
|
+
spec.email = ["me@nikhgupta.com"]
|
11
|
+
spec.description = %q{Consumes TransferTo.com API and provides with ruby methods for the same}
|
12
|
+
spec.summary = %q{Gem to consume TransferTo.com API}
|
13
|
+
spec.homepage = "http://rubygems.org/gems/transfer_to"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
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.3"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
|
24
|
+
spec.add_dependency "faraday"
|
25
|
+
|
26
|
+
spec.add_development_dependency "pry"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: transfer_to
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nikhil Gupta
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-08-18 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.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
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: faraday
|
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: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Consumes TransferTo.com API and provides with ruby methods for the same
|
70
|
+
email:
|
71
|
+
- me@nikhgupta.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- Gemfile
|
78
|
+
- LICENSE.txt
|
79
|
+
- README.md
|
80
|
+
- Rakefile
|
81
|
+
- lib/transfer_to.rb
|
82
|
+
- lib/transfer_to/api.rb
|
83
|
+
- lib/transfer_to/base.rb
|
84
|
+
- lib/transfer_to/dsl.rb
|
85
|
+
- lib/transfer_to/errors.rb
|
86
|
+
- lib/transfer_to/reply.rb
|
87
|
+
- lib/transfer_to/request.rb
|
88
|
+
- lib/transfer_to/version.rb
|
89
|
+
- transfer_to.gemspec
|
90
|
+
homepage: http://rubygems.org/gems/transfer_to
|
91
|
+
licenses:
|
92
|
+
- MIT
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 2.0.0
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
113
|
+
summary: Gem to consume TransferTo.com API
|
114
|
+
test_files: []
|