defi 2.0.0 → 2.0.5

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: 17965d0bae882875e8860597f6d6b7cc147837dad2a8622e505cf95aa9e9e752
4
- data.tar.gz: 4500fc7d680aa05caa158c22f0dd9cd71f2f014be3b13e79cdbd488a82fdf278
3
+ metadata.gz: 5a5d9ec9fab69bff15c96a7cc69fa4803ae518de50757ec42b4e2f2189df4ae8
4
+ data.tar.gz: 942186c2634f4ed5fafd96fa811444105ac6b0983627d1bb2023e004dfb403df
5
5
  SHA512:
6
- metadata.gz: 1e52fe5aaab97e0ebb05aa93f765f35690eb3e9460f736a2fed8737ac495b5636379a7e325307aed74e9394d59b160376b094e7105b89bbe334db3e24a360e01
7
- data.tar.gz: 138f72b7a0aef3d48ed73f49383767cfb863aaa6230eb94ddf30f7e1431c15ffa7ddb48b8f5bd5df2d80512af1d235c368003c1216c8995bc9788e503e91aafb
6
+ metadata.gz: 780386f4f728d69dc3b904b0773fc6a01c712d9f8857102cd3e0a142a5400cff2db9f2ae2693a682bfe3c83a83ab3d1fad743d44db4495d0ed398155c081755b
7
+ data.tar.gz: 2d7352dd2e198709f43de97312e904836a6fc00a234c5b31b5cb4e01dc3904f6b43ed70828578e635bb0cdd80531b20ad84eafaf5c21eae3a3881d26f5414516
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2019 Cyril Kato
3
+ Copyright (c) 2015-2021 Cyril Kato
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/README.md CHANGED
@@ -1,30 +1,18 @@
1
1
  # Defi
2
2
 
