nebulous_stomp 3.0.5 → 3.0.6

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: 75827626849c1d26ba8f21465eafa8d48207319b
4
- data.tar.gz: 734c269b98446b75f9edc73f859edc3581d67fd7
3
+ metadata.gz: f6f4a2145417269d91fb5af909112fc156acedd3
4
+ data.tar.gz: 239d92f6a514118ed89f5aef198e83bd241e9d9e
5
5
  SHA512:
6
- metadata.gz: 93481ce2f9d904de24cfdf7a49dd210e2b27bc7b3ce18eec2bb68057488cf895fd1db81abc557cffefe8ac74de6ae4dd4a963c4f16e995fd5c0649144d9268f1
7
- data.tar.gz: 659802263676b7574a4a4a5c6380e1aa58932452b8127def575d8b75c3ffe1291f320ee7ac1c852d5f75504450b361c2e0f1ab39149e09c9d1aa7c2aa453050f
6
+ metadata.gz: f96fe76be982ddb17d8461b713f83be0cd69c8e566656c41d6727eac05222a7acff7ff1ece6021129837ecaaa40766b8d4fcf9a9e284333da348f827bd38959d
7
+ data.tar.gz: efc8c9a69b4c5d8a443f5a095b7c4893f75df7c9a2160a40109e44c7497f717a308e5db3d9f0f40e7f121b0e6aa1d5de10928480ce77b0d40a6b46200bc346c2
@@ -27,7 +27,7 @@ module NebulousStomp
27
27
  #
28
28
  def initialize(is_json, hash)
29
29
  @is_json = !!is_json
30
- @stomp_body = hash[:stompBody]
30
+ @stomp_body = fix_bad_encoding( hash[:stompBody] )
31
31
  @body = hash[:body]
32
32
  @verb = hash[:verb]
33
33
  @params = hash[:parameters] || hash[:params]
@@ -162,6 +162,21 @@ module NebulousStomp
162
162
  end
163
163
  end
164
164
 
165
+ ##
166
+ # Deal with encoding problems. Try ISO8859-1 first. (Sorry for the Western bias, but this
167
+ # solves a lot of use-cases for us.)
168
+ #
169
+ def fix_bad_encoding(string)
170
+ return nil if string.nil?
171
+
172
+ unless string.valid_encoding?
173
+ s = string.encode("UTF-8", "ISO8859-1")
174
+ string = s if s.valid_encoding?
175
+ end
176
+
177
+ string.encode!(invalid: :replace, undef: :replace) unless string.valid_encoding?
178
+ string
179
+ end
165
180
 
166
181
  end # Message::Body
167
182
 
@@ -1,5 +1,5 @@
1
1
  module NebulousStomp
2
2
 
3
3
  # Nebulous version number
4
- VERSION = "3.0.5"
4
+ VERSION = "3.0.6"
5
5
  end
@@ -126,7 +126,7 @@ describe Message do
126
126
  expect( m.body ).to eq "wigi wigi"
127
127
  end
128
128
 
129
- it "leaves body alone if it\'s an empty array and there is no protocol and no stompbody" do
129
+ it "leaves body alone if it's an empty array and there is no protocol and no stompbody" do
130
130
  # rather than processing a nil stompbody and ending up with nil/NULL
131
131
  m = Message.new(body: [])
132
132
  expect( m.body ).to eq([])
@@ -147,6 +147,12 @@ describe Message do
147
147
  expect{ Message.new(body: 'bar') }.not_to raise_exception
148
148
  end
149
149
 
150
+ it "encodes the stompbody if the encoding is not valid" do
151
+ m = Message.new(stompBody: "foo \xa2 bar")
152
+ expect( m.body ).to match /foo.*bar/
153
+ expect( m.body ).to be_valid_encoding
154
+ end
155
+
150
156
  end # of Message.new
151
157
 
152
158
 
@@ -54,6 +54,12 @@ describe Request do
54
54
  request
55
55
  end
56
56
 
