shaped 0.7.0 → 0.8.2

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: 6243debb70327afd9840f95f340bafd00f2de355e247bba0c6f16f3328c11e6b
4
- data.tar.gz: b993c1b5252874d7d76c845bac27331eacf6de59f24b5f6aa8da2e8caa5ff1c1
3
+ metadata.gz: 6143eccfe138c04a8f24b48656b48782cd73a7f2718e5a318e8e2324cc789457
4
+ data.tar.gz: 57add2258d7c1645da116791e3a758e25adc526d270b1ed634d845c91f2972d8
5
5
  SHA512:
6
- metadata.gz: 0feed58b9c6ac20113a75ec9d560b69102a8240e192b6ce353d6a2da2e82ca01b9aa6d80422ad0565e3a367537c2bb8de9fe10c7242969a8f56a0ff8cabe824a
7
- data.tar.gz: 2dff65af38ece59c0ad34309f8111606cbc7bee03a5be912561965f0e8557eef5253d50d872317a8d0a97669c8a0c98b4906ca57696d194c8d293fa0e37eb005
6
+ metadata.gz: e2758a27c09aebe1834d6c7d31568bd13a92ad33cefa841159bd57b0d85576132c997e078d51c3b513ec0f53db32cfc4a6ddca12e89e2587862eac86904b328b
7
+ data.tar.gz: 994f60c94a7417c08e9b4e3c42038e3cc2e43d180eb39c574a5d89ef3fee14503f2cb0fc1a0b54e28e329f6e9d82cdecdcf7a9a5d9dcc6ad724131d0fa5d4d06
@@ -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
@@ -0,0 +1,3 @@
1
+ ---
2
+ git: true
3
+ rubygems: true
data/.rubocop.yml CHANGED
@@ -1,144 +1,5 @@
1
- AllCops:
2
- EnabledByDefault: true
3
- Exclude:
4
- - !ruby/regexp /\/db\/migrate/201[1-8].*\.rb\z/
5
- # auto-generated files; best to leave as-is
6
- - bin/{annotate,brakeman,bundle,database_consistency,pallets,rubocop,sidekiq}
7
- - db/schema.rb
8
- - lib/tasks/auto_annotate_models.rake
9
- - node_modules/**/*
10
- TargetRubyVersion: 2.7
11
- Bundler/GemComment:
12
- Enabled: false
13
- Layout/ArgumentAlignment:
14
- EnforcedStyle: with_fixed_indentation
15
- Layout/ClassStructure:
16
- ExpectedOrder:
17
- - module_inclusion
18
- - constants
19
- - public_class_methods
20
- - initializer
21
- - public_methods
22
- - protected_methods
23
- - private_methods
24
- Layout/DotPosition:
25
- EnforcedStyle: trailing
26
- Layout/FirstArgumentIndentation:
27
- Enabled: false # this rule doesn't play nicely with the way that I like to use `memoize`
28
- Layout/FirstArrayElementIndentation:
29
- EnforcedStyle: consistent
30
- Layout/LineLength:
31
- IgnoredPatterns:
32
- # ignore line length if the line is a comment without any spaces; it's probably not something we
33
- # can fix (e.g. a long file path)
34
- - !ruby/regexp /^ *#? [\S]+$/
35
- Max: 100
36
- Layout/MultilineMethodCallIndentation:
37
- EnforcedStyle: indented
38
- Layout/SpaceBeforeBlockBraces:
39
- Enabled: false
40
- Layout/SpaceBeforeSemicolon:
41
- Enabled: false
42
- Layout/SpaceInsideHashLiteralBraces:
43
- EnforcedStyle: space
44
- Lint/ConstantResolution:
45
- Enabled: false
46
- Lint/RedundantSplatExpansion:
47
- Enabled: false
48
- Metrics/AbcSize:
49
- Enabled: false
50
- Metrics/BlockLength:
51
- Enabled: false
52
- Metrics/ClassLength:
53
- Enabled: false
54
- Metrics/MethodLength:
55
- Max: 30
56
- Naming/RescuedExceptionsVariableName:
57
- Enabled: false
58
- Style/BlockDelimiters:
59
- Enabled: false
60
- Style/ClassAndModuleChildren:
61
- EnforcedStyle: compact
62
- Style/CollectionMethods:
63
- Enabled: false
64
- Style/ConstantVisibility:
65
- Enabled: false
66
- Style/Copyright:
67
- Enabled: false
68
- Style/DisableCopsWithinSourceCodeDirective:
69
- Enabled: false
70
- Style/Documentation:
71
- Enabled: false
72
- Style/DocumentationMethod:
73
- Enabled: false
74
- Style/EmptyCaseCondition:
75
- Enabled: false
76
- Style/FrozenStringLiteralComment:
77
- Enabled: true
78
- Style/GlobalVars:
79
- Enabled: false
80
- Style/GuardClause:
81
- Enabled: false
82
- Style/IfUnlessModifier:
83
- Enabled: false
84
- Style/InlineComment:
85
- Enabled: false
86
- Style/Lambda:
87
- Enabled: false
88
- Style/MethodCallWithArgsParentheses:
89
- IgnoredMethods:
90
- - add_runtime_dependency
91
- - desc
92
- - fail
93
- - file
94
- - gem
95
- - head
96
- - include
97
- - integer
98
- - load
99
- - p
100
- - print
101
- - puts
102
- - render
103
- - require
104
- - require_relative
105
- - ruby
106
- - run
107
- - string
108
- - source
109
- Style/MissingElse:
110
- Enabled: false
111
- Style/NegatedIf:
112
- Enabled: false
113
- Style/ImplicitRuntimeError:
114
- Enabled: false
115
- Style/MethodCalledOnDoEndBlock:
116
- Enabled: false
117
- Style/NumericPredicate:
118
- Enabled: false
119
- Style/ParenthesesAroundCondition:
120
- Enabled: false
121
- Style/RescueModifier:
122
- Enabled: false
123
- Style/RescueStandardError:
124
- Enabled: false
125
- Style/ReturnNil:
126
- Enabled: false
127
- Style/RegexpLiteral:
128
- Enabled: false
129
- Style/Semicolon:
130
- Enabled: false
131
- Style/SignalException:
132
- Enabled: false
133
- Style/StderrPuts:
134
- Enabled: false
135
- Style/StringHashKeys:
136
- Enabled: false
137
- Style/TernaryParentheses:
138
- Enabled: false
139
- Style/TrailingCommaInArguments:
140
- EnforcedStyleForMultiline: comma
141
- Style/TrailingCommaInArrayLiteral:
142
- EnforcedStyleForMultiline: comma
143
- Style/TrailingCommaInHashLiteral:
144
- EnforcedStyleForMultiline: comma
1
+ inherit_gem:
2
+ runger_style:
3
+ - rulesets/default.yml # gem 'rubocop'
4
+ - rulesets/performance.yml # gem 'rubocop-performance'
5
+ - rulesets/rspec.yml # gem 'rubocop-rspec'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.7.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ ## v0.8.2 (2021-02-01)
2
+ ### Internal
3
+ - Update release_assistant
4
+
5
+ ## v0.8.1 (2021-02-01)
6
+ ### Internal
7
+ - Use `release_assistant` gem to manage the release process
8
+
9
+ ## v0.8.0 (2021-01-31)
10
+ ### Added
11
+ - Accept `Method` as a `Callable` shape definition
12
+
13
+ ### Internal
14
+ - Bump Ruby version from 2.7.0 to 2.7.2
15
+ - Move from Travis to GitHub Actions
16
+
17
+ ## v0.7.3 (2021-01-07)
18
+ ### Removed
19
+ - Removed `::name` method for anonymous validator class in `Shaped::Shapes::Class`
20
+
21
+ ## v0.7.2 (2020-07-13)
22
+ ### Dependencies
23
+ - Bump `rubocop` to 0.88.0 and `runger_style` to 0.2.3
24
+
25
+ ## v0.7.1 (2020-07-02)
26
+ ### Internal
27
+ - Source Rubocop rules/config from `runger_style` gem
28
+
1
29
  ## v0.7.0 (2020-06-24)
