rspice 0.12.0 → 0.13.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: ccf7228a2bdb574159351b13110550990e87247f83657d51942837c3abeaeca6
4
- data.tar.gz: 4e78e86a20f50455638d79676922bddf8f7655308f9a95a2f5332742506ccb53
3
+ metadata.gz: 1085d58883b6b2bcb1769afd9a3e8e13795b3f07908eb8cb2dedd7f470ab7886
4
+ data.tar.gz: 31abb0656dc169e0d0f6aeed3dd72e82b9e631282baa598f86cfd63a9ef8c676
5
5
  SHA512:
6
- metadata.gz: 145a0ac7ecd14959b19ddd0db5053c700904c63879ba35e1491403783641ac738930c5c44e3af2e3798d8f1f9226e7b227c381fd5bad9975312da364d5774383
7
- data.tar.gz: dc928ce6c61be415a13240ea98b0496b71b3223fd0e03d7c7e728560c22f1b27661ec8ef8ad5a1c1a8da7e3e50ba4138ed28bbaec6a9b821eca3e4efe46f7489
6
+ metadata.gz: 983116dfba530e73f3b0d5dd54811e2a20eb2519675a8514cf8a9d027e8eca4f10fb5dfb0ef06a858c3d002b82cc430eb61f0729f1aa7cfeed86961ebf9d2a47
7
+ data.tar.gz: 0f4d562ef22ebe74b1fdc67b9c343d17366faa8eef0f78a2fd6f058898adb5990d125fcdccb83aeed2169248556108825c74c2139765ad4b8087050c7a469446
data/README.md CHANGED
@@ -54,13 +54,13 @@ require 'rspice'
54
54
 
55
55
  * [with_an_example_descendant_class](lib/rspice/shared_context/with_an_example_descendant_class.rb) creates a named descendant of `described_class`
56
56
  * [with_callbacks](lib/rspice/shared_context/with_callbacks.rb) defines callbacks for [ActiveSupport::Callbacks](https://apidock.com/rails/ActiveSupport/Callbacks)
57
+ * [with_class_callbacks](lib/rspice/shared_context/with_class_callbacks.rb) defines callbacks for [ActiveSupport::Callbacks](https://apidock.com/rails/ActiveSupport/Callbacks)
57
58
  * [with_example_class_having_callback](lib/rspice/shared_context/with_example_class_having_callback.rb) creates a class with
58
59
 
59
60
  ## Shared Examples
60
61
 
61
62
  * [a_class_pass_method](lib/rspice/shared_examples/a_class_pass_method.rb) tests class methods which take arguments that instantiate and call instance method of the same name
62
63
  * [a_class_with_callback](lib/rspice/shared_examples/a_class_with_callback.rb) tests usage of [ActiveSupport::Callbacks](https://apidock.com/rails/ActiveSupport/Callbacks)
63
- * [a_versioned_spicerack_gem](lib/rspice/shared_examples/a_versioned_spicerack_gem.rb) ensures gem compliance with internal standard of [Spicerack](https://github.com/Freshly/spicerack/)
64
64
  * [an_example_class_with_callbacks](lib/rspice/shared_examples/an_example_class_with_callbacks.rb) tests for defined [ActiveSupport::Callbacks](https://apidock.com/rails/ActiveSupport/Callbacks)
65
65
  * [an_inherited_property](lib/rspice/shared_examples/an_inherited_property.rb) tests usages of inherited [Class.class_attributes](https://apidock.com/rails/Class/class_attribute)
66
66
  * [an_instrumented_event](lib/rspice/shared_examples/an_instrumented_event.rb) tests usage of [ActiveSupport::Notification](https://apidock.com/rails/ActiveSupport/Notifications)
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # RSpec context that defines callbacks for [ActiveSupport::Callbacks](https://apidock.com/rails/ActiveSupport/Callbacks)
4
+ #
5
+ # class Klass
6
+ # include ActiveSupport::Callbacks
7
+ # define_callbacks :kallback
8
+ #
9
+ # def call
10
+ # run_callbacks(:kallback)
11
+ # end
12
+ # end
13
+ #
14
+ # RSpec.describe Klass do
15
+ # it_behaves_like "a class with callback" do
16
+ # include_context "with callbacks", :kallback
17
+ #
18
+ # subject(:callback_runner) { described_class.new.call }
19
+ #
20
+ # let(:example_class) { described_class }
21
+ # end
22
+ # end
23
+
24
+ RSpec.shared_context "with class callbacks" do |callback|
25
+ before do
26
+ example_class.class_eval { class << self; attr_accessor :before_hook_run, :around_hook_run, :after_hook_run; end }
27
+ example_class.set_callback(callback, :before) { |obj| obj.class.before_hook_run = true }
28
+ example_class.set_callback(callback, :after) { |obj| obj.class.after_hook_run = true }
29
+ example_class.set_callback callback, :around do |obj, block|
30
+ obj.class.around_hook_run = true
31
+ block.call
32
+ end
33
+ end
34
+ end
@@ -2,4 +2,5 @@
2
2
 
3
3
  require "rspice/shared_context/with_an_example_descendant_class"
4
4
  require "rspice/shared_context/with_callbacks"
5
+ require "rspice/shared_context/with_class_callbacks"
5
6
  require "rspice/shared_context/with_example_class_having_callback"
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "rspice/shared_examples/a_class_pass_method"
4
4
  require "rspice/shared_examples/a_class_with_callback"
5
- require "rspice/shared_examples/a_versioned_spicerack_gem"
6
5
  require "rspice/shared_examples/an_example_class_with_callbacks"
7
6
  require "rspice/shared_examples/an_inherited_property"
8
7
  require "rspice/shared_examples/an_instrumented_event"
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Rspice
4
4
  # This constant is managed by spicerack
5
- VERSION = "0.12.0"
5
+ VERSION = "0.13.0"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Garside
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-28 00:00:00.000000000 Z
11
+ date: 2019-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -62,11 +62,11 @@ files:
62
62
  - lib/rspice/shared_context.rb
63
63
  - lib/rspice/shared_context/with_an_example_descendant_class.rb
64
64
  - lib/rspice/shared_context/with_callbacks.rb
65
+ - lib/rspice/shared_context/with_class_callbacks.rb
65
66
  - lib/rspice/shared_context/with_example_class_having_callback.rb
66
67
  - lib/rspice/shared_examples.rb
67
68
  - lib/rspice/shared_examples/a_class_pass_method.rb
68
69
  - lib/rspice/shared_examples/a_class_with_callback.rb
69
- - lib/rspice/shared_examples/a_versioned_spicerack_gem.rb
70
70
  - lib/rspice/shared_examples/an_example_class_with_callbacks.rb
71
71
  - lib/rspice/shared_examples/an_inherited_property.rb
72
72
  - lib/rspice/shared_examples/an_instrumented_event.rb
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # RSpec example that ensures gem compliance with internal standard of [Spicerack](https://github.com/Freshly/spicerack/)
4
- #
5
- # RSpice.describe MyAwesomeGem do
6
- # it_behaves_like "a versioned spicerack gem"
7
- # end
8
-
9
- RSpec.shared_examples_for "a versioned spicerack gem" do
10
- it "has a version number" do
11
- expect(described_class::VERSION).to be_a String
12
- expect(described_class::VERSION).not_to be_blank
13
- expect(described_class::VERSION).to eq Spicerack::VERSION
14
- end
15
- end