57
+ let(:request2) do
58
+ request = new_request(target1, message1)
59
+ @stomp_handler.insert_fake Message.new(inReplyTo: request.message.reply_id, stompBody: "1 \xa2 2")
60
+ request
61
+ end
62
+
57
63
  before(:each) do
58
64
  # We shouldn't be calling Stomp or Redis in these tests. If we are, this will give us an error.
59
65
  fakestomp = double("fakestomp")
@@ -170,6 +176,11 @@ describe Request do
170
176
  expect( request.send_no_cache ).to be_nil
171
177
  end
172
178
 
179
+ it "encodes the response message body from Stomp if the encoding was not valid" do
180
+ response = request2.send_no_cache
181
+ expect( response.body ).to be_valid_encoding
182
+ end
183
+
173
184
  end # of #send_no_cache
174
185
 
175
186
 
@@ -254,6 +265,11 @@ describe Request do
254
265
  expect( request.send ).to be_nil
255
266
  end
256
267
 
268
+ it "encodes the response message body from Stomp if the encoding was not valid" do
269
+ response = request2.send
270
+ expect( response.body ).to be_valid_encoding
271
+ end
272
+
257
273
  end # of #send
258
274
 
259
275
 
data/tags CHANGED
@@ -1,9 +1,12 @@
1
1
  !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
2
  !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
+ Body lib/nebulous_stomp/msg/body.rb /^ class Body$/;" c class:NebulousStomp.Msg
3
4
  ConnectionError lib/nebulous.rb /^ class ConnectionError < NebulousError; end$/;" c class:Nebulous inherits:NebulousError
4
5
  DocNoPending spec/doc_no_pending.rb /^class DocNoPending < RSpec::Core::Formatters::DocumentationFormatter$/;" c inherits:RSpec.Core.Formatters.DocumentationFormatter
5
6
  Helpers spec/helpers.rb /^module Helpers$/;" m
6
7
  Message lib/nebulous/message.rb /^ class Message$/;" c class:Nebulous
8
+ Message lib/nebulous_stomp/message.rb /^ class Message$/;" c class:NebulousStomp
9
+ Msg lib/nebulous_stomp/msg/body.rb /^ module Msg$/;" m class:NebulousStomp
7
10
  NebRequest lib/nebulous/nebrequest.rb /^ class NebRequest$/;" c class:Nebulous
8
11
  NebRequestNull lib/nebulous/nebrequest_null.rb /^ class NebRequestNull < NebRequest$/;" c class:Nebulous inherits:NebRequest
9
12
  Nebulous lib/nebulous.rb /^module Nebulous$/;" m
@@ -17,6 +20,8 @@ Nebulous lib/nebulous/stomp_handler.rb /^module Nebulous$/;" m
17
20
  Nebulous lib/nebulous/stomp_handler_null.rb /^module Nebulous$/;" m
18
21
  Nebulous lib/nebulous/version.rb /^module Nebulous$/;" m
19
22
  NebulousError lib/nebulous.rb /^ class NebulousError < StandardError; end$/;" c class:Nebulous inherits:StandardError
23
+ NebulousStomp lib/nebulous_stomp/message.rb /^module NebulousStomp$/;" m
24
+ NebulousStomp lib/nebulous_stomp/msg/body.rb /^module NebulousStomp$/;" m
20
25
  NebulousStomp lib/nebulous_stomp/redis_handler.rb /^module NebulousStomp$/;" m
21
26
  NebulousStomp lib/nebulous_stomp/request.rb /^module NebulousStomp$/;" m
22
27
  NebulousStomp lib/nebulous_stomp/stomp_handler.rb /^module NebulousStomp$/;" m
@@ -38,6 +43,7 @@ VERSION lib/nebulous/version.rb /^ VERSION = "1.1.5"$/;" C class:Nebulous
38
43
  add_target lib/nebulous.rb /^ def self.add_target(name, targetHash) # -> nil$/;" F class:Nebulous
39
44
  add_target lib/nebulous/param.rb /^ def add_target(n, t)$/;" f class:Nebulous.Param
40
45
  body_for_stomp lib/nebulous/message.rb /^ def body_for_stomp$/;" f class:Nebulous.Message