3
- [![Build Status](https://api.travis-ci.org/fixrb/defi.svg?branch=master)][travis]
4
- [![Code Climate](https://codeclimate.com/github/fixrb/defi/badges/gpa.svg)][codeclimate]
3
+ [![Build Status](https://api.travis-ci.org/fixrb/defi.svg?branch=main)][travis]
5
4
  [![Gem Version](https://badge.fury.io/rb/defi.svg)][gem]
6
- [![Inline docs](https://inch-ci.org/github/fixrb/defi.svg?branch=master)][inchpages]
5
+ [![Inline docs](https://inch-ci.org/github/fixrb/defi.svg?branch=main)][inchpages]
7
6
  [![Documentation](https://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
8
7
 
9
8
  > Challenge library.
10
9
 
11
- ## Contact
12
-
13
- * Home page: https://github.com/fixrb/defi
14
- * Bugs/issues: https://github.com/fixrb/defi/issues
15
-
16
- ## Rubies
17
-
18
- * [MRI](https://www.ruby-lang.org/)
19
- * [Rubinius](https://rubinius.com/)
20
- * [JRuby](https://www.jruby.org/)
21
-
22
10
  ## Installation
23
11
 
24
12
  Add this line to your application's Gemfile:
25
13
 
26
14
  ```ruby
27
- gem 'defi'
15
+ gem "defi"
28
16
  ```
29
17
 
30
18
  And then execute:
@@ -46,58 +34,39 @@ Defi.send(:*, 7).to(6).call # => 42
46
34
  Now, let's challenge "`foo`" with `boom` method:
47
35
 
48
36
  ```ruby
49
- Defi.send(:boom).to('foo').call # NoMethodError: undefined method `boom' for "foo":String
37
+ Defi.send(:boom).to("foo").call # NoMethodError: undefined method `boom' for "foo":String
50
38
  ```
51
39
 
52
40
  Let's challenge "`hello world`" with `gsub!` in isolation:
53
41
 
54
42
  ```ruby
55
- some_text = 'hello world'
56
- Defi.send(:gsub!, 'world', 'Alice').to!(some_text).call # => "hello Alice"
43
+ some_text = "hello world"
44
+ Defi.send(:gsub!, "world", "Alice").to!(some_text).call # => "hello Alice"
57
45
  some_text # => "hello world"
58
46
  ```
59
47
 
60
- ## Security
61
-
62
- As a basic form of security __Defi__ provides a set of SHA512 checksums for
63
- every Gem release. These checksums can be found in the `checksum/` directory.
64
- Although these checksums do not prevent malicious users from tampering with a
65
- built Gem they can be used for basic integrity verification purposes.
66
-
67
- The checksum of a file can be checked using the `sha512sum` command. For
68
- example:
48
+ ## Contact
69
49
 
70
- $ sha512sum pkg/defi-1.0.0.gem
71
- c30380a253c932bbff42a36611466f2b7d59e6a1d9578a4989e7b2cfd4078cf9d64e452b0eaa055c5ab88be4816d3f366d7aa705d29bb54e2db9f75d21f36cf7 pkg/defi-1.0.0.gem
50
+ * Source code: https://github.com/fixrb/defi/issues
72
51
 
73
52
  ## Versioning
74
53
 
75
54
  __Defi__ follows [Semantic Versioning 2.0](https://semver.org/).
76
55
 
77
- ## Contributing
78
-
79
- 1. [Fork it](https://github.com/fixrb/defi/fork)
80
- 2. Create your feature branch (`git checkout -b my-new-feature`)
81
- 3. Commit your changes (`git commit -am 'Add some feature'`)
82
- 4. Push to the branch (`git push origin my-new-feature`)
83
- 5. Create a new Pull Request
84
-
85
56
  ## License
86
57
 
87
- See `LICENSE.md` file.
88
-
89
- [gem]: https://rubygems.org/gems/defi
90
- [travis]: https://travis-ci.org/fixrb/defi
91
- [codeclimate]: https://codeclimate.com/github/fixrb/defi
92
- [inchpages]: https://inch-ci.org/github/fixrb/defi
93
- [rubydoc]: https://rubydoc.info/gems/defi/frames
58
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
94
59
 
95
60
  ***
96
61
 
97
62
  <p>
98
- This project is sponsored by:
99
-
63
+ This project is sponsored by:<br />
100
64
  <a href="https://sashite.com/"><img
101
- src="https://github.com/fixrb/defi/raw/bdf560d73e7ff2306f6f4a071ced36b383cbf35d/img/sashite.png"
65
+ src="https://github.com/fixrb/defi/raw/main/img/sashite.png"
102
66
  alt="Sashite" /></a>
103
67
  </p>
68
+
69
+ [gem]: https://rubygems.org/gems/defi
70
+ [travis]: https://travis-ci.org/fixrb/defi
71
+ [inchpages]: https://inch-ci.org/github/fixrb/defi
72
+ [rubydoc]: https://rubydoc.info/gems/defi/frames
data/lib/defi.rb CHANGED
@@ -2,13 +2,9 @@
2
2
 
3
3
  # Namespace for the Defi library.
4
4
  #
5
- # @api public
6
- #
7
5
  module Defi
8
6
  # Expectations are built with this method.
9
7
  #
10
- # @api public
11
- #
12
8
  # @example The challenge
13
9
  # send(:foo) # => #<Defi::Challenge:0x007f96a40925f8 @method=:foo, @args=[]>
14
10
  #
@@ -23,4 +19,4 @@ module Defi
23
19
  end
24
20
  end
25
21
 
26
- require_relative File.join('defi', 'challenge')
22
+ require_relative File.join("defi", "challenge")
@@ -1,17 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'aw'
3
+ require "aw"
4
4
 
5
5
  module Defi
6
6
  # This class contains a challenge to apply against an object.
7
- #
8
- # @api private
9
- #
10
7
  class Challenge < ::BasicObject
11
8
  # Initialize the challenge class.
12
9
  #
13
- # @api private
14
- #
15
10
  # @param method [#to_sym] The method to send to an object.
16
11
  # @param args [Array] Any arguments of the method.
17
12
  # @param opts [Hash] Any keyword arguments of the method.
@@ -23,8 +18,6 @@ module Defi
23
18
  @block = block
24
19
  end
25
20
 
26
- # @api public
27
- #
28
21
  # @param object [#object_id] The object to challenge.
29
22
  #
30
23
  # @return [Defi::Value] The actual value, to raise or to return.
@@ -32,8 +25,6 @@ module Defi
32
25
  Value.new { object.public_send(@method, *@args, **@opts, &@block) }
33
26
  end
34
27
 
35
- # @api public
36
- #
37
28
  # @param object [#object_id] The object to challenge in code isolation.
38
29
  #
39
30
  # @return [Defi::Value] The actual value, to raise or to return.
@@ -45,8 +36,6 @@ module Defi
45
36
 
46
37
  # Properties of the challenge.
47
38
  #
48
- # @api public
49
- #
50
39
  # @return [Hash] The properties of the challenge.
51
40
  def to_h
52
41
  {
@@ -59,8 +48,6 @@ module Defi
59
48
 
60
49
  # String of the challenge.
61
50
  #
62
- # @api public
63
- #
64
51
  # @return [String] The string representation of the challenge.
65
52
  def to_s
66
53
  string = ".#{@method}"
@@ -69,9 +56,9 @@ module Defi
69
56
 
70
57
  stringified_args = @args.inspect[1..-2]
71
58
  stringified_opts = @opts.inspect[1..-2]
72
- stringified_block = '<Proc>' unless @block.nil?
59
+ stringified_block = "<Proc>" unless @block.nil?
73
60
 
74
- string += '('
61
+ string += "("
75
62
 
76
63
  stringified_items = []
77
64
 
@@ -79,28 +66,26 @@ module Defi
79
66
  stringified_items << stringified_opts unless @opts.empty?
80
67
  stringified_items << stringified_block unless @block.nil?
81
68
 
82
- string + stringified_items.join(', ') + ')'
69
+ "#{string}#{stringified_items.join(', ')})"
83
70
  end
84
71
 
85
72
  # A string containing a human-readable representation of the challenge.
86
73
  #
87
- # @api public
88
- #
89
74
  # @return [String] The human-readable representation of the challenge.
90
75
  def inspect
91
76
  inspected_method = @method.inspect
92
77
  inspected_args = @args.inspect
93
78
  inspected_opts = @opts.inspect
94
- inspected_block = @block.nil? ? 'nil' : '<Proc>'
79
+ inspected_block = @block.nil? ? "nil" : "<Proc>"
95
80
 
96
- 'Defi(' \
81
+ "Defi(" \
97
82
  "method: #{inspected_method}, " \
98
- "args: #{ inspected_args }, " \
99
- "opts: #{ inspected_opts }, " \
100
- "block: #{ inspected_block }" \
101
- ')'
83
+ "args: #{inspected_args}, " \
84
+ "opts: #{inspected_opts}, " \
85
+ "block: #{inspected_block}" \
86
+ ")"
102
87
  end
103
88
  end
104
89
  end
105
90
 
106
- require_relative 'value'
91
+ require_relative "value"
data/lib/defi/value.rb CHANGED
@@ -3,20 +3,16 @@
3
3
  module Defi
4
4
  # This class contains an object that returned or raised during the initialize.
5
5
  #
6
- # @api private
7
- #
8
6
  class Value
9
7
  # @return [#object_id] The returned or the raised object.
10
8
  attr_reader :object
11
9
 
12
10
  # Initialize the value class.
13
11
  #
14
- # @api public
15
- #
16
- # @param block [Proc] The block of code to execute.
12
+ # @yieldreturn [#object_id] The challenged code.
17
13
  # rubocop:disable Lint/RescueException
18
- def initialize(&block)
19
- @object = block.call
14
+ def initialize
15
+ @object = yield
20
16
  @raised = false
21
17
  rescue ::Exception => e
22
18
  @object = e
@@ -33,8 +29,6 @@ module Defi
33
29
  object
34
30
  end
35
31
 
36
- # @api public
37
- #
38
32
  # @return [Boolean] The value was raised (or returned)?
39
33
  def raised?
40
34
  @raised
@@ -42,8 +36,6 @@ module Defi
42
36
 
43
37
  # Properties of the value.
44
38
  #
45
- # @api public
46
- #
47
39
  # @return [Hash] The properties of the value.
48
40
  def to_h
49
41
  {
@@ -54,23 +46,14 @@ module Defi
54
46
 
55
47
  # String of the value.
56
48
  #
57
- # @api public
58
- #
59
49
  # @return [String] The string representation of the value.
60
50
  def to_s
61
- string = if raised?
62
- 'raise'
63
- else
64
- 'return'
65
- end
66
-
51
+ string = raised? ? "raise" : "return"
67
52
  "#{string} #{object}"
68
53
  end
69
54
 
70
55
  # A string containing a human-readable representation of the value.
71
56
  #
72
- # @api public
73
- #
74
57
  # @return [String] The human-readable representation of the value.
75
58
  def inspect
76
59
  "Value(object: #{object}, raised: #{raised?})"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: defi
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-22 00:00:00.000000000 Z
11
+ date: 2021-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aw
@@ -16,44 +16,44 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.10
19
+ version: 0.1.12
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.10
26
+ version: 0.1.12
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '2.1'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '2.1'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '13.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '13.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubocop
56
+ name: rubocop-md
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -80,34 +80,62 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-thread_safety
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: simplecov
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
- - - "~>"
115
+ - - ">="
88
116
  - !ruby/object:Gem::Version
89
- version: '0.17'
117
+ version: '0'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - "~>"
122
+ - - ">="
95
123
  - !ruby/object:Gem::Version
96
- version: '0.17'
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: yard
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - "~>"
129
+ - - ">="
102
130
  - !ruby/object:Gem::Version
103
- version: '0.9'
131
+ version: '0'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - "~>"
136
+ - - ">="
109
137
  - !ruby/object:Gem::Version
110
- version: '0.9'
138
+ version: '0'
111
139
  description: Challenge library.
112
140
  email: contact@cyril.email
113
141
  executables: []
@@ -131,14 +159,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
159
  requirements:
132
160
  - - ">="
133
161
  - !ruby/object:Gem::Version
134
- version: '0'
162
+ version: 2.7.0
135
163
  required_rubygems_version: !ruby/object:Gem::Requirement
136
164
  requirements:
137
165
  - - ">="
138
166
  - !ruby/object:Gem::Version
139
167
  version: '0'
140
168
  requirements: []
141
- rubygems_version: 3.1.2
169
+ rubygems_version: 3.1.4
142
170
  signing_key:
143
171
  specification_version: 4
144
172
  summary: Challenge library.