2
30
  ### BREAKING CHANGES
3
31
  - Rename the `Or` shape to `Any`
data/Gemfile CHANGED
@@ -5,10 +5,19 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in shaped.gemspec
6
6
  gemspec
7
7
 
8
- gem 'amazing_print'
9
- gem 'pry-byebug'
10
- gem 'rake'
11
- gem 'rubocop'
8
+ group :development, :test do
9
+ gem 'amazing_print'
10
+ gem 'pry-byebug'
11
+ gem 'rake'
12
+ gem 'rubocop', require: false
13
+ gem 'rubocop-performance', require: false
14
+ gem 'rubocop-rspec', require: false
15
+ gem 'runger_style', github: 'davidrunger/runger_style', require: false
16
+ end
17
+
18
+ group :development do
19
+ gem 'release_assistant', require: false, github: 'davidrunger/release_assistant'
20
+ end
12
21
 
13
22
  group :test do
14
23
  gem 'codecov', require: false
data/Gemfile.lock CHANGED
@@ -7,35 +7,50 @@ GIT
7
7
  guard-compat (~> 1.1)
8
8
  rspec (>= 2.99.0, < 4.0)
9
9
 
10
+ GIT
11
+ remote: https://github.com/davidrunger/release_assistant.git
12
+ revision: a3d2011880ff9ae6cc08afc9a59050cd33790df5
13
+ specs:
14
+ release_assistant (0.3.2.alpha)
15
+ activesupport (~> 6.0)
16
+ colorize (~> 0.8)
17
+ memoist (~> 0.16)
18
+ slop (~> 4.8)
19
+
20
+ GIT
21
+ remote: https://github.com/davidrunger/runger_style.git
22
+ revision: bfa1eb8c633b60cb41fcd47627dcce5ca4f5ca59
23
+ specs:
24
+ runger_style (0.2.17.alpha)
25
+
10
26
  PATH
