tram-policy 2.1.0 → 2.2.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
  SHA256:
3
- metadata.gz: 3bf029c2eff265f0a29f13d7f1c44b8f8a1a9d5a336a61a9804c9740142eba17
4
- data.tar.gz: ccee1509e523eeb4e55208b357e561f03100844d32ec3a14d879ad6991b8f538
3
+ metadata.gz: ee9ed362efd81c55cfe3097f6188f8da61af5b3ec78eee0eb6e5182bbfd62245
4
+ data.tar.gz: f2ab09546f5c6c5a70fca9459b1e2658dab85b0b2f9ffd27685ba61b00c62f06
5
5
  SHA512:
6
- metadata.gz: d193c0d20344f0ab8c2b015e7a5eee330ef4fec64182c298ad750b06081894d6d8f51d89c064bc8aa7561e7f8d68ccd3f03f55a4378677781ba0bdf4e8376cd0
7
- data.tar.gz: 0b0214db5420f51dadb31028d1a75b2cb54b762ccf013d6948a6eb47fb2b6ca4825dfe747921b80aa732de0b27e89faf74a353a005a5c0237c0267df8681a421
6
+ metadata.gz: 4ff7aaa1632158f2c5664b7bd492cd3a0f7d574f91c7232a97fb2a45b8ebdaf4923578716d805b56c66098ab4ddb7dbe2a2a506832f42d5a03c2e4128675acb4
7
+ data.tar.gz: 8d28126a3d030a3b7ff4a59e11f3444865bb634358997fd690af1117380b9001d2221b40456d2a727cd32ba2fd0ed2a03fd6eef3618caa13e3e068f5427f8da5
@@ -0,0 +1,44 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - "*"
10
+
11
+ jobs:
12
+ build:
13
+ name: Ruby ${{ matrix.ruby }}
14
+
15
+ strategy:
16
+ fail-fast: true
17
+ matrix:
18
+ ruby:
19
+ - "2.5.0"
20
+ - "3.0.0"
21
+ - "head"
22
+
23
+ runs-on: ubuntu-latest
24
+
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v2
28
+
29
+ - name: Install dependent libraries
30
+ run: sudo apt-get install libpq-dev
31
+
32
+ - name: Install Ruby ${{ matrix.ruby }}
33
+ uses: ruby/setup-ruby@v1.61.1
34
+ with:
35
+ ruby-version: ${{ matrix.ruby }}
36
+ bundler-cache: true # 'bundle install' and cache
37
+
38
+ - name: Check code style
39
+ run: bundle exec rubocop
40
+ continue-on-error: false
41
+
42
+ - name: Run tests
43
+ run: bundle exec rake --trace
44
+ continue-on-error: false
data/.rubocop.yml CHANGED
@@ -3,7 +3,7 @@ AllCops:
3
3
  DisplayCopNames: true
4
4
  DisplayStyleGuide: true
5
5
  StyleGuideCopsOnly: true
6
- TargetRubyVersion: 2.4
6
+ TargetRubyVersion: 3.0
7
7
 
8
8
  Lint/AmbiguousBlockAssociation:
9
9
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [2.2.0] - [2022-06-18]
8
+
9
+ ### Added
10
+ - Support for Ruby 3+ (HolyWalley)
11
+
7
12
  ## [2.1.0] - [2021-11-30]
8
13
 
9
14
  ### Fixed
