pbio 0.2.0 → 0.3.1

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
  SHA256:
3
- metadata.gz: 4a8b91516b406e0557ab91a3d3ba4dbed454bddf50ac90e97221cdb7e4a59774
4
- data.tar.gz: '09b4907470dc89e4d3aed9682678fb1f5ec6967d01cd45e2623d9cdebf7ccd50'
3
+ metadata.gz: 77f8f874faf28491854d7dc995406e40addaa679c49353a234ed5e4bff1d209e
4
+ data.tar.gz: af842f93b1e1d578ee52e089b35776597191090db3e4412f86dfe7850f34f1ed
5
5
  SHA512:
6
- metadata.gz: af4c6cb33801bfeb830950a6d8abe66e79a85d899d9d523eb3522ebd7edfe1281e68cd229819135d2c02c9da748571d01b315f362dc9e542ef625ceb147d9967
7
- data.tar.gz: a9e311d2b1d87cb6a12373f99e34b277d06e00a2976f2022f73e3fb5f98fa26b5d28ae8deeef1ccaeb34e71c5157b709b02b7879a311f17edbcea5ebc249dbab
6
+ metadata.gz: 0e20fcbb824481fbf59a33a07880f7e1428d115517f6c12373d6a0bbf883ff200b9e33d082bc934de2afb35e06ee4a7c99acf215fe7b4df7e48b9c2f1eebd330
7
+ data.tar.gz: ac269f15235e35a5c1ed487b5b2d846dde96bb7182616b9f05ab266c9a3fedc14c20bf04cb6ee00b6164835ad176ef4e364e9dc3c04cf9b25b382f0672dd7fd1
@@ -0,0 +1,18 @@
1
+ name: Lint
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ jobs:
10
+ golangci:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v2
15
+ - name: Run lint
16
+ uses: golangci/golangci-lint-action@v2
17
+ with:
18
+ version: latest
@@ -0,0 +1,42 @@
1
+ name: Test
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ jobs:
10
+ go:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ go-version: [1.16.x, 1.17.x]
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v2
18
+ - name: Cache dependencies
19
+ uses: actions/cache@v2
20
+ with:
21
+ path: ~/go/pkg/mod
22
+ key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
23
+ restore-keys: |
24
+ ${{ runner.os }}-go-
25
+ - name: Setup Go
26
+ uses: actions/setup-go@v2
27
+ with:
28
+ go-version: ${{ matrix.go-version }}
29
+ - name: Run tests
30
+ run: make test
31
+ ruby:
32
+ runs-on: ubuntu-latest
33
+ strategy:
34
+ matrix:
35
+ ruby-version: ["2.7", "3.0", "3.1"]
36
+ steps:
37
+ - uses: actions/checkout@v2
38
+ - uses: ruby/setup-ruby@v1
39
+ with:
40
+ ruby-version: ${{ matrix.ruby-version }}
41
+ bundler-cache: true
42
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -1,4 +1,6 @@
1
1
  spec/tmp
2
2
  pkg
3
3
  *.gem
4
- .rake_tasks~
4
+ *~
5
+ .rubocop-*
6
+ *.makefile
data/.rubocop.yml CHANGED
@@ -1,6 +1,9 @@
1
- require: rubocop-performance
2
- inherit_from:
3
- - https://gitlab.com/bsm/misc/raw/master/rubocop/default.yml
1
+ inherit_gem:
2
+ rubocop-bsm:
3
+ - default.yml
4
+ inherit_mode:
5
+ merge:
6
+ - Exclude
4
7
 
5
8
  AllCops:
