rspec-instrumentation-matcher 0.0.3 → 0.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da705cb6c0c5a5d2920d6a9583a7761b94994ebe
4
- data.tar.gz: 45cc29621832de778a89f8cfcd6fe19c45818a8c
3
+ metadata.gz: 539ee1e205d5e7e5ca496e11c38af0a38f7d436e
4
+ data.tar.gz: 962d456600fef1e8c4959a151c2eaf18e8e4f6a3
5
5
  SHA512:
6
- metadata.gz: 34ccf1859dd9a9aa798460a6f20a732adf77f77ed98cd1428ab91fe910f95dc9efe133457170a36a919e1f0475c506225cedd9fc9937e445835045ca4b355352
7
- data.tar.gz: b47d6a533df20305a92eb065611f096ad17c3fda49354c2ca48375532c1e5e64e6f61dcf602b3ff4e2af6805b8df37d23ce8fc7149e6aba2d4e444ac125903fc
6
+ metadata.gz: de975bd43cf60ce0b7dee62f4e71c533f5a17001786e802d854a26691046bd9a6a630f265531c5d93da1588e66d93ec11d48f84b9290df6f4d1f9554c9d83351
7
+ data.tar.gz: ae2a6afdd15bc84ec4cd2489c8cdc9edc72cb442a9a20438a463a7c219514cb08bf74bbebbcdd51f601e25e9650db07e5c86f78828739b3e87175a2cb1af98f5
@@ -0,0 +1,72 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rspec-instrumentation-matcher (0.0.3)
5
+ activesupport
6
+ rspec-expectations
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (4.1.1)
12
+ i18n (~> 0.6, >= 0.6.9)
13
+ json (~> 1.7, >= 1.7.7)
14
+ minitest (~> 5.1)
15
+ thread_safe (~> 0.1)
16
+ tzinfo (~> 1.1)
17
+ celluloid (0.15.2)
18
+ timers (~> 1.1.0)
19
+ coderay (1.1.0)
20
+ diff-lcs (1.2.5)
21
+ ffi (1.9.3)
22
+ formatador (0.2.5)
23
+ guard (2.6.1)
24
+ formatador (>= 0.2.4)
25
+ listen (~> 2.7)
26
+ lumberjack (~> 1.0)
27
+ pry (>= 0.9.12)
28
+ thor (>= 0.18.1)
29
+ guard-rspec (4.2.9)
30
+ guard (~> 2.1)
31
+ rspec (>= 2.14, < 4.0)
32
+ i18n (0.6.9)
33
+ json (1.8.1)
34
+ listen (2.7.6)
35
+ celluloid (>= 0.15.2)
36
+ rb-fsevent (>= 0.9.3)
37
+ rb-inotify (>= 0.9)
38
+ lumberjack (1.0.6)
39
+ method_source (0.8.2)
40
+ minitest (5.3.4)
41
+ pry (0.9.12.6)
42
+ coderay (~> 1.0)
43
+ method_source (~> 0.8)
44
+ slop (~> 3.4)
45
+ rb-fsevent (0.9.4)
46
+ rb-inotify (0.9.4)
47
+ ffi (>= 0.5.0)
48
+ rspec (3.0.0)
49
+ rspec-core (~> 3.0.0)
50
+ rspec-expectations (~> 3.0.0)
51
+ rspec-mocks (~> 3.0.0)
52
+ rspec-core (3.0.0)
53
+ rspec-support (~> 3.0.0)
54
+ rspec-expectations (3.0.0)
55
+ diff-lcs (>= 1.2.0, < 2.0)
56
+ rspec-support (~> 3.0.0)
57
+ rspec-mocks (3.0.0)
58
+ rspec-support (~> 3.0.0)
59
+ rspec-support (3.0.0)
60
+ slop (3.5.0)
61
+ thor (0.19.1)
62
+ thread_safe (0.3.4)
63
+ timers (1.1.0)
64
+ tzinfo (1.2.1)
65
+ thread_safe (~> 0.1)
66
+
67
+ PLATFORMS
68
+ ruby
69
+
70
+ DEPENDENCIES
71
+ guard-rspec
72
+ rspec-instrumentation-matcher!
@@ -0,0 +1,9 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec, cmd: 'rspec --format doc' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
9
+
@@ -1,5 +1,5 @@
1
1
  require "rspec-instrumentation-matcher/version"
2
-
2
+ require 'active_support/notifications'
3
3
  module RSpec
4
4
  module Instrumentation
5
5
  module Matcher
@@ -15,6 +15,10 @@ module RSpec
15
15
  @at_least = 1
16
16
  end
17
17
 
18
+ def description
19
+ "instrument #{@subject} #{expectation_message}"
20
+ end
21
+
18
22
  def supports_block_expectations?
19
23
  true
20
24
  end
@@ -62,6 +66,7 @@ module RSpec
62
66
 
63
67
  def at_most(value)
64
68
  @at_most = value
69
+ @at_least = nil
65
70
  self
66
71
  end
67
72
 
@@ -76,6 +81,7 @@ module RSpec
76
81
 
77
82
 
78
83
  def times(value)
84
+ @at_least = nil
79
85
  @times = value
80
86
  self
81
87
  end
@@ -133,6 +139,16 @@ module RSpec
133
139
  end
134
140
  end
135
141
 
142
+ def expectation_message
143
+ message = ""
144
+ message << "at least #{count @at_least}" unless @at_least.nil?
145
+ message << "at most #{count @at_most}" unless @at_most.nil?
146
+ message << "exactly #{count @times}" unless @times.nil?
147
+ if @with
148
+ message << " with payload #{@payload.inspect}"
149
+ end
150
+ message
151
+ end
136
152
 
137
153
  end
138
154
  end
@@ -1,7 +1,7 @@
1
1
  module Rspec
2
2
  module Instrumentation
3
3
  module Matcher
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.4"
5
5
  end
6
6
  end
7
7
  end
@@ -19,4 +19,8 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_dependency 'rspec-expectations'
21
21
  gem.add_dependency 'activesupport'
22
+
23
+
24
+ gem.add_development_dependency 'guard-rspec'
25
+
22
26
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe RSpec::Instrumentation::Matcher do
5
+
6
+ def event(notification, payload={})
7
+ ActiveSupport::Notifications.instrument(notification, payload)
8
+ end
9
+
10
+
11
+ let(:notification) { 'a notification' }
12
+
13
+ specify { expect { event(notification) }.to instrument(notification).once }
14
+ specify { expect { 2.times { event(notification) } }.not_to instrument(notification).never }
15
+ specify { expect { 2.times { event(notification) } }.to instrument(notification).at_least(1) }
16
+ specify { expect { 2.times { event(notification) } }.to instrument(notification).at_most(2) }
17
+ specify { expect { event(notification,{ test_payload: true }) }.to instrument(notification).with(test_payload: true) }
18
+
19
+
20
+ end
@@ -0,0 +1,5 @@
1
+ $: << File.expand_path("../lib/", __FILE__)
2
+
3
+
4
+
5
+ require 'rspec-instrumentation-matcher'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-instrumentation-matcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vlad Verestiuc
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: guard-rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Rspec matcher for ActiveSupport::Notifications
42
56
  email:
43
57
  - vlad.verestiuc@me.com
@@ -47,12 +61,16 @@ extra_rdoc_files: []
47
61
  files:
48
62
  - ".gitignore"
49
63
  - Gemfile
64
+ - Gemfile.lock
65
+ - Guardfile
50
66
  - LICENSE.txt
51
67
  - README.md
52
68
  - Rakefile
53
69
  - lib/rspec-instrumentation-matcher.rb
54
70
  - lib/rspec-instrumentation-matcher/version.rb
55
71
  - rspec-instrumentation-matcher.gemspec
72
+ - spec/rspec-instrumentation-matcher_spec.rb
73
+ - spec/spec_helper.rb
56
74
  homepage: https://github.com/vvlad/rspec-instrumentation-matcher
57
75
  licenses: []
58
76
  metadata: {}
@@ -76,5 +94,7 @@ rubygems_version: 2.2.2
76
94
  signing_key:
77
95
  specification_version: 4
78
96
  summary: Support for spec-ing ActiveSupport::Notifications.instrument calls
79
- test_files: []
97
+ test_files:
98
+ - spec/rspec-instrumentation-matcher_spec.rb
99
+ - spec/spec_helper.rb
80
100
  has_rdoc: