rspec_explain 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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