11
27
  remote: .
12
28
  specs:
13
- shaped (0.7.0)
29
+ shaped (0.8.2)
14
30
  activemodel (~> 6.0)
15
31
  activesupport (~> 6.0)
16
32
 
17
33
  GEM
18
34
  remote: https://rubygems.org/
19
35
  specs:
20
- activemodel (6.0.3.2)
21
- activesupport (= 6.0.3.2)
22
- activesupport (6.0.3.2)
36
+ activemodel (6.1.1)
37
+ activesupport (= 6.1.1)
38
+ activesupport (6.1.1)
23
39
  concurrent-ruby (~> 1.0, >= 1.0.2)
24
- i18n (>= 0.7, < 2)
25
- minitest (~> 5.1)
26
- tzinfo (~> 1.1)
27
- zeitwerk (~> 2.2, >= 2.2.2)
28
- amazing_print (1.2.1)
29
- ast (2.4.1)
40
+ i18n (>= 1.6, < 2)
41
+ minitest (>= 5.1)
42
+ tzinfo (~> 2.0)
43
+ zeitwerk (~> 2.3)
44
+ amazing_print (1.2.2)
45
+ ast (2.4.2)
30
46
  byebug (11.1.3)
31
- codecov (0.1.17)
32
- json
33
- simplecov
34
- url
47
+ codecov (0.4.2)
48
+ simplecov (>= 0.15, < 0.22)
35
49
  coderay (1.1.3)
36
- concurrent-ruby (1.1.6)
37
- diff-lcs (1.3)
38
- docile (1.3.2)
50
+ colorize (0.8.1)
51
+ concurrent-ruby (1.1.8)
52
+ diff-lcs (1.4.4)
53
+ docile (1.3.5)
39
54
  ffi (1.13.1)
