r_spec 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -43
  3. metadata +9 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b251a708b0d9e2f0dcc8a17f7ef08cfeeafa6e553446e9a650431c9aaf7b6951
4
- data.tar.gz: 528cbc2cd07397ba094a5f08703be53467ac04ee85c82f1cd1465e419f4c5c92
3
+ metadata.gz: d4d1385151395cd826a177727b3b30e49d3c6a6987a1917227818f9e86893342
4
+ data.tar.gz: 96382fb495444187b3c9b1d927a08fa23a2991b208e016cb308b53a32f89df3b
5
5
  SHA512:
6
- metadata.gz: 7132f226d0510929ec1a466c2c3e9a3c90a654efd399646476eb04b5fbdcad84254791eb270b83ca68e2c17ad06ca98581a79251714ae7032a9eb888f8716db2
7
- data.tar.gz: 55d0b1f4e98feeca3c875c542529e1ea5a4f43093a30658f56670f380de23f7f5402e562fccfb85e69e234a066f06ec8600493fcdedd871d78183ea419d055f6
6
+ metadata.gz: 3481f838c965908f205e134ae8884925f64b7d2943cbf3efbd1298b00089775b75be049e15b7bdc9014967190d1def4fa13dd276b31a0b447179dafb93d1749c
7
+ data.tar.gz: 5191b6e4e55a363835c3f0e4e6cc30426a6852e2aa73c7e8071b71662d9c43b226fe8cba81a09f5fda1442a99ae3da585cd7a85c7b858c4a5fd99a389c4ef28e
data/README.md CHANGED
@@ -1,28 +1,25 @@
1
1
  # RSpec clone
2
2
 
