feedx 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -6
- data/feedx.gemspec +1 -1
- data/lib/feedx/format/abstract.rb +10 -2
- data/lib/feedx/format/json.rb +2 -2
- data/lib/feedx/format/protobuf.rb +3 -3
- data/spec/feedx/format/abstract_spec.rb +17 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2769dc5b097e9d5c17d467070cd3fa638ab7573f7e3cd310843c5c023a84aa5c
|
4
|
+
data.tar.gz: 6edf76ff62393e0ea29aa7a3b8c74fb66d2a0328ddcf4a256f6fda297806f6f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27c60344dfd2fab31e8c38f0a2368440e43ed5ab698b3df16dfb7820625f6d6646bdfc81211ce3c9c15ec9ffd44a12cea8b33fbaa357bc5cc664d1bf7d0599ad
|
7
|
+
data.tar.gz: db9073b92564898bb535e725f09c32e76c07f32a050da2ad7bf7d513c4fdf8e6402c8733dc1de53238e528bc2986c18e2635ae0e16e006052b6827de350fcd13
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
feedx (0.7.
|
4
|
+
feedx (0.7.1)
|
5
5
|
bfs (>= 0.3.4)
|
6
6
|
|
7
7
|
GEM
|
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
ast (2.4.0)
|
11
11
|
bfs (0.3.7)
|
12
12
|
diff-lcs (1.3)
|
13
|
-
google-protobuf (3.8.0
|
13
|
+
google-protobuf (3.8.0)
|
14
14
|
jaro_winkler (1.5.2)
|
15
15
|
parallel (1.17.0)
|
16
16
|
parser (2.6.3.0)
|
@@ -25,14 +25,14 @@ GEM
|
|
25
25
|
rspec-mocks (~> 3.8.0)
|
26
26
|
rspec-core (3.8.0)
|
27
27
|
rspec-support (~> 3.8.0)
|
28
|
-
rspec-expectations (3.8.
|
28
|
+
rspec-expectations (3.8.4)
|
29
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
30
30
|
rspec-support (~> 3.8.0)
|
31
31
|
rspec-mocks (3.8.0)
|
32
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
33
33
|
rspec-support (~> 3.8.0)
|
34
|
-
rspec-support (3.8.
|
35
|
-
rubocop (0.
|
34
|
+
rspec-support (3.8.2)
|
35
|
+
rubocop (0.71.0)
|
36
36
|
jaro_winkler (~> 1.5.1)
|
37
37
|
parallel (~> 1.10)
|
38
38
|
parser (>= 2.6)
|
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
unicode-display_width (>= 1.4.0, < 1.7)
|
42
42
|
rubocop-performance (1.3.0)
|
43
43
|
rubocop (>= 0.68.0)
|
44
|
-
ruby-progressbar (1.10.
|
44
|
+
ruby-progressbar (1.10.1)
|
45
45
|
unicode-display_width (1.6.0)
|
46
46
|
|
47
47
|
PLATFORMS
|
data/feedx.gemspec
CHANGED
@@ -7,11 +7,19 @@ class Feedx::Format::Abstract
|
|
7
7
|
@io.eof?
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
10
|
+
def decode_each(klass, **opts)
|
11
|
+
if block_given?
|
12
|
+
yield decode(klass, opts) until eof?
|
13
|
+
else
|
14
|
+
Enumerator.new {|y| y << decode(klass, opts) until eof? }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def decode(_klass, **)
|
11
19
|
raise 'Not implemented'
|
12
20
|
end
|
13
21
|
|
14
|
-
def encode(_msg)
|
22
|
+
def encode(_msg, **)
|
15
23
|
raise 'Not implemented'
|
16
24
|
end
|
17
25
|
end
|
data/lib/feedx/format/json.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
|
3
3
|
class Feedx::Format::JSON < Feedx::Format::Abstract
|
4
|
-
def decode(obj)
|
4
|
+
def decode(obj, **)
|
5
5
|
line = @io.gets
|
6
6
|
return unless line
|
7
7
|
|
@@ -10,7 +10,7 @@ class Feedx::Format::JSON < Feedx::Format::Abstract
|
|
10
10
|
obj
|
11
11
|
end
|
12
12
|
|
13
|
-
def encode(msg)
|
13
|
+
def encode(msg, **)
|
14
14
|
@io.write msg.to_json << "\n"
|
15
15
|
end
|
16
16
|
end
|
@@ -5,12 +5,12 @@ class Feedx::Format::Protobuf < Feedx::Format::Abstract
|
|
5
5
|
super PBIO::Delimited.new(io)
|
6
6
|
end
|
7
7
|
|
8
|
-
def decode(klass)
|
8
|
+
def decode(klass, **)
|
9
9
|
@io.read(klass)
|
10
10
|
end
|
11
11
|
|
12
|
-
def encode(msg)
|
13
|
-
msg = msg.to_pb if msg.respond_to?(:to_pb)
|
12
|
+
def encode(msg, **opts)
|
13
|
+
msg = msg.to_pb(**opts) if msg.respond_to?(:to_pb)
|
14
14
|
@io.write msg
|
15
15
|
end
|
16
16
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Feedx::Format::Abstract do
|
4
|
+
subject { Feedx::Format::JSON.new(wio) }
|
5
|
+
let(:wio) { StringIO.new }
|
6
|
+
|
7
|
+
it 'should decode each' do
|
8
|
+
subject.encode(Feedx::TestCase::Model.new('X'))
|
9
|
+
subject.encode(Feedx::TestCase::Model.new('Y'))
|
10
|
+
subject.encode(Feedx::TestCase::Message.new(title: 'Z'))
|
11
|
+
StringIO.open(wio.string) do |rio|
|
12
|
+
fmt = subject.class.new(rio)
|
13
|
+
dec = fmt.decode_each(Feedx::TestCase::Model).to_a
|
14
|
+
expect(dec.map(&:title)).to eq(%w[X Y Z])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feedx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Black Square Media Ltd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bfs
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- spec/feedx/compression/gzip_spec.rb
|
156
156
|
- spec/feedx/compression/none_spec.rb
|
157
157
|
- spec/feedx/compression_spec.rb
|
158
|
+
- spec/feedx/format/abstract_spec.rb
|
158
159
|
- spec/feedx/format/json_spec.rb
|
159
160
|
- spec/feedx/format/protobuf_spec.rb
|
160
161
|
- spec/feedx/format_spec.rb
|
@@ -190,6 +191,7 @@ test_files:
|
|
190
191
|
- spec/feedx/compression/gzip_spec.rb
|
191
192
|
- spec/feedx/compression/none_spec.rb
|
192
193
|
- spec/feedx/compression_spec.rb
|
194
|
+
- spec/feedx/format/abstract_spec.rb
|
193
195
|
- spec/feedx/format/json_spec.rb
|
194
196
|
- spec/feedx/format/protobuf_spec.rb
|
195
197
|
- spec/feedx/format_spec.rb
|