resellerclub 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,115 @@
1
+ require "rubygems"
2
+ require "typhoeus"
3
+ require "open-uri"
4
+ require "json"
5
+
6
+ module ResellerClub
7
+
8
+ @@auth_userid = "0"
9
+ @@auth_password = "password"
10
+
11
+ def self.authentication(userid = nil, password = nil)
12
+ @@auth_userid = userid
13
+ @@auth_password = password
14
+ end
15
+
16
+ def self.auth_userid
17
+ @@auth_userid
18
+ end
19
+
20
+ def self.auth_password
21
+ @@auth_password
22
+ end
23
+
24
+ def true_false_or_text(str)
25
+ if str == "true"
26
+ return {"response" => true}.to_json
27
+ elsif str == "false"
28
+ return {"response" => false}.to_json
29
+ elsif str.to_i.to_s == str
30
+ return {"code" => str}.to_json
31
+ else
32
+ begin
33
+ JSON.parse(str)
34
+ rescue
35
+ return {"response" => str}.to_json
36
+ end
37
+ return str
38
+ end
39
+ end
40
+
41
+ def construct_url(params, method)
42
+ params.delete_if {|k,v| v == ""}
43
+ url = self::BASE_URL + method + "?"
44
+ params.each do |k,v|
45
+ if v.kind_of?(Array)
46
+ v.each { |elem| url = url + k.gsub("_","-") + "=" + elem + "&"}
47
+ else
48
+ url = url + k.gsub("_","-") + "=" + v + "&"
49
+ end
50
+ end
51
+ if url[-1] == "&"
52
+ url = url[0..-2]
53
+ end
54
+ URI::encode(url)
55
+ end
56
+
57
+ def generate_method_name_from_url(url)
58
+ url.split(".")[0].gsub("/", "_").gsub("-","_")
59
+ end
60
+
61
+ def build_method(data)
62
+ construct_url_bind = method(:construct_url)
63
+ true_false_or_text_bind = method(:true_false_or_text)
64
+ if data["method_name"].nil?
65
+ data["method_name"] = generate_method_name_from_url(data["url"])
66
+ end
67
+ define_method data["method_name"] do |params=nil|
68
+ mock = false
69
+ if params.kind_of? Hash
70
+ mock = params.delete("test_mock")
71
+ mock ||= params.delete(:test_mock)
72
+ end
73
+ if data["values"].nil?
74
+ data["values"] = {}
75
+ elsif data["values"].keys.count == 1 and (data["values"].values)[0] == ""
76
+ if params.kind_of? Hash
77
+ data["values"].merge!(params)
78
+ elsif params.kind_of? String
79
+ data["values"][(data["values"].keys)[0]] = params
80
+ end
81
+ else
82
+ data["values"].merge!(params)
83
+ end
84
+ if not data["values"].keys.include? "auth_userid" and not data["values"].keys.include? "auth_password"
85
+ data["values"]["auth_userid"] = ResellerClub::auth_userid
86
+ data["values"]["auth_password"] = ResellerClub::auth_password
87
+ end
88
+ if data["validate"].call(data["values"])
89
+ url = construct_url_bind.call(data["values"], data["url"])
90
+ if mock
91
+ return url
92
+ end
93
+ if data["silent"]
94
+ Typhoeus::Request.send data["http_method"], url
95
+ else
96
+ response = Typhoeus::Request.send data["http_method"], url
97
+ case response.code
98
+ when 200
99
+ return JSON.parse(true_false_or_text_bind.call(response.body))
100
+ when 500
101
+ error = JSON.parse(true_false_or_text_bind.call(response.body))
102
+ raise error["message"]
103
+ when 404
104
+ raise "Action not Found"
105
+ else
106
+ error = JSON.parse(true_false_or_text_bind.call(response.body))
107
+ raise error["message"]
108
+ end
109
+ end
110
+ else
111
+ raise "Validation failed."
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../mixin.rb'
3
+
4
+ class Contact
5
+ class << self
6
+ BASE_URL = "https://test.httpapi.com/api/contacts/"
7
+
8
+ extend ResellerClub
9
+
10
+ [{"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "add.json"},
11
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify.json"},
12
+ {"values" => {"contact_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "details.json"},
13
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "default.json"},
14
+ {"values" => {"no_of_records" => "50","page_no" => "1"}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "search.json"},
15
+ {"values" => {"contact_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "delete.json"},
16
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "set-details.json"},
17
+ {"values" => {"customer_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "sponsors.json"},
18
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "coop/add-sponsor.json"},
19
+ {"values" => nil, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "dotca/registrantagreement.json"},
20
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "validate-registrant.json"},
21
+ ].each { |p| build_method p }
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,22 @@
1
+ require_relative '../mixin.rb'
2
+
3
+ class Customer
4
+ class << self
5
+ BASE_URL = "https://test.httpapi.com/api/customers/"
6
+
7
+ extend ResellerClub
8
+
9
+ [{"values" => {"lang_pref" => "en"}, "http_method" => "post","validate" => lambda {|v| true}, "url" => "signup.json"},
10
+ {"values" => {"lang_pref" => "en"}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify.json"},
11
+ {"values" => {"username" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "details.json"},
12
+ {"values" => {"customer_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "details-by-id.json"},
13
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "change-password.json"},
14
+ {"values" => {"customer_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "temp-password.json"},
15
+ {"values" => {"no_of_records" => "50","page_no" => "1"}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "search.json"},
16
+ {"values" => {"customer_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "delete.json"},
17
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "generate-token.json"},
18
+ {"values" => {"token" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "authenticate-token.json"},
19
+ ].each { |p| build_method p }
20
+
21
+ end
22
+ end
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../mixin.rb'
3
+
4
+ class Domain
5
+ class << self
6
+ BASE_URL = "https://test.httpapi.com/api/domains/"
7
+
8
+ extend ResellerClub
9
+
10
+ [{"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "available.json"},
11
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "idn-available.json"},
12
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "suggest-names.json"},
13
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "register.json"},
14
+ {"values" => {"domain-name" => ""},"http_method" => "get", "validate" => lambda {|v| true}, "url" => "validate-transfer.json"},
15
+ {"values" => {"domain-name" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "transfer.json"},
16
+ # {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "eu/transfer.json"},
17
+ # {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "trade.json"},
18
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "renew.json"},
19
+ {"values" => {"no-of-records" => "10", "page-no" => "1"}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "search.json"},
20
+ {"values" => {"customer_id" => ""}, "http_method" => "get","validate" => lambda {|v| true}, "url" => "customer-default-ns.json"},
21
+ {"values" => {"domain_name" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "orderid.json"},
22
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "details.json"},
23
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-ns.json"},
24
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "add-cns.json"},
25
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-cns-name.json"},
26
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-cns-ip.json"},
27
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "delete-cns-ip.json"},
28
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-contact.json"},
29
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-privacy-protection.json"},
30
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-auth-code.json"},
31
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "enable-theft-protection.json"},
32
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "disable-theft-protection.json"},
33
+ {"values" => {"order_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "locks.json"},
34
+ {"values" => {"order_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "tel/cth-details.json"},
35
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "tel/modify-whois-pref.json"},
36
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "resend-rfa.json"},
37
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "uk/release.json"},
38
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "cancel-transfer.json"},
39
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "delete.json"},
40
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "restore.json"},
41
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "de/recheck-ns.json"},
42
+ {"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "dotxxx/association-details.json"},
43
+ ].each { |p| build_method p }
44
+
45
+ end
46
+ end
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../mixin.rb'
3
+
4
+ class Order
5
+ class << self
6
+ BASE_URL = "https://test.httpapi.com/api/orders/"
7
+
8
+ extend ResellerClub
9
+
10
+ [{"values" => {}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "suspend.json"},
11
+ {"values" => {"order_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "unsuspend.json"},
12
+ ].each { |p| build_method p }
13
+
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require_relative '../mixin.rb'
2
+
3
+ class Reseller
4
+ class << self
5
+ BASE_URL = "https://test.httpapi.com/api/customers/"
6
+
7
+ extend ResellerClub
8
+
9
+ [{"values" => {"lang_pref" => "en"}, "http_method" => "post","validate" => lambda {|v| true}, "url" => "signup.json"},
10
+ {"values" => {"lang_pref" => "en"}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "modify-details.json"},
11
+ {"values" => {"reseller_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "details.json"},
12
+ {"values" => {"reseller_id" => ""}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "temp-password.json"},
13
+ {"values" => {"no_of_records" => "50","page_no" => "1"}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "search.json"},
14
+ {"values" => {"customer_id" => ""}, "http_method" => "post", "validate" => lambda {|v| true}, "url" => "delete.json"},
15
+ {"values" => {},"http_method" => "get", "validate" => lambda {|v| true}, "url" => "generate-token.json"},
16
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "authenticate-token.json"},
17
+ {"values" => {}, "http_method" => "get", "validate" => lambda {|v| true}, "url" => "promo-details.json"},
18
+ ].each { |p| build_method p }
19
+ end
20
+
21
+ end
@@ -0,0 +1,6 @@
1
+ require_relative "./mixin.rb"
2
+ require_relative "./models/customer.rb"
3
+ require_relative "./models/reseller.rb"
4
+ require_relative "./models/contact.rb"
5
+ require_relative "./models/order.rb"
6
+ require_relative "./models/domain.rb"
@@ -0,0 +1,435 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rspec'
3
+ require 'json_spec'
4
+ require 'rack/test'
5
+ require 'rspec/expectations'
6
+ require_relative '../lib/models/customer.rb'
7
+ require_relative '../lib/models/reseller.rb'
8
+ require_relative '../lib/models/contact.rb'
9
+ require_relative '../lib/models/domain.rb'
10
+ require_relative '../lib/models/order.rb'
11
+ require_relative '../lib/mixin.rb'
12
+ require "pry"
13
+ require "open-uri"
14
+
15
+ RSpec.configure do |conf|
16
+ conf.include Rack::Test::Methods
17
+ conf.include JsonSpec::Helpers
18
+ end
19
+
20
+ def hashify_url_params(params)
21
+ hash = {}
22
+ div_params = params.split('&').each do |str|
23
+ k,v = str.split("=")
24
+ hash[k] = v
25
+ end
26
+ hash
27
+ end
28
+
29
+ def eql_urls(url1, url2)
30
+ url1, params1 = url1.split("?")
31
+ url2, params2 = url2.split("?")
32
+ params = hashify_url_params(params1) == hashify_url_params(params2)
33
+ urls = url1 == url2
34
+ if params and urls
35
+ return true
36
+ end
37
+ return false
38
+ end
39
+
40
+ Spec::Matchers.define :be_eql_url do |original_url|
41
+ match do |generated_url|
42
+ eql_urls(generated_url, URI::encode(original_url))
43
+ end
44
+ failure_message_for_should do |generated_url|
45
+ diff = []
46
+ gen_url, gen_params = generated_url.split("?")
47
+ orig_url, orig_params = URI::encode(original_url).split("?")
48
+ if orig_params != gen_params
49
+ gen_params = hashify_url_params(gen_params)
50
+ orig_params = hashify_url_params(orig_params)
51
+ gen_params.each {|k, v| diff << [k, {"origin" => orig_params[k], "generated" => gen_params[k]}] if orig_params[k] != v }
52
+ orig_params.each {|k, v| diff << [k, {"origin" => orig_params[k], "generated" => gen_params[k]}] if gen_params[k] != v }
53
+ elsif gen_url != orig_url
54
+
55
+ end
56
+ "expected: #{generated_url} \n got: #{original_url} \n difference: #{diff}"
57
+ end
58
+ failure_message_for_should_not do |generated_url|
59
+ "expected: #{generated_url} \n to be different from: #{original_url}"
60
+ end
61
+ end
62
+
63
+
64
+ describe 'Reseller Club Models' do
65
+ include Rack::Test::Methods
66
+
67
+ context "Testing Customer Model" do
68
+
69
+ before(:all) do
70
+ # WARNING! Change `123456` for a real Reseller id and `myresellerpass` for the password of that reseller account across all the file
71
+ ResellerClub::authentication("123456", "myresellerpass")
72
+ end
73
+
74
+ it "should generate a correct url for signup" do
75
+ org_url = "https://test.httpapi.com/api/customers/signup.json?auth-userid=123456&auth-password=myresellerpass&username=david@myownresellercompany.com&passwd=marketleader&name=David&company=DavidCo&address-line-1=96 st&city=Miami&state=FL&country=US&zipcode=55333&phone-cc=186&phone=55151155&lang-pref=en"
76
+ Customer.signup("username" => "david@myownresellercompany.com", "passwd" => "marketleader", "name" => "David", "company" => "DavidCo", "address-line-1" => "96 st", "city" => "Miami", "state" => "FL", "country" => "US", "zipcode" => "55333", "phone-cc" => "186", "phone" => "55151155", "lang-pref" => "en", :test_mock => true).should be_eql_url(org_url)
77
+ end
78
+
79
+ it "should generate a correct url for update" do
80
+ org_url = "https://test.httpapi.com/api/customers/modify.json?auth-userid=123456&auth-password=myresellerpass&customer-id=5364&username=david@myownresellercompany.com&name=David&company=DavidCo&lang-pref=en&address-line-1=96 st&city=Miami&state=FL&country=US&zipcode=55333&phone-cc=186&phone=55151155"
81
+ Customer.modify("username" => "david@myownresellercompany.com", "name" => "David", "company" => "DavidCo", "address-line-1" => "96 st", "city" => "Miami", "state" => "FL", "country" => "US", "zipcode" => "55333", "phone-cc" => "186", "phone" => "55151155", "lang-pref" => "en", "customer-id" => "5364", :test_mock => true).should be_eql_url(org_url)
82
+ end
83
+
84
+ it "should generate a correct url for get_by_id" do
85
+ org_url = "https://test.httpapi.com/api/customers/details-by-id.json?auth-userid=123456&auth-password=myresellerpass&customer-id=5353"
86
+ Customer.details_by_id("customer_id" => "5353", :test_mock => true).should be_eql_url(org_url)
87
+ end
88
+
89
+ it "should generate a correct url for get_by_username" do
90
+ org_url = "https://test.httpapi.com/api/customers/details.json?auth-userid=123456&auth-password=myresellerpass&username=david@myownresellercompany.com"
91
+ Customer.details("username" => "david@myownresellercompany.com", :test_mock => true).should be_eql_url(org_url)
92
+ end
93
+
94
+ it "should generate a correct url for change_password" do
95
+ org_url = "https://test.httpapi.com/api/customers/change-password.json?auth-userid=123456&auth-password=myresellerpass&customer-id=8989&new-passwd=password1"
96
+ Customer.change_password("customer_id" => "8989", "new_passwd" => "password1", :test_mock => true).should be_eql_url(org_url)
97
+ end
98
+
99
+ it "should generate a correct url for generate_password" do
100
+ org_url = "https://test.httpapi.com/api/customers/temp-password.json?auth-userid=123456&auth-password=myresellerpass&customer-id=8989"
101
+ Customer.temp_password("customer_id" => "8989", :test_mock => true).should be_eql_url(org_url)
102
+ end
103
+
104
+ it "should generate a correct url for search" do
105
+ org_url = "https://test.httpapi.com/api/customers/search.json?auth-userid=123456&auth-password=myresellerpass&no-of-records=50&page-no=1&name=David"
106
+ Customer.search("name" => "David", :test_mock => true).should be_eql_url(org_url)
107
+ end
108
+
109
+ it "should generate a correct url for delete" do
110
+ org_url = "https://test.httpapi.com/api/customers/delete.json?auth-userid=123456&auth-password=myresellerpass&customer-id=5377"
111
+ Customer.delete("customer_id" => "5377", :test_mock => true).should be_eql_url(org_url)
112
+ end
113
+
114
+ it "should generate a correct url for generate_token" do
115
+ org_url = "https://test.httpapi.com/api/customers/generate-token.json?auth-userid=123456&auth-password=myresellerpass&username=david@myownresellercompany.com&passwd=customerpassword&ip=1.1.1.1"
116
+ Customer.generate_token("username"=>"david@myownresellercompany.com","passwd"=>"customerpassword", "ip"=>"1.1.1.1", :test_mock => true).should be_eql_url(org_url)
117
+ end
118
+
119
+ it "should generate a correct url for authenticate token" do
120
+ org_url = "https://test.httpapi.com/api/customers/authenticate-token.json?auth-userid=123456&auth-password=myresellerpass&token=generatedtoken"
121
+ Customer.authenticate_token("token" => "generatedtoken", :test_mock => true).should be_eql_url(org_url)
122
+ end
123
+ end
124
+
125
+ context "Testing Contact Model" do
126
+
127
+ before(:all) do
128
+ ResellerClub::authentication("123456", "myresellerpass")
129
+ end
130
+
131
+ it "should generate a correct url for add" do
132
+ org_url = "https://test.httpapi.com/api/contacts/add.json?auth-userid=123456&auth-password=myresellerpass&name=Joe&company=Registrants Inc&email=joe@registrants.com&address-line-1=main st no 41&city=Chicago&country=US&zipcode=11500&phone-cc=202&phone=636518&customer-id=8989245&type=Contact&state=Illinois"
133
+ Contact.add("name" => "Joe", "company" => "Registrants Inc", "email" => "joe@registrants.com", "address-line-1" => "main st no 41", "city" => "Chicago", "state" => "Illinois", "country" => "US", "zipcode" => "11500", "phone-cc" => "202", "phone" => "636518", "customer-id" => "8989245", "type" => "Contact", :test_mock => true).should be_eql_url(org_url)
134
+ end
135
+
136
+ it "should generate a correct url for modify" do
137
+ org_url = "https://test.httpapi.com/api/contacts/modify.json?auth-userid=123456&auth-password=myresellerpass&contact-id=25049249&name=Joe Jr&company=Registrants Inc&email=joe@registrants.com&address-line-1=main st no 41&city=Chicago&country=US&zipcode=11500&phone-cc=202&phone=536585"
138
+ Contact.modify("name" => "Joe Jr", "company" => "Registrants Inc", "email" => "joe@registrants.com", "address-line-1" => "main st no 41", "city" => "Chicago", "country" => "US", "zipcode" => "11500", "phone-cc" => "202", "phone" => "536585", "contact-id" => "25049249", :test_mock => true).should be_eql_url(org_url)
139
+ end
140
+
141
+ it "should generate a correct url for details" do
142
+ org_url = "https://test.httpapi.com/api/contacts/details.json?auth-userid=123456&auth-password=myresellerpass&contact-id=25050309"
143
+ Contact.details("contact_id" => "25050309", :test_mock => true).should be_eql_url(org_url)
144
+ end
145
+
146
+ it "should generate a correct url for search" do
147
+ org_url = "https://test.httpapi.com/api/contacts/search.json?auth-userid=123456&auth-password=myresellerpass&customer-id=8989245&no-of-records=50&page-no=1&name=Joe Jr"
148
+ Contact.search("name" => "Joe Jr", "customer-id" => "8989245", :test_mock => true).should be_eql_url(org_url)
149
+ end
150
+
151
+ it "should generate a correct url for default" do
152
+ org_url = "https://test.httpapi.com/api/contacts/default.json?auth-userid=123456&auth-password=myresellerpass&customer-id=8989245&type=Contact"
153
+ Contact.default("type" => "Contact", "customer-id" => "8989245", :test_mock => true).should be_eql_url(org_url)
154
+ end
155
+
156
+ it "should generate a correct url for delete" do
157
+ org_url = "https://test.httpapi.com/api/contacts/delete.json?auth-userid=123456&auth-password=myresellerpass&contact-id=25049249"
158
+ Contact.delete("contact_id" => "25049249", :test_mock => true).should be_eql_url(org_url)
159
+ end
160
+
161
+ it "should generate a correct url for set_details" do
162
+ org_url = "https://test.httpapi.com/api/contacts/set-details.json?auth-userid=123456&auth-password=myresellerpass&contact-id=25050309&attr-name1=sponsor1&attr-value1=200&product-key=dotcoop"
163
+ Contact.set_details("contact_id" => "25050309", "product-key" => "dotcoop", "attr-name1" => "sponsor1", "attr-value1" => "200", :test_mock => true).should be_eql_url(org_url)
164
+ end
165
+
166
+ it "should generate a correct url for sponsors" do
167
+ org_url = "https://test.httpapi.com/api/contacts/sponsors.json?auth-userid=123456&auth-password=myresellerpass&customer-id=8989245"
168
+ Contact.sponsors("customer_id" => "8989245", :test_mock => true).should be_eql_url(org_url)
169
+ end
170
+
171
+ it "should generate a correct url for coop_add_sponsor" do
172
+ org_url = "https://test.httpapi.com/api/contacts/coop/add-sponsor.json?auth-userid=123456&auth-password=myresellerpass&name=Dave&company=Registrants Inc&email=dave@registrants.com&address-line-1=main st no 41&city=Chicago&country=US&zipcode=11500&phone-cc=253&phone=531531&customer-id=8989245"
173
+ Contact.coop_add_sponsor("name" => "Dave", "company" => "Registrants Inc", "email" => "dave@registrants.com", "address-line-1" => "main st no 41", "city" => "Chicago", "country" => "US", "zipcode" => "11500", "phone-cc" => "253", "phone" => "531531", "customer-id" => "8989245", :test_mock => true).should be_eql_url(org_url)
174
+ end
175
+
176
+ it "should generate a correct url for dotca_registrantagreement" do
177
+ org_url = "https://test.httpapi.com/api/contacts/dotca/registrantagreement.json?auth-userid=123456&auth-password=myresellerpass"
178
+ Contact.dotca_registrantagreement(:test_mock => true).should be_eql_url(org_url)
179
+ end
180
+
181
+ it "should generate a correct url for validate_registrant" do
182
+ org_url = "https://test.httpapi.com/api/contacts/validate-registrant.json?auth-userid=123456&auth-password=myresellerpass&contact-id=50309&contact-id=1&eligibility-criteria=CED_ASIAN_COUNTRY&eligibility-criteria=CED_DETAILS"
183
+ Contact.validate_registrant("contact_id" => ["50309", "1"], "eligibility-criteria" => ["CED_ASIAN_COUNTRY", "CED_DETAILS"], :test_mock => true).should be_eql_url(org_url)
184
+ end
185
+ end
186
+
187
+ context "Testing Domain Model" do
188
+ before(:all) do
189
+ ResellerClub::authentication("123456", "myresellerpass")
190
+ end
191
+
192
+ it "should generate a correct url for available" do
193
+ org_url = "https://test.httpapi.com/api/domains/available.json?auth-userid=123456&auth-password=myresellerpass&domain-name=registrants&tlds=com&tlds=net"
194
+ Domain.available("domain-name" => ["registrants"], "tlds" => ["com", "net"], :test_mock => true).should be_eql_url(org_url)
195
+ end
196
+
197
+ it "should generate a correct url for idn-available" do
198
+ org_url = "https://test.httpapi.com/api/domains/idn-available.json?auth-userid=123456&auth-password=myresellerpass&domain-name=españa&tld=es&idnLanguageCode=es"
199
+ Domain.idn_available("domain-name" => "españa", "tld" => "es", "idnLanguageCode" => "es", :test_mock => true).should be_eql_url(org_url)
200
+ end
201
+
202
+ it "should generate a correct url for suggest_names" do
203
+ org_url = "https://test.httpapi.com/api/domains/suggest-names.json?auth-userid=123456&auth-password=myresellerpass&keyword=ipad&tlds=com&tlds=net&no-of-results=5&hyphen-allowed=true&add-related=true"
204
+ Domain.suggest_names("keyword" => "ipad", "tlds" => ["com", "net"], "hyphen-allowed" => "true", "add-related" => "true", "no-of-results" => "5", :test_mock => true).should be_eql_url(org_url)
205
+ end
206
+
207
+ it "should generate a correct url for register" do
208
+ org_url = "https://test.httpapi.com/api/domains/register.json?auth-userid=123456&auth-password=myresellerpass&domain-name=domain.asia&years=1&ns=ns1.domain.com&ns=ns2.domain.com&customer-id=8989245&reg-contact-id=25052632&admin-contact-id=25052632&tech-contact-id=25052632&billing-contact-id=25052632&invoice-option=NoInvoice&protect-privacy=true"
209
+ Domain.register("domain-name" => "domain.asia", "years" => "1", "ns" => ["ns1.domain.com", "ns2.domain.com"], "customer_id" => "8989245", "reg-contact-id" => "25052632", "admin-contact-id" => "25052632", "tech-contact-id" => "25052632", "billing-contact-id" => "25052632", "invoice-option" => "NoInvoice", "protect-privacy" => "true", :test_mock => true).should be_eql_url(org_url)
210
+ end
211
+
212
+ it "should generate a correct url for register a .COM IDN" do
213
+ org_url = "https://test.httpapi.com/api/domains/register.json?auth-userid=123456&auth-password=myresellerpass&domain-name=ѯҋ112.com&years=1&ns=ns1.domain.com&ns=ns2.domain.com&customer-id=8989245&reg-contact-id=25052632&admin-contact-id=25052632&tech-contact-id=25052632&billing-contact-id=25052632&invoice-option=NoInvoice&protect-privacy=true&attr-name1=idnLanguageCode&attr-value1=aze"
214
+ Domain.register("domain-name" => "ѯҋ112.com", "years" => "1", "ns" => ["ns1.domain.com", "ns2.domain.com"], "customer_id" => "8989245", "reg-contact-id" => "25052632", "admin-contact-id" => "25052632", "tech-contact-id" => "25052632", "billing-contact-id" => "25052632", "invoice-option" => "NoInvoice", "protect-privacy" => "true", "attr-name1" => "idnLanguageCode", "attr-value1" => "aze", :test_mock => true).should be_eql_url(org_url)
215
+ end
216
+
217
+ it "should generate a correct url for register a AU Domain" do
218
+ org_url = "https://test.httpapi.com/api/domains/register.json?auth-userid=123456&auth-password=myresellerpass&domain-name=domain.net.au&years=1&ns=ns1.domain.com&ns=ns2.domain.com&customer-id=8989245&reg-contact-id=25052632&admin-contact-id=25052632&tech-contact-id=25052632&billing-contact-id=25052632&invoice-option=NoInvoice&protect-privacy=true&attr-name1=id-type&attr-value1=ACN&attr-name2=id&attr-value2=079 009 340&attr-name3=policyReason&attr-value3=1&attr-name4=isAUWarranty&attr-value4=true"
219
+ Domain.register("domain-name" => "domain.net.au", "years" => "1", "ns" => ["ns1.domain.com", "ns2.domain.com"], "customer_id" => "8989245", "reg-contact-id" => "25052632", "admin-contact-id" => "25052632", "tech-contact-id" => "25052632", "billing-contact-id" => "25052632", "invoice-option" => "NoInvoice", "protect-privacy" => "true", "attr-name1" => "id-type", "attr-value1" => "ACN", "attr-name2" => "id", "attr-value2" => "079 009 340", "attr-name3" => "policyReason", "attr-value3" => "1", "attr-name4" => "isAUWarranty", "attr-value4" => "true", :test_mock => true).should be_eql_url(org_url)
220
+ end
221
+
222
+
223
+ it "should generate a correct url for validate_transfer" do
224
+ org_url = "https://test.httpapi.com/api/domains/validate-transfer.json?auth-userid=123456&auth-password=myresellerpass&domain-name=google.com"
225
+ Domain.validate_transfer("domain_name" => "google.com", :test_mock => true).should be_eql_url(org_url)
226
+ end
227
+
228
+ it "should generate a correct url for transfer" do
229
+ org_url = "https://test.httpapi.com/api/domains/transfer.json?auth-userid=123456&auth-password=myresellerpass&domain-name=newdomain.asia&auth-code=auth-code&ns=ns1.domain.com&ns=ns2.domain.com&customer-id=3265463&reg-contact-id=5243658&admin-contact-id=63532223&tech-contact-id=67543261&billing-contact-id=42165314&invoice-option=KeepInvoice&protect-privacy=false&attr-name1=cedcontactid&attr-value1=0"
230
+ Domain.transfer("domain-name" => "newdomain.asia", "auth-code" => "auth-code", "ns" => ["ns1.domain.com", "ns2.domain.com"], "customer-id" => "3265463", "reg-contact-id" => "5243658", "admin-contact-id" => "63532223", "tech-contact-id" => "67543261", "billing-contact-id" => "42165314", "invoice-option" => "KeepInvoice", "protect-privacy" => "false", "attr-name1" => "cedcontactid", "attr-value1" => "0", :test_mock => true).should be_eql_url(org_url)
231
+ end
232
+
233
+ # it "should generate a correct url for transfer_eu" do
234
+ # org_url = ""
235
+ # Domain.transfer_eu("domain-name" => "myeudomain.eu", "customer-id" => "6463465", "invoice-option" => "NoInvoice", "ns" => ["ns1.domain.org", "ns2.domain.org"], "cns1" => "ns1.domain.eu", "ip1" => "0.0.0.0,1.1.1.1", "cns2" => "ns2.domain.eu", "ip2" => "0.0.0.0,1.1.1.1").should be_eql_url(org_url)
236
+ # end
237
+
238
+ # it "should generate a correct url for trade" do
239
+ # org_url = ""
240
+ # Domain.trade("domain-name" => "domain.eu", "customer-id" => "53142", "invoice-option" => "NoInvoice", "ns" => ["ns1.domain.org", "ns2.domain.org"], "cns1" => "ns1.domain.eu", "ip1" => "0.0.0.0,1.1.1.1", "cns2" => "ns2.domain.eu", "ip2" => "0.0.0.0,1.1.1.1", "reg-contact-id" => "0").should be_eql_url(org_url)
241
+ # end
242
+
243
+ it "should generate a correct url for renew" do
244
+ org_url = "https://test.httpapi.com/api/domains/renew.json?auth-userid=123456&auth-password=myresellerpass&order-id=46983636&years=1&exp-date=1353825293&invoice-option=NoInvoice"
245
+ Domain.renew("order-id" => "46983636", "years" => "1", "exp-date" => "1353825293", "invoice-option" => "NoInvoice", :test_mock => true).should be_eql_url(org_url)
246
+ end
247
+
248
+ it "should generate a correct url for search" do
249
+ org_url = "https://test.httpapi.com/api/domains/search.json?auth-userid=123456&auth-password=myresellerpass&no-of-records=10&page-no=1&domain-name=registrants.com"
250
+ Domain.search("domain-name" => "registrants.com", :test_mock => true).should be_eql_url(org_url)
251
+ end
252
+
253
+ it "should generate a correct url for customer_default_ns" do
254
+ org_url = "https://test.httpapi.com/api/domains/customer-default-ns.json?auth-userid=123456&auth-password=myresellerpass&customer-id=111"
255
+ Domain.customer_default_ns("customer_id" => "111", :test_mock => true).should be_eql_url(org_url)
256
+ end
257
+
258
+ it "should generate a correct url for orderid" do
259
+ org_url = "https://test.httpapi.com/api/domains/orderid.json?auth-userid=123456&auth-password=myresellerpass&domain-name=domain.com"
260
+ Domain.orderid("domain-name" => "domain.com", :test_mock => true).should be_eql_url(org_url)
261
+ end
262
+
263
+ it "should generate a correct url for details" do
264
+ org_url = "https://test.httpapi.com/api/domains/details.json?auth-userid=123456&auth-password=myresellerpass&order-id=300&options=OrderDetails"
265
+ Domain.details("order-id" => "300", "options" => "OrderDetails", :test_mock => true).should be_eql_url(org_url)
266
+ end
267
+
268
+ it "should generate a correct url for modify_ns" do
269
+ org_url = "https://test.httpapi.com/api/domains/modify-ns.json?auth-userid=123456&auth-password=myresellerpass&order-id=111&ns=ns1.domain.asia&ns=ns2.domain.asia"
270
+ Domain.modify_ns("order-id" => "111", "ns" => ["ns1.domain.asia", "ns2.domain.asia"], :test_mock => true).should be_eql_url(org_url)
271
+ end
272
+
273
+ it "should generate a correct url for add_cns" do
274
+ org_url = "https://test.httpapi.com/api/domains/add-cns.json?auth-userid=123456&auth-password=myresellerpass&order-id=111&cns=ns1.domain.com&ip=0.0.0.0&ip=1.1.1.1"
275
+ Domain.add_cns("order-id" => "111", "cns" => "ns1.domain.com", "ip" => ["0.0.0.0", "1.1.1.1"], :test_mock => true).should be_eql_url(org_url)
276
+ end
277
+
278
+ it "should generate a correct url for modify_cns_name" do
279
+ org_url = "https://test.httpapi.com/api/domains/modify-cns-name.json?auth-userid=123456&auth-password=myresellerpass&order-id=555&old-cns=ns1.domain.com&new-cns=ns2.domain.com"
280
+ Domain.modify_cns_name("order-id" => "555", "old-cns" => "ns1.domain.com", "new-cns" => "ns2.domain.com", :test_mock => true).should be_eql_url(org_url)
281
+ end
282
+
283
+ it "should generate a correct url for modify_cns_ip" do
284
+ org_url = "https://test.httpapi.com/api/domains/modify-cns-ip.json?auth-userid=123456&auth-password=myresellerpass&order-id=777&cns=ns1.domain.com&old-ip=0.0.0.0&new-ip=1.1.1.1"
285
+ Domain.modify_cns_ip("order-id" => "777", "cns" => "ns1.domain.com", "old-ip" => "0.0.0.0", "new-ip" => "1.1.1.1", :test_mock => true).should be_eql_url(org_url)
286
+ end
287
+
288
+ it "should generate a correct url for enable_theft_protection" do
289
+ org_url = "https://test.httpapi.com/api/domains/enable-theft-protection.json?auth-userid=123456&auth-password=myresellerpass&order-id=51"
290
+ Domain.enable_theft_protection("order-id" => "51", :test_mock => true).should be_eql_url(org_url)
291
+ end
292
+
293
+ it "should generate a correct url for delete_cns_ip" do
294
+ org_url = "https://test.httpapi.com/api/domains/delete-cns-ip.json?auth-userid=123456&auth-password=myresellerpass&order-id=531&cns=ns1.domain.asia&ip=1.2.3.4"
295
+ Domain.delete_cns_ip("order-id" => "531", "cns" => "ns1.domain.asia", "ip" => "1.2.3.4", :test_mock => true).should be_eql_url(org_url)
296
+ end
297
+
298
+ it "should generate a correct url for modify_contact" do
299
+ org_url = "https://test.httpapi.com/api/domains/modify-contact.json?auth-userid=123456&auth-password=myresellerpass&order-id=753&reg-contact-id=1645316&admin-contact-id=53146&tech-contact-id=8361166&billing-contact-id=6146"
300
+ Domain.modify_contact("order-id" => "753", "reg-contact-id" => "1645316", "admin-contact-id" => "53146", "tech-contact-id" => "8361166", "billing-contact-id" => "6146", :test_mock => true).should be_eql_url(org_url)
301
+ end
302
+
303
+ it "should generate a correct url for modify_privacy_protection" do
304
+ org_url = "https://test.httpapi.com/api/domains/modify-privacy-protection.json?auth-userid=123456&auth-password=myresellerpass&order-id=42323&protect-privacy=true&reason=somereason"
305
+ Domain.modify_privacy_protection("order-id" => "42323", "protect-privacy" => "true", "reason" => "somereason", :test_mock => true).should be_eql_url(org_url)
306
+ end
307
+
308
+ it "should generate a correct url for modify_auth_code" do
309
+ org_url = "https://test.httpapi.com/api/domains/modify-auth-code.json?auth-userid=123456&auth-password=myresellerpass&order-id=564&auth-code=authcode"
310
+ Domain.modify_auth_code("order-id" => "564", "auth-code" => "authcode", :test_mock => true).should be_eql_url(org_url)
311
+ end
312
+
313
+ it "should generate a correct url for disable_theft_protection" do
314
+ org_url = "https://test.httpapi.com/api/domains/disable-theft-protection.json?auth-userid=123456&auth-password=myresellerpass&order-id=53"
315
+ Domain.disable_theft_protection("order-id" => "53", :test_mock => true).should be_eql_url(org_url)
316
+ end
317
+
318
+ it "should generate a correct url for locks" do
319
+ org_url = "https://test.httpapi.com/api/domains/locks.json?auth-userid=123456&auth-password=myresellerpass&order-id=65"
320
+ Domain.locks("order-id" => "65", :test_mock => true).should be_eql_url(org_url)
321
+ end
322
+
323
+ it "should generate a correct url for tel_cth_details" do
324
+ org_url = "https://test.httpapi.com/api/domains/tel/cth-details.json?auth-userid=123456&auth-password=myresellerpass&order-id=65"
325
+ Domain.tel_cth_details("order-id" => "65", :test_mock => true).should be_eql_url(org_url)
326
+ end
327
+
328
+ it "should generate a correct url for tel_modify_whois_pref" do
329
+ org_url = "https://test.httpapi.com/api/domains/tel/modify-whois-pref.json?auth-userid=123456&auth-password=myresellerpass&order-id=573&whois-type=Legal&publish=y"
330
+ Domain.tel_modify_whois_pref("order-id" => "573", "whois-type" => "Legal", "publish" => "y", :test_mock => true).should be_eql_url(org_url)
331
+ end
332
+
333
+ it "should generate a correct url for resend_rfa" do
334
+ org_url = "https://test.httpapi.com/api/domains/resend-rfa.json?auth-userid=123456&auth-password=myresellerpass&order-id=65"
335
+ Domain.resend_rfa("order-id" => "65", :test_mock => true).should be_eql_url(org_url)
336
+ end
337
+
338
+ it "should generate a correct url for uk_release" do
339
+ org_url = "https://test.httpapi.com/api/domains/uk/release.json?auth-userid=123456&auth-password=myresellerpass&order-id=5357&new-tag=newregistrartag"
340
+ Domain.uk_release("order-id" => "5357", "new-tag" => "newregistrartag", :test_mock => true).should be_eql_url(org_url)
341
+ end
342
+
343
+ it "should generate a correct url for cancel_transfer" do
344
+ org_url = "https://test.httpapi.com/api/domains/cancel-transfer.json?auth-userid=123456&auth-password=myresellerpass&order-id=536"
345
+ Domain.cancel_transfer("order-id" => "536", :test_mock => true).should be_eql_url(org_url)
346
+ end
347
+
348
+ it "should generate a correct url for delete" do
349
+ org_url = "https://test.httpapi.com/api/domains/delete.json?auth-userid=123456&auth-password=myresellerpass&order-id=536"
350
+ Domain.delete("order-id" => "536", :test_mock => true).should be_eql_url(org_url)
351
+ end
352
+
353
+ it "should generate a correct url for restore" do
354
+ org_url = "https://test.httpapi.com/api/domains/restore.json?auth-userid=123456&auth-password=myresellerpass&order-id=560&invoice-option=KeepInvoice"
355
+ Domain.restore("order-id" => "560", "invoice-option" => "KeepInvoice", :test_mock => true).should be_eql_url(org_url)
356
+ end
357
+
358
+ it "should generate a correct url for de_recheck_ns" do
359
+ org_url = "https://test.httpapi.com/api/domains/de/recheck-ns.json?auth-userid=123456&auth-password=myresellerpass&order-id=568"
360
+ Domain.de_recheck_ns("order-id" => "568", :test_mock => true).should be_eql_url(org_url)
361
+ end
362
+
363
+ it "should generate a correct url for dotxxx_association_details" do
364
+ org_url = "https://test.httpapi.com/api/domains/dotxxx/association-details.json?auth-userid=123456&auth-password=myresellerpass&order-id=123&association-id=123"
365
+ Domain.dotxxx_association_details("order-id" => "123", "association-id" => "123", :test_mock => true).should be_eql_url(org_url)
366
+ end
367
+
368
+ end
369
+
370
+ context "Testing Order Model" do
371
+
372
+ before(:all) do
373
+ ResellerClub::authentication("123456", "myresellerpass")
374
+ end
375
+
376
+ it "should generate a correct url for suspend" do
377
+ org_url = "https://test.httpapi.com/api/orders/suspend.json?auth-userid=123456&auth-password=myresellerpass&order-id=31&reason=reason-for-suspension"
378
+ Order.suspend("order-id" => "31", "reason" => "reason-for-suspension", :test_mock => true).should be_eql_url(org_url)
379
+ end
380
+
381
+ it "should generate a correct url for unsuspend" do
382
+ org_url = "https://test.httpapi.com/api/orders/unsuspend.json?auth-userid=123456&auth-password=myresellerpass&order-id=31"
383
+ Order.unsuspend("order-id" => "31", :test_mock => true).should be_eql_url(org_url)
384
+ end
385
+
386
+ end
387
+
388
+ # context "Testing Reseller Model" do
389
+
390
+ # before(:all) do
391
+ # ResellerClub::authentication("123456", "myresellerpass")
392
+ # end
393
+
394
+ # it "should generate a correct url for add" do
395
+ # org_url = ""
396
+ # Reseller.signup("username" => "thomas@reseller.com","passwd" => "shoemaker","name" => "Thomas", "address_line_1" => "5ft avenue #253", "company" => "Reseller Inc.", "city" => "NYC", "state" => "NY", "country" => "CU", "zipcode" => "12345655", "phone_cc" => "011", "phone" => "531531","accounting_currency_symbol" => "USD", "selling_currency_symbol" => "USD", "sales_contact_id" => "531", :test_mock => true).should be_eql_url(org_url)
397
+ # end
398
+
399
+ # it "should generate a correct url for update" do
400
+ # org_url = ""
401
+ # Reseller.modify("username" => "sergei@google.com","passwd" => "brin", "name" => "Serguei Brin","address_line_1" => "Silicon Valley #53", "company" => "Google Inc.", "city" => "Silicon Valley", "state" => "California", "country" => "US", "zipcode" => "123456", "phone_cc" => "531", "phone" => "531531","reseller_id"=> "433154", "accounting_currency_symbol" => "USD", "selling_currency_symbol" => "USD", "website_url" => "http://www.google.com").should be_eql_url(org_url)
402
+ # end
403
+
404
+ # it "should generate a correct url for get_details" do
405
+ # org_url = ""
406
+ # Reseller.get_details("433154").should be_eql_url(org_url)
407
+ # end
408
+
409
+ # it "should generate a correct url for generate_password" do
410
+ # org_url = ""
411
+ # Reseller.generate_password("433154").should be_eql_url(org_url)
412
+ # end
413
+
414
+ # it "should generate a correct url for search" do
415
+ # org_url = ""
416
+ # Reseller.search("name" => "Tyler").should be_eql_url(org_url)
417
+ # end
418
+
419
+ # it "should generate a correct url for generate_token" do
420
+ # org_url = ""
421
+ # Reseller.generate_token("auth_userid" => "433154", "auth_password" => "lV6UAIxi", "ip" => "69.63.139.34").should be_eql_url(org_url)
422
+ # end
423
+
424
+ # it "should generate a correct url for authenticate_token" do
425
+ # org_url = ""
426
+ # Reseller.authenticate_token("auth_userid" => "433154", "auth_password" => "lV6UAIxi", "token" => "token").should be_eql_url(org_url)
427
+ # end
428
+
429
+ # it "should generate a correct url for promo_prices" do
430
+ # org_url = ""
431
+ # Reseller.promo_prices("auth_userid" => "433154", "auth_password" => "lV6UAIxi").should be_eql_url(org_url)
432
+ # end
433
+ # end
434
+
435
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: resellerclub
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Damian Rodriguez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: typhoeus
16
+ requirement: &76186690 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.3.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *76186690
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &76186430 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *76186430
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &76186190 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 2.11.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *76186190
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-expectations
49
+ requirement: &76185920 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.11.3
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *76185920
58
+ description: A gem that implements the sections Customer, Reseller, Contact and Domain
59
+ from ResellerClub
60
+ email: damian@speedyrails.com
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - lib/resellerclub.rb
66
+ - lib/mixin.rb
67
+ - spec/basic_spec.rb
68
+ - lib/models/contact.rb
69
+ - lib/models/customer.rb
70
+ - lib/models/reseller.rb
71
+ - lib/models/domain.rb
72
+ - lib/models/order.rb
73
+ homepage:
74
+ licenses: []
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ requirements: []
92
+ rubyforge_project:
93
+ rubygems_version: 1.8.11
94
+ signing_key:
95
+ specification_version: 3
96
+ summary: A gem that implements partially ResellerClub API
97
+ test_files: []