simple_bdd 0.0.2 → 0.0.3
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/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
|