46
+ body_for_stomp lib/nebulous_stomp/msg/body.rb /^ def body_for_stomp$/;" f class:NebulousStomp.Msg.Body
41
47
  body_to_h lib/nebulous/message.rb /^ def body_to_h$/;" f class:Nebulous.Message
42
48
  body_to_hash lib/nebulous/stomp_handler.rb /^ def body_to_hash(headers, body, contentType=nil)$/;" F class:Nebulous.StompHandler
43
49
  cTimeout lib/nebulous/nebrequest.rb /^ attr_reader :cTimeout$/;" f class:Nebulous.NebRequest
@@ -73,9 +79,13 @@ example_pending spec/doc_no_pending.rb /^ def example_pending(notifications); e
73
79
  fake_mess lib/nebulous/stomp_handler_null.rb /^ attr_reader :fake_mess$/;" f class:Nebulous.StompHandlerNull
74
80
  fake_pair lib/nebulous/redis_handler_null.rb /^ attr_reader :fake_pair$/;" f class:Nebulous.RedisHandlerNull
75
81
  fill_from_message lib/nebulous/message.rb /^ def fill_from_message$/;" f class:Nebulous.Message
82
+ fill_from_stomp lib/nebulous_stomp/msg/body.rb /^ def fill_from_stomp$/;" f class:NebulousStomp.Msg.Body
83
+ fix_bad_encoding lib/nebulous_stomp/msg/body.rb /^ def fix_bad_encoding(string)$/;" f class:NebulousStomp.Msg.Body
76
84
  from_cache lib/nebulous/message.rb /^ def from_cache(json)$/;" F class:Nebulous.Message
85
+ from_cache lib/nebulous_stomp/message.rb /^ def from_cache(json)$/;" f class:NebulousStomp.Message
77
86
  from_parts lib/nebulous/message.rb /^ def from_parts(replyTo, inReplyTo, verb, params, desc)$/;" F class:Nebulous.Message
78
87
  from_stomp lib/nebulous/message.rb /^ def from_stomp(stompMsg)$/;" F class:Nebulous.Message
88
+ from_stomp lib/nebulous_stomp/message.rb /^ def from_stomp(stompMsg)$/;" f class:NebulousStomp.Message
79
89
  get lib/nebulous/param.rb /^ def get(p)$/;" f class:Nebulous.Param
80
90
  get lib/nebulous/redis_handler_null.rb /^ def get(key); @fake_pair.values.first; end$/;" f class:Nebulous.RedisHandlerNull
81
91
  get_all lib/nebulous/param.rb /^ def get_all()$/;" f class:Nebulous.Param
@@ -84,6 +94,7 @@ get_target lib/nebulous/param.rb /^ def get_target(name)$/;" f class:Nebulous
84
94
  headers_for_stomp lib/nebulous/message.rb /^ def headers_for_stomp$/;" f class:Nebulous.Message
85
95
  in_reply_to lib/nebulous/message.rb /^ def in_reply_to(msg, verb, params=nil, desc=nil, replyTo=nil)$/;" F class:Nebulous.Message
86
96
  in_reply_to lib/nebulous/message.rb /^ attr_reader :reply_to, :in_reply_to $/;" f class:Nebulous.Message
97
+ in_reply_to lib/nebulous_stomp/message.rb /^ def in_reply_to(msg, args)$/;" f class:NebulousStomp.Message
87
98
  init lib/nebulous.rb /^ def self.init(paramHash={}) $/;" F class:Nebulous
88
99
  initialize lib/nebulous/message.rb /^ def initialize(hash)$/;" f class:Nebulous.Message
