veils 0.3.0 → 0.4.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: d99efbe23df9b3d5cd3841fa0f9a0c2c718b0962f1099fba7f2643ea2aa56cfd
4
- data.tar.gz: 2d02c6413c4cb4289266f42924b4d3649b1604e47c3e12bb404c605e3e55d124
3
+ metadata.gz: 2f513329bb84443c3a8a723560a6632155e7a615e5600184ea35e2ac78d9a2cf
4
+ data.tar.gz: 99da05320c58895c4c2ea5b0a9475ae26436198cdcfa81a8f6d739a0aa52966e
5
5
  SHA512:
6
- metadata.gz: d6a93d529548ef92f5a5b280b8fa12bf1febb125314f91debb2fdf626c66a9acc521a91c2109bb20d5a3b27c65499220b95a5f447793cbcaf68ac6c2443c7f91
7
- data.tar.gz: 62cb2d7f4358289997c01c0632ea230fd0dbbb8e53af99cde363648fa046cbcc02202f069fcb0e66d125e9430693f61ea966e587b8c9b36b10326dc5c9ac3302
6
+ metadata.gz: 3bf4e67e4d20f8d0dbd3357a0dac91efe30d73c336dd6ad7042b6a9ebb1591589b283df5974585ce206034dd91a8272729dd2e0462023a0b2fae65f22269e58e
7
+ data.tar.gz: 0fe108e9065d2854139b1d63801b186e361f91d182f4343e98804d4edd9b15801c101db569eecc69e87a3a3f7d76b293586a7588f0e117aa827ed53506dd49bb
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: codecov
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ jobs:
8
+ codecov:
9
+ runs-on: ubuntu-20.04
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: 2.7
15
+ - run: bundle update
16
+ - run: bundle exec rake
17
+ - uses: codecov/codecov-action@v3
18
+ with:
19
+ file: coverage/.resultset.json
20
+ fail_ci_if_error: true
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: pdd
3
+ on:
4
+ push:
5
+ pull_request:
6
+ jobs:
7
+ pdd:
8
+ runs-on: ubuntu-20.04
9
+ steps:
10
+ - uses: actions/checkout@v3
11
+ - uses: g4s8/pdd-action@master
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: rake
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+ jobs:
11
+ test:
12
+ name: test
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-20.04, macos-12]
16
+ ruby: [2.7, 3.2]
17
+ runs-on: ${{ matrix.os }}
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - run: bundle update
24
+ - run: bundle exec rake
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: xcop
3
+ on:
4
+ push:
5
+ pull_request:
6
+ jobs:
7
+ xcop:
8
+ runs-on: ubuntu-20.04
9
+ steps:
10
+ - uses: actions/checkout@v3
11
+ - uses: g4s8/xcop-action@master
data/.gitignore CHANGED
@@ -4,3 +4,4 @@ Gemfile.lock
4
4
  .DS_Store
5
5
  rdoc/
6
6
  .idea/
7
+ coverage/
data/.rubocop.yml CHANGED
@@ -1,10 +1,12 @@
1
1
  AllCops:
2
2
  DisplayCopNames: true
3
3
  TargetRubyVersion: 2.3
4
+ SuggestExtensions: false
5
+ NewCops: enable
4
6
 
5
7
  Layout/EndOfLine:
6
8
  EnforcedStyle: lf
7
- Style/MethodMissingSuper:
9
+ Lint/MissingSuper:
8
10
  Enabled: false
9
11
  Layout/EmptyLineAfterGuardClause:
10
12
  Enabled: false
@@ -24,5 +26,7 @@ Metrics/PerceivedComplexity:
24
26
  Max: 10
25
27
  Metrics/ParameterLists:
26
28
  Max: 10
27
- Layout/AlignParameters:
29
+ Layout/ParameterAlignment:
30
+ Enabled: false
31
+ Style/OptionalBooleanParameter:
28
32
  Enabled: false
data/.rultor.yml CHANGED
@@ -1,8 +1,9 @@
1
+ docker:
2
+ image: yegor256/rultor-image:1.19.0
1
3
  assets:
2
4
  rubygems.yml: yegor256/home#assets/rubygems.yml
3
5
  install: |-