3
- A minimalist __[RSpec](https://github.com/rspec/rspec) clone__ with all the essentials.
3
+ A minimalist __RSpec clone__ with all the essentials.
4
4
 
5
- ![What did you RSpec?](https://github.com/cyril/r_spec.rb/raw/main/img/what-did-you-rspec.jpg)
6
-
7
- ## Status
5
+ ## Important ⚠️
8
6
 
9
- [![Version](https://img.shields.io/github/v/tag/cyril/r_spec.rb?include_prereleases&label=Version&logo=github&sort=semver)](https://github.com/cyril/r_spec.rb/releases)
10
- [![Yard documentation](https://img.shields.io/badge/Yard-documentation-blue.svg?)](https://rubydoc.info/github/cyril/r_spec.rb/main)
11
- [![CI](https://github.com/cyril/r_spec.rb/workflows/CI/badge.svg?branch=main)](https://github.com/cyril/r_spec.rb/actions?query=workflow%3Aci+branch%3Amain)
12
- [![RuboCop](https://github.com/cyril/r_spec.rb/workflows/RuboCop/badge.svg?branch=main)](https://github.com/cyril/r_spec.rb/actions?query=workflow%3Arubocop+branch%3Amain)
13
- [![License](https://img.shields.io/github/license/cyril/r_spec.rb?label=License&logo=github)](https://github.com/cyril/r_spec.rb/raw/main/LICENSE.md)
7
+ To avoid confusion with the original [RSpec project](https://rspec.info/),
8
+ the decision was made to rename "`r_spec`" into "`r_spec-clone`".
9
+ Please consider renaming to [get the latest version](https://github.com/cyril/r_spec-clone.rb/). Happy testing!
14
10
 
15
11
  ## Project goals
16
12
 
17
- * Enforce the guidelines and best practices outlined in the community [RSpec style guide](https://rspec.rubystyle.guide/).
18
- * Provide most of RSpec's DSL to express expected outcomes of a code example with no magical powers.
13
+ 1. Keep a low level of code complexity and ensure thread safety.
14
+ 2. The interface must translate into atomic and simple Ruby objects.
15
+ 3. Avoid overloading the interface with additional alternative syntaxes.
16
+ 4. Provide most of RSpec's DSL to express expected outcomes of a code example.
19
17
 
20
18
  ## Some differences
21
19
 
22
- * Less features and an implementation with much less code complexity.
23
- * Spec files can also be executed directly with the `ruby` executable.
20
+ * Spec files can be executed with `ruby` directly.
24
21
  * There is no option to activate monkey-patching.
25
- * It does not rely on hacks such as `at_exit` hook to trigger the tests.
22
+ * It does not rely on hacks such as [`at_exit` hook](https://blog.arkency.com/2013/06/are-we-abusing-at-exit/) to trigger the tests.
26
23
  * Built-in matchers [do not trust _actual_](https://asciinema.org/a/29172?autoplay=1&speed=2) and do not send it messages.
27
24
  * If no `subject` has been explicitly determined, none is defined.
28
25
  * If no described class is set, `described_class` is undefined instead of `nil`.
@@ -33,18 +30,6 @@ A minimalist __[RSpec](https://github.com/rspec/rspec) clone__ with all the esse
33
30
  * `subject`, `before`, `after` and `let` definitions must come before examples.
34
31
  * Each [`context` runs its tests in _isolation_](https://asciinema.org/a/29070?autoplay=1&speed=2) to prevent side effects.
35
32
 
36
- ## Important ⚠️
37
-
38
- To avoid confusion in the community, please note that:
39
-
40
- - the gem of this project is **not [`rspec`](https://rubygems.org/gems/rspec)**,
41
- it is **[`r_spec`](https://rubygems.org/gems/r_spec)**;
42
- - this project is totally independent of [rspec.info](https://rspec.info/).
43
-
44
- ### Note
45
-
46
- Following [RubyGems naming conventions](https://guides.rubygems.org/name-your-gem/#use-underscores-for-multiple-words), the module name for this project is `RSpec`.
47
-
48
33
  ## Installation
49
34
 
50
35
  Add this line to your application's Gemfile:
@@ -69,7 +54,7 @@ gem install r_spec
69
54
 
70
55
  __RSpec clone__ provides a structure for writing executable examples of how your code should behave.
71
56
 
72
- Inspired by [RSpec](https://rspec.info/), it includes a domain specific language (DSL) that allows you to write examples in a way similar to plain english.
57
+ Inspired by RSpec, it includes a domain specific language (DSL) that allows you to write examples in a way similar to plain english.
73
58
 
74
59
  A basic spec looks something like this:
75
60
 
@@ -107,8 +92,6 @@ To establish certain contexts — think _empty array_ versus _array with element
107
92
  Its behavior is slightly different from `describe` because each `context` runs its tests in isolation,
108
93
  so side effects caused by testing do not propagate out of contexts.
109
94
 
110
- `describe` and `context` take an optional description as argument and a block containing the individual specs or nested groupings.
111
-
112
95
  ### Expectations
113
96
 
114
97
  Expectations define if the value being tested (_actual_) matches a certain value or specific criteria.
@@ -168,7 +151,7 @@ expect(actual).to be_an_instance_of(expected) # passes if expected.equal?(actual
168
151
 
169
152
  By convention, specs live in the `spec/` directory of a project. Spec files should end with `_spec.rb` to be recognizable as such.
170
153
 
171
- Depending of the project settings, you may run the specs of a project by running `rake spec` (see [`rake` integration example](#rake-integration-example) below).
154
+ Depending of the project settings, you may run the specs of a project by running `rake spec` (see _Rake integration example_ section below).
172
155
  A single file can also be executed directly with the Ruby interpreter.
173
156
 
174
157
  #### Examples
@@ -185,7 +168,7 @@ Run a single file:
185
168
  ruby spec/my/test/file_spec.rb
186
169
  ```
187
170
 
188
- I know that sounds weird, but the [`rspec` command line](https://relishapp.com/rspec/rspec-core/docs/command-line) is also working pretty well:
171
+ It is not recommended, but the RSpec's [`rspec` command line](https://relishapp.com/rspec/rspec-core/docs/command-line) might also work:
189
172
 
190
173
  ```sh
191
174
  rspec spec/my/test/file_spec.rb
@@ -200,7 +183,7 @@ Many projects use a custom spec helper file, usually named `spec/spec_helper.rb`
200
183
 
201
184
  This file is used to require `r_spec` and other includes, like the code from the project needed for every spec file.
202
185
 
203
- ### `rake` integration example
186
+ ### Rake integration example
204
187
 
205
188
  The following `Rakefile` settings should be enough:
206
189
 
@@ -210,31 +193,35 @@ require "rake/testtask"
210
193
 
211
194
  Rake::TestTask.new do |t|
212
195
  t.pattern = "spec/**/*_spec.rb"
213
- t.verbose = true
214
- t.warning = true
215
196
  end
216
197
 
217
198
  task spec: :test
218
199
  task default: :test
219
200
  ```
220
201
 
202
+ And then execute:
203
+
204
+ ```sh
205
+ bundle exec rake
206
+ ```
207
+
221
208
  ## Performance
222
209
 
223
210
  ### Runtime
224
211
 
225
- Benchmark against [100 executions of a file containing one expectation](https://github.com/cyril/r_spec.rb/blob/main/benchmark/) (lower is better).
212
+ Benchmark against [100 executions of a file containing one expectation](https://github.com/cyril/r_spec-clone.rb/blob/main/benchmark/) (lower is better).
226
213
 
227
- ![Runtime](https://r-spec.dev/benchmark-runtime.png)
214
+ ![Runtime](https://clone.r-spec.dev/benchmark-runtime.png)
228
215
 
229
216
  ## Test suite
230
217
 
231
- __RSpec clone__'s specifications are self-described here: [spec/](https://github.com/cyril/r_spec.rb/blob/main/spec/)
218
+ __RSpec clone__'s specifications are self-described here: [spec/](https://github.com/cyril/r_spec-clone.rb/blob/main/spec/)
232
219
 
233
220
  ## Contact
234
221
 
235
222
  * Home page: [https://r-spec.dev/](https://r-spec.dev/)
236
- * Cheatsheet: [https://r-spec.dev/cheatsheet.html](https://r-spec.dev/cheatsheet.html)
237
- * Source code: [https://github.com/cyril/r_spec.rb](https://github.com/cyril/r_spec.rb)
223
+ * Cheatsheet: [https://clone.r-spec.dev/cheatsheet.html](https://clone.r-spec.dev/cheatsheet.html)
224
+ * Source code: [https://github.com/cyril/r_spec-clone.rb](https://github.com/cyril/r_spec-clone.rb)
238
225
  * API Doc: [https://rubydoc.info/gems/r_spec](https://rubydoc.info/gems/r_spec)
239
226
  * Twitter: [https://twitter.com/cyri\_](https://twitter.com/cyri\_)
240
227
 
@@ -247,9 +234,9 @@ Without RSpec, this clone would not have been possible.
247
234
 
248
235
  ## Buy me a coffee ☕
249
236
 
250
- If you like this project please consider making a small donation.
237
+ If you like this project, please consider making a small donation to Batman.
251
238
 
252
- [![Donate with Ethereum](https://github.com/cyril/r_spec.rb/raw/main/img/donate-eth.svg)](https://etherscan.io/address/0x834b5c1feaff5aebf9cd0f25dc38e741d65ab773)
239
+ [![Donate](https://img.shields.io/badge/Donate-batman.eth-purple.svg)](https://etherscan.io/address/batman.eth)
253
240
 
254
241
  ## Versioning
255
242
 
@@ -257,7 +244,7 @@ __RSpec clone__ follows [Semantic Versioning 2.0](https://semver.org/).
257
244
 
258
245
  ## License
259
246
 
260
- The [gem](https://rubygems.org/gems/r_spec) is available as open source under the terms of the [MIT License](https://github.com/cyril/r_spec.rb/raw/main/LICENSE.md).
247
+ The [gem](https://rubygems.org/gems/r_spec) is available as open source under the terms of the [MIT License](https://github.com/cyril/r_spec-clone.rb/raw/main/LICENSE.md).
261
248
 
262
249
  ## One more thing
263
250
 
@@ -265,4 +252,4 @@ Under the hood, __RSpec clone__ is largely animated by [a collection of testing
265
252
 
266
253
  It's a living example of what we can do combining small libraries together that can boost the fun of programming.
267
254
 
268
- ![Fix testing tools logo for Ruby](https://github.com/cyril/r_spec.rb/raw/main/img/fixrb.svg)
255
+ ![Fix testing tools logo for Ruby](https://github.com/cyril/r_spec-clone.rb/raw/main/img/fixrb.svg)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-24 00:00:00.000000000 Z
11
+ date: 2021-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aw
@@ -220,11 +220,14 @@ homepage: https://r-spec.dev/
220
220
  licenses:
221
221
  - MIT
222
222
  metadata:
223
- bug_tracker_uri: https://github.com/cyril/r_spec.rb/issues
223
+ bug_tracker_uri: https://github.com/cyril/r_spec-clone.rb/issues
224
224
  documentation_uri: https://rubydoc.info/gems/r_spec
225
- source_code_uri: https://github.com/cyril/r_spec.rb
226
- wiki_uri: https://github.com/cyril/r_spec.rb/wiki
227
- post_install_message:
225
+ source_code_uri: https://github.com/cyril/r_spec-clone.rb
226
+ wiki_uri: https://github.com/cyril/r_spec-clone.rb/wiki
227
+ post_install_message: |
228
+ To avoid confusion with the original RSpec project,
229
+ the decision was made to rename "r_spec" into "r_spec-clone".
230
+ Please consider renaming to get the latest version. Happy testing!
228
231
  rdoc_options: []
229
232
  require_paths:
230
233
  - lib