r_spec 0.3.0 → 1.0.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE.md +1 -1
- data/README.md +67 -84
- data/lib/r_spec.rb +16 -21
- data/lib/r_spec/dsl.rb +114 -0
- data/lib/r_spec/expectation_target.rb +93 -0
- data/lib/r_spec/log.rb +24 -0
- data/lib/r_spec/pending.rb +24 -0
- data/lib/r_spec/test.rb +7 -0
- metadata +83 -103
- checksums.yaml.gz.sig +0 -1
- data.tar.gz.sig +0 -2
- data/.gitignore +0 -11
- data/.travis.yml +0 -27
- data/.yardopts +0 -1
- data/CODE_OF_CONDUCT.md +0 -13
- data/Gemfile +0 -3
- data/Rakefile +0 -20
- data/VERSION.semver +0 -1
- data/bin/console +0 -7
- data/bin/setup +0 -5
- data/certs/gem-cyril-public_cert.pem +0 -21
- data/checksum/r_spec-0.1.0.gem.sha512 +0 -1
- data/checksum/r_spec-0.1.1.gem.sha512 +0 -1
- data/checksum/r_spec-0.2.0.gem.sha512 +0 -1
- data/lib/fix/it.rb +0 -10
- data/lib/fix/on.rb +0 -43
- data/pkg_checksum +0 -11
- data/r_spec.gemspec +0 -32
- metadata.gz.sig +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d95780dc86d2b0c2295f22fe18ed889298716d8a817ba4a74fbd1c9c1ec71c03
|
4
|
+
data.tar.gz: a954787c7ad5a50c1d3a49d5b1be21515dc0cad0ecd5f7fa618ee736014add2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 338b22198f2f09e9ae3a36184027f23f728ebdc7b691e0ef3f05d111bf3d753c829d21388dba52fdc8be0e8ba452deea5cc08d38c848e932d67fb1e448769600
|
7
|
+
data.tar.gz: 6601841bac1ed4603c327539fc5b123b9990cfa483b42504ed18dc8680d9c304636dbff10a05ebdc6f76de6d11ac3190b9ad77453aaeb978f853360f9330e04e
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -1,132 +1,115 @@
|
|
1
|
-
#
|
1
|
+
# RSpec clone
|
2
2
|
|
3
|
-
[
|
4
|
-
[![Gem Version](https://badge.fury.io/rb/r_spec.svg)][gem]
|
5
|
-
[![Inline docs](http://inch-ci.org/github/cyril/r_spec.svg?branch=master)][inchpages]
|
6
|
-
[![Documentation](http://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
|
3
|
+
A minimalist [RSpec](https://github.com/rspec/rspec) clone with an emphasis on correctness and simplicity.
|
7
4
|
|
8
|
-
|
5
|
+
![What did you expect?](https://github.com/cyril/r_spec.rb/raw/main/img/what-did-you-expect.jpg)
|
9
6
|
|
10
|
-
|
7
|
+
## Status
|
11
8
|
|
12
|
-
|
9
|
+
[![Gem Version](https://badge.fury.io/rb/r_spec.svg)](https://badge.fury.io/rb/r_spec)
|
10
|
+
[![Build Status](https://travis-ci.org/cyril/r_spec.rb.svg?branch=main)](https://travis-ci.org/cyril/r_spec.rb)
|
11
|
+
[![Inline Docs](https://inch-ci.org/github/cyril/r_spec.rb.svg)](https://inch-ci.org/github/cyril/r_spec.rb)
|
13
12
|
|
14
|
-
|
13
|
+
## Goal
|
15
14
|
|
16
|
-
This
|
15
|
+
This clone attempts to provide most of RSpec's DSL without magic power, so that its code could reasonably become less complex than the code of your application.
|
17
16
|
|
18
|
-
|
17
|
+
## Some differences
|
19
18
|
|
20
|
-
|
19
|
+
* Less features and an implementation with much less code complexity.
|
20
|
+
* Spec files can also be executed directly with the `ruby` executable.
|
21
|
+
* There is no option to activate monkey-patching.
|
22
|
+
* Does not rely on hacks such as `at_exit` hook to trigger the tests.
|
23
|
+
* Built-in matchers do not trust _actual_ and do not send it any message.
|
24
|
+
* The subject must be explicitly defined, otherwise it is not implemented.
|
21
25
|
|
22
|
-
##
|
23
|
-
|
24
|
-
* Home page: https://github.com/cyril/r_spec
|
25
|
-
* Bugs/issues: https://github.com/cyril/r_spec/issues
|
26
|
-
|
27
|
-
## Rubies
|
28
|
-
|
29
|
-
* [MRI](https://www.ruby-lang.org/)
|
30
|
-
* [Rubinius](http://rubini.us/)
|
31
|
-
* [JRuby](http://jruby.org/)
|
32
|
-
|
33
|
-
## Terminal sessions
|
34
|
-
|
35
|
-
A comparison between the behavior of a small fix-based script (which became the `r_spec` gem) and `rspec`.
|
26
|
+
## Important ⚠️
|
36
27
|
|
37
|
-
|
28
|
+
To avoid confusion in the community, please note that:
|
38
29
|
|
39
|
-
|
30
|
+
- the gem of this project is **not [`rspec`](https://rubygems.org/gems/rspec)**,
|
31
|
+
it is **[`r_spec`](https://rubygems.org/gems/r_spec)**;
|
32
|
+
- this project is totally independent of [rspec.info](https://rspec.info/).
|
40
33
|
|
41
|
-
|
34
|
+
### Note
|
42
35
|
|
43
|
-
|
44
|
-
|
45
|
-
Although fun, this _feature_ can be fixed pretty easily...
|
46
|
-
|
47
|
-
[![Fix RSpec!](https://asciinema.org/a/29172.png)](https://asciinema.org/a/29172)
|
36
|
+
Following [RubyGems naming conventions](https://guides.rubygems.org/name-your-gem/#use-underscores-for-multiple-words), the module name for this project is `RSpec`.
|
48
37
|
|
49
38
|
## Installation
|
50
39
|
|
51
|
-
|
52
|
-
|
53
|
-
To be sure the gem you install hasn't been tampered with, add my public key (if you haven't already) as a trusted certificate:
|
54
|
-
|
55
|
-
$ gem cert --add <(curl -Ls https://raw.github.com/cyril/r_spec/master/certs/gem-cyril-public_cert.pem)
|
56
|
-
$ gem install r_spec -P HighSecurity
|
57
|
-
|
58
|
-
The `HighSecurity` trust profile will verify all gems. All of __R Spec__'s dependencies are signed.
|
59
|
-
|
60
|
-
Or add this line to your application's Gemfile:
|
40
|
+
Add this line to your application's Gemfile:
|
61
41
|
|
62
42
|
```ruby
|
63
|
-
gem
|
43
|
+
gem "r_spec", ">= 1.0.0.beta2"
|
64
44
|
```
|
65
45
|
|
66
46
|
And then execute:
|
67
47
|
|
68
|
-
|
48
|
+
```sh
|
49
|
+
bundle
|
50
|
+
```
|
51
|
+
|
52
|
+
Or install it yourself as:
|
53
|
+
|
54
|
+
```sh
|
55
|
+
gem install r_spec --pre
|
56
|
+
```
|
69
57
|
|
70
58
|
## Usage
|
71
59
|
|
72
|
-
|
60
|
+
Let's test an array:
|
73
61
|
|
74
62
|
```ruby
|
75
|
-
|
63
|
+
# array_spec.rb
|
76
64
|
|
77
|
-
|
65
|
+
require "r_spec"
|
78
66
|
|
79
|
-
RSpec.describe
|
80
|
-
|
81
|
-
|
82
|
-
it { expect(greeting).to eql 'Hello, Alice!' }
|
67
|
+
RSpec.describe Array do
|
68
|
+
before do
|
69
|
+
@elements = described_class.new
|
83
70
|
end
|
84
71
|
|
85
|
-
|
86
|
-
|
87
|
-
|
72
|
+
describe "#count" do
|
73
|
+
subject do
|
74
|
+
@elements.count
|
75
|
+
end
|
76
|
+
|
77
|
+
it { is_expected.to be 0 }
|
78
|
+
|
79
|
+
context "when a new element is added" do
|
80
|
+
before do
|
81
|
+
@elements << 1
|
82
|
+
end
|
83
|
+
|
84
|
+
it { is_expected.to be 1 }
|
85
|
+
end
|
88
86
|
end
|
89
87
|
end
|
90
88
|
```
|
91
89
|
|
92
90
|
It can be tested in the console with the command:
|
93
91
|
|
94
|
-
|
95
|
-
|
92
|
+
```sh
|
93
|
+
ruby array_spec.rb
|
94
|
+
```
|
96
95
|
|
97
|
-
|
98
|
-
|
96
|
+
array_spec.rb:15 Success: expected to be 0.
|
97
|
+
array_spec.rb:22 Success: expected to be 1.
|
99
98
|
|
100
|
-
##
|
99
|
+
## Test suite
|
101
100
|
|
102
|
-
|
103
|
-
every Gem release. These checksums can be found in the `checksum/` directory.
|
104
|
-
Although these checksums do not prevent malicious users from tampering with a
|
105
|
-
built Gem they can be used for basic integrity verification purposes.
|
101
|
+
__RSpec clone__'s specifications are self-described here: [spec/](https://github.com/cyril/r_spec.rb/blob/main/spec/)
|
106
102
|
|
107
|
-
|
108
|
-
example:
|
103
|
+
## Contact
|
109
104
|
|
110
|
-
|
111
|
-
|
105
|
+
* Home page: https://r-spec.dev
|
106
|
+
* Source code: https://github.com/cyril/r_spec.rb
|
107
|
+
* Twitter: https://twitter.com/cyri_
|
112
108
|
|
113
109
|
## Versioning
|
114
110
|
|
115
|
-
|
116
|
-
|
117
|
-
## Contributing
|
118
|
-
|
119
|
-
1. [Fork it](https://github.com/cyril/r_spec/fork)
|
120
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
121
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
122
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
123
|
-
5. Create a new Pull Request
|
111
|
+
__RSpec clone__ follows [Semantic Versioning 2.0](https://semver.org/).
|
124
112
|
|
125
113
|
## License
|
126
114
|
|
127
|
-
|
128
|
-
|
129
|
-
[gem]: https://rubygems.org/gems/r_spec
|
130
|
-
[travis]: https://travis-ci.org/cyril/r_spec
|
131
|
-
[inchpages]: http://inch-ci.org/github/cyril/r_spec/
|
132
|
-
[rubydoc]: http://rubydoc.info/gems/r_spec/frames
|
115
|
+
The [gem](https://rubygems.org/gems/r_spec) is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/lib/r_spec.rb
CHANGED
@@ -1,32 +1,27 @@
|
|
1
|
-
|
2
|
-
require 'fix/expect'
|
3
|
-
require 'fix/its'
|
4
|
-
require 'fix/let'
|
1
|
+
# frozen_string_literal: true
|
5
2
|
|
6
|
-
#
|
3
|
+
# Top level namespace for the RSpec clone.
|
7
4
|
#
|
8
|
-
# @
|
5
|
+
# @example
|
6
|
+
# require "r_spec"
|
7
|
+
#
|
8
|
+
# RSpec.describe Integer do
|
9
|
+
# it { expect(41.next).to be 42 }
|
10
|
+
# end
|
9
11
|
#
|
12
|
+
# @api public
|
10
13
|
module RSpec
|
11
14
|
# Specs are built with this method.
|
12
15
|
#
|
13
|
-
# @
|
14
|
-
#
|
15
|
-
# it { expect(42).to be 42 }
|
16
|
-
# end
|
17
|
-
#
|
18
|
-
# @param front_object [#object_id] The front object.
|
19
|
-
# @param options [Hash] Some options.
|
20
|
-
# @param specs [Proc] The set of specs.
|
16
|
+
# @param const [Module] A module to include in block context.
|
17
|
+
# @param block [Proc] The block to define the specs.
|
21
18
|
#
|
22
|
-
# @
|
23
|
-
def self.describe(
|
24
|
-
|
19
|
+
# @api public
|
20
|
+
def self.describe(const, &block)
|
21
|
+
raise ::TypeError, const.class.inspect unless const.is_a?(::Module)
|
25
22
|
|
26
|
-
|
27
|
-
exit t.pass?
|
23
|
+
DSL.describe(const, &block)
|
28
24
|
end
|
29
25
|
end
|
30
26
|
|
31
|
-
require_relative File.join
|
32
|
-
require_relative File.join 'fix', 'on'
|
27
|
+
require_relative File.join("r_spec", "dsl")
|
data/lib/r_spec/dsl.rb
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "matchi/rspec"
|
4
|
+
require "securerandom"
|
5
|
+
|
6
|
+
module RSpec
|
7
|
+
# Abstract class for handling the domain-specific language.
|
8
|
+
class DSL
|
9
|
+
# @param block [Proc] The content to execute at the class initialization.
|
10
|
+
def self.before(&block)
|
11
|
+
define_method(:initialize) do |*args, **kwargs|
|
12
|
+
super()
|
13
|
+
instance_exec(*args, **kwargs, &block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param block [Proc] The content of the method to define.
|
18
|
+
# @return [Symbol] A protected method that define the block content.
|
19
|
+
def self.let(name, &block)
|
20
|
+
protected define_method(name.to_sym, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
# @param block [Proc] The subject to set.
|
24
|
+
# @return [Symbol] A `subject` method that define the block content.
|
25
|
+
def self.subject(&block)
|
26
|
+
let(__method__, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Describe a set of expectations.
|
30
|
+
#
|
31
|
+
# @param const [Module, #object_id] A module to include in block context.
|
32
|
+
# @param block [Proc] The block to define the specs.
|
33
|
+
def self.describe(const, &block)
|
34
|
+
desc = Test.const_set("Test#{random_str}", ::Class.new(self))
|
35
|
+
|
36
|
+
if const.is_a?(::Module)
|
37
|
+
desc.define_method(:described_class) { const }
|
38
|
+
desc.send(:protected, :described_class)
|
39
|
+
end
|
40
|
+
|
41
|
+
desc.instance_eval(&block)
|
42
|
+
desc
|
43
|
+
end
|
44
|
+
|
45
|
+
singleton_class.send(:alias_method, :context, :describe)
|
46
|
+
|
47
|
+
# Evaluate an expectation.
|
48
|
+
#
|
49
|
+
# @param block [Proc] An expectation to evaluate.
|
50
|
+
#
|
51
|
+
# @raise (see ExpectationTarget#result)
|
52
|
+
# @return (see ExpectationTarget#result)
|
53
|
+
def self.it(_name = nil, &block)
|
54
|
+
raise ::ArgumentError, "Missing block" unless block
|
55
|
+
|
56
|
+
puts "\e[37m#{block.source_location.join(':')}\e[0m"
|
57
|
+
|
58
|
+
i = example.new
|
59
|
+
i.instance_eval(&block)
|
60
|
+
end
|
61
|
+
|
62
|
+
# @private
|
63
|
+
#
|
64
|
+
# @return [Class<DSL>] The class of the example to be tested.
|
65
|
+
private_class_method def self.example
|
66
|
+
::Class.new(self) do
|
67
|
+
include ::Matchi::Helper
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
# Wraps the target of an expectation with the actual value.
|
72
|
+
#
|
73
|
+
# @param actual [#object_id] The actual value.
|
74
|
+
#
|
75
|
+
# @return [ExpectationTarget] The target of the expectation.
|
76
|
+
def expect(actual)
|
77
|
+
ExpectationTarget.new(actual)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Wraps the target of an expectation with the subject as actual value.
|
81
|
+
#
|
82
|
+
# @return [ExpectationTarget] (see #expect)
|
83
|
+
def is_expected
|
84
|
+
expect(subject)
|
85
|
+
end
|
86
|
+
|
87
|
+
def log(message)
|
88
|
+
Log.result(message)
|
89
|
+
end
|
90
|
+
|
91
|
+
# Indicate that an example is disabled pending some action.
|
92
|
+
#
|
93
|
+
# @param description [String] The reason why the example is pending.
|
94
|
+
#
|
95
|
+
# @return [nil] Write a message to STDOUT.
|
96
|
+
def pending(description)
|
97
|
+
Pending.result(description)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# @private
|
103
|
+
#
|
104
|
+
# @return [String] A random string.
|
105
|
+
private_class_method def self.random_str
|
106
|
+
::SecureRandom.alphanumeric(5)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
require_relative "expectation_target"
|
112
|
+
require_relative "log"
|
113
|
+
require_relative "pending"
|
114
|
+
require_relative "test"
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "expresenter"
|
4
|
+
|
5
|
+
module RSpec
|
6
|
+
# Wraps the target of an expectation.
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# expect(something) # => ExpectationTarget wrapping something
|
10
|
+
#
|
11
|
+
# # used with `to`
|
12
|
+
# expect(actual).to be(42)
|
13
|
+
#
|
14
|
+
# # with `not_to`
|
15
|
+
# expect(actual).not_to be(4)
|
16
|
+
#
|
17
|
+
# @note `ExpectationTarget` is not intended to be instantiated directly by
|
18
|
+
# users. Use `expect` instead.
|
19
|
+
class ExpectationTarget
|
20
|
+
# Instantiate a new expectation target.
|
21
|
+
#
|
22
|
+
# @param actual [#object_id] The actual value.
|
23
|
+
#
|
24
|
+
# @api private
|
25
|
+
def initialize(actual)
|
26
|
+
@actual = actual
|
27
|
+
end
|
28
|
+
|
29
|
+
# Runs the given expectation, passing if `matcher` returns true.
|
30
|
+
#
|
31
|
+
# @example _Absolute requirement_ definition
|
32
|
+
# expect("foo".upcase).to eq("foo")
|
33
|
+
#
|
34
|
+
# @param matcher [#matches?] The matcher.
|
35
|
+
#
|
36
|
+
# @raise (see #result)
|
37
|
+
# @return (see #result)
|
38
|
+
def to(matcher)
|
39
|
+
absolute_requirement(matcher: matcher, negate: false)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Runs the given expectation, passing if `matcher` returns false.
|
43
|
+
#
|
44
|
+
# @example _Absolute prohibition_ definition
|
45
|
+
# expect("foo".size).not_to be(4)
|
46
|
+
#
|
47
|
+
# @param (see #to)
|
48
|
+
#
|
49
|
+
# @raise (see #result)
|
50
|
+
# @return (see #result)
|
51
|
+
def not_to(matcher)
|
52
|
+
absolute_requirement(matcher: matcher, negate: true)
|
53
|
+
end
|
54
|
+
|
55
|
+
protected
|
56
|
+
|
57
|
+
# @param matcher [#matches?] The matcher.
|
58
|
+
# @param negate [Boolean] Positive or negative assertion?
|
59
|
+
#
|
60
|
+
# @raise (see #result)
|
61
|
+
# @return (see #result)
|
62
|
+
def absolute_requirement(matcher:, negate:)
|
63
|
+
result(
|
64
|
+
matcher: matcher,
|
65
|
+
negate: negate,
|
66
|
+
passed: negate ^ matcher.matches? { @actual }
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
# @param matcher [#matches?] The matcher.
|
71
|
+
# @param negate [Boolean] Positive or negative assertion?
|
72
|
+
# @param passed [Boolean] The result of an expectation.
|
73
|
+
#
|
74
|
+
# @return [nil] Write a message to STDOUT.
|
75
|
+
#
|
76
|
+
# @raise [SystemExit] Terminate execution immediately by calling
|
77
|
+
# `Kernel.exit(false)` with a failure message written to STDERR.
|
78
|
+
def result(matcher:, negate:, passed:)
|
79
|
+
puts " " + ::Expresenter.call(passed).with(
|
80
|
+
actual: @actual,
|
81
|
+
error: nil,
|
82
|
+
expected: matcher.expected,
|
83
|
+
got: passed,
|
84
|
+
negate: negate,
|
85
|
+
valid: passed,
|
86
|
+
matcher: matcher.class.to_sym,
|
87
|
+
level: :MUST
|
88
|
+
).colored_string
|
89
|
+
rescue ::Expresenter::Fail => e
|
90
|
+
abort " #{e.colored_string}"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
data/lib/r_spec/log.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "expresenter"
|
4
|
+
|
5
|
+
module RSpec
|
6
|
+
# Exception for debugging purpose.
|
7
|
+
class Log < ::NoMethodError
|
8
|
+
# @param message [String] A message to log to the console.
|
9
|
+
#
|
10
|
+
# @return [nil] Write a log message to STDOUT.
|
11
|
+
def self.result(message)
|
12
|
+
puts " " + ::Expresenter.call(true).with(
|
13
|
+
actual: nil,
|
14
|
+
error: new(message),
|
15
|
+
expected: 42,
|
16
|
+
got: nil,
|
17
|
+
matcher: :be,
|
18
|
+
negate: false,
|
19
|
+
level: :MAY,
|
20
|
+
valid: false
|
21
|
+
).colored_string
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "expresenter"
|
4
|
+
|
5
|
+
module RSpec
|
6
|
+
# Exception for pending expectations.
|
7
|
+
class Pending < ::NotImplementedError
|
8
|
+
# @param message [String] The not implemented expectation description.
|
9
|
+
#
|
10
|
+
# @return [nil] Write a pending expectation to STDOUT.
|
11
|
+
def self.result(message)
|
12
|
+
warn " " + ::Expresenter.call(true).with(
|
13
|
+
actual: new(message),
|
14
|
+
error: nil,
|
15
|
+
expected: self,
|
16
|
+
got: false,
|
17
|
+
matcher: :raise_exception,
|
18
|
+
negate: true,
|
19
|
+
level: :SHOULD,
|
20
|
+
valid: false
|
21
|
+
).colored_string
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/r_spec/test.rb
ADDED
metadata
CHANGED
@@ -1,208 +1,190 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r_spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Cyril
|
7
|
+
- Cyril Kato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdjb250
|
14
|
-
YWN0MRUwEwYKCZImiZPyLGQBGRYFY3lyaWwxFTATBgoJkiaJk/IsZAEZFgVlbWFp
|
15
|
-
bDAeFw0xNTA3MzExMjExMDZaFw0xNjA3MzAxMjExMDZaMEAxEDAOBgNVBAMMB2Nv
|
16
|
-
bnRhY3QxFTATBgoJkiaJk/IsZAEZFgVjeXJpbDEVMBMGCgmSJomT8ixkARkWBWVt
|
17
|
-
YWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6hUEYoxnn1mtoaiK
|
18
|
-
NiwjzVPqPgQCR9ZeYdWjLJ3UUG2h5Q6awJCnbaGr8LGGcKtveCDbOJRjtdKNuOTH
|
19
|
-
O2FLTkf46nrMGiF+6/j//qh8o0EQHBRKIVMYkxZxZe4Fcqtdf1bWNMZuXeyoDjdt
|
20
|
-
4yiGfizbbTOu0gBf7Yrsv5DsL0a5CU/We7zxMfgGXCVb9PYkD+OWUMcTARYDKfYa
|
21
|
-
nN9ECI7CFm/yXcsof/eIQA5EmJNmQnhx8B+8L6jDqQeSUAUrBZnC9CdloKOoqmEL
|
22
|
-
weqM2g6LM932Ba74rEl4QlFRYDcs8kjr71UcvseHRCUkFr36j26OU8+gKelsTNdO
|
23
|
-
7OZNKQIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
|
24
|
-
LSJTN9h29D6bqOhp+vyvhyM0AF4wHgYDVR0RBBcwFYETY29udGFjdEBjeXJpbC5l
|
25
|
-
bWFpbDAeBgNVHRIEFzAVgRNjb250YWN0QGN5cmlsLmVtYWlsMA0GCSqGSIb3DQEB
|
26
|
-
BQUAA4IBAQArqCC1rUyGJlF0DF9ZhUOgggyROvO0/WroSI5zWgzdB8EU7RJpsDIV
|
27
|
-
caGnpji7h0rQIGWQuJ6TL2fTFLfeGRFdIzRZwWC7TeXhcXngJHZxSjDBt2OpfM8A
|
28
|
-
P5eElSQS9iJCetBGGMyt354PfgZkg3URaC+JA6mdEisdtEdo64ElnMsLg9shCqye
|
29
|
-
JSR3BbejbyPVva0/MHKD+dR6RswlcM9KMiYOXQml7a/kH6huOHvVq9gj5xC2ih8W
|
30
|
-
dzJvWzQ1+dJU6WQv75E9ddSkaQrK3nhdgQVu+/wgvGSrsMvOGNz+LXaSDxQqZuwX
|
31
|
-
0KNQFuIukfrdk8URwRnHoAnvx4U93iUw
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2015-11-29 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-06-04 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
14
|
+
name: expresenter
|
37
15
|
requirement: !ruby/object:Gem::Requirement
|
38
16
|
requirements:
|
39
17
|
- - "~>"
|
40
18
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
19
|
+
version: 1.2.0
|
42
20
|
type: :runtime
|
43
21
|
prerelease: false
|
44
22
|
version_requirements: !ruby/object:Gem::Requirement
|
45
23
|
requirements:
|
46
24
|
- - "~>"
|
47
25
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
26
|
+
version: 1.2.0
|
49
27
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
28
|
+
name: matchi-rspec
|
51
29
|
requirement: !ruby/object:Gem::Requirement
|
52
30
|
requirements:
|
53
31
|
- - "~>"
|
54
32
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
33
|
+
version: 1.1.0
|
56
34
|
type: :runtime
|
57
35
|
prerelease: false
|
58
36
|
version_requirements: !ruby/object:Gem::Requirement
|
59
37
|
requirements:
|
60
38
|
- - "~>"
|
61
39
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
40
|
+
version: 1.1.0
|
63
41
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
42
|
+
name: bundler
|
65
43
|
requirement: !ruby/object:Gem::Requirement
|
66
44
|
requirements:
|
67
|
-
- - "
|
45
|
+
- - ">="
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0
|
70
|
-
type: :
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
51
|
requirements:
|
74
|
-
- - "
|
52
|
+
- - ">="
|
75
53
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0
|
54
|
+
version: '0'
|
77
55
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
56
|
+
name: rake
|
79
57
|
requirement: !ruby/object:Gem::Requirement
|
80
58
|
requirements:
|
81
|
-
- - "
|
59
|
+
- - ">="
|
82
60
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0
|
84
|
-
type: :
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
85
63
|
prerelease: false
|
86
64
|
version_requirements: !ruby/object:Gem::Requirement
|
87
65
|
requirements:
|
88
|
-
- - "
|
66
|
+
- - ">="
|
89
67
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0
|
68
|
+
version: '0'
|
91
69
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
70
|
+
name: rubocop-md
|
93
71
|
requirement: !ruby/object:Gem::Requirement
|
94
72
|
requirements:
|
95
|
-
- - "
|
73
|
+
- - ">="
|
96
74
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
75
|
+
version: '0'
|
98
76
|
type: :development
|
99
77
|
prerelease: false
|
100
78
|
version_requirements: !ruby/object:Gem::Requirement
|
101
79
|
requirements:
|
102
|
-
- - "
|
80
|
+
- - ">="
|
103
81
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
82
|
+
version: '0'
|
105
83
|
- !ruby/object:Gem::Dependency
|
106
|
-
name:
|
84
|
+
name: rubocop-performance
|
107
85
|
requirement: !ruby/object:Gem::Requirement
|
108
86
|
requirements:
|
109
|
-
- - "
|
87
|
+
- - ">="
|
110
88
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
89
|
+
version: '0'
|
112
90
|
type: :development
|
113
91
|
prerelease: false
|
114
92
|
version_requirements: !ruby/object:Gem::Requirement
|
115
93
|
requirements:
|
116
|
-
- - "
|
94
|
+
- - ">="
|
117
95
|
- !ruby/object:Gem::Version
|
118
|
-
version: '
|
96
|
+
version: '0'
|
119
97
|
- !ruby/object:Gem::Dependency
|
120
|
-
name:
|
98
|
+
name: rubocop-rake
|
121
99
|
requirement: !ruby/object:Gem::Requirement
|
122
100
|
requirements:
|
123
|
-
- - "
|
101
|
+
- - ">="
|
124
102
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0
|
103
|
+
version: '0'
|
126
104
|
type: :development
|
127
105
|
prerelease: false
|
128
106
|
version_requirements: !ruby/object:Gem::Requirement
|
129
107
|
requirements:
|
130
|
-
- - "
|
108
|
+
- - ">="
|
131
109
|
- !ruby/object:Gem::Version
|
132
|
-
version: '0
|
110
|
+
version: '0'
|
133
111
|
- !ruby/object:Gem::Dependency
|
134
|
-
name:
|
112
|
+
name: rubocop-rspec
|
135
113
|
requirement: !ruby/object:Gem::Requirement
|
136
114
|
requirements:
|
137
|
-
- - "
|
115
|
+
- - ">="
|
138
116
|
- !ruby/object:Gem::Version
|
139
|
-
version: '0
|
117
|
+
version: '0'
|
140
118
|
type: :development
|
141
119
|
prerelease: false
|
142
120
|
version_requirements: !ruby/object:Gem::Requirement
|
143
121
|
requirements:
|
144
|
-
- - "
|
122
|
+
- - ">="
|
145
123
|
- !ruby/object:Gem::Version
|
146
|
-
version: '0
|
124
|
+
version: '0'
|
147
125
|
- !ruby/object:Gem::Dependency
|
148
|
-
name: rubocop
|
126
|
+
name: rubocop-thread_safety
|
149
127
|
requirement: !ruby/object:Gem::Requirement
|
150
128
|
requirements:
|
151
|
-
- - "
|
129
|
+
- - ">="
|
152
130
|
- !ruby/object:Gem::Version
|
153
|
-
version: '0
|
131
|
+
version: '0'
|
154
132
|
type: :development
|
155
133
|
prerelease: false
|
156
134
|
version_requirements: !ruby/object:Gem::Requirement
|
157
135
|
requirements:
|
158
|
-
- - "
|
136
|
+
- - ">="
|
159
137
|
- !ruby/object:Gem::Version
|
160
|
-
version: '0
|
138
|
+
version: '0'
|
161
139
|
- !ruby/object:Gem::Dependency
|
162
|
-
name:
|
140
|
+
name: simplecov
|
163
141
|
requirement: !ruby/object:Gem::Requirement
|
164
142
|
requirements:
|
165
|
-
- - "
|
143
|
+
- - ">="
|
166
144
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
145
|
+
version: '0'
|
168
146
|
type: :development
|
169
147
|
prerelease: false
|
170
148
|
version_requirements: !ruby/object:Gem::Requirement
|
171
149
|
requirements:
|
172
|
-
- - "
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: yard
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
173
165
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
175
|
-
description: A
|
176
|
-
email:
|
177
|
-
- contact@cyril.email
|
166
|
+
version: '0'
|
167
|
+
description: A minimalist RSpec clone with an emphasis on correctness and simplicity.
|
168
|
+
email: contact@cyril.email
|
178
169
|
executables: []
|
179
170
|
extensions: []
|
180
171
|
extra_rdoc_files: []
|
181
172
|
files:
|
182
|
-
- ".gitignore"
|
183
|
-
- ".travis.yml"
|
184
|
-
- ".yardopts"
|
185
|
-
- CODE_OF_CONDUCT.md
|
186
|
-
- Gemfile
|
187
173
|
- LICENSE.md
|
188
174
|
- README.md
|
189
|
-
- Rakefile
|
190
|
-
- VERSION.semver
|
191
|
-
- bin/console
|
192
|
-
- bin/setup
|
193
|
-
- certs/gem-cyril-public_cert.pem
|
194
|
-
- checksum/r_spec-0.1.0.gem.sha512
|
195
|
-
- checksum/r_spec-0.1.1.gem.sha512
|
196
|
-
- checksum/r_spec-0.2.0.gem.sha512
|
197
|
-
- lib/fix/it.rb
|
198
|
-
- lib/fix/on.rb
|
199
175
|
- lib/r_spec.rb
|
200
|
-
-
|
201
|
-
- r_spec.
|
202
|
-
|
176
|
+
- lib/r_spec/dsl.rb
|
177
|
+
- lib/r_spec/expectation_target.rb
|
178
|
+
- lib/r_spec/log.rb
|
179
|
+
- lib/r_spec/pending.rb
|
180
|
+
- lib/r_spec/test.rb
|
181
|
+
homepage: https://r-spec.dev/
|
203
182
|
licenses:
|
204
183
|
- MIT
|
205
|
-
metadata:
|
184
|
+
metadata:
|
185
|
+
bug_tracker_uri: https://github.com/cyril/r_spec.rb/issues
|
186
|
+
documentation_uri: https://rubydoc.info/gems/r_spec
|
187
|
+
source_code_uri: https://github.com/cyril/r_spec.rb
|
206
188
|
post_install_message:
|
207
189
|
rdoc_options: []
|
208
190
|
require_paths:
|
@@ -211,17 +193,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
193
|
requirements:
|
212
194
|
- - ">="
|
213
195
|
- !ruby/object:Gem::Version
|
214
|
-
version:
|
196
|
+
version: 2.7.0
|
215
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
198
|
requirements:
|
217
|
-
- - "
|
199
|
+
- - ">"
|
218
200
|
- !ruby/object:Gem::Version
|
219
|
-
version:
|
201
|
+
version: 1.3.1
|
220
202
|
requirements: []
|
221
|
-
|
222
|
-
rubygems_version: 2.4.5.1
|
203
|
+
rubygems_version: 3.1.6
|
223
204
|
signing_key:
|
224
205
|
specification_version: 4
|
225
|
-
summary:
|
206
|
+
summary: A minimalist RSpec clone
|
226
207
|
test_files: []
|
227
|
-
has_rdoc:
|
checksums.yaml.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
��׃�{}����6t�B������%I����̺��~�'�:I�Շb��zq���G�Z�e�H�>)�W�����@/E�Y�"��1�ym�a?�����9]�evu�w�ٹ���Υ��~t^�.qv����E�9�:�%=��'z�~�:IT�=ֺ;9>a[�����epsvIC��Lxvt?�=e�dq1��&$%�4ձX4����c�H���ظ����C<']���qCB�4�!�����)�
|
data.tar.gz.sig
DELETED
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: false
|
3
|
-
cache: bundler
|
4
|
-
script: 'bundle exec rake test:coverage --trace'
|
5
|
-
before_install:
|
6
|
-
- gem install bundler
|
7
|
-
rvm:
|
8
|
-
- 1.9.3
|
9
|
-
- 2.0
|
10
|
-
- 2.1
|
11
|
-
- 2.2
|
12
|
-
- ruby-head
|
13
|
-
- jruby
|
14
|
-
- jruby-head
|
15
|
-
- rbx-2
|
16
|
-
matrix:
|
17
|
-
allow_failures:
|
18
|
-
- rvm: rbx-2
|
19
|
-
- rvm: jruby-head
|
20
|
-
- rvm: ruby-head
|
21
|
-
notifications:
|
22
|
-
webhooks:
|
23
|
-
urls:
|
24
|
-
- https://webhooks.gitter.im/e/a44b19cc5cf6db25fa87
|
25
|
-
on_success: change
|
26
|
-
on_failure: always
|
27
|
-
on_start: never
|
data/.yardopts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
- README.md
|
data/CODE_OF_CONDUCT.md
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
# Contributor Code of Conduct
|
2
|
-
|
3
|
-
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
4
|
-
|
5
|
-
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
|
6
|
-
|
7
|
-
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
|
8
|
-
|
9
|
-
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
|
10
|
-
|
11
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
|
12
|
-
|
13
|
-
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
2
|
-
require 'rake/testtask'
|
3
|
-
require 'rubocop/rake_task'
|
4
|
-
|
5
|
-
RuboCop::RakeTask.new
|
6
|
-
|
7
|
-
Rake::TestTask.new do |t|
|
8
|
-
t.verbose = true
|
9
|
-
t.warning = true
|
10
|
-
end
|
11
|
-
|
12
|
-
namespace :test do
|
13
|
-
task :coverage do
|
14
|
-
ENV['COVERAGE'] = 'true'
|
15
|
-
Rake::Task['test'].invoke
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
task(:doc_stats) { ruby '-S yard stats' }
|
20
|
-
task default: [:test, :doc_stats, :rubocop]
|
data/VERSION.semver
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.3.0
|
data/bin/console
DELETED
data/bin/setup
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdjb250
|
3
|
-
YWN0MRUwEwYKCZImiZPyLGQBGRYFY3lyaWwxFTATBgoJkiaJk/IsZAEZFgVlbWFp
|
4
|
-
bDAeFw0xNTA3MzExMjExMDZaFw0xNjA3MzAxMjExMDZaMEAxEDAOBgNVBAMMB2Nv
|
5
|
-
bnRhY3QxFTATBgoJkiaJk/IsZAEZFgVjeXJpbDEVMBMGCgmSJomT8ixkARkWBWVt
|
6
|
-
YWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6hUEYoxnn1mtoaiK
|
7
|
-
NiwjzVPqPgQCR9ZeYdWjLJ3UUG2h5Q6awJCnbaGr8LGGcKtveCDbOJRjtdKNuOTH
|
8
|
-
O2FLTkf46nrMGiF+6/j//qh8o0EQHBRKIVMYkxZxZe4Fcqtdf1bWNMZuXeyoDjdt
|
9
|
-
4yiGfizbbTOu0gBf7Yrsv5DsL0a5CU/We7zxMfgGXCVb9PYkD+OWUMcTARYDKfYa
|
10
|
-
nN9ECI7CFm/yXcsof/eIQA5EmJNmQnhx8B+8L6jDqQeSUAUrBZnC9CdloKOoqmEL
|
11
|
-
weqM2g6LM932Ba74rEl4QlFRYDcs8kjr71UcvseHRCUkFr36j26OU8+gKelsTNdO
|
12
|
-
7OZNKQIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
|
13
|
-
LSJTN9h29D6bqOhp+vyvhyM0AF4wHgYDVR0RBBcwFYETY29udGFjdEBjeXJpbC5l
|
14
|
-
bWFpbDAeBgNVHRIEFzAVgRNjb250YWN0QGN5cmlsLmVtYWlsMA0GCSqGSIb3DQEB
|
15
|
-
BQUAA4IBAQArqCC1rUyGJlF0DF9ZhUOgggyROvO0/WroSI5zWgzdB8EU7RJpsDIV
|
16
|
-
caGnpji7h0rQIGWQuJ6TL2fTFLfeGRFdIzRZwWC7TeXhcXngJHZxSjDBt2OpfM8A
|
17
|
-
P5eElSQS9iJCetBGGMyt354PfgZkg3URaC+JA6mdEisdtEdo64ElnMsLg9shCqye
|
18
|
-
JSR3BbejbyPVva0/MHKD+dR6RswlcM9KMiYOXQml7a/kH6huOHvVq9gj5xC2ih8W
|
19
|
-
dzJvWzQ1+dJU6WQv75E9ddSkaQrK3nhdgQVu+/wgvGSrsMvOGNz+LXaSDxQqZuwX
|
20
|
-
0KNQFuIukfrdk8URwRnHoAnvx4U93iUw
|
21
|
-
-----END CERTIFICATE-----
|
@@ -1 +0,0 @@
|
|
1
|
-
2988d048456c0dcc53bd2c8c45d8fd0f7de49e1f2bb0a3aca0749671b4baa4376e44e25d05f9ee457fe024872155ce93c8fe5c5e03fdcd494962d69805c5fce3
|
@@ -1 +0,0 @@
|
|
1
|
-
541eb96ff91798d807dc5b0bd71dab3e5c17358bc0e5bca8784607b8de0c8e9532011e958e152fb4a22bc653d9af13bd5edaf0989ff77c7941004f03ad0f29be
|
@@ -1 +0,0 @@
|
|
1
|
-
9c58b303e8a3c03de72abb0ee0083cf4a83e71d3c3d783fc2d70c51e6e3a49cc281881da78a9ff326cf5462eace11bdb5acb5826228896e6b91abd437d859b17
|
data/lib/fix/it.rb
DELETED
data/lib/fix/on.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
# Namespace for the Fix framework.
|
2
|
-
module Fix
|
3
|
-
# Override Fix's On class.
|
4
|
-
class On
|
5
|
-
# Useful to perform side-effects, e.g., add something in to a database.
|
6
|
-
#
|
7
|
-
# @note To declare an instance variable, use the `let` helper instead.
|
8
|
-
#
|
9
|
-
# @param block [Proc] The block to call.
|
10
|
-
#
|
11
|
-
# @return [#object_id] The given block.
|
12
|
-
def before(*, &block)
|
13
|
-
block.call
|
14
|
-
end
|
15
|
-
|
16
|
-
# @param another_front_object [#object_id] Override the front object.
|
17
|
-
# @param specs [Proc] A set of specs.
|
18
|
-
#
|
19
|
-
# @return [Array] List of results.
|
20
|
-
def describe(another_front_object, *, &specs)
|
21
|
-
o = On.new(another_front_object,
|
22
|
-
results,
|
23
|
-
challenges,
|
24
|
-
helpers.dup,
|
25
|
-
configuration)
|
26
|
-
|
27
|
-
o.instance_eval(&specs)
|
28
|
-
end
|
29
|
-
|
30
|
-
# Override the implicit subject.
|
31
|
-
#
|
32
|
-
# @param block [Proc, nil] Another subject inside a block.
|
33
|
-
#
|
34
|
-
# @return [#object_id] The subject.
|
35
|
-
def subject(&block)
|
36
|
-
if block_given?
|
37
|
-
@described = block.call
|
38
|
-
else
|
39
|
-
super
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/pkg_checksum
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'digest/sha2'
|
4
|
-
|
5
|
-
gemname = 'r_spec'.to_sym
|
6
|
-
ARGV[0] = File.read('VERSION.semver').chomp if ARGV[0].nil?
|
7
|
-
built_gem_path = "pkg/#{gemname}-#{ARGV[0]}.gem"
|
8
|
-
checksum = Digest::SHA512.new.hexdigest(File.read(built_gem_path))
|
9
|
-
checksum_path = "checksum/#{gemname}-#{ARGV[0]}.gem.sha512"
|
10
|
-
|
11
|
-
File.open(checksum_path, 'w') { |f| f.write("#{checksum}\n") }
|
data/r_spec.gemspec
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |spec|
|
2
|
-
spec.name = 'r_spec'
|
3
|
-
spec.version = File.read('VERSION.semver').chomp
|
4
|
-
spec.authors = ['Cyril Wack']
|
5
|
-
spec.email = ['contact@cyril.email']
|
6
|
-
|
7
|
-
spec.summary = 'Rspec clone with Fix.'
|
8
|
-
spec.description = 'A small Rspec clone based on Fix specing framework.'
|
9
|
-
spec.homepage = 'https://github.com/cyril/r_spec'
|
10
|
-
spec.license = 'MIT'
|
11
|
-
|
12
|
-
spec.files =
|
13
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^test/}) }
|
14
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
15
|
-
spec.require_paths = ['lib']
|
16
|
-
|
17
|
-
spec.add_dependency 'fix-expect', '~> 0.3.1'
|
18
|
-
spec.add_dependency 'fix-its', '~> 0.5.0'
|
19
|
-
spec.add_dependency 'fix-let', '~> 0.1.0'
|
20
|
-
spec.add_dependency 'matchi-rspec', '~> 0.1.0'
|
21
|
-
|
22
|
-
spec.add_development_dependency 'bundler', '~> 1.10'
|
23
|
-
spec.add_development_dependency 'rake', '~> 10.4'
|
24
|
-
spec.add_development_dependency 'yard', '~> 0.8'
|
25
|
-
spec.add_development_dependency 'simplecov', '~> 0.10'
|
26
|
-
spec.add_development_dependency 'rubocop', '~> 0.35'
|
27
|
-
spec.add_development_dependency 'spectus', '~> 3.0'
|
28
|
-
|
29
|
-
spec.cert_chain = ['certs/gem-cyril-public_cert.pem']
|
30
|
-
private_key = File.expand_path('~/.ssh/gem-cyril-private_key.pem')
|
31
|
-
spec.signing_key = private_key if File.exist?(private_key)
|
32
|
-
end
|
metadata.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
�r?DX<_x�s���a>E`GB:�*+�{u�t���
|