6
- TargetRubyVersion: "2.4"
9
+ TargetRubyVersion: 2.7
data/Gemfile.lock CHANGED
@@ -1,45 +1,60 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pbio (0.2.0)
4
+ pbio (0.3.1)
5
5
  google-protobuf
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- ast (2.4.0)
11
- diff-lcs (1.3)
12
- google-protobuf (3.10.0-x86_64-linux)
13
- jaro_winkler (1.5.3)
14
- parallel (1.18.0)
15
- parser (2.6.5.0)
16
- ast (~> 2.4.0)
10
+ ast (2.4.2)
11
+ diff-lcs (1.5.0)
12
+ google-protobuf (3.19.2)
13
+ parallel (1.21.0)
14
+ parser (3.1.0.0)
15
+ ast (~> 2.4.1)
17
16
  rainbow (3.0.0)
18
- rake (13.0.0)
19
- rspec (3.9.0)
20
- rspec-core (~> 3.9.0)
21
- rspec-expectations (~> 3.9.0)
22
- rspec-mocks (~> 3.9.0)
23
- rspec-core (3.9.0)
24
- rspec-support (~> 3.9.0)
25
- rspec-expectations (3.9.0)
17
+ rake (13.0.6)
18
+ regexp_parser (2.2.0)
19
+ rexml (3.2.5)
20
+ rspec (3.10.0)
21
+ rspec-core (~> 3.10.0)
22
+ rspec-expectations (~> 3.10.0)
23
+ rspec-mocks (~> 3.10.0)
24
+ rspec-core (3.10.1)
25
+ rspec-support (~> 3.10.0)
26
+ rspec-expectations (3.10.1)
26
27
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.9.0)
28
- rspec-mocks (3.9.0)
28
+ rspec-support (~> 3.10.0)
29
+ rspec-mocks (3.10.2)
29
30
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.9.0)
31
- rspec-support (3.9.0)
32
- rubocop (0.75.0)
33
- jaro_winkler (~> 1.5.1)
31
+ rspec-support (~> 3.10.0)
32
+ rspec-support (3.10.3)
33
+ rubocop (1.24.1)
34
34
  parallel (~> 1.10)
35
- parser (>= 2.6)
35
+ parser (>= 3.0.0.0)
36
36
  rainbow (>= 2.2.2, < 4.0)
37
+ regexp_parser (>= 1.8, < 3.0)
38
+ rexml
39
+ rubocop-ast (>= 1.15.1, < 2.0)
37
40
  ruby-progressbar (~> 1.7)
38
- unicode-display_width (>= 1.4.0, < 1.7)
39
- rubocop-performance (1.5.0)
40
- rubocop (>= 0.71.0)
41
- ruby-progressbar (1.10.1)
42
- unicode-display_width (1.6.0)
41
+ unicode-display_width (>= 1.4.0, < 3.0)
42
+ rubocop-ast (1.15.1)
43
+ parser (>= 3.0.1.1)
44
+ rubocop-bsm (0.6.0)
45
+ rubocop (~> 1.0)
46
+ rubocop-performance
47
+ rubocop-rake
48
+ rubocop-rspec
49
+ rubocop-performance (1.13.1)
50
+ rubocop (>= 1.7.0, < 2.0)
51
+ rubocop-ast (>= 0.4.0)
52
+ rubocop-rake (0.6.0)
53
+ rubocop (~> 1.0)
54
+ rubocop-rspec (2.7.0)
55
+ rubocop (~> 1.19)
56
+ ruby-progressbar (1.11.0)
57
+ unicode-display_width (2.1.0)
43
58
 
44
59
  PLATFORMS
45
60
  ruby
@@ -49,8 +64,7 @@ DEPENDENCIES
49
64
  pbio!
50
65
  rake
51
66
  rspec
52
- rubocop
53
- rubocop-performance
67
+ rubocop-bsm
54
68
 
55
69
  BUNDLED WITH
56
- 1.17.3
70
+ 2.2.27
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2018 Black Square Media
1
+ Copyright (c) 2020 Black Square Media
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Makefile ADDED
@@ -0,0 +1,6 @@
1
+ default: test
2
+
3
+ .minimal.makefile:
4
+ curl -fsSL -o $@ https://gitlab.com/bsm/misc/raw/master/make/go/minimal.makefile
5
+
6
+ include .minimal.makefile
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # PB IO
2
2
 
