purolator_ruby 0.0.1 → 0.0.2

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 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