rspec-requestable-examples 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/rspec/requestable-examples.rb +47 -0
  2. metadata +46 -0
@@ -0,0 +1,47 @@
1
+ module RSpec
2
+ module RequestableExamples
3
+ class RequestedExamples < Array
4
+ def initialize(options)
5
+ options ||= {}
6
+ puts self.object_id
7
+ replace options[:examples] || []
8
+ end
9
+
10
+ def run?(example)
11
+ return true if empty? || include?(example)
12
+ false
13
+ end
14
+ end
15
+
16
+ def request_examples(options)
17
+ puts options.inspect
18
+ @requested_examples = RequestedExamples.new(options)
19
+ end
20
+
21
+ def requested_examples
22
+ @requested_examples
23
+ end
24
+
25
+ def requestable_example(description, options={}, &blk)
26
+ requestable_examples << description
27
+ it description, &blk if requested_examples.run?(options[:as] || description)
28
+ end
29
+ alias_method :requestable_it, :requestable_example
30
+
31
+ def requestable_examples
32
+ @requestable_examples ||= []
33
+ end
34
+
35
+ def requestable_describe(description, options={}, &blk)
36
+ requestable_describes << description
37
+ describe description, &blk if requested_examples.include?(options[:as] || description)
38
+ end
39
+ alias_method :requestable_context, :requestable_describe
40
+
41
+ def requestable_describes
42
+ @requestable_describes ||= []
43
+ end
44
+ alias_method :requestable_contexts, :requestable_describes
45
+ end
46
+
47
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-requestable-examples
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Zach Dennis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-16 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: See home page
15
+ email: zach.dennis@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/rspec/requestable-examples.rb
21
+ homepage: http://www.continuousthinking.com
22
+ licenses: []
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 1.8.10
42
+ signing_key:
43
+ specification_version: 3
44
+ summary: rspec-requestable-examples let's you include specific examples from shared
45
+ example sets
46
+ test_files: []