walmart_open 0.0.2 → 0.0.3
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 +15 -0
- data/lib/walmart_open/order.rb +4 -0
- data/lib/walmart_open/shipping_address.rb +19 -20
- data/lib/walmart_open/version.rb +1 -1
- data/spec/walmart_open/order_spec.rb +28 -12
- data/spec/walmart_open/shipping_address_spec.rb +12 -3
- metadata +15 -33
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTAwODg3ZDIxMDFmYjVmZGRmMjFmOGYwOTk3NzQ3ODc1ZjVlYjU2Zg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NmY5MTY3NmJkOTgwNGJkMDg1MDI4MWRkYWQwZTU3MzE5ODgyMzMwOQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGI5M2EwMzhlZjRiZWNiNjVjYmY2ZjYxYjQzMWE1YjRjODVjNzg1ZGNlYmRi
|
10
|
+
YTA1YWUyMzE2YTAzZDI4NTI3Njk5OWM3YzYxYzc4MTkzM2Q2MDhjNGM5ZWYz
|
11
|
+
OWE3YmI5ZGRhMjZiMDFjMDgyNThjODQzZGQzNGQ0N2M1ZjQ3MGM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Yjg0M2JiNWIyNzhkZmRjN2I5YTU0MDRjMWUwZjU1Y2JhMjU5Njk3YzQ3M2U4
|
14
|
+
ZGZjNTRhMDMwMWExZDNmY2NmYjFhM2UwYjIyYjNiZmJjOGQwNTZkNjU0MzUz
|
15
|
+
YTAzNGI0ZTI1ZDk4MDBjZDcxYmI3NzQ5ODkyMmY3ZTJhOTU0NDQ=
|
data/lib/walmart_open/order.rb
CHANGED
@@ -11,6 +11,10 @@ module WalmartOpen
|
|
11
11
|
:partner_order_id, :phone, :items
|
12
12
|
|
13
13
|
def initialize(params)
|
14
|
+
params = params.each_with_object({}) do |pair, obj|
|
15
|
+
obj[pair.first.to_sym] = pair.last
|
16
|
+
end
|
17
|
+
|
14
18
|
@shipping_address = nil
|
15
19
|
@items = []
|
16
20
|
@billing_id = params[:billing_id]
|
@@ -1,23 +1,21 @@
|
|
1
1
|
module WalmartOpen
|
2
2
|
class ShippingAddress
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
API_ATTRIBUTES_MAPPING.each_value do |attr_name|
|
13
|
-
attr_reader attr_name
|
14
|
-
end
|
15
|
-
|
16
|
-
attr_reader :raw_attributes
|
3
|
+
ATTRIBUTES = [
|
4
|
+
:street1,
|
5
|
+
:street2,
|
6
|
+
:city,
|
7
|
+
:state,
|
8
|
+
:zipcode,
|
9
|
+
:country
|
10
|
+
]
|
11
|
+
attr_reader *ATTRIBUTES
|
17
12
|
|
18
13
|
def initialize(params)
|
19
|
-
|
20
|
-
|
14
|
+
params = params.each_with_object({}) do |pair, obj|
|
15
|
+
obj[pair.first.to_sym] = pair.last
|
16
|
+
end
|
17
|
+
|
18
|
+
set_attributes(params)
|
21
19
|
end
|
22
20
|
|
23
21
|
def valid?
|
@@ -25,11 +23,12 @@ module WalmartOpen
|
|
25
23
|
end
|
26
24
|
|
27
25
|
private
|
28
|
-
def extract_known_attributes
|
29
|
-
API_ATTRIBUTES_MAPPING.each do |api_attr, attr|
|
30
|
-
next unless raw_attributes.has_key?(api_attr)
|
31
26
|
|
32
|
-
|
27
|
+
def set_attributes(attrs)
|
28
|
+
ATTRIBUTES.each do |attr|
|
29
|
+
next unless attrs.include?(attr)
|
30
|
+
|
31
|
+
instance_variable_set("@#{attr}", attrs[attr])
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
data/lib/walmart_open/version.rb
CHANGED
@@ -5,23 +5,23 @@ describe WalmartOpen::Order do
|
|
5
5
|
context "create order" do
|
6
6
|
let(:order_params) do
|
7
7
|
{
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
billing_id: 1,
|
9
|
+
first_name: "James",
|
10
|
+
last_name: "Fong",
|
11
|
+
partner_order_id: "42",
|
12
|
+
phone: "606-478-0850",
|
13
|
+
partner_order_time: Time.now
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
17
17
|
let(:shipping_addr_params) do
|
18
18
|
{
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
street1: "Listia Inc, 200 Blossom Ln",
|
20
|
+
street2: "street2 test",
|
21
|
+
city: "Mountain View",
|
22
|
+
state: "CA",
|
23
|
+
zipcode: "94043",
|
24
|
+
country: "USA"
|
25
25
|
}
|
26
26
|
end
|
27
27
|
|
@@ -38,6 +38,22 @@ describe WalmartOpen::Order do
|
|
38
38
|
expect(order.partner_order_id).to eq(order_params[:partner_order_id])
|
39
39
|
expect(order.partner_order_time).to eq(order_params[:partner_order_time])
|
40
40
|
end
|
41
|
+
|
42
|
+
it "accepts string keys" do
|
43
|
+
stringified_order_params = order_params.each_with_object({}) do |pair, obj|
|
44
|
+
obj[pair.first.to_s] = pair.last
|
45
|
+
end
|
46
|
+
WalmartOpen::Order.new(stringified_order_params)
|
47
|
+
|
48
|
+
expect(order.shipping_address).to be_nil
|
49
|
+
expect(order.items).to be_empty
|
50
|
+
expect(order.billing_id).to eql(order_params[:billing_id])
|
51
|
+
expect(order.first_name).to eql(order_params[:first_name])
|
52
|
+
expect(order.last_name).to eql(order_params[:last_name])
|
53
|
+
expect(order.phone).to eql(order_params[:phone])
|
54
|
+
expect(order.partner_order_id).to eq(order_params[:partner_order_id])
|
55
|
+
expect(order.partner_order_time).to eq(order_params[:partner_order_time])
|
56
|
+
end
|
41
57
|
end
|
42
58
|
|
43
59
|
context "#add_shipping_address" do
|
@@ -27,11 +27,20 @@ describe WalmartOpen::ShippingAddress do
|
|
27
27
|
it "sets attributes" do
|
28
28
|
shipping_address = WalmartOpen::ShippingAddress.new(valid_attrs)
|
29
29
|
|
30
|
-
WalmartOpen::ShippingAddress::
|
31
|
-
expect(shipping_address.public_send(
|
30
|
+
WalmartOpen::ShippingAddress::ATTRIBUTES.each do |attr|
|
31
|
+
expect(shipping_address.public_send(attr)).to eq(valid_attrs[attr])
|
32
32
|
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it "accepts string keys" do
|
36
|
+
stringified_valid_attrs = valid_attrs.each_with_object({}) do |pair, obj|
|
37
|
+
obj[pair.first.to_s] = pair.last
|
38
|
+
end
|
39
|
+
shipping_address = WalmartOpen::ShippingAddress.new(stringified_valid_attrs)
|
33
40
|
|
34
|
-
|
41
|
+
WalmartOpen::ShippingAddress::ATTRIBUTES.each do |attr|
|
42
|
+
expect(shipping_address.public_send(attr)).to eq(valid_attrs[attr])
|
43
|
+
end
|
35
44
|
end
|
36
45
|
end
|
37
46
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: walmart_open
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.0.2
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ngan Pham
|
@@ -10,136 +9,120 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-12-
|
12
|
+
date: 2013-12-13 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
type: :runtime
|
16
|
+
prerelease: false
|
16
17
|
name: httparty
|
17
18
|
version_requirements: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '0.10'
|
23
23
|
requirement: !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
24
|
requirements:
|
26
25
|
- - ~>
|
27
26
|
- !ruby/object:Gem::Version
|
28
27
|
version: '0.10'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
29
|
type: :runtime
|
30
30
|
prerelease: false
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
31
|
name: builder
|
33
32
|
version_requirements: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
33
|
requirements:
|
36
34
|
- - ! '>='
|
37
35
|
- !ruby/object:Gem::Version
|
38
36
|
version: 3.0.0
|
39
37
|
requirement: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
38
|
requirements:
|
42
39
|
- - ! '>='
|
43
40
|
- !ruby/object:Gem::Version
|
44
41
|
version: 3.0.0
|
45
|
-
type: :runtime
|
46
|
-
prerelease: false
|
47
42
|
- !ruby/object:Gem::Dependency
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
48
45
|
name: bundler
|
49
46
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
47
|
requirements:
|
52
48
|
- - ~>
|
53
49
|
- !ruby/object:Gem::Version
|
54
50
|
version: '1.3'
|
55
51
|
requirement: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
52
|
requirements:
|
58
53
|
- - ~>
|
59
54
|
- !ruby/object:Gem::Version
|
60
55
|
version: '1.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
61
57
|
type: :development
|
62
58
|
prerelease: false
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
59
|
name: rake
|
65
60
|
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
61
|
requirements:
|
68
62
|
- - ! '>='
|
69
63
|
- !ruby/object:Gem::Version
|
70
64
|
version: '0'
|
71
65
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
66
|
requirements:
|
74
67
|
- - ! '>='
|
75
68
|
- !ruby/object:Gem::Version
|
76
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
77
71
|
type: :development
|
78
72
|
prerelease: false
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
73
|
name: rspec
|
81
74
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
75
|
requirements:
|
84
76
|
- - ~>
|
85
77
|
- !ruby/object:Gem::Version
|
86
78
|
version: 3.0.0.beta1
|
87
79
|
requirement: !ruby/object:Gem::Requirement
|
88
|
-
none: false
|
89
80
|
requirements:
|
90
81
|
- - ~>
|
91
82
|
- !ruby/object:Gem::Version
|
92
83
|
version: 3.0.0.beta1
|
84
|
+
- !ruby/object:Gem::Dependency
|
93
85
|
type: :development
|
94
86
|
prerelease: false
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
87
|
name: debugger
|
97
88
|
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
89
|
requirements:
|
100
90
|
- - ~>
|
101
91
|
- !ruby/object:Gem::Version
|
102
92
|
version: '1.6'
|
103
93
|
requirement: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
94
|
requirements:
|
106
95
|
- - ~>
|
107
96
|
- !ruby/object:Gem::Version
|
108
97
|
version: '1.6'
|
98
|
+
- !ruby/object:Gem::Dependency
|
109
99
|
type: :development
|
110
100
|
prerelease: false
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
101
|
name: timecop
|
113
102
|
version_requirements: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
103
|
requirements:
|
116
104
|
- - ~>
|
117
105
|
- !ruby/object:Gem::Version
|
118
106
|
version: '0.7'
|
119
107
|
requirement: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
108
|
requirements:
|
122
109
|
- - ~>
|
123
110
|
- !ruby/object:Gem::Version
|
124
111
|
version: '0.7'
|
112
|
+
- !ruby/object:Gem::Dependency
|
125
113
|
type: :development
|
126
114
|
prerelease: false
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
115
|
name: webmock
|
129
116
|
version_requirements: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
117
|
requirements:
|
132
118
|
- - ~>
|
133
119
|
- !ruby/object:Gem::Version
|
134
120
|
version: 1.16.0
|
135
121
|
requirement: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
122
|
requirements:
|
138
123
|
- - ~>
|
139
124
|
- !ruby/object:Gem::Version
|
140
125
|
version: 1.16.0
|
141
|
-
type: :development
|
142
|
-
prerelease: false
|
143
126
|
description: Ruby implementation for Walmart Open API.
|
144
127
|
email:
|
145
128
|
- ngan@listia.com
|
@@ -194,27 +177,26 @@ files:
|
|
194
177
|
homepage: https://github.com/listia/walmart_open
|
195
178
|
licenses:
|
196
179
|
- MIT
|
180
|
+
metadata: {}
|
197
181
|
post_install_message:
|
198
182
|
rdoc_options: []
|
199
183
|
require_paths:
|
200
184
|
- lib
|
201
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
186
|
requirements:
|
204
187
|
- - ! '>='
|
205
188
|
- !ruby/object:Gem::Version
|
206
189
|
version: '0'
|
207
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
|
-
none: false
|
209
191
|
requirements:
|
210
192
|
- - ! '>='
|
211
193
|
- !ruby/object:Gem::Version
|
212
194
|
version: '0'
|
213
195
|
requirements: []
|
214
196
|
rubyforge_project:
|
215
|
-
rubygems_version: 1.
|
197
|
+
rubygems_version: 2.1.9
|
216
198
|
signing_key:
|
217
|
-
specification_version:
|
199
|
+
specification_version: 4
|
218
200
|
summary: Ruby implementation for Walmart Open API
|
219
201
|
test_files:
|
220
202
|
- spec/spec_helper.rb
|