purolator_ruby 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4272c92883bbfd16b0596657841de5a90599822c
4
- data.tar.gz: 05b2f1ec24c9c49b64f48f7c88384aa97fe659b5
3
+ metadata.gz: d9ffe792eaac8c1f2f80823bc6fa7aa1d7bb1000
4
+ data.tar.gz: 91f3ff53114d9a2775fab487afccb790a11e11a9
5
5
  SHA512:
6
- metadata.gz: 0ee4a3818f4aabbee1cb6b9231d7a6bd481471049525e0bc85a56a62085429e7ef7fbc69dfbb87f440a86fef4e070792927714a6a3340f983fc5456f7eedac6a
7
- data.tar.gz: 2de472adfccff1b5b1e35d4843f16cf860dc0c78a802f0fdb28459cef271ba580ffb10b16faf28293f80adf6f0d565127df2fe3785f8b00a2c6eb6f3f4040037
6
+ metadata.gz: 0040853935f978951d7c73ed493eae5f90ba329913ff85a6ef15807a38ad5246cdaaa2750b878a76c8b4432a703154dc9c97a5f035715f6a2d97b5a7d0ba16d5
7
+ data.tar.gz: 6ced26c451fadeccd2816c662ec9c103a78ba945bd017202f97f12856c45546f3fed98dfb3923489e5bdd27226f598cb8daa64474a05f97ea8110b3385f3cee9
@@ -1,19 +1,29 @@
1
- require 'virtus'
1
+
2
2
 
3
3
  module PurolatorRuby
4
4
 
5
5
  class CreateShipmentPayload
6
6
 
7
- include Virtus.model
7
+ def initialize(options)
8
+ _attrs.each do |attr|
9
+ singleton_class.class_eval do
10
+ attr_accessor attr
11
+ end
12
+ end
8
13
 
9
- attribute :sender_address, String
10
- attribute :receiver_address, String
11
- attribute :shipping_date, Date
12
- attribute :weight, String
13
- attribute :pieces, String
14
- attribute :reference, String
15
- attribute :account_number, String
16
- attribute :billing_number, String
14
+ options.each do |attr, value|
15
+ if respond_to?(attr)
16
+ send("#{attr}=", value)
17
+ end
18
+ end
19
+ end
20
+
21
+ def attributes
22
+ _attrs.inject({}) do |attrs, attribute|
23
+ attrs[attribute] = send(attribute)
24
+ attrs
25
+ end
26
+ end
17
27
 
18
28
  def valid?
19
29
  missing_attributes.size == 0
@@ -30,6 +40,19 @@ module PurolatorRuby
30
40
  end
31
41
 
32
42
  private
43
+ def _attrs
44
+ [
45
+ :sender_address,
46
+ :receiver_address,
47
+ :shipping_date,
48
+ :weight,
49
+ :pieces,
50
+ :reference,
51
+ :account_number,
52
+ :billing_number
53
+ ]
54
+ end
55
+
33
56
  def missing_attributes
34
57
  attributes.select {|attr, val| val.nil? }
35
58
  end
@@ -1,4 +1,28 @@
1
- require 'facets/hash/except'
1
+ class Hash
2
+
3
+ # Returns a new hash less the given keys.
4
+ def except(*less_keys)
5
+ hash = dup
6
+ less_keys.each{ |k| hash.delete(k) }
7
+ hash
8
+ end
9
+
10
+ # Replaces hash with new hash less the given keys.
11
+ # This returns the hash of keys removed.
12
+ #
13
+ # h = {:a=>1, :b=>2, :c=>3}
14
+ # h.except!(:a) #=> {:a=>1}
15
+ # h #=> {:b=>2,:c=>3}
16
+ #
17
+ # Returns a Hash of the removed pairs.
18
+ def except!(*rejected)
19
+ removed = {}
20
+ rejected.each{ |k| removed[k] = delete(k) }
21
+ removed
22
+ end
23
+
24
+ end
25
+
2
26
 
3
27
  module PurolatorRuby
4
28
 
@@ -1,3 +1,3 @@
1
1
  module PurolatorRuby
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -20,14 +20,10 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "httpclient", ">= 2.6.0.1"
22
22
  spec.add_dependency "savon", ">= 2.11.1"
23
- spec.add_dependency "facets", ">= 3.0.0"
24
- spec.add_dependency "virtus", "~> 1.0", ">= 1.0.5"
25
23
 
26
24
  spec.add_development_dependency "bundler", "~> 1.7"
27
25
  spec.add_development_dependency "rake", "~> 10.0"
28
26
  spec.add_development_dependency "rspec", "~> 3.3.0"
29
27
  spec.add_development_dependency "vcr", "~> 2.9.3"
30
- spec.add_development_dependency "webmock", "~> 1.21.0"
31
- spec.add_development_dependency "pry", "~> 0.10.1"
32
- spec.add_development_dependency "awesome_print", "~> 1.6.1"
28
+ spec.add_development_dependency "webmock", "~> 1.20.4"
33
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purolator_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Filipov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-30 00:00:00.000000000 Z
11
+ date: 2015-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -38,40 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.11.1
41
- - !ruby/object:Gem::Dependency
42
- name: facets
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 3.0.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 3.0.0
55
- - !ruby/object:Gem::Dependency
56
- name: virtus
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 1.0.5
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '1.0'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 1.0.5
75
41
  - !ruby/object:Gem::Dependency
76
42
  name: bundler
77
43
  requirement: !ruby/object:Gem::Requirement
@@ -134,42 +100,14 @@ dependencies:
134
100
  requirements:
135
101
  - - "~>"
136
102
  - !ruby/object:Gem::Version
137
- version: 1.21.0
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 1.21.0
145
- - !ruby/object:Gem::Dependency
146
- name: pry
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: 0.10.1
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: 0.10.1
159
- - !ruby/object:Gem::Dependency
160
- name: awesome_print
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: 1.6.1
103
+ version: 1.20.4
166
104
  type: :development
167
105
  prerelease: false
168
106
  version_requirements: !ruby/object:Gem::Requirement
169
107
  requirements:
170
108
  - - "~>"
171
109
  - !ruby/object:Gem::Version
172
- version: 1.6.1
110
+ version: 1.20.4
173
111
  description: ''
174
112
  email:
175
113
  - bfilipov@gmail.com