shaped 0.7.3 → 0.8.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: dcb21038c53b353208f02bd64475365067297f3a491645dec0b81cec74bbc151
4
- data.tar.gz: 899d747be3d03b69796bfe0fa2fad813f2281397107b86973ff7195233c2b6f7
3
+ metadata.gz: 9a84f7dd70b2d40e32d1dde68014ec240d1681ef75f9c111d7ef52943a99cbab
4
+ data.tar.gz: bf55523db329247de28c8140a8b4e06392879b6893649bf5de3e4c5da206bbde
5
5
  SHA512:
6
- metadata.gz: f0dbbce2637e41389801a48f197f3fccf220c5665ca84d3f2938c73de7854110fc27b972c08cdcd1e64e18c96873543a111454134462feaa41af72e0abebbe25
7
- data.tar.gz: d5d2b4e12cf31d8c29226a512138def5cc5543ef06bc1778cf587a84a20ccb2cd6c7a0bc1dd86d68edeb980934c4c7a0fe5e1b1bbbae6ea0dc6ea941a97d3f28
6
+ metadata.gz: 72652921092823a183d70edad881be6e3ad881c5c443ce9b2513b54975e6acda118716ed35e597c3414cfdd40ed0cf93ee884d4429c5f4dce445a254dcfa30de
7
+ data.tar.gz: 0d6e6d2951c4885cf22389da5805211f1410c48b442183067fa862218a967b380e112971f63c08c5e4842723ca77517ebaf4ff3fe7b8b348e0dcc23a8d265fe8
@@ -0,0 +1,21 @@
1
+ name: Run Tests, Linters, Etc.
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - uses: ruby/setup-ruby@v1
14
+ with:
15
+ bundler-cache: true
16
+ - name: Run Rubocop
17
+ run: bin/rubocop --format clang
18
+ - name: Run RSpec tests
19
+ run: bin/rspec --format progress
20
+ - name: Ensure no git diff
21
+ run: git diff --exit-code && git diff-index --quiet --cached HEAD
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.7.2
@@ -1,3 +1,11 @@
1
+ ## v0.8.0 (2021-01-31)
2
+ ### Added
3
+ - Accept `Method` as a `Callable` shape definition
4
+
5
+ ### Internal
6
+ - Bump Ruby version from 2.7.0 to 2.7.2
7
+ - Move from Travis to GitHub Actions
8
+
1
9
  ## v0.7.3 (2021-01-07)
2
10
  ### Removed
3
11
  - Removed `::name` method for anonymous validator class in `Shaped::Shapes::Class`
@@ -9,14 +9,14 @@ GIT
9
9
 
10
10
  GIT
11
11
  remote: https://github.com/davidrunger/runger_style.git
12
- revision: f7c19c578016914b58a216a71bc4193d276b1048
12
+ revision: ba2f3c3600bd393a3141a4883489ac15e19dbfd0
13
13
  specs:
14
- runger_style (0.2.5)
14
+ runger_style (0.2.15)
15
15
 
16
16
  PATH
17
17
  remote: .
18
18
  specs:
19
- shaped (0.7.3)
19
+ shaped (0.8.0)
20
20
  activemodel (~> 6.0)
21
21
  activesupport (~> 6.0)
22
22
 
@@ -34,12 +34,12 @@ GEM
34
34
  amazing_print (1.2.2)
35
35
  ast (2.4.1)
36
36
  byebug (11.1.3)
37
- codecov (0.2.15)
38
- simplecov (>= 0.15, < 0.21)
37
+ codecov (0.4.0)
38
+ simplecov (>= 0.15, < 0.22)
39
39
  coderay (1.1.3)
40
- concurrent-ruby (1.1.7)
40
+ concurrent-ruby (1.1.8)
41
41
  diff-lcs (1.4.4)
42
- docile (1.3.4)
42
+ docile (1.3.5)
43
43
  ffi (1.13.1)
44
44
  formatador (0.2.5)
45
45
  guard (2.16.2)
@@ -93,26 +93,26 @@ GEM
93
93
  diff-lcs (>= 1.2.0, < 2.0)
94
94
  rspec-support (~> 3.10.0)
95
95
  rspec-support (3.10.1)
96
- rubocop (0.93.1)
96
+ rubocop (1.8.1)
97
97
  parallel (~> 1.10)
98
- parser (>= 2.7.1.5)
98
+ parser (>= 3.0.0.0)
99
99
  rainbow (>= 2.2.2, < 4.0)
100
- regexp_parser (>= 1.8)
100
+ regexp_parser (>= 1.8, < 3.0)
101
101
  rexml