3
+ [![Test](https://github.com/bsm/pbio/actions/workflows/test.yml/badge.svg)](https://github.com/bsm/pbio/actions/workflows/test.yml)
3
4
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
5
 
5
6
  Protobuf IO is a Ruby equivalent of https://godoc.org/github.com/gogo/protobuf/io.
data/go.mod ADDED
@@ -0,0 +1,5 @@
1
+ module github.com/bsm/pbio
2
+
3
+ go 1.15
4
+
5
+ require google.golang.org/protobuf v1.27.1
data/go.sum ADDED
@@ -0,0 +1,8 @@
1
+ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
2
+ github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
3
+ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
5
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
6
+ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
7
+ google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
8
+ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
@@ -7,7 +7,7 @@ module PBIO
7
7
  def self.encode_uvarint(num)
8
8
  bytes = []
9
9
  while num >= 0x80
10
- b = num & 0xFF | 0x80
10
+ b = (num & 0xFF) | 0x80
11
11
  bytes << b
12
12
  num >>= 7
13
13
  end
@@ -36,6 +36,11 @@ module PBIO
36
36
  # @param [IO] io object
37
37
  def initialize(io)
38
38
  @io = io
39
+ if @io.respond_to?(:binmode)
40
+ @io.binmode
41
+ elsif @io.respond_to?(:set_encoding)
42
+ @io.set_encoding(Encoding::BINARY)
43
+ end
39
44
  end
40
45
 
41
46
  # Writes a message to the IO stream.
data/pbio.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'pbio'
3
- s.version = '0.2.0'
3
+ s.version = '0.3.1'
4
4
  s.authors = ['Dimitrij Denissenko']
5
5
  s.email = ['dimitrij@blacksquaremedia.com']
6
6
  s.summary = 'Protobuf Streaming'
@@ -11,13 +11,13 @@ Gem::Specification.new do |s|
11
11
  s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^spec/}) }
12
12
  s.test_files = `git ls-files -z -- spec/*`.split("\x0")
13
13
  s.require_paths = ['lib']
14
- s.required_ruby_version = '>= 2.4.0'
14
+ s.required_ruby_version = '>= 2.7'
15
15
 
16
16
  s.add_dependency 'google-protobuf'
17
17
 
18
18
  s.add_development_dependency 'bundler'
19
19
  s.add_development_dependency 'rake'
20
20
  s.add_development_dependency 'rspec'
21
- s.add_development_dependency 'rubocop'
22
- s.add_development_dependency 'rubocop-performance'
21
+ s.add_development_dependency 'rubocop-bsm'
22
+ s.metadata['rubygems_mfa_required'] = 'true'
23
23
  end
