watir-rspec 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/.yardopts +6 -0
- data/LICENSE +2 -2
- data/README.md +139 -80
- data/Rakefile +3 -0
- data/lib/watir/rspec/helper.rb +9 -1
- data/lib/watir/rspec/html_formatter.rb +18 -11
- data/lib/watir/rspec/version.rb +1 -1
- data/lib/watir/rspec.rb +118 -108
- data/watir-rspec.gemspec +4 -0
- metadata +51 -2
data/.yardopts
ADDED
data/LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2012 Jarmo Pertman
|
1
|
+
Copyright (c) 2012-2013 Jarmo Pertman
|
2
2
|
|
3
3
|
MIT License
|
4
4
|
|
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,80 +1,139 @@
|
|
1
|
-
# Watir::RSpec
|
2
|
-
|
3
|
-
Use Watir with RSpec with ease.
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add these lines to your application's Gemfile:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
Watir::RSpec::Helper,
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
1
|
+
# Watir::RSpec
|
2
|
+
|
3
|
+
Use [Watir](http://watir.com) with [RSpec](http://rspec.info) with ease.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add these lines to your application's Gemfile:
|
8
|
+
|
9
|
+
````ruby
|
10
|
+
group :test do
|
11
|
+
gem 'watir-rspec'
|
12
|
+
end
|
13
|
+
````
|
14
|
+
|
15
|
+
And add these lines to your spec\_helper.rb file:
|
16
|
+
|
17
|
+
````ruby
|
18
|
+
RSpec.configure do |config|
|
19
|
+
# Add Watir::RSpec::HtmlFormatter to get links to the screenshots, html and
|
20
|
+
# all other files created during the failing examples.
|
21
|
+
config.add_formatter('documentation')
|
22
|
+
config.add_formatter(Watir::RSpec::HtmlFormatter)
|
23
|
+
|
24
|
+
# Open up the browser for each example.
|
25
|
+
config.before :all do
|
26
|
+
@browser = Watir::Browser.new
|
27
|
+
end
|
28
|
+
|
29
|
+
# Close that browser after each example.
|
30
|
+
config.after :all do
|
31
|
+
@browser.close if @browser
|
32
|
+
end
|
33
|
+
|
34
|
+
# Include RSpec::Helper into each of your example group for making it possible to
|
35
|
+
# write in your examples instead of:
|
36
|
+
# @browser.goto "localhost"
|
37
|
+
# @browser.text_field(:name => "first_name").set "Bob"
|
38
|
+
#
|
39
|
+
# like this:
|
40
|
+
# goto "localhost"
|
41
|
+
# text_field(:name => "first_name").set "Bob"
|
42
|
+
#
|
43
|
+
# This needs that you've used @browser as an instance variable name in
|
44
|
+
# before :all block.
|
45
|
+
config.include Watir::RSpec::Helper
|
46
|
+
end
|
47
|
+
````
|
48
|
+
|
49
|
+
|
50
|
+
When using Rails and writing specs to requests directory, add an additional filter for RSpec:
|
51
|
+
|
52
|
+
````ruby
|
53
|
+
config.before :all, :type => :request do
|
54
|
+
@browser = Watir::Browser.new :chrome
|
55
|
+
end
|
56
|
+
|
57
|
+
config.after :all, :type => :request do
|
58
|
+
@browser.close if @browser
|
59
|
+
end
|
60
|
+
|
61
|
+
config.include Watir::RSpec::Helper, :type => :request
|
62
|
+
````
|
63
|
+
|
64
|
+
## Usage
|
65
|
+
|
66
|
+
### Executing browser methods
|
67
|
+
|
68
|
+
If you did include ````Watir::Rspec::Helper```` then it is possible to write code like this in your specs:
|
69
|
+
|
70
|
+
````ruby
|
71
|
+
text_field(:id => "something").set "foo"
|
72
|
+
````
|
73
|
+
|
74
|
+
If you did not include ````Watir::RSpec::Helper```` then you have to use browser variable:
|
75
|
+
|
76
|
+
````ruby
|
77
|
+
@browser.text_field(:id => "something").set "foo"
|
78
|
+
````
|
79
|
+
|
80
|
+
### Testing asynchronous functionality
|
81
|
+
|
82
|
+
````Watir::RSpec```` adds convenience methods ````#within```` and ````#during```` to all of the RSpec matchers,
|
83
|
+
which help to write better and more beautiful test code.
|
84
|
+
|
85
|
+
Let us pretend that the following div will appear dynamically after some Ajax request.
|
86
|
+
|
87
|
+
We can use the standard way:
|
88
|
+
|
89
|
+
````ruby
|
90
|
+
Watir::Wait.until(5) { div(:id => "something").present? }
|
91
|
+
````
|
92
|
+
|
93
|
+
Or we can use ````#within```` method:
|
94
|
+
|
95
|
+
````ruby
|
96
|
+
div(:id => "something").should be_present.within(5)
|
97
|
+
````
|
98
|
+
|
99
|
+
````#during```` is the opposite of ````#within```` - it means that during the specified time something should be true/false.
|
100
|
+
|
101
|
+
PS! There is one caveat when using ````#within```` or ````#during```` - it cannot be used in every possible situation.
|
102
|
+
|
103
|
+
For example, this won't work as expected:
|
104
|
+
|
105
|
+
````ruby
|
106
|
+
div(:id => "something").text.should eq("foo").within(5)
|
107
|
+
````
|
108
|
+
|
109
|
+
The reason is that RSpec will check if value of ````#text```` will change to ````"foo"````, but it is just some ````String````,
|
110
|
+
which won't change ever. The rule of thumb is that ````#should```` should be always called on an instance of
|
111
|
+
the ````Element```` and ````#within/#duration```` on the matcher for that ````Element```` (e.g. ````be_present````, ````be_visible````, ````exist```` etc.).
|
112
|
+
|
113
|
+
### Files created during specs
|
114
|
+
|
115
|
+
When creating/downloading/uploading files in your examples and using
|
116
|
+
````Watir::RSpec::HtmlFormatter```` then you can generate links automatically to these files when example
|
117
|
+
fails. To do that you need to use ````Watir::RSpec.file_path```` method for generating
|
118
|
+
unique file name:
|
119
|
+
|
120
|
+
````ruby
|
121
|
+
uploaded_file_path = Watir::RSpec.file_path("uploaded.txt")
|
122
|
+
File.open(uploaded_file_path, "w") {|file| file.write "Generated File Input"}
|
123
|
+
````
|
124
|
+
|
125
|
+
### Rails support
|
126
|
+
|
127
|
+
If you're using Rails, then you also need to install [watir-rails](https://github.com/watir/watir-rails) gem.
|
128
|
+
|
129
|
+
## Contributing
|
130
|
+
|
131
|
+
1. Fork it
|
132
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
133
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
134
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
135
|
+
5. Create new Pull Request
|
136
|
+
|
137
|
+
## License
|
138
|
+
|
139
|
+
Copyright (c) Jarmo Pertman (jarmo.p@gmail.com). See LICENSE for details.
|
data/Rakefile
CHANGED
data/lib/watir/rspec/helper.rb
CHANGED
@@ -3,11 +3,19 @@ module Watir
|
|
3
3
|
module Helper
|
4
4
|
extend Forwardable
|
5
5
|
|
6
|
+
# @return [Watir::Browser] a latest browser instance if it is initialized with
|
7
|
+
# @browser or $browser variable name.
|
6
8
|
def browser
|
7
9
|
@browser || $browser
|
8
10
|
end
|
9
11
|
|
10
|
-
|
12
|
+
# Will dispatch all missing methods to the {#browser} instance.
|
13
|
+
# @example Makes it possible to use Watir::Browser methods without specifying the browser instance in the specs like this:
|
14
|
+
# it "should do something" do
|
15
|
+
# # notice that we're calling Watir::Browser#text_field here directly
|
16
|
+
# text_field(:id => "foo").should be_present
|
17
|
+
# end
|
18
|
+
def method_missing(name, *args)
|
11
19
|
if browser.respond_to?(name)
|
12
20
|
Helper.module_eval %Q[
|
13
21
|
def #{name}(*args)
|
@@ -9,7 +9,8 @@ module Watir
|
|
9
9
|
# * saves html of the browser upon test failure
|
10
10
|
# * saves all files generated/downloaded during the test and shows them in the report
|
11
11
|
class HtmlFormatter < ::RSpec::Core::Formatters::HtmlFormatter
|
12
|
-
|
12
|
+
# @private
|
13
|
+
def initialize(output)
|
13
14
|
@output_path = File.expand_path(ENV["WATIR_RESULTS_PATH"] || (output.respond_to?(:path) ? output.path : "tmp/spec-results/index.html"))
|
14
15
|
FileUtils.rm_rf File.dirname(@output_path), :verbose => true if File.exists?(@output_path)
|
15
16
|
|
@@ -23,18 +24,21 @@ module Watir
|
|
23
24
|
super(File.open(@output_path, "w"))
|
24
25
|
end
|
25
26
|
|
26
|
-
|
27
|
+
# @private
|
28
|
+
def example_group_started(example_group)
|
27
29
|
@files_saved_during_example.clear
|
28
30
|
super
|
29
31
|
end
|
30
32
|
|
31
|
-
|
33
|
+
# @private
|
34
|
+
def example_started(example)
|
32
35
|
@files_saved_during_example.clear
|
33
36
|
super
|
34
37
|
end
|
35
38
|
|
36
|
-
|
37
|
-
|
39
|
+
# @private
|
40
|
+
def extra_failure_content(exception)
|
41
|
+
browser = example_group.before_all_ivars[:@browser] || $browser
|
38
42
|
return super unless browser && browser.exists?
|
39
43
|
|
40
44
|
save_screenshot browser
|
@@ -47,10 +51,13 @@ module Watir
|
|
47
51
|
super + content.join($/)
|
48
52
|
end
|
49
53
|
|
50
|
-
#
|
54
|
+
# Generate unique file path for the current spec. If the file
|
55
|
+
# will be created during that spec and spec fails then it will be
|
56
|
+
# shown automatically in the html report.
|
51
57
|
#
|
52
|
-
#
|
53
|
-
#
|
58
|
+
# @param [String] File name to be used for file.
|
59
|
+
# Will be used as a part of the complete name.
|
60
|
+
# @return [String] Absolute path for the unique file name.
|
54
61
|
def file_path(file_name, description=nil)
|
55
62
|
extension = File.extname(file_name)
|
56
63
|
basename = File.basename(file_name, extension)
|
@@ -61,7 +68,7 @@ module Watir
|
|
61
68
|
|
62
69
|
private
|
63
70
|
|
64
|
-
def link_for(file)
|
71
|
+
def link_for(file)
|
65
72
|
return unless File.exists?(file[:path])
|
66
73
|
|
67
74
|
description = file[:desc] ? file[:desc] : File.extname(file[:path]).upcase[1..-1]
|
@@ -69,7 +76,7 @@ module Watir
|
|
69
76
|
"<a href='#{path.relative_path_from(Pathname.new(@output_path).dirname)}'>#{description}</a> "
|
70
77
|
end
|
71
78
|
|
72
|
-
def save_html(browser)
|
79
|
+
def save_html(browser)
|
73
80
|
file_name = file_path("browser.html")
|
74
81
|
begin
|
75
82
|
html = browser.html
|
@@ -80,7 +87,7 @@ module Watir
|
|
80
87
|
file_name
|
81
88
|
end
|
82
89
|
|
83
|
-
def save_screenshot(browser, description="Screenshot")
|
90
|
+
def save_screenshot(browser, description="Screenshot")
|
84
91
|
file_name = file_path("screenshot.png", description)
|
85
92
|
browser.screenshot.save(file_name)
|
86
93
|
file_name
|
data/lib/watir/rspec/version.rb
CHANGED
data/lib/watir/rspec.rb
CHANGED
@@ -7,109 +7,118 @@ if defined? ActiveRecord
|
|
7
7
|
end
|
8
8
|
|
9
9
|
module Watir
|
10
|
-
# add #within(timeout) and #during(timeout) methods for every matcher for allowing to wait until some condition is met.
|
11
|
-
# div.click
|
12
|
-
# another_div.should be_present.within(5)
|
13
|
-
#
|
14
|
-
# expect {
|
15
|
-
# div.click
|
16
|
-
# }.to change {another_div.text}.from("before").to("after").within(5)
|
17
|
-
#
|
18
|
-
# expect {
|
19
|
-
# div.click
|
20
|
-
# }.to make {another_div.present?}.within(5)
|
21
|
-
#
|
22
|
-
# expect {
|
23
|
-
# div.click
|
24
|
-
# }.to change {another_div.text}.soon
|
25
|
-
#
|
26
10
|
class RSpec
|
27
11
|
class << self
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
12
|
+
# Add #within(timeout) and #during(timeout) methods for every matcher for allowing to wait until some condition is met.
|
13
|
+
# div.click
|
14
|
+
# another_div.should be_present.within(5)
|
15
|
+
#
|
16
|
+
# expect {
|
17
|
+
# div.click
|
18
|
+
# }.to change {another_div.text}.from("before").to("after").within(5)
|
19
|
+
#
|
20
|
+
# expect {
|
21
|
+
# div.click
|
22
|
+
# }.to make {another_div.present?}.within(5)
|
23
|
+
#
|
24
|
+
# expect {
|
25
|
+
# div.click
|
26
|
+
# }.to change {another_div.text}.soon
|
27
|
+
#
|
28
|
+
# @private
|
29
|
+
def add_within_and_during_to_matcher const
|
30
|
+
const.class_eval do
|
31
|
+
|
32
|
+
inst_methods = instance_methods.map &:to_sym
|
33
|
+
|
34
|
+
if !(inst_methods.include?(:__matches?) || inst_methods.include?(:__does_not_match?)) &&
|
35
|
+
(inst_methods.include?(:matches?) || inst_methods.include?(:does_not_match?))
|
36
|
+
|
37
|
+
def within(timeout)
|
38
|
+
@within_timeout = timeout
|
39
|
+
self
|
40
|
+
end
|
32
41
|
|
33
|
-
|
34
|
-
|
42
|
+
def during(timeout)
|
43
|
+
@during_timeout = timeout
|
44
|
+
self
|
45
|
+
end
|
35
46
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
47
|
+
def soon
|
48
|
+
within(30)
|
49
|
+
end
|
40
50
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
51
|
+
def seconds
|
52
|
+
# for syntactic sugar
|
53
|
+
self
|
54
|
+
end
|
45
55
|
|
46
|
-
|
47
|
-
within(30)
|
48
|
-
end
|
56
|
+
alias_method :second, :seconds
|
49
57
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
58
|
+
def minutes
|
59
|
+
@within_timeout *= 60 if @within_timeout
|
60
|
+
@during_timeout *= 60 if @during_timeout
|
61
|
+
self
|
62
|
+
end
|
54
63
|
|
55
|
-
|
64
|
+
alias_method :minute, :minutes
|
65
|
+
end
|
56
66
|
|
57
|
-
|
58
|
-
|
59
|
-
@during_timeout *= 60 if @during_timeout
|
60
|
-
self
|
61
|
-
end
|
67
|
+
if inst_methods.include? :matches?
|
68
|
+
alias_method :__matches?, :matches?
|
62
69
|
|
63
|
-
|
70
|
+
def matches?(actual)
|
71
|
+
match_with_wait {__matches?(actual)}
|
64
72
|
end
|
73
|
+
end
|
65
74
|
|
66
|
-
|
67
|
-
|
75
|
+
if inst_methods.include? :does_not_match?
|
76
|
+
alias_method :__does_not_match?, :does_not_match?
|
68
77
|
|
69
|
-
|
70
|
-
|
71
|
-
end
|
78
|
+
def does_not_match?(actual)
|
79
|
+
match_with_wait {__does_not_match?(actual)}
|
72
80
|
end
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
def does_not_match?(actual)
|
78
|
-
match_with_wait {__does_not_match?(actual)}
|
79
|
-
end
|
80
|
-
elsif inst_methods.include? :matches?
|
81
|
-
def does_not_match?(actual)
|
82
|
-
match_with_wait {!__matches?(actual)}
|
83
|
-
end
|
81
|
+
elsif inst_methods.include? :matches?
|
82
|
+
def does_not_match?(actual)
|
83
|
+
match_with_wait {!__matches?(actual)}
|
84
84
|
end
|
85
|
+
end
|
85
86
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
end
|
87
|
+
private
|
88
|
+
|
89
|
+
def match_with_wait
|
90
|
+
if @within_timeout
|
91
|
+
timeout = @within_timeout; @within_timeout = nil
|
92
|
+
Watir::Wait.until(timeout) {yield} rescue false
|
93
|
+
elsif @during_timeout
|
94
|
+
timeout = @during_timeout; @during_timeout = nil
|
95
|
+
Watir::Wait.while(timeout) {yield} rescue true
|
96
|
+
else
|
97
|
+
yield
|
98
98
|
end
|
99
99
|
end
|
100
100
|
end
|
101
|
+
end
|
101
102
|
|
102
|
-
|
103
|
-
|
104
|
-
|
103
|
+
# Generate unique file path for the current spec. If the file
|
104
|
+
# will be created during that spec and spec fails then it will be
|
105
|
+
# shown automatically in the html report.
|
106
|
+
#
|
107
|
+
# @param [String] File name to be used for file.
|
108
|
+
# Will be used as a part of the complete name.
|
109
|
+
# @return [String] Absolute path for the unique file name.
|
110
|
+
# @raise [RuntimeError] when {Watir::RSpec::HtmlFormatter} is not in use.
|
111
|
+
def file_path(file_name, description=nil)
|
112
|
+
formatter.file_path(file_name, description=nil)
|
113
|
+
end
|
105
114
|
|
106
|
-
|
115
|
+
private
|
107
116
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
117
|
+
def formatter
|
118
|
+
@formatter ||= begin
|
119
|
+
formatter = ::RSpec.configuration.formatters.find {|f| f.kind_of? Watir::RSpec::HtmlFormatter}
|
120
|
+
unless formatter
|
121
|
+
raise <<-EOF
|
113
122
|
Watir::RSpec::HtmlFormatter is not set as a RSpec formatter.
|
114
123
|
|
115
124
|
You need to add it into your spec_helper.rb file like this:
|
@@ -117,42 +126,43 @@ module Watir
|
|
117
126
|
config.add_formatter('documentation')
|
118
127
|
config.add_formatter(Watir::RSpec::HtmlFormatter)
|
119
128
|
end
|
120
|
-
|
121
|
-
end
|
122
|
-
formatter
|
129
|
+
EOF
|
123
130
|
end
|
124
|
-
|
125
|
-
|
126
|
-
|
131
|
+
formatter
|
132
|
+
end
|
127
133
|
end
|
128
134
|
|
129
|
-
end
|
130
|
-
end
|
131
135
|
|
132
|
-
|
133
|
-
module ::RSpec::Matchers
|
134
|
-
class BuiltIn::Change
|
135
|
-
def matches?(event_proc)
|
136
|
-
raise_block_syntax_error if block_given?
|
136
|
+
end
|
137
137
|
|
138
|
-
|
139
|
-
|
140
|
-
@actual_before = evaluate_value_proc
|
141
|
-
event_proc.call
|
142
|
-
end
|
143
|
-
@actual_after = evaluate_value_proc
|
138
|
+
end
|
139
|
+
end
|
144
140
|
|
145
|
-
|
141
|
+
# patch for #within(timeout) method
|
142
|
+
# @private
|
143
|
+
module ::RSpec::Matchers
|
144
|
+
class BuiltIn::Change
|
145
|
+
def matches?(event_proc)
|
146
|
+
raise_block_syntax_error if block_given?
|
147
|
+
|
148
|
+
# to make #change work with #in(timeout) method
|
149
|
+
unless defined? @actual_before
|
150
|
+
@actual_before = evaluate_value_proc
|
151
|
+
event_proc.call
|
146
152
|
end
|
147
|
-
|
153
|
+
@actual_after = evaluate_value_proc
|
148
154
|
|
149
|
-
|
155
|
+
(!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
|
156
|
+
end
|
150
157
|
end
|
151
158
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
159
|
+
alias_method :make, :change
|
160
|
+
end
|
161
|
+
|
162
|
+
matchers = RSpec::Matchers::BuiltIn.constants.map(&:to_sym)
|
163
|
+
matchers.delete :BaseMatcher
|
164
|
+
matchers.each do |const|
|
165
|
+
Watir::RSpec.add_within_and_during_to_matcher RSpec::Matchers::BuiltIn.const_get const
|
166
|
+
end
|
157
167
|
|
158
168
|
Watir::RSpec.add_within_and_during_to_matcher RSpec::Matchers::DSL::Matcher
|
data/watir-rspec.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir-rspec
|
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:
|
12
|
+
date: 2013-01-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -27,6 +27,54 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '2.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: yard
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: redcarpet
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
30
78
|
description: Use Watir with RSpec with ease.
|
31
79
|
email:
|
32
80
|
- jarmo.p@gmail.com
|
@@ -35,6 +83,7 @@ extensions: []
|
|
35
83
|
extra_rdoc_files: []
|
36
84
|
files:
|
37
85
|
- .gitignore
|
86
|
+
- .yardopts
|
38
87
|
- Gemfile
|
39
88
|
- LICENSE
|
40
89
|
- README.md
|