102
- rubocop-ast (>= 0.6.0)
102
+ rubocop-ast (>= 1.2.0, < 2.0)
103
103
  ruby-progressbar (~> 1.7)
104
- unicode-display_width (>= 1.4.0, < 2.0)
104
+ unicode-display_width (>= 1.4.0, < 3.0)
105
105
  rubocop-ast (1.4.0)
106
106
  parser (>= 2.7.1.5)
107
107
  rubocop-performance (1.9.2)
108
108
  rubocop (>= 0.90.0, < 2.0)
109
109
  rubocop-ast (>= 0.4.0)
110
- rubocop-rspec (1.44.1)
111
- rubocop (~> 0.87)
112
- rubocop-ast (>= 0.7.1)
110
+ rubocop-rspec (2.1.0)
111
+ rubocop (~> 1.0)
112
+ rubocop-ast (>= 1.1.0)
113
113
  ruby-progressbar (1.11.0)
114
114
  shellany (0.0.1)
115
- simplecov (0.20.0)
115
+ simplecov (0.21.2)
116
116
  docile (~> 1.1)
117
117
  simplecov-html (~> 0.11)
118
118
  simplecov_json_formatter (~> 0.1)
@@ -121,7 +121,7 @@ GEM
121
121
  thor (1.0.1)
122
122
  tzinfo (2.0.4)
123
123
  concurrent-ruby (~> 1.0)
124
- unicode-display_width (1.7.0)
124
+ unicode-display_width (2.0.0)
125
125
  zeitwerk (2.4.2)
126
126
 
127
127
  PLATFORMS
@@ -141,4 +141,4 @@ DEPENDENCIES
141
141
  shaped!
142
142
 
143
143
  BUNDLED WITH
144
- 2.1.2
144
+ 2.1.4
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
1
  [![codecov](https://codecov.io/gh/davidrunger/shaped/branch/master/graph/badge.svg)](https://codecov.io/gh/davidrunger/shaped)
2
- [![Build Status](https://travis-ci.com/davidrunger/shaped.svg?branch=master)](https://travis-ci.com/davidrunger/shaped)
3
2
  [![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=davidrunger/shaped)](https://dependabot.com)
4
3
  [![Gem Version](https://badge.fury.io/rb/shaped.svg)](https://badge.fury.io/rb/shaped)
5
4
 
@@ -240,6 +239,23 @@ shape.matched_by?(5) # fails the `#even?` check
240
239
  shape.matched_by?(10) # fails the `#cover?` check (10 is too high)
241
240
  # => false
242
241
  ```
242
+
243
+ If you'd like to provide a named method rather than an anonymous proc/lambda, you can do that, too:
244
+
245
+ ```rb
246
+ def number_is_greater_than_thirty?(number)
247
+ number > 30
248
+ end
249
+
250
+ shape = Shaped::Shape(method(:number_is_greater_than_thirty?))
251
+
252
+ shape.matched_by?(31)
253
+ # => true
254
+
255
+ shape.matched_by?(29)
256
+ # => false
257
+ ```
258
+
243
259
  You can also provide an instance of a custom class that implements a `#call` instance method:
244
260
 
245
261
  ```rb
@@ -11,6 +11,7 @@ class Shaped::Shapes::Callable < Shaped::Shape
11
11
 
12
12
  def to_s
13
13
  case @callable
14
+ when Method then "Method defined at #{@callable.source_location.map(&:to_s).join(':')}"
14
15
  when Proc then "Proc test defined at #{@callable.source_location.map(&:to_s).join(':')}"
15
16
  else "#call test defined at #{@callable.method(:call).source_location.map(&:to_s).join(':')}"
16
17
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shaped
4
- VERSION = '0.7.3'
4
+ VERSION = '0.8.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shaped
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-08 00:00:00.000000000 Z
11
+ date: 2021-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -45,11 +45,11 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".github/workflows/ruby.yml"
48
49
  - ".gitignore"
49
50
  - ".rspec"
50
51
  - ".rubocop.yml"
51
52
  - ".ruby-version"
52
- - ".travis.yml"
53
53
  - CHANGELOG.md
54
54
  - Gemfile
55
55
  - Gemfile.lock
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.1.2
100
+ rubygems_version: 3.1.4
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: Validate the "shape" of Ruby objects.
@@ -1,14 +0,0 @@
1
- ---
2
- language: ruby
3
- os: linux
4
- dist: bionic
5
- cache: bundler
6
- rvm:
7
- - 2.7.0
8
- notifications:
9
- email:
10
- on_success: never
11
- on_failure: always
12
- script:
13
- - bin/rubocop --format clang
14
- - bin/rspec