data/pbio.go ADDED
@@ -0,0 +1,74 @@
1
+ package pbio
2
+
3
+ import (
4
+ "bufio"
5
+ "encoding/binary"
6
+ "io"
7
+
8
+ "google.golang.org/protobuf/proto"
9
+ )
10
+
11
+ // Encoder encodes protobuf messages and writes to the underlying writer.
12
+ type Encoder struct {
13
+ w io.Writer
14
+ buf []byte
15
+ }
16
+
17
+ // NewEncoder inits a new encoder.
18
+ func NewEncoder(w io.Writer) *Encoder {
19
+ return &Encoder{
20
+ w: w,
21
+ buf: make([]byte, binary.MaxVarintLen64),
22
+ }
23
+ }
24
+
25
+ // Encode encodes a message.
26
+ func (e *Encoder) Encode(msg proto.Message) error {
27
+ opt := proto.MarshalOptions{}
28
+ sz := opt.Size(msg)
29
+ e.buf = e.buf[:binary.PutUvarint(e.buf, uint64(sz))]
30
+
31
+ data, err := opt.MarshalAppend(e.buf, msg)
32
+ if err != nil {
33
+ return err
34
+ }
35
+ e.buf = data
36
+
37
+ _, err = e.w.Write(data)
38
+ return err
39
+ }
40
+
41
+ // --------------------------------------------------------------------
42
+
43
+ // Decoder decodes protobuf messages from an underlying reader.
44
+ type Decoder struct {
45
+ r *bufio.Reader
46
+ buf []byte
47
+ }
48
+
49
+ // NewDecoder inits a new Decoder.
50
+ func NewDecoder(r io.Reader) *Decoder {
51
+ return &Decoder{
52
+ r: bufio.NewReader(r),
53
+ }
54
+ }
55
+
56
+ // Decode decodes a message.
57
+ func (d *Decoder) Decode(msg proto.Message) error {
58
+ sz, err := binary.ReadUvarint(d.r)
59
+ if err != nil {
60
+ return err
61
+ }
62
+
63
+ if n := int(sz); cap(d.buf) < n {
64
+ d.buf = make([]byte, n)
65
+ } else {
66
+ d.buf = d.buf[:n]
67
+ }
68
+ if _, err := io.ReadFull(d.r, d.buf); err != nil {
69
+ return err
70
+ }
71
+
72
+ opt := proto.UnmarshalOptions{}
73
+ return opt.Unmarshal(d.buf, msg)
74
+ }
data/pbio_test.go ADDED
@@ -0,0 +1,94 @@
1
+ package pbio_test
2
+
3
+ import (
4
+ "bytes"
5
+ "encoding/json"
6
+ "errors"
7
+ "io"
8
+ "math"
9
+ "testing"
10
+
11
+ "github.com/bsm/pbio"
12
+ "google.golang.org/protobuf/types/known/structpb"
13
+ )
14
+
15
+ var message, _ = structpb.NewValue(map[string]interface{}{
16
+ "firstName": "John",
17
+ "lastName": "Smith",
18
+ "isAlive": true,
19
+ "age": 27,
20
+ "address": map[string]interface{}{
21
+ "streetAddress": "21 2nd Street",
22
+ "city": "New York",
23
+ "state": "NY",
24
+ "postalCode": "10021-3100",
25
+ },
26
+ })
27
+
28
+ func TestEncoder(t *testing.T) {
29
+ buf := new(bytes.Buffer)
30
+ enc := pbio.NewEncoder(buf)
31
+
32
+ if err := enc.Encode(message); err != nil {
33
+ t.Fatalf("expected no error, but got %v", err)
34
+ }
35
+ if exp, got, delta := 192, buf.Len(), 20; math.Abs(float64(exp)-float64(got)) > float64(delta) {
36
+ t.Fatalf("expected %d (±%d), got %d", exp, delta, got)
37
+ }
38
+
39
+ if err := enc.Encode(message); err != nil {
40
+ t.Fatalf("expected no error, but got %v", err)
41
+ }
42
+ if exp, got, delta := 384, buf.Len(), 20; math.Abs(float64(exp)-float64(got)) > float64(delta) {
43
+ t.Fatalf("expected %d (±%d), got %d", exp, delta, got)
44
+ }
45
+ }
46
+
47
+ func TestDecoder(t *testing.T) {
48
+ buf := new(bytes.Buffer)
49
+ enc := pbio.NewEncoder(buf)
50
+ for i := 0; i < 2; i++ {
51
+ if err := enc.Encode(message); err != nil {
52
+ t.Fatalf("expected no error, but got %v", err)
53
+ }
54
+ }
55
+
56
+ dec := pbio.NewDecoder(buf)
57
+ m1 := new(structpb.Value)
58
+ if err := dec.Decode(m1); err != nil {
59
+ t.Fatalf("expected no error, but got %v", err)
60
+ }
61
+
62
+ if data, err := m1.MarshalJSON(); err != nil {
63
+ t.Fatalf("expected no error, but got %v", err)
64
+ } else if exp, got := `{
65
+ "address": {
66
+ "city": "New York",
67
+ "postalCode": "10021-3100",
68
+ "state": "NY",
69
+ "streetAddress": "21 2nd Street"
70
+ },
71
+ "age": 27,
72
+ "firstName": "John",
73
+ "isAlive": true,
74
+ "lastName": "Smith"
75
+ }`, normJSON(data); exp != got {
76
+ t.Fatalf("expected:\n%v, but got:\n%v", exp, got)
77
+ }
78
+
79
+ m2 := new(structpb.Value)
80
+ if err := dec.Decode(m2); err != nil {
81
+ t.Fatalf("expected no error, but got %v", err)
82
+ }
83
+
84
+ m3 := new(structpb.Value)
85
+ if exp, got := io.EOF, dec.Decode(m3); !errors.Is(got, exp) {
86
+ t.Fatalf("expected %v, but got %v", exp, got)
87
+ }
88
+ }
89
+
90
+ func normJSON(data []byte) string {
91
+ b := new(bytes.Buffer)
92
+ _ = json.Indent(b, data, "", " ")
93
+ return b.String()
94
+ }
@@ -1,29 +1,30 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe PBIO::Delimited do
4
+ subject { described_class.new io }
5
+
4
6
  let(:io) { StringIO.new }
