endicia_ruby 0.0.1 → 0.1.0

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