endicia_ruby 0.0.1 → 0.1.0

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: f2de8392ca2c214fdb8b8a14f2b05bc4521349c8
4
- data.tar.gz: 5becd6d57d1652bb94d369618d51703305597d4c
3
+ metadata.gz: 069bc5090abdcefa20260fd618036ac0f9438a03
4
+ data.tar.gz: fa9e5f2e9957c1f2712a04f2b033859b75553185
5
5
  SHA512:
6
- metadata.gz: 0d2f26229ecb9af9e764dda8f9fe3d63b7cf99f7047f655d56b5ee4af8b65121d003d5945a40901c7c539bfbcd6312b453eedb094a63901bc4541bfdff1ce938
7
- data.tar.gz: 1a4d7e2fc91b8afc9662f042fb07afdbd581692b836a13556e7eea45dbc4eb9b8c5410b5132212e07694ccd991e331f5ab8f88bcf84555731e7b0e1cacf60a4f
6
+ metadata.gz: 6940cb6f90dbdf668bab142075a394c54eef47a63ee3546fee998883c54e6ffdfcac2a9865837b85922de36123d23c4cc1b68ee86117b0236cbdede7146ef4de
7
+ data.tar.gz: fba952cd0c7e4dbd5d8f2ec8d2b6d11d9998c99dde58ee0f5d88af2c9993a729b1e991639b2ead1cb8461292cfd8a682ae0b166aaea6c135024f80aa3275f86d
@@ -37,7 +37,45 @@ module Endicia
37
37
  end
38
38
  end
39
39
 
40
- private
40
+ # True if this result represents a successful label response
41
+ def success?
42
+ status && status.to_i == 0
43
+ end
44
+
45
+ # True if this is an error and it's a "critical" one, meaning the ability
46
+ # to generate further labels could be impeded by the information received back
47
+ def critical_error?
48
+ CRITICAL_ERROR_CODES.include?(status.to_i)
49
+ end
50
+
51
+ private
52
+
53
+ CRITICAL_ERROR_CODES = [
54
+ 1101,
55
+ 2011,
56
+ 2012,
57
+ 2013,
58
+ 2014,
59
+ 2015,
60
+ 2020,
61
+ 2021,
62
+ 12101,
63
+ 12103,
64
+ 12104,
65
+ 12115,
66
+ 12116,
67
+ 12117,
68
+ 12120,
69
+ 12130,
70
+ 12133,
71
+ 12503,
72
+ 12505,
73
+ 12507,
74
+ 12515,
75
+ 12525,
76
+ 100201,
77
+ ].freeze
78
+
41
79
  def filter_response_body(string)
42
80
  # Strip image data for readability:
43
81
  string.sub(/<.*Image>.+<\/.*Image>/, "<Image>[data]</Image>")
@@ -1,3 +1,3 @@
1
1
  module Endicia
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -81,4 +81,69 @@ describe Endicia::LabelResponse do
81
81
  end
82
82
  end
83
83
  end
84
+ describe "#success?" do
85
+ let(:status) { nil }
86
+ subject(:label_response) { described_class.new(OpenStruct.new(body: "<foo></foo>", LabelRequestResponse: {"Status" => status})) }
87
+
88
+ context "when '0'" do
89
+ let(:status) { "0" }
90
+ specify { expect(label_response.success?).to eq(true) }
91
+ end
92
+
93
+ context "when 0" do
94
+ let(:status) { 0 }
95
+ specify { expect(label_response.success?).to eq(true) }
96
+ end
97
+
98
+ context "when not 0" do
99
+ let(:status) { "1234" }
100
+ specify { expect(label_response.success?).to eq(false) }
101
+ end
102
+ end
103
+
104
+ describe "#critical_error?" do
105
+ let(:status) { nil }
106
+ subject(:label_response) { described_class.new(OpenStruct.new(body: "<foo></foo>", LabelRequestResponse: {"Status" => status})) }
107
+
108
+ context "when 0" do
109
+ let(:status) { 0 }
110
+ specify { expect(label_response.critical_error?).to eq(false) }
111
+ end
112
+
113
+ context "when not 1234" do
114
+ let(:status) { "1234" }
115
+ specify { expect(label_response.critical_error?).to eq(false) }
116
+ end
117
+ [
118
+ 1101,
119
+ 2011,
120
+ 2012,
121
+ 2013,
122
+ 2014,
123
+ 2015,
124
+ 2020,
125
+ 2021,
126
+ 12101,
127
+ 12103,
128
+ 12104,
129
+ 12115,
130
+ 12116,
131
+ 12117,
132
+ 12120,
133
+ 12130,
134
+ 12133,
135
+ 12503,
136
+ 12505,
137
+ 12507,
138
+ 12515,
139
+ 12525,
140
+ 100201,
141
+ ].each do |code|
142
+ context "when #{code}" do
143
+ let(:status) { code.to_s }
144
+ specify { expect(label_response.critical_error?).to eq(true) }
145
+ end
146
+ end
147
+ end
148
+
84
149
  end
data/spec/spec_helper.rb CHANGED
@@ -24,7 +24,7 @@ end
24
24
  RSpec.configure do |config|
25
25
  config.order = "random"
26
26
  config.expect_with :rspec do |c|
27
- c.syntax = [:should, :expect]
27
+ c.syntax = :expect
28
28
  end
29
29
  end
30
30
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: endicia_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Dean
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-27 00:00:00.000000000 Z
12
+ date: 2014-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri