mad_cart 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +1 -1
- data/lib/mad_cart/model/base.rb +2 -2
- data/lib/mad_cart/store/base.rb +2 -2
- data/lib/mad_cart/store/big_commerce.rb +4 -5
- data/lib/mad_cart/store/spree.rb +4 -4
- data/lib/mad_cart/version.rb +1 -1
- data/mad_cart.gemspec +1 -1
- data/spec/lib/configuration_spec.rb +0 -6
- data/spec/lib/model/base_spec.rb +0 -1
- data/spec/lib/model/customer_spec.rb +0 -5
- data/spec/lib/model/product_spec.rb +0 -5
- data/spec/lib/store/base_spec.rb +5 -5
- data/spec/lib/store/etsy_spec.rb +2 -5
- data/spec/lib/store/spree_spec.rb +5 -5
- data/spec/spec_helper.rb +5 -7
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a80578ffa5622853d9e5b888aafeabaab3ff747d9bdfb3878bb1f135cb07a1fb
|
4
|
+
data.tar.gz: c7bf4b3c4c7187ce8a1f86626c12c9bcb106c5f811ec5ee705fca53f6e0398ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a20e18302a6e26b6569b43312ee4aa0ccd3de58a19fc85dfc664a8134ff7927dd6f37fad97474a8299337d70c4d544c7621b5906d6c253d2e0ceb3ec1dea43f1
|
7
|
+
data.tar.gz: 2709111a2709b0afea3d6324e66b3cbe002ac8e0a86ad788ec84a7166213edebebd2e53166a5116acfe663e5412443c28eb9fbf9e0778f5a81e803a884df33c9
|
data/.travis.yml
CHANGED
data/lib/mad_cart/model/base.rb
CHANGED
@@ -14,7 +14,7 @@ module MadCart
|
|
14
14
|
include InheritableAttributes
|
15
15
|
attr_accessor :additional_attributes
|
16
16
|
inheritable_attributes :required_attrs
|
17
|
-
attr_accessor
|
17
|
+
attr_accessor(*exposed_attributes)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -54,7 +54,7 @@ module MadCart
|
|
54
54
|
module ClassMethods
|
55
55
|
def required_attributes(*args)
|
56
56
|
@required_attrs = args.map{|a| a.to_s }
|
57
|
-
attr_accessor
|
57
|
+
attr_accessor(*args)
|
58
58
|
end
|
59
59
|
|
60
60
|
def exposed_attributes
|
data/lib/mad_cart/store/base.rb
CHANGED
@@ -54,12 +54,12 @@ module MadCart
|
|
54
54
|
private :valid_by_path?
|
55
55
|
|
56
56
|
def parse_response(&block)
|
57
|
-
response = check_for_errors
|
57
|
+
response = check_for_errors(&block)
|
58
58
|
empty_body?(response) ? [] : response.body
|
59
59
|
end
|
60
60
|
private :parse_response
|
61
61
|
|
62
|
-
def check_for_errors
|
62
|
+
def check_for_errors
|
63
63
|
response = yield
|
64
64
|
|
65
65
|
case response.status
|
@@ -52,16 +52,15 @@ module MadCart
|
|
52
52
|
|
53
53
|
def get_customer_hashes
|
54
54
|
result = []
|
55
|
-
|
55
|
+
for_each(:make_customer_request) {|c| result << c }
|
56
56
|
result
|
57
57
|
end
|
58
58
|
|
59
|
-
def
|
60
|
-
|
59
|
+
def for_each(source, &block)
|
61
60
|
items = send(source, :min_id => 1)
|
62
61
|
|
63
|
-
|
64
|
-
items.each
|
62
|
+
loop do
|
63
|
+
items.each(&block)
|
65
64
|
break if items.count < 50
|
66
65
|
items = send(source, :min_id => items.last['id'] + 1 )
|
67
66
|
end
|
data/lib/mad_cart/store/spree.rb
CHANGED
@@ -30,10 +30,10 @@ module MadCart
|
|
30
30
|
parse_response { connection.get('products.json', params) }
|
31
31
|
end
|
32
32
|
|
33
|
-
def get_products(
|
33
|
+
def get_products(_options={})
|
34
34
|
product_hashes = []
|
35
35
|
|
36
|
-
|
36
|
+
for_each(:make_product_request, :products) do |r|
|
37
37
|
product_hashes << r
|
38
38
|
end
|
39
39
|
|
@@ -64,7 +64,7 @@ module MadCart
|
|
64
64
|
def get_customer_hashes
|
65
65
|
orders = []
|
66
66
|
|
67
|
-
|
67
|
+
for_each(:make_order_request, :orders) do |r|
|
68
68
|
orders << {
|
69
69
|
order_number: r["number"],
|
70
70
|
user_email: r["email"]
|
@@ -84,7 +84,7 @@ module MadCart
|
|
84
84
|
end.compact
|
85
85
|
end
|
86
86
|
|
87
|
-
def
|
87
|
+
def for_each(source, items_key, &block)
|
88
88
|
response = send(source, { :page => 1 })
|
89
89
|
items = response[items_key.to_s]
|
90
90
|
pages_count = response['pages']
|
data/lib/mad_cart/version.rb
CHANGED
data/mad_cart.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency "etsy", "0.2.6"
|
24
24
|
spec.add_dependency "money", "~> 6.7"
|
25
25
|
spec.add_dependency "monetize", "~> 1.4"
|
26
|
-
spec.add_dependency
|
26
|
+
spec.add_dependency "activesupport", ">= 4.2"
|
27
27
|
|
28
28
|
spec.add_development_dependency "bundler", "~> 1.3"
|
29
29
|
spec.add_development_dependency "rake"
|
@@ -1,12 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "configuration" do
|
4
|
-
|
5
|
-
# use a clean instance for each test
|
6
|
-
before(:each) do
|
7
|
-
clear_config
|
8
|
-
end
|
9
|
-
|
10
4
|
describe "stores" do
|
11
5
|
it "does not require store to be added if credentials are passed to constructor" do
|
12
6
|
expect { MadCart::Store::BigCommerce.new({:api_key => 'a_fake_key', :store_url => '/path/to/store', :username => 'bob'}) }.not_to raise_error
|
data/spec/lib/model/base_spec.rb
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe MadCart::Model::Customer do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
clear_config
|
7
|
-
end
|
8
|
-
|
9
4
|
it "returns the default attributes" do
|
10
5
|
attrs = {"first_name" => 'Bob', "last_name" => 'Sagat', "email" => 'bob@sagat.com'}
|
11
6
|
c = MadCart::Model::Customer.new(attrs)
|
@@ -1,11 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe MadCart::Model::Product do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
clear_config
|
7
|
-
end
|
8
|
-
|
9
4
|
it "returns the default attributes" do
|
10
5
|
extra_attrs = {"external_id" => 'id', "price" => '12USD',
|
11
6
|
"url" => 'path/to/product', "currency_code" => 'ZAR',
|
data/spec/lib/store/base_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe MadCart::Store::Base do
|
|
16
16
|
MyStore.class_eval do
|
17
17
|
create_connection_with :connection_method
|
18
18
|
|
19
|
-
def connection_method(
|
19
|
+
def connection_method(_args={})
|
20
20
|
return TestResult
|
21
21
|
end
|
22
22
|
end
|
@@ -26,7 +26,7 @@ describe MadCart::Store::Base do
|
|
26
26
|
|
27
27
|
it "accepts a proc" do
|
28
28
|
MyStore.class_eval do
|
29
|
-
create_connection_with
|
29
|
+
create_connection_with(Proc.new {|_args| TestResult })
|
30
30
|
end
|
31
31
|
|
32
32
|
expect(MyStore.new.connection).to eql(TestResult)
|
@@ -207,7 +207,7 @@ describe MadCart::Store::Base do
|
|
207
207
|
@my_instance_var = args.first[:connection]
|
208
208
|
end
|
209
209
|
|
210
|
-
def connect_method(*
|
210
|
+
def connect_method(*_args)
|
211
211
|
return @my_instance_var
|
212
212
|
end
|
213
213
|
end
|
@@ -217,10 +217,10 @@ describe MadCart::Store::Base do
|
|
217
217
|
|
218
218
|
it "accepts a proc" do
|
219
219
|
MyStore.class_eval do
|
220
|
-
after_initialize
|
220
|
+
after_initialize(Proc.new { |_arg| TestResult.new })
|
221
221
|
create_connection_with :connect_method
|
222
222
|
|
223
|
-
def connect_method(*
|
223
|
+
def connect_method(*_args)
|
224
224
|
return @my_instance_var
|
225
225
|
end
|
226
226
|
end
|
data/spec/lib/store/etsy_spec.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe MadCart::Store::Etsy do
|
4
|
-
|
5
|
-
before(:each) { clear_config }
|
6
|
-
|
7
4
|
describe "retrieving products" do
|
8
5
|
context "the store doesn't exist" do
|
9
6
|
let(:invalid_store_name) { 'MadeUpStore' }
|
@@ -35,7 +32,7 @@ describe MadCart::Store::Etsy do
|
|
35
32
|
expect(first_product.name).not_to be_nil
|
36
33
|
expect(first_product.description).not_to be_nil
|
37
34
|
expect(first_product.image_url).not_to be_nil
|
38
|
-
expect(first_product.additional_attributes['price']).to eql(BigDecimal
|
35
|
+
expect(first_product.additional_attributes['price']).to eql(BigDecimal('2.5'))
|
39
36
|
end
|
40
37
|
end
|
41
38
|
|
@@ -52,7 +49,7 @@ describe MadCart::Store::Etsy do
|
|
52
49
|
expect(first_product.name).not_to be_nil
|
53
50
|
expect(first_product.description).not_to be_nil
|
54
51
|
expect(first_product.image_url).not_to be_nil
|
55
|
-
expect(first_product.additional_attributes['price']).to eql(BigDecimal
|
52
|
+
expect(first_product.additional_attributes['price']).to eql(BigDecimal('2.2'))
|
56
53
|
end
|
57
54
|
end
|
58
55
|
end
|
@@ -32,7 +32,7 @@ describe MadCart::Store::Spree do
|
|
32
32
|
context "retrieval" do
|
33
33
|
context "basic spree installation" do
|
34
34
|
it "returns all products" do
|
35
|
-
VCR.use_cassette(spree_cassette
|
35
|
+
VCR.use_cassette(spree_cassette) do
|
36
36
|
api = MadCart::Store::Spree.new(valid_credentials)
|
37
37
|
|
38
38
|
expect(api.products.size).to eql(58)
|
@@ -50,7 +50,7 @@ describe MadCart::Store::Spree do
|
|
50
50
|
|
51
51
|
context "alternative spree installation" do
|
52
52
|
it "returns all products" do
|
53
|
-
VCR.use_cassette(spree_alternative_cassette
|
53
|
+
VCR.use_cassette(spree_alternative_cassette) do
|
54
54
|
api = MadCart::Store::Spree.new(valid_alternative_credentials)
|
55
55
|
|
56
56
|
expect(api.products.size).to eql(148)
|
@@ -78,7 +78,7 @@ describe MadCart::Store::Spree do
|
|
78
78
|
context "count" do
|
79
79
|
|
80
80
|
it "returns how many products there are" do
|
81
|
-
VCR.use_cassette(spree_cassette
|
81
|
+
VCR.use_cassette(spree_cassette) do
|
82
82
|
api = MadCart::Store::Spree.new(valid_credentials)
|
83
83
|
expect(api.products_count).to eql(58)
|
84
84
|
end
|
@@ -92,7 +92,7 @@ describe MadCart::Store::Spree do
|
|
92
92
|
context "retrieval" do
|
93
93
|
|
94
94
|
it "returns all customers" do
|
95
|
-
VCR.use_cassette(spree_cassette
|
95
|
+
VCR.use_cassette(spree_cassette) do
|
96
96
|
api = MadCart::Store::Spree.new(valid_credentials)
|
97
97
|
|
98
98
|
expect(api.customers.size).to be > 0
|
@@ -112,7 +112,7 @@ describe MadCart::Store::Spree do
|
|
112
112
|
|
113
113
|
describe "validating credentials" do
|
114
114
|
it "succeeds if it can get orders.json from Spree" do
|
115
|
-
VCR.use_cassette(spree_cassette
|
115
|
+
VCR.use_cassette(spree_cassette) do
|
116
116
|
api = MadCart::Store::Spree.new(valid_credentials)
|
117
117
|
|
118
118
|
expect(api).to be_valid
|
data/spec/spec_helper.rb
CHANGED
@@ -24,6 +24,11 @@ RSpec.configure do |config|
|
|
24
24
|
config.order = 'random'
|
25
25
|
|
26
26
|
config.include WebMock::API
|
27
|
+
|
28
|
+
config.after(:each) do
|
29
|
+
# Re-initialize the MadCart::Configuration singleton instance
|
30
|
+
Singleton.__init__(MadCart::Configuration)
|
31
|
+
end
|
27
32
|
end
|
28
33
|
|
29
34
|
VCR.configure do |c|
|
@@ -32,10 +37,3 @@ VCR.configure do |c|
|
|
32
37
|
#c.default_cassette_options = { :record => :new_episodes }
|
33
38
|
#c.debug_logger = File.open('vcr.log', 'w')
|
34
39
|
end
|
35
|
-
|
36
|
-
|
37
|
-
# helper methods
|
38
|
-
def clear_config
|
39
|
-
# Re-initialize the MadCart::Configuration singleton instance
|
40
|
-
Singleton.__init__(MadCart::Configuration)
|
41
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mad_cart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc Heiligers
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-12-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
name: activesupport
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- - "
|
89
|
+
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '4.2'
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- - "
|
96
|
+
- - ">="
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '4.2'
|
99
99
|
- !ruby/object:Gem::Dependency
|
@@ -272,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
272
|
version: '0'
|
273
273
|
requirements: []
|
274
274
|
rubyforge_project:
|
275
|
-
rubygems_version: 2.
|
275
|
+
rubygems_version: 2.7.6
|
276
276
|
signing_key:
|
277
277
|
specification_version: 4
|
278
278
|
summary: Allows communication with various e-commerce merchants such as BigCommerce
|