40
55
  formatador (0.2.5)
41
56
  guard (2.16.2)
@@ -48,21 +63,21 @@ GEM
48
63
  shellany (~> 0.0)
49
64
  thor (>= 0.18.1)
50
65
  guard-compat (1.2.1)
51
- i18n (1.8.3)
66
+ i18n (1.8.8)
52
67
  concurrent-ruby (~> 1.0)
53
- json (2.3.0)
54
68
  listen (3.2.1)
55
69
  rb-fsevent (~> 0.10, >= 0.10.3)
56
70
  rb-inotify (~> 0.9, >= 0.9.10)
57
71
  lumberjack (1.2.5)
72
+ memoist (0.16.2)
58
73
  method_source (1.0.0)
59
- minitest (5.14.1)
74
+ minitest (5.14.3)
60
75
  nenv (0.3.0)
61
76
  notiffany (0.1.3)
62
77
  nenv (~> 0.1)
63
78
  shellany (~> 0.0)
64
- parallel (1.19.2)
65
- parser (2.7.1.4)
79
+ parallel (1.20.1)
80
+ parser (3.0.0.0)
66
81
  ast (~> 2.4.1)
67
82
  pry (0.13.1)
68
83
  coderay (~> 1.1)
@@ -71,49 +86,56 @@ GEM
71
86
  byebug (~> 11.0)
72
87
  pry (~> 0.13.0)
73
88
  rainbow (3.0.0)
74
- rake (13.0.1)
89
+ rake (13.0.3)
75
90
  rb-fsevent (0.10.4)
76
91
  rb-inotify (0.10.1)
77
92
  ffi (~> 1.0)
78
- regexp_parser (1.7.1)
93
+ regexp_parser (2.0.3)
79
94
  rexml (3.2.4)
80
- rspec (3.9.0)
81
- rspec-core (~> 3.9.0)
82
- rspec-expectations (~> 3.9.0)
83
- rspec-mocks (~> 3.9.0)
84
- rspec-core (3.9.2)
85
- rspec-support (~> 3.9.3)
86
- rspec-expectations (3.9.2)
95
+ rspec (3.10.0)
96
+ rspec-core (~> 3.10.0)
97
+ rspec-expectations (~> 3.10.0)
98
+ rspec-mocks (~> 3.10.0)
99
+ rspec-core (3.10.1)
100
+ rspec-support (~> 3.10.0)
101
+ rspec-expectations (3.10.1)
87
102
  diff-lcs (>= 1.2.0, < 2.0)
88
- rspec-support (~> 3.9.0)
89
- rspec-mocks (3.9.1)
103
+ rspec-support (~> 3.10.0)
104
+ rspec-mocks (3.10.1)
90
105
  diff-lcs (>= 1.2.0, < 2.0)
91
- rspec-support (~> 3.9.0)
92
- rspec-support (3.9.3)
93
- rubocop (0.86.0)
106
+ rspec-support (~> 3.10.0)
107
+ rspec-support (3.10.1)
108
+ rubocop (1.9.1)
94
109
  parallel (~> 1.10)
95
- parser (>= 2.7.0.1)
110
+ parser (>= 3.0.0.0)
96
111
  rainbow (>= 2.2.2, < 4.0)
97
- regexp_parser (>= 1.7)
112
+ regexp_parser (>= 1.8, < 3.0)
98
113
  rexml
99
- rubocop-ast (>= 0.0.3, < 1.0)
114
+ rubocop-ast (>= 1.2.0, < 2.0)
100
115
  ruby-progressbar (~> 1.7)
