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 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=
@@ -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
- API_ATTRIBUTES_MAPPING = {
4
- street1: "street1",
5
- street2: "street2",
6
- city: "city",
7
- state: "state",
8
- zipcode: "zipcode",
9
- country: "country",
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
- @raw_attributes = params
20
- extract_known_attributes
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
- instance_variable_set("@#{attr}", raw_attributes[api_attr])
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
@@ -1,3 +1,3 @@
1
1
  module WalmartOpen
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -5,23 +5,23 @@ describe WalmartOpen::Order do
5
5
  context "create order" do
6
6
  let(:order_params) do
7
7
  {
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
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
- street1: "Listia Inc, 200 Blossom Ln",
20
- street2: "street2 test",
21
- city: "Mountain View",
22
- state: "CA",
23
- zipcode: "94043",
24
- country: "USA"
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::API_ATTRIBUTES_MAPPING.each do |key, value|
31
- expect(shipping_address.public_send(value)).to eq(valid_attrs[key])
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
- expect(shipping_address.raw_attributes).to eq(valid_attrs)
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
- prerelease:
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 00:00:00.000000000 Z
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.8.25
197
+ rubygems_version: 2.1.9
216
198
  signing_key:
217
- specification_version: 3
199
+ specification_version: 4
218
200
  summary: Ruby implementation for Walmart Open API
219
201
  test_files:
220
202
  - spec/spec_helper.rb