walmart_open 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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