4
- export GEM_HOME=~/.ruby
5
- export GEM_PATH=$GEM_HOME:$GEM_PATH
6
+ pdd -f /dev/null
6
7
  sudo bundle install --no-color "--gemfile=$(pwd)/Gemfile"
7
8
  release:
8
9
  script: |-
@@ -18,7 +19,3 @@ merge:
18
19
  script: |-
19
20
  bundle install
20
21
  bundle exec rake
21
- deploy:
22
- script: |-
23
- echo 'Nothing to deploy'
24
- exit -1
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020 Yegor Bugayenko
3
+ # Copyright (c) 2020-2023 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,5 +21,11 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  source 'https://rubygems.org'
24
- ruby '~>2.3'
25
24
  gemspec
25
+
26
+ gem 'minitest', '5.18.0', require: false
27
+ gem 'rake', '13.0.6', require: false
28
+ gem 'rdoc', '6.5.0', require: false
29
+ gem 'rubocop', '1.51.0', require: false
30
+ gem 'rubocop-rspec', '2.22.0', require: false
31
+ gem 'simplecov', '0.22.0', require: false
data/README.md CHANGED
@@ -4,12 +4,10 @@
4
4
  [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/veils)](http://www.rultor.com/p/yegor256/veils)
5
5
  [![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)
6
6
 
7
- [![Build Status](https://travis-ci.org/yegor256/veils.svg)](https://travis-ci.org/yegor256/veils)
8
- [![Build status](https://ci.appveyor.com/api/projects/status/pexc3cg49m75c0r6?svg=true)](https://ci.appveyor.com/project/yegor256/veils)
7
+ [![rake](https://github.com/yegor256/veils/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/veils/actions/workflows/rake.yml)
9
8
  [![Gem Version](https://badge.fury.io/rb/veils.svg)](http://badge.fury.io/rb/veils)
10
9
  [![Maintainability](https://api.codeclimate.com/v1/badges/51b007d0eb24ceeeca94/maintainability)](https://codeclimate.com/github/yegor256/veils/maintainability)
11
10
  [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/yegor256/veils/master/frames)
12
-
13
11
  [![Hits-of-Code](https://hitsofcode.com/github/yegor256/veils)](https://hitsofcode.com/view/github/yegor256/veils)
14
12
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/veils/blob/master/LICENSE.txt)
15
13
 
@@ -25,7 +23,7 @@ $ gem install veils
25
23
  Then, use it like this:
26
24
 
27
25
  ```ruby
28
- require 'veils'
26
+ require 'veil'
29
27
  obj = Veil.new(obj, to_s: 'Hello, world!')
30
28
  ```
31
29
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020 Yegor Bugayenko
3
+ # Copyright (c) 2020-2023 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/lib/alterin.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@
28
28
  # {README}[https://github.com/yegor256/veils/blob/master/README.md] file.
29
29
  #
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class AlterIn
34
34
  def initialize(origin, methods = {})
@@ -47,9 +47,7 @@ class AlterIn
47
47
 
48
48
  def method_missing(*args)
49
49
  method = args[0]
50
- unless @origin.respond_to?(method)
51
- raise "Method #{method} is absent in #{@origin}"
52
- end
50
+ raise "Method #{method} is absent in #{@origin}" unless @origin.respond_to?(method)
53
51
  inputs = args[1..-1]
54
52
  inputs = @methods[method].call(inputs) if @methods.key?(method)
55
53
  if block_given?
@@ -62,7 +60,7 @@ class AlterIn
62
60
  end
63
61
 
64
62
  def respond_to?(method, include_private = false)
65
- @origin.respond_to?(method, include_private) || @methods[method]
63
+ @origin.respond_to?(method, include_private) || @methods.key?(method)
66
64
  end
67
65
 
68
66
  def respond_to_missing?(_method, _include_private = false)
data/lib/alterout.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@
28
28
  # {README}[https://github.com/yegor256/veils/blob/master/README.md] file.
29
29
  #
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class AlterOut
34
34
  def initialize(origin, methods = {})
@@ -47,9 +47,7 @@ class AlterOut
47
47
 
48
48
  def method_missing(*args)
49
49
  method = args[0]
50
- unless @origin.respond_to?(method)
51
- raise "Method #{method} is absent in #{@origin}"
52
- end
50
+ raise "Method #{method} is absent in #{@origin}" unless @origin.respond_to?(method)
53
51
  out =
54
52
  if block_given?
55
53
  @origin.__send__(*args) do |*a|
@@ -63,7 +61,7 @@ class AlterOut
63
61
  end
64
62
 
65
63
  def respond_to?(method, include_private = false)
66
- @origin.respond_to?(method, include_private) || @methods[method]
64
+ @origin.respond_to?(method, include_private) || @methods.key?(method)
67
65
  end
68
66
 
69
67
  def respond_to_missing?(_method, _include_private = false)
data/lib/unpiercable.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -29,7 +29,7 @@
29
29
  # {README}[https://github.com/yegor256/veils/blob/master/README.md] file.
30
30
  #
31
31
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
32
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
33
33
  # License:: MIT
34
34
  class Unpiercable
35
35
  def initialize(origin, methods = {})
@@ -51,9 +51,7 @@ class Unpiercable
51
51
  if @methods.key?(method)
52
52
  @methods[method]
53
53
  else
54
- unless @origin.respond_to?(method)
55
- raise "Method #{method} is absent in #{@origin}"
56
- end
54
+ raise "Method #{method} is absent in #{@origin}" unless @origin.respond_to?(method)
57
55
  if block_given?
58
56
  @origin.__send__(*args) do |*a|
59
57
  yield(*a)
@@ -65,7 +63,7 @@ class Unpiercable
65
63
  end
66
64
 
67
65
  def respond_to?(method, include_private = false)
68
- @origin.respond_to?(method, include_private) || @methods[method]
66
+ @origin.respond_to?(method, include_private) || @methods.key?(method)
69
67
  end
70
68
 
71
69
  def respond_to_missing?(_method, _include_private = false)
data/lib/veil.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -29,7 +29,7 @@
29
29
  # {README}[https://github.com/yegor256/veils/blob/master/README.md] file.
30
30
  #
31
31
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
32
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
33
33
  # License:: MIT
34
34
  class Veil
35
35
  def initialize(origin, methods = {})
@@ -51,9 +51,7 @@ class Veil
51
51
  method = args[0]
52
52
  if @pierced || !@methods.key?(method)
53
53
  @pierced = true
54
- unless @origin.respond_to?(method)
55
- raise "Method #{method} is absent in #{@origin}"
56
- end
54
+ raise "Method #{method} is absent in #{@origin}" unless @origin.respond_to?(method)
57
55
  if block_given?
58
56
  @origin.__send__(*args) do |*a|
59
57
  yield(*a)
@@ -67,7 +65,7 @@ class Veil
67
65
  end
68
66
 
69
67
  def respond_to?(method, include_private = false)
70
- @origin.respond_to?(method, include_private) || @methods[method]
68
+ @origin.respond_to?(method, include_private) || @methods.key?(method)
71
69
  end
72
70
 
73
71
  def respond_to_missing?(_method, _include_private = false)
data/renovate.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base"
5
+ ]
6
+ }
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (The MIT License)
4
+ #
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the 'Software'), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ $stdout.sync = true
26
+
27
+ require 'simplecov'
28
+ SimpleCov.start
29
+
30
+ require 'minitest/autorun'
data/test/test_alterin.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require_relative '../lib/alterin'
28
28
 
29
29
  # AlterIn test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class AlterInTest < Minitest::Test
34
34
  def test_simple
@@ -39,4 +39,18 @@ class AlterInTest < Minitest::Test
39
39
  foo = AlterIn.new(obj, plus: proc { |a, b| [a + 1, b + 1] })
40
40
  assert_equal(7, foo.plus(2, 3))
41
41
  end
42
+
43
+ def test_respond_to
44
+ foo = AlterIn.new(Object.new)
45
+ assert_equal(false, foo.respond_to?(:undefine_method))
46
+
47
+ foo = AlterIn.new(Object.new, method_return_object: Object.new)
48
+ assert_equal(true, foo.respond_to?(:method_return_object))
49
+
50
+ foo = AlterIn.new(Object.new, method_return_false: false)
51
+ assert_equal(true, foo.respond_to?(:method_return_false))
52
+
53
+ foo = AlterIn.new(Object.new, method_return_nil: nil)
54
+ assert_equal(true, foo.respond_to?(:method_return_nil))
55
+ end
42
56
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require_relative '../lib/alterout'
28
28
 
29
29
  # AlterOut test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class AlterOutTest < Minitest::Test
34
34
  def test_simple
@@ -39,4 +39,18 @@ class AlterOutTest < Minitest::Test
39
39
  foo = AlterOut.new(obj, read: proc { |r| r + 1 })
40
40
  assert_equal(6, foo.read(5))
41
41
  end
42
+
43
+ def test_respond_to
44
+ foo = AlterOut.new(Object.new)
45
+ assert_equal(false, foo.respond_to?(:undefine_method))
46
+
47
+ foo = AlterOut.new(Object.new, method_return_object: Object.new)
48
+ assert_equal(true, foo.respond_to?(:method_return_object))
49
+
50
+ foo = AlterOut.new(Object.new, method_return_false: false)
51
+ assert_equal(true, foo.respond_to?(:method_return_false))
52
+
53
+ foo = AlterOut.new(Object.new, method_return_nil: nil)
54
+ assert_equal(true, foo.respond_to?(:method_return_nil))
55
+ end
42
56
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require_relative '../lib/unpiercable'
28
28
 
29
29
  # Veil test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class UnpiercableTest < Minitest::Test
34
34
  def test_simple
@@ -71,4 +71,18 @@ class UnpiercableTest < Minitest::Test
71
71
  foo.each { |_| observed += 1 }
72
72
  assert_equal(3, observed)
73
73
  end
74
+
75
+ def test_respond_to
76
+ foo = Unpiercable.new(Object.new)
77
+ assert_equal(false, foo.respond_to?(:undefine_method))
78
+
79
+ foo = Unpiercable.new(Object.new, method_return_object: Object.new)
80
+ assert_equal(true, foo.respond_to?(:method_return_object))
81
+
82
+ foo = Unpiercable.new(Object.new, method_return_false: false)
83
+ assert_equal(true, foo.respond_to?(:method_return_false))
84
+
85
+ foo = Unpiercable.new(Object.new, method_return_nil: nil)
86
+ assert_equal(true, foo.respond_to?(:method_return_nil))
87
+ end
74
88
  end
data/test/test_veil.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require_relative '../lib/veil'
28
28
 
29
29
  # Veil test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2020 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2020-2023 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class VeilTest < Minitest::Test
34
34
  def test_simple
@@ -71,4 +71,18 @@ class VeilTest < Minitest::Test
71
71
  foo.each { |_| observed += 1 }
72
72
  assert_equal(3, observed)
73
73
  end
74
+
75
+ def test_respond_to
76
+ foo = Veil.new(Object.new)
77
+ assert_equal(false, foo.respond_to?(:undefine_method))
78
+
79
+ foo = Veil.new(Object.new, method_return_object: Object.new)
80
+ assert_equal(true, foo.respond_to?(:method_return_object))
81
+
82
+ foo = Veil.new(Object.new, method_return_false: false)
83
+ assert_equal(true, foo.respond_to?(:method_return_false))
84
+
85
+ foo = Veil.new(Object.new, method_return_nil: nil)
86
+ assert_equal(true, foo.respond_to?(:method_return_nil))
87
+ end
74
88
  end
data/veils.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2020 Yegor Bugayenko
5
+ # Copyright (c) 2020-2023 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,14 +24,10 @@
24
24
 
25
25
  require 'English'
26
26
  Gem::Specification.new do |s|
27
- s.specification_version = 2 if s.respond_to? :specification_version=
28
- if s.respond_to? :required_rubygems_version=
29
- s.required_rubygems_version = Gem::Requirement.new('>= 0')
30
- end
31
- s.rubygems_version = '2.3.3'
27
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
32
28
  s.required_ruby_version = '>=2.3'
33
29
  s.name = 'veils'
34
- s.version = '0.3.0'
30
+ s.version = '0.4.0'
35
31
  s.license = 'MIT'
36
32
  s.summary = 'Ruby Veil Objects'
37
33
  s.description = 'Decorate your existing Ruby object with veils
@@ -40,12 +36,7 @@ and some its methods will be cached.'
40
36
  s.email = 'yegor256@gmail.com'
41
37
  s.homepage = 'http://github.com/yegor256/veils'
42
38
  s.files = `git ls-files`.split($RS)
43
- s.test_files = s.files.grep(%r{^(test)/})
44
39
  s.rdoc_options = ['--charset=UTF-8']
45
40
  s.extra_rdoc_files = ['README.md']
46
- s.add_development_dependency 'minitest', '5.11.3'
47
- s.add_development_dependency 'rake', '12.3.3'
48
- s.add_development_dependency 'rdoc', '4.3.0'
49
- s.add_development_dependency 'rubocop', '0.62.0'
50
- s.add_development_dependency 'rubocop-rspec', '1.31.0'
41
+ s.metadata['rubygems_mfa_required'] = 'true'
51
42
  end
metadata CHANGED
@@ -1,85 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-20 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: minitest
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '='
18
- - !ruby/object:Gem::Version
19
- version: 5.11.3
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '='
25
- - !ruby/object:Gem::Version
26
- version: 5.11.3
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '='
32
- - !ruby/object:Gem::Version
33
- version: 12.3.3
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '='
39
- - !ruby/object:Gem::Version
40
- version: 12.3.3
41
- - !ruby/object:Gem::Dependency
42
- name: rdoc
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 4.3.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 4.3.0
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 0.62.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 0.62.0
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 1.31.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 1.31.0
11
+ date: 2023-05-26 00:00:00.000000000 Z
12
+ dependencies: []
83
13
  description: |-
84
14
  Decorate your existing Ruby object with veils
85
15
  and some its methods will be cached.
@@ -90,21 +20,25 @@ extra_rdoc_files:
90
20
  - README.md
91
21
  files:
92
22
  - ".0pdd.yml"
23
+ - ".github/workflows/codecov.yml"
24
+ - ".github/workflows/pdd.yml"
25
+ - ".github/workflows/rake.yml"
26
+ - ".github/workflows/xcop.yml"
93
27
  - ".gitignore"
94
28
  - ".pdd"
95
29
  - ".rubocop.yml"
96
30
  - ".rultor.yml"
97
- - ".travis.yml"
98
31
  - Gemfile
99
32
  - LICENSE.txt
100
33
  - README.md
101
34
  - Rakefile
102
- - appveyor.yml
103
35
  - lib/alterin.rb
104
36
  - lib/alterout.rb
105
37
  - lib/unpiercable.rb
106
38
  - lib/veil.rb
107
39
  - logo.svg
40
+ - renovate.json
41
+ - test/test__helper.rb
108
42
  - test/test_alterin.rb
109
43
  - test/test_alterout.rb
110
44
  - test/test_unpiercable.rb
@@ -113,7 +47,8 @@ files:
113
47
  homepage: http://github.com/yegor256/veils
114
48
  licenses:
115
49
  - MIT
116
- metadata: {}
50
+ metadata:
51
+ rubygems_mfa_required: 'true'
117
52
  post_install_message:
118
53
  rdoc_options:
119
54
  - "--charset=UTF-8"
@@ -130,12 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
65
  - !ruby/object:Gem::Version
131
66
  version: '0'
132
67
  requirements: []
133
- rubygems_version: 3.0.1
68
+ rubygems_version: 3.2.15
134
69
  signing_key:
135
- specification_version: 2
70
+ specification_version: 4
136
71
  summary: Ruby Veil Objects
137
- test_files:
138
- - test/test_alterin.rb
139
- - test/test_alterout.rb
140
- - test/test_unpiercable.rb
141
- - test/test_veil.rb
72
+ test_files: []
data/.travis.yml DELETED
@@ -1,12 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.6.0
4
- branches:
5
- only:
6
- - master
7
- install:
8
- - bundle install
9
- script:
10
- - set -e
11
- - bundle exec rake
12
-
data/appveyor.yml DELETED
@@ -1,25 +0,0 @@
1
- version: '{build}'
2
- skip_tags: true
3
- clone_depth: 10
4
- branches:
5
- only:
6
- - master
7
- except:
8
- - gh-pages
9
- os: Windows Server 2012
10
- environment:
11
- matrix:
12
- - ruby_version: "25-x64"
13
- install:
14
- - ps: |
15
- $Env:PATH = "C:\Ruby${Env:ruby_version}\bin;${Env:PATH}"
16
- - bundle config --local path vendor/bundle
17
- - ruby -v
18
- - bundle -v
19
- build_script:
20
- - bundle update
21
- - bundle install
22
- test_script:
23
- - bundle exec rake --quiet
24
- cache:
25
- - vendor/bundle