@@ -225,3 +230,4 @@ This is a first public release (@nepalez, @charlie-wasp, @JewelSam, @sergey-chec
225
230
  [2.0.0]: https://github.com/tram-rb/tram-policy/compare/v1.0.1...v2.0.0
226
231
  [2.0.1]: https://github.com/tram-rb/tram-policy/compare/v2.0.0...v2.0.1
227
232
  [2.1.0]: https://github.com/tram-rb/tram-policy/compare/v2.0.1...v2.1.0
233
+ [2.1.0]: https://github.com/tram-rb/tram-policy/compare/v2.1.0...v2.2.0
data/README.md CHANGED
@@ -6,7 +6,6 @@ Policy Object Pattern
6
6
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
7
7
 
8
8
  [![Gem Version][gem-badger]][gem]
9
- [![Build Status][travis-badger]][travis]
10
9
  [![Inline docs][inch-badger]][inch]
11
10
 
12
11
  ## Intro
@@ -340,7 +339,6 @@ The gem is available as open source under the terms of the [MIT License](http://
340
339
  [inch-badger]: http://inch-ci.org/github/tram-rb/tram-policy.svg
341
340
  [inch]: https://inch-ci.org/github/tram-rb/tram-policy
342
341
  [travis-badger]: https://img.shields.io/travis/tram-rb/tram-policy/master.svg?style=flat
343
- [travis]: https://travis-ci.org/tram-rb/tram-policy
344
342
  [active-model-validation]: http://api.rubyonrails.org/classes/ActiveModel/Validations.html
345
343
  [active-record-validation]: http://guides.rubyonrails.org/active_record_validations.html
346
344
  [dry-validation]: http://dry-rb.org/gems/dry-validation/
@@ -9,7 +9,7 @@ class Tram::Policy
9
9
  # @return [self]
10
10
  #
11
11
  def validate(name = nil, **opts, &block)
12
- local_validators << Validator.new(name, block, opts)
12
+ local_validators << Validator.new(name, block, **opts)
13
13
  self
14
14
  end
15
15
 
@@ -41,7 +41,7 @@ class Tram::Policy
41
41
  # @return [String]
42
42
  #
43
43
  def message
44
- key.is_a?(Symbol) ? I18n.t(*item) : key.to_s
44
+ key.is_a?(Symbol) ? I18n.t(key, **tags) : key.to_s
45
45
  end
46
46
 
47
47
  # Fetches an option
@@ -47,7 +47,7 @@ class Tram::Policy
47
47
  #
48
48
  def filter(key = nil, **tags)
49
49
  list = each_with_object(Set.new) do |error, obj|
50
- obj << error if error.contain?(key, tags)
50
+ obj << error if error.contain?(key, **tags)
51
51
  end
52
52
  self.class.new(scope: scope, errors: list)
53
53
  end
@@ -95,7 +95,7 @@ class Tram::Policy
95
95
  other.each do |err|
96
96
  key, opts = err.item
97
97
  opts = yield(opts) if block_given?
98
- add key, opts.merge(options)
98
+ add key, **opts.merge(options)
99
99
  end
100
100
 
101
101
  self
@@ -6,7 +6,7 @@ RSpec::Matchers.define :be_invalid_at do |**tags|
6
6
  end
7
7
 
8
8
  def check(policy, tags)
9
- @errors ||= policy.errors.filter(tags).map do |error|
9
+ @errors ||= policy.errors.filter(**tags).map do |error|
10
10
  { item: error.item }.tap do |obj|
11
11
  locales.each { |l| obj[l] = I18n.with_locale(l) { error.message } }
12
12
  end
@@ -1,5 +1,5 @@
1
1
  RSpec.describe Tram::Policy::Error do
2
- subject(:error) { described_class.new :bad, options }
2
+ subject(:error) { described_class.new :bad, **options }
3
3
 
4
4
  let(:scope) { %w[tram-policy] }
5
5
  let(:options) { { level: "warning", scope: scope } }
data/tram-policy.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = "tram-policy"
3
- gem.version = "2.1.0"
3
+ gem.version = "2.2.0"
4
4
  gem.author = ["Viktor Sokolov (gzigzigzeo)", "Andrew Kozin (nepalez)"]
5
5
  gem.email = "andrew.kozin@gmail.com"
6
6
  gem.homepage = "https://github.com/tram-rb/tram-policy"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tram-policy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Sokolov (gzigzigzeo)
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-11-30 00:00:00.000000000 Z
12
+ date: 2022-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-initializer
@@ -125,10 +125,10 @@ extra_rdoc_files:
125
125
  - CHANGELOG.md
126
126
  files:
127
127
  - ".codeclimate.yml"
128
+ - ".github/workflows/ci.yml"
128
129
  - ".gitignore"
129
130
  - ".rspec"
130
131
  - ".rubocop.yml"
131
- - ".travis.yml"
132
132
  - CHANGELOG.md
133
133
  - Gemfile
134
134
  - LICENSE.txt
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  requirements: []
182
- rubygems_version: 3.1.6
182
+ rubygems_version: 3.2.3
183
183
  signing_key:
184
184
  specification_version: 4
185
185
  summary: Policy Object Pattern
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- ---
2
- language: ruby
3
- sudo: false
4
- cache: bundler
5
- bundler_args: --without benchmarks tools
6
- script:
7
- - bundle exec rake
8
- - bundle exec rubocop
9
- rvm:
10
- - 2.3.0
11
- - 2.6.2
12
- - ruby-head
13
- - jruby-9.2.7.0
14
- - truffleruby
15
- env:
16
- global:
17
- - JRUBY_OPTS='--dev -J-Xmx1024M'
18
- matrix:
19
- allow_failures:
20
- - rvm: ruby-head
21
- - rvm: jruby-head
22
- - rvm: truffleruby