101
- unicode-display_width (>= 1.4.0, < 2.0)
102
- rubocop-ast (0.0.3)
103
- parser (>= 2.7.0.1)
104
- ruby-progressbar (1.10.1)
116
+ unicode-display_width (>= 1.4.0, < 3.0)
117
+ rubocop-ast (1.4.1)
118
+ parser (>= 2.7.1.5)
119
+ rubocop-performance (1.9.2)
120
+ rubocop (>= 0.90.0, < 2.0)
121
+ rubocop-ast (>= 0.4.0)
122
+ rubocop-rspec (2.1.0)
123
+ rubocop (~> 1.0)
124
+ rubocop-ast (>= 1.1.0)
125
+ ruby-progressbar (1.11.0)
105
126
  shellany (0.0.1)
106
- simplecov (0.18.5)
127
+ simplecov (0.21.2)
107
128
  docile (~> 1.1)
108
129
  simplecov-html (~> 0.11)
109
- simplecov-html (0.12.2)
130
+ simplecov_json_formatter (~> 0.1)
131
+ simplecov-html (0.12.3)
132
+ simplecov_json_formatter (0.1.2)
133
+ slop (4.8.2)
110
134
  thor (1.0.1)
111
- thread_safe (0.3.6)
112
- tzinfo (1.2.7)
113
- thread_safe (~> 0.1)
114
- unicode-display_width (1.7.0)
115
- url (0.3.2)
116
- zeitwerk (2.3.0)
135
+ tzinfo (2.0.4)
136
+ concurrent-ruby (~> 1.0)
137
+ unicode-display_width (2.0.0)
138
+ zeitwerk (2.4.2)
117
139
 
118
140
  PLATFORMS
119
141
  ruby
@@ -124,9 +146,13 @@ DEPENDENCIES
124
146
  guard-espect!
125
147
  pry-byebug
126
148
  rake
149
+ release_assistant!
127
150
  rspec
128
151
  rubocop
152
+ rubocop-performance
153
+ rubocop-rspec
154
+ runger_style!
129
155
  shaped!
130
156
 
131
157
  BUNDLED WITH
