simple_bdd 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +10 -0
- data/Rakefile +8 -0
- data/lib/simple_bdd/version.rb +1 -1
- data/lib/simple_bdd.rb +30 -5
- data/spec/pending_feature_spec.rb +8 -0
- data/spec/simple_bdd_spec.rb +23 -5
- data/spec/spec_helper.rb +5 -1
- metadata +5 -9
data/README.md
CHANGED
@@ -25,6 +25,16 @@ The following will call the 'something_happens' method in scope of the current c
|
|
25
25
|
[Ww]hen "this happens" # calls this_happens
|
26
26
|
[Tt]hen "this change occurs" #calls this_change_occurs
|
27
27
|
[Aa]nd "this other side effect happens" #this_other_side_effect_happens
|
28
|
+
|
29
|
+
## RSpec
|
30
|
+
|
31
|
+
You'll need to require SimpleBDD in the spec helper and include it into your tests like so:
|
32
|
+
|
33
|
+
require 'simple_bdd'
|
34
|
+
|
35
|
+
RSpec.configure do |config|
|
36
|
+
config.include SimpleBdd
|
37
|
+
end
|
28
38
|
|
29
39
|
## Contributing
|
30
40
|
|
data/Rakefile
CHANGED
data/lib/simple_bdd/version.rb
CHANGED
data/lib/simple_bdd.rb
CHANGED
@@ -1,12 +1,37 @@
|
|
1
1
|
require "simple_bdd/version"
|
2
2
|
|
3
3
|
module SimpleBdd
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
%w[Given When Then And Also].each do |method|
|
5
|
+
define_method(method) do |message|
|
6
|
+
begin
|
7
|
+
send methodize(message)
|
8
|
+
rescue NoMethodError => error
|
9
|
+
message_does_not_exist(
|
10
|
+
methodize(message), error
|
11
|
+
)
|
12
|
+
end
|
9
13
|
end
|
14
|
+
|
15
|
+
alias_method method.downcase, method
|
16
|
+
end
|
17
|
+
|
18
|
+
PRESERVED_CHARS = '\\w'
|
19
|
+
CONVERTED_CHARS = Regexp.escape(' /')
|
20
|
+
|
21
|
+
def methodize(message)
|
22
|
+
message
|
23
|
+
.downcase
|
24
|
+
.gsub(/[^#{PRESERVED_CHARS}#{CONVERTED_CHARS}]/, "")
|
25
|
+
.gsub(/[#{CONVERTED_CHARS}]+/, "_")
|
10
26
|
end
|
11
27
|
|
28
|
+
if defined?(::RSpec)
|
29
|
+
def message_does_not_exist(message, error)
|
30
|
+
pending(message)
|
31
|
+
end
|
32
|
+
else
|
33
|
+
def message_does_not_exist(message, error)
|
34
|
+
raise error
|
35
|
+
end
|
36
|
+
end
|
12
37
|
end
|
data/spec/simple_bdd_spec.rb
CHANGED
@@ -5,15 +5,33 @@ class SimpleBddExample
|
|
5
5
|
end
|
6
6
|
|
7
7
|
describe SimpleBddExample do
|
8
|
-
|
9
8
|
let(:subject) { SimpleBddExample.new }
|
10
9
|
|
11
|
-
describe "#given, #when, #then, #and" do
|
12
|
-
["given", "when", "then", "and", "Given", "When", "Then", "And"].each do |method|
|
10
|
+
describe "#given, #when, #then, #and, #also" do
|
11
|
+
["given", "when", "then", "and", "Given", "When", "Then", "And", "Also", "also"].each do |method|
|
13
12
|
it "calls the method after translating the string" do
|
14
|
-
subject.should_receive(:
|
15
|
-
subject.send(method, "
|
13
|
+
subject.should_receive(:something)
|
14
|
+
subject.send(method, "something")
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
18
|
+
|
19
|
+
describe "#methodize" do
|
20
|
+
it "removes special chars" do
|
21
|
+
subject.send(:methodize, "bond, james bond").should == "bond_james_bond"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "converts to lower case" do
|
25
|
+
subject.send(:methodize, "HELLO WORLD").should == "hello_world"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "compacts adjacent separators" do
|
29
|
+
subject.send(:methodize, "Bates & Lolcat Realty").should == "bates_lolcat_realty"
|
30
|
+
subject.send(:methodize, "Ruby / Python / Scala, same deal").should == "ruby_python_scala_same_deal"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "underscores slashes" do
|
34
|
+
subject.send(:methodize, "Chocolate/Vanilla Cake").should == "chocolate_vanilla_cake"
|
35
|
+
end
|
36
|
+
end
|
19
37
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,10 @@ RSpec.configure do |config|
|
|
3
3
|
config.run_all_when_everything_filtered = true
|
4
4
|
config.filter_run :focus
|
5
5
|
config.order = 'random'
|
6
|
-
|
6
|
+
|
7
7
|
require File.dirname(__FILE__) + '/../lib/simple_bdd'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.include SimpleBdd
|
11
|
+
end
|
8
12
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_bdd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/simple_bdd.rb
|
76
76
|
- lib/simple_bdd/version.rb
|
77
77
|
- simple_bdd.gemspec
|
78
|
+
- spec/pending_feature_spec.rb
|
78
79
|
- spec/simple_bdd_spec.rb
|
79
80
|
- spec/spec_helper.rb
|
80
81
|
homepage: ''
|
@@ -89,24 +90,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
90
|
- - ! '>='
|
90
91
|
- !ruby/object:Gem::Version
|
91
92
|
version: '0'
|
92
|
-
segments:
|
93
|
-
- 0
|
94
|
-
hash: -1526797260797757725
|
95
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
94
|
none: false
|
97
95
|
requirements:
|
98
96
|
- - ! '>='
|
99
97
|
- !ruby/object:Gem::Version
|
100
98
|
version: '0'
|
101
|
-
segments:
|
102
|
-
- 0
|
103
|
-
hash: -1526797260797757725
|
104
99
|
requirements: []
|
105
100
|
rubyforge_project:
|
106
|
-
rubygems_version: 1.8.
|
101
|
+
rubygems_version: 1.8.25
|
107
102
|
signing_key:
|
108
103
|
specification_version: 3
|
109
104
|
summary: Gherkin methods that turn strings into methods
|
110
105
|
test_files:
|
106
|
+
- spec/pending_feature_spec.rb
|
111
107
|
- spec/simple_bdd_spec.rb
|
112
108
|
- spec/spec_helper.rb
|