89
100
  initialize lib/nebulous/nebrequest.rb /^ def initialize( target, $/;" f class:Nebulous.NebRequest
@@ -92,6 +103,8 @@ initialize lib/nebulous/redis_handler.rb /^ def initialize(connectHash, testR
92
103
  initialize lib/nebulous/redis_handler_null.rb /^ def initialize(connectHash={})$/;" f class:Nebulous.RedisHandlerNull
93
104
  initialize lib/nebulous/stomp_handler.rb /^ def initialize(connectHash, testClient=nil)$/;" f class:Nebulous.StompHandler
94
105
  initialize lib/nebulous/stomp_handler_null.rb /^ def initialize(hash={})$/;" f class:Nebulous.StompHandlerNull
106
+ initialize lib/nebulous_stomp/message.rb /^ def initialize(hash)$/;" f class:NebulousStomp
107
+ initialize lib/nebulous_stomp/msg/body.rb /^ def initialize(is_json, hash)$/;" f class:NebulousStomp.Msg.Body
95
108
  initialize lib/nebulous_stomp/redis_handler.rb /^ def initialize(connectHash=nil, testRedis=nil)$/;" f class:NebulousStomp.RedisHandler
96
109
  initialize lib/nebulous_stomp/request.rb /^ def initialize(target, message)$/;" f class:NebulousStomp.Request
97
110
  initialize lib/nebulous_stomp/stomp_handler.rb /^ def initialize(connectHash=nil, testClient=nil)$/;" f class:NebulousStomp
@@ -127,10 +140,14 @@ on? lib/nebulous.rb /^ def self.on?$/;" F class:Nebulous
127
140
  parameters lib/nebulous/message.rb /^ alias :parameters :params$/;" a class:Nebulous.Message
128
141
  params lib/nebulous/message.rb /^ attr_reader :verb, :params, :desc$/;" f class:Nebulous.Message
129
142
  params lib/nebulous/nebrequest.rb /^ attr_reader :params $/;" f class:Nebulous.NebRequest
143
+ parse_body lib/nebulous_stomp/msg/body.rb /^ def parse_body$/;" f class:NebulousStomp.Msg.Body
130
144
  parse_message lib/nebulous_stomp/request.rb /^ def parse_message(message, target)$/;" f class:NebulousStomp.Request
145
+ parse_stomp_body lib/nebulous_stomp/msg/body.rb /^ def parse_stomp_body$/;" f class:NebulousStomp.Msg.Body
131
146
  parse_target lib/nebulous_stomp/request.rb /^ def parse_target(target)$/;" f class:NebulousStomp.Request
132
147
  protocol_hash lib/nebulous/message.rb /^ def protocol_hash$/;" f class:Nebulous.Message
148
+ protocol_hash lib/nebulous_stomp/msg/body.rb /^ def protocol_hash$/;" f class:NebulousStomp.Msg.Body
133
149
  protocol_json lib/nebulous/message.rb /^ def protocol_json$/;" f class:Nebulous.Message
150
+ protocol_json lib/nebulous_stomp/msg/body.rb /^ def protocol_json$/;" f class:NebulousStomp.Msg.Body
134
151
  quit lib/nebulous/redis_handler.rb /^ def quit$/;" f class:Nebulous.RedisHandler
135
152
  quit lib/nebulous/redis_handler_null.rb /^ def quit$/;" f class:Nebulous.RedisHandlerNull
136
153
  quit lib/nebulous_stomp/redis_handler.rb /^ def quit$/;" f class:NebulousStomp.RedisHandler
@@ -146,12 +163,16 @@ reply_id= lib/nebulous/message.rb /^ attr_accessor :reply_id$/;" f class:Nebu
146
163
  reply_to lib/nebulous/message.rb /^ attr_reader :reply_to, :in_reply_to $/;" f class:Nebulous.Message
147
164
  requestQ lib/nebulous/nebrequest.rb /^ attr_reader :requestQ$/;" f class:Nebulous.NebRequest
148
165
  reset lib/nebulous/param.rb /^ def reset$/;" f class:Nebulous.Param
166
+ respond lib/nebulous_stomp/message.rb /^ def respond(body)$/;" f class:NebulousStomp
149
167
  respond_error lib/nebulous/message.rb /^ def respond_error(err,fields=[])$/;" f class:Nebulous.Message
150
168
  respond_error lib/nebulous/stomp_handler_null.rb /^ def respond_error(nebMess,err,fields=[])$/;" f class:Nebulous.StompHandlerNull
151
169
  respond_error lib/nebulous_stomp/stomp_handler_null.rb /^ def respond_error(nebMess,err,fields=[])$/;" f class:NebulousStomp.StompHandlerNull
152
170
  respond_success lib/nebulous/message.rb /^ def respond_success$/;" f class:Nebulous.Message
153
171
  respond_success lib/nebulous/stomp_handler_null.rb /^ def respond_success(nebMess)$/;" f class:Nebulous.StompHandlerNull
154
172
  respond_success lib/nebulous_stomp/stomp_handler_null.rb /^ def respond_success(nebMess)$/;" f class:NebulousStomp.StompHandlerNull
173
+ respond_with_error lib/nebulous_stomp/message.rb /^ def respond_with_error(err, fields=[])$/;" f class:NebulousStomp
174
+ respond_with_protocol lib/nebulous_stomp/message.rb /^ def respond_with_protocol(verb, params=[], desc="")$/;" f class:NebulousStomp
175
+ respond_with_success lib/nebulous_stomp/message.rb /^ def respond_with_success$/;" f class:NebulousStomp
155
176
  responseQ lib/nebulous/nebrequest.rb /^ attr_reader :responseQ$/;" f class:Nebulous.NebRequest
156
177
  run_listen spec/stomp_handler_null_spec.rb /^ def run_listen(secs)$/;" f
157
178
  run_listen_with_timeout spec/stomp_handler_null_spec.rb /^ def run_listen_with_timeout(secs)$/;" f
@@ -168,6 +189,8 @@ set lib/nebulous/redis_handler_null.rb /^ def set(key, value, hash=nil); inse
168
189
  set_logger lib/nebulous.rb /^ def self.set_logger(logger)$/;" F class:Nebulous
169
190
  set_logger lib/nebulous/param.rb /^ def set_logger(lg)$/;" f class:Nebulous.Param
170
191
  stomp_body lib/nebulous/message.rb /^ attr_reader :stomp_headers, :stomp_body$/;" f class:Nebulous.Message
192
+ stomp_body_from_json lib/nebulous_stomp/msg/body.rb /^ def stomp_body_from_json$/;" f class:NebulousStomp.Msg.Body
193
+ stomp_body_from_text lib/nebulous_stomp/msg/body.rb /^ def stomp_body_from_text$/;" f class:NebulousStomp.Msg.Body
171
194
  stomp_connect lib/nebulous/stomp_handler.rb /^ def stomp_connect$/;" f class:Nebulous.StompHandler
172
195
  stomp_connect lib/nebulous/stomp_handler_null.rb /^ def stomp_connect$/;" f class:Nebulous.StompHandlerNull
173
196
  stomp_connect lib/nebulous_stomp/stomp_handler.rb /^ def stomp_connect$/;" f class:NebulousStomp
@@ -183,7 +206,10 @@ stomp_message spec/helpers.rb /^ def stomp_message(contentType, body, inReplyTo
183
206
  symbolise spec/message_spec.rb /^ def symbolise(hash)$/;" f
184
207
  target lib/nebulous/nebrequest.rb /^ attr_reader :target$/;" f class:Nebulous.NebRequest
185
208
  to_cache lib/nebulous/message.rb /^ def to_cache$/;" f class:Nebulous.Message
209
+ to_h lib/nebulous_stomp/message.rb /^ def to_h$/;" f class:NebulousStomp
210
+ to_h lib/nebulous_stomp/msg/body.rb /^ def to_h$/;" f class:NebulousStomp.Msg.Body
186
211
  to_s lib/nebulous/message.rb /^ def to_s$/;" f class:Nebulous.Message
212
+ to_s lib/nebulous_stomp/message.rb /^ def to_s$/;" f class:NebulousStomp
187
213
  turn_off_nebulous spec/request_spec.rb /^ def turn_off_nebulous$/;" f
188
214
  turn_off_redis spec/request_spec.rb /^ def turn_off_redis$/;" f
189
215
  validate lib/nebulous/param.rb /^ def validate(exemplar, hash, message)$/;" f class:Nebulous.Param
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nebulous_stomp
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Jones
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-17 00:00:00.000000000 Z
11
+ date: 2019-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler