rspec_explain 0.0.1 → 0.0.2

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.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems #'https://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in rspec_explain.gemspec
4
4
  gemspec
@@ -1,5 +1,3 @@
1
1
  module RSpecExplain
2
- VERSION = "0.0.1"
3
- end
4
-
5
- require_relative 'explain'
2
+ VERSION = "0.0.2"
3
+ end
data/lib/rspec_explain.rb CHANGED
@@ -1,5 +1,43 @@
1
- require "rspec_explain/version"
1
+ require 'rspec_explain/version'
2
2
 
3
- module RspecExplain
4
- # Your code goes here...
3
+ RSpec.configure do |config|
4
+ config.extend RSpecExplain
5
+ end
6
+
7
+ module RSpecExplain
8
+ def explain method, examples, run='subject.%s(%s)'
9
+
10
+ examples = prepare examples
11
+
12
+ context "##{method}" do
13
+ examples.each do |input,output|
14
+ specify "#{input} => #{output}" do
15
+ eval(run % [method, input.inspect]).should == output #subject.send(:method, input)
16
+ end
17
+ end
18
+ end
19
+
20
+ end
21
+
22
+ private
23
+ def prepare table
24
+ case table
25
+ when Array then table.map { |x| prepare_one x }.each_slice(2)
26
+ when String then prepare table.lines.map { |line| line.split '=>' }.flatten
27
+ else
28
+ raise
29
+ end
30
+ end
31
+
32
+ COMMAND = %r"^`(.*)`$"
33
+ def prepare_one element
34
+
35
+ element = element.strip if element.is_a? String
36
+
37
+ case element
38
+ when COMMAND then eval(element[COMMAND,1])
39
+ else
40
+ element
41
+ end
42
+ end
5
43
  end
@@ -24,5 +24,5 @@ Gem::Specification.new do |gem|
24
24
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
25
25
  gem.require_paths = ["lib"]
26
26
 
27
- gem.add_development_dependency "rspec", "~> 2.0"
27
+ gem.add_dependency 'rspec', '~> 2.0'
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec_explain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -19,7 +19,7 @@ dependencies:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.0'
22
- type: :development
22
+ type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
@@ -43,7 +43,6 @@ files:
43
43
  - README.md
44
44
  - Rakefile
45
45
  - lib/rspec_explain.rb
46
- - lib/rspec_explain/explain.rb
47
46
  - lib/rspec_explain/version.rb
48
47
  - rspec_explain.gemspec
49
48
  - spec/explain_spec.rb
@@ -68,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
67
  version: '0'
69
68
  requirements: []
70
69
  rubyforge_project:
71
- rubygems_version: 1.8.23
70
+ rubygems_version: 1.8.24
72
71
  signing_key:
73
72
  specification_version: 3
74
73
  summary: helpers to describe methods by concise input/output tables
@@ -1,37 +0,0 @@
1
- module RSpecExplain
2
- def explain method, examples, run='subject.%s(%s)'
3
-
4
- examples = prepare examples
5
-
6
- context "##{method}" do
7
- examples.each do |input,output|
8
- specify "#{input} => #{output}" do
9
- eval(run % [method, input.inspect]).should == output #subject.send(:method, input)
10
- end
11
- end
12
- end
13
-
14
- end
15
-
16
- private
17
- def prepare table
18
- case table
19
- when Array then table.map { |x| prepare_one x }.each_slice(2)
20
- when String then prepare table.lines.map { |line| line.split '=>' }.flatten
21
- else
22
- raise
23
- end
24
- end
25
-
26
- COMMAND = %r"^`(.*)`$"
27
- def prepare_one element
28
-
29
- element = element.strip if element.is_a? String
30
-
31
- case element
32
- when COMMAND then eval(element[COMMAND,1])
33
- else
34
- element
35
- end
36
- end
37
- end