5
7
  let(:msg1) { PBIO::Spec::Message.new(name: 'Test A') }
6
8
  let(:msg2) { PBIO::Spec::Message.new(name: 'Test B') }
7
9
  let(:msg3) { PBIO::Spec::Message.new(name: 'x' * 32_000) }
8
10
 
9
- subject { described_class.new io }
10
-
11
- it 'should write' do
11
+ it 'writes' do
12
12
  expect(subject.write(msg1)).to eq(9)
13
13
  expect(subject.write(msg2)).to eq(9)
14
14
  expect(io.size).to eq(18)
15
+ expect(io.string.encoding).to eq(Encoding::BINARY)
15
16
 
16
17
  expect(subject.write(msg3)).to eq(32_007)
17
18
  expect(io.size).to eq(32_025)
18
19
  end
19
20
 
20
- it 'should read' do
21
+ it 'reads' do
21
22
  expect(subject.write(msg1)).to eq(9)
22
23
  expect(subject.write(msg2)).to eq(9)
23
24
  io.rewind
24
25
 
25
26
  expect(subject.read(PBIO::Spec::Message)).to eq(msg1)
26
- expect(subject).to_not be_eof
27
+ expect(subject).not_to be_eof
27
28
  expect(subject.read(PBIO::Spec::Message)).to eq(msg2)
28
29
  expect(subject).to be_eof
29
30
  expect(subject.read(PBIO::Spec::Message)).to be_nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitrij Denissenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-09 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -67,21 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-performance
70
+ name: rubocop-bsm
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -101,24 +87,30 @@ executables: []
101
87
  extensions: []
102
88
  extra_rdoc_files: []
103
89
  files:
90
+ - ".github/workflows/lint.yml"
91
+ - ".github/workflows/test.yml"
104
92
  - ".gitignore"
105
- - ".rubocop-https---gitlab-com-bsm-misc-raw-master-rubocop-default-yml"
106
93
  - ".rubocop.yml"
107
- - ".travis.yml"
108
94
  - Gemfile
109
95
  - Gemfile.lock
110
96
  - LICENSE
97
+ - Makefile
111
98
  - README.md
112
99
  - Rakefile
100
+ - go.mod
101
+ - go.sum
113
102
  - lib/pbio.rb
114
103
  - lib/pbio/delimited.rb
115
104
  - pbio.gemspec
105
+ - pbio.go
106
+ - pbio_test.go
116
107
  - spec/lib/pbio/delimited_spec.rb
117
108
  - spec/spec_helper.rb
118
109
  homepage: https://github.com/bsm/pbio
119
110
  licenses:
120
111
  - MIT
121
- metadata: {}
112
+ metadata:
113
+ rubygems_mfa_required: 'true'
122
114
  post_install_message:
123
115
  rdoc_options: []
124
116
  require_paths:
@@ -127,14 +119,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
119
  requirements:
128
120
  - - ">="
129
121
  - !ruby/object:Gem::Version
130
- version: 2.4.0
122
+ version: '2.7'
131
123
  required_rubygems_version: !ruby/object:Gem::Requirement
132
124
  requirements:
133
125
  - - ">="
134
126
  - !ruby/object:Gem::Version
135
127
  version: '0'
136
128
  requirements: []
137
- rubygems_version: 3.0.3
129
+ rubygems_version: 3.2.15
138
130
  signing_key:
139
131
  specification_version: 4
140
132
  summary: Protobuf Streaming
@@ -1,78 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - "db/schema.rb"
4
- - "vendor/**/*"
5
- - "**/*_pb.rb"
6
-
7
- Metrics/AbcSize:
8
- Enabled: false
9
- Metrics/BlockLength:
10
- Exclude:
11
- - "**/*.rake"
12
- - "db/**/*.rb"
13
- - "**/spec/**/*.rb"
14
- - "**/*.gemspec"
15
- Metrics/ClassLength:
16
- Max: 1500
17
- Metrics/CyclomaticComplexity:
18
- Max: 20
19
- Metrics/LineLength:
20
- Max: 160
21
- Metrics/MethodLength:
22
- Max: 20
23
- Exclude:
24
- - "db/**/*.rb"
25
- Metrics/ModuleLength:
26
- Exclude:
27
- - "**/*_spec.rb"
28
- Metrics/PerceivedComplexity:
29
- Max: 20
30
-
31
- Layout/AlignArguments:
32
- EnforcedStyle: with_fixed_indentation
33
- Layout/AlignHash:
34
- EnforcedHashRocketStyle: table
35
- Layout/AlignParameters:
36
- EnforcedStyle: with_fixed_indentation
37
- Layout/EmptyLinesAroundBlockBody:
38
- Exclude:
39
- - "db/**/*.rb"
40
- - "**/*.rake"
41
- - "**/*_spec.rb"
42
- Layout/EmptyLinesAroundClassBody:
43
- Enabled: false
44
- Layout/IndentFirstArrayElement:
45
- EnforcedStyle: consistent
46
- Layout/MultilineOperationIndentation:
47
- Enabled: false
48
- Layout/SpaceAroundEqualsInParameterDefault:
49
- EnforcedStyle: no_space
50
- Layout/SpaceInsideBlockBraces:
51
- SpaceBeforeBlockParameters: false
52
-
53
- Lint/AmbiguousBlockAssociation:
54
- Exclude:
55
- - "spec/**/*_spec.rb"
56
-
57
- Style/ClassAndModuleChildren:
58
- Enabled: false
59
- Style/Documentation:
60
- Enabled: false
61
- Style/FrozenStringLiteralComment:
62
- Enabled: false
63
- Style/HashSyntax:
64
- EnforcedStyle: ruby19_no_mixed_keys
65
- Style/MultilineIfModifier:
66
- Enabled: false
67
- Style/NumericLiterals:
68
- Enabled: false
69
- Style/Semicolon:
70
- AllowAsExpressionSeparator: true
71
- Style/SingleLineBlockParams:
72
- Enabled: false
73
- Style/TrailingCommaInArguments:
74
- EnforcedStyleForMultiline: consistent_comma
75
- Style/TrailingCommaInArrayLiteral:
76
- EnforcedStyleForMultiline: consistent_comma
77
- Style/TrailingCommaInHashLiteral:
78
- EnforcedStyleForMultiline: consistent_comma
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- rvm:
2
- - 2.6
3
- - 2.5
4
- - 2.4