132
- 2.1.2
158
+ 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
@@ -386,14 +402,15 @@ rake install`.
386
402
 
387
403
  # For maintainers
388
404
 
389
- To release a new version:
390
- 1. check out the `master` branch
391
- 2. update `CHANGELOG.md`
392
- 3. update the version number in `version.rb`
393
- 4. `bundle install` (which will update `Gemfile.lock`)
394
- 5. commit the changes with a message like `Prepare to release v0.1.1`
395
- 6. run `bin/release` (which will create a git tag for the version, push git commits and
396
- tags to GitHub, and push the gem to RubyGems)
405
+ To release a new version, run `bin/release` with an appropriate `--type` option, e.g.:
406
+
407
+ ```
408
+ bin/release --type minor
409
+ ```
410
+
411
+ (This uses the [`release_assistant` gem][release_assistant].)
412
+
413
+ [release_assistant]: https://github.com/davidrunger/release_assistant/
397
414
 
398
415
  # License
399
416
 
data/bin/_guard-core CHANGED
@@ -17,7 +17,7 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path(
17
17
  bundle_binstub = File.expand_path('bundle', __dir__)
18
18
 
19
19
  if File.file?(bundle_binstub)
20
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
20
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
21
21
  load(bundle_binstub)
22
22
  else
23
23
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
data/bin/guard CHANGED
@@ -17,7 +17,7 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path(
17
17
  bundle_binstub = File.expand_path('bundle', __dir__)
18
18
 
19
19
  if File.file?(bundle_binstub)
20
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
20
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
21
21
  load(bundle_binstub)
22
22
  else
23
23
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
data/bin/release CHANGED
@@ -1,16 +1,29 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
3
 
4
- BRANCH=$(git rev-parse --abbrev-ref HEAD)
5
- if [[ "$BRANCH" != "master" ]]; then
6
- echo "Aborting release! Not on master. Current branch is '$BRANCH'.";
7
- exit 1;
8
- fi
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'release' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
9
10
 
10
- COMMIT_MESSAGE=$(git log --format=%B -n 1)
11
- if ! [[ $COMMIT_MESSAGE =~ ^Prepare[[:space:]]to[[:space:]]release[[:space:]]v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
12
- echo "Aborting release! Commit message is improperly formatted. Commit message is '$COMMIT_MESSAGE'.";
13
- exit 1;
14
- fi
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
15
14
 
16
- bundle exec rake release
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('release_assistant', 'release')
data/bin/rspec CHANGED
@@ -18,7 +18,7 @@ ENV['BUNDLE_GEMFILE'] ||=
18
18
  bundle_binstub = File.expand_path('bundle', __dir__)
19
19
 
20
20
  if File.file?(bundle_binstub)
21
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
21
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
22
22
  load(bundle_binstub)
23
23
  else
24
24
  abort(<<~ERROR)
data/bin/rubocop CHANGED
@@ -14,7 +14,7 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', Pathname.new(__FILE_
14
14
  bundle_binstub = File.expand_path('bundle', __dir__)
15
15
 
16
16
  if File.file?(bundle_binstub)
17
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
17
+ if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
18
18
  load(bundle_binstub)
19
19
  else
20
20
  abort(<<~ERROR)
data/lib/shaped.rb CHANGED
@@ -6,7 +6,7 @@ module Shaped::Shapes ; end
6
6
  require 'active_support/all'
7
7
  require 'active_model'
8
8
  require_relative './shaped/shape.rb'
9
- Dir[File.dirname(__FILE__) + '/**/*.rb'].sort.each { |file| require file }
9
+ Dir["#{File.dirname(__FILE__)}/**/*.rb"].sort.each { |file| require file }
10
10
 
11
11
  module Shaped
12
12
  # rubocop:disable Naming/MethodName, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
@@ -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
@@ -34,13 +34,6 @@ class Shaped::Shapes::Class < Shaped::Shape
34
34
  attr_accessor :value
35
35
 
36
36
  validates :value, validations
37
-
38
- class << self
39
- # ActiveModel requires the class to have a `name`
40
- def name
41
- 'Shaped::Shapes::Class::AnonymousValidator'
42
- end
43
- end
44
37
  end
45
38
  end
46
39
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shaped
4
- VERSION = '0.7.0'
4
+ VERSION = '0.8.2'
5
5
  end
data/shaped.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Validate the "shape" of Ruby objects.'
13
13
  spec.homepage = 'https://github.com/davidrunger/shaped'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
18
  spec.metadata['source_code_uri'] = 'https://github.com/davidrunger/shaped'
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.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-24 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -45,11 +45,12 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".github/workflows/ruby.yml"
48
49
  - ".gitignore"
50
+ - ".release_assistant.yml"
49
51
  - ".rspec"
50
52
  - ".rubocop.yml"
51
53
  - ".ruby-version"
52
- - ".travis.yml"
53
54
  - CHANGELOG.md
54
55
  - Gemfile
55
56
  - Gemfile.lock
@@ -82,7 +83,7 @@ metadata:
82
83
  homepage_uri: https://github.com/davidrunger/shaped
83
84
  source_code_uri: https://github.com/davidrunger/shaped
84
85
  changelog_uri: https://github.com/davidrunger/shaped/blob/master/CHANGELOG.md
85
- post_install_message:
86
+ post_install_message:
86
87
  rdoc_options: []
87
88
  require_paths:
88
89
  - lib
@@ -90,15 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
91
  requirements:
91
92
  - - ">="
92
93
  - !ruby/object:Gem::Version
93
- version: 2.3.0
94
+ version: 2.7.0
94
95
  required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  requirements:
96
97
  - - ">="
97
98
  - !ruby/object:Gem::Version
98
99
  version: '0'
99
100
  requirements: []
100
- rubygems_version: 3.1.2
101
- signing_key:
101
+ rubygems_version: 3.1.4
102
+ signing_key:
102
103
  specification_version: 4
103
104
  summary: Validate the "shape" of Ruby objects.
104
105
  test_files: []
data/.travis.yml DELETED
@@ -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 $(git ls-tree -r HEAD --name-only) --force-exclusion --format clang
14
- - bin/rspec