simplexframe 0.0.01

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.
Files changed (62) hide show
  1. data/.document +5 -0
  2. data/Gemfile +21 -0
  3. data/Gemfile.lock +64 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +94 -0
  6. data/README.rdoc +38 -0
  7. data/Rakefile +1 -0
  8. data/VERSION +1 -0
  9. data/bin/simplexframe +7 -0
  10. data/lib/simplexframe.rb +9 -0
  11. data/lib/simplexframe/cli.rb +38 -0
  12. data/lib/simplexframe/errors.rb +6 -0
  13. data/lib/simplexframe/ext/string.rb +12 -0
  14. data/lib/simplexframe/generators/simplexframe/.rspec +3 -0
  15. data/lib/simplexframe/generators/simplexframe/app/cases/baidu_and_google/baidu_example_spec.rb +24 -0
  16. data/lib/simplexframe/generators/simplexframe/app/cases/baidu_and_google/google_example_spec.rb +16 -0
  17. data/lib/simplexframe/generators/simplexframe/app/cases/mantis/report_issue_spec.rb +27 -0
  18. data/lib/simplexframe/generators/simplexframe/app/cases/shared/login.rb +11 -0
  19. data/lib/simplexframe/generators/simplexframe/app/cases/spec_helper.rb.tt +49 -0
  20. data/lib/simplexframe/generators/simplexframe/app/matchers/.empty_directory +5 -0
  21. data/lib/simplexframe/generators/simplexframe/app/pages/%app_name%_navigator.rb.tt +4 -0
  22. data/lib/simplexframe/generators/simplexframe/app/pages/%app_name%_page.rb.tt +4 -0
  23. data/lib/simplexframe/generators/simplexframe/app/pages/baidu/baidu_page.rb.tt +14 -0
  24. data/lib/simplexframe/generators/simplexframe/app/pages/baidu/search_result_page.rb.tt +4 -0
  25. data/lib/simplexframe/generators/simplexframe/app/pages/components/.empty_directory +5 -0
  26. data/lib/simplexframe/generators/simplexframe/app/pages/components/menu.rb +6 -0
  27. data/lib/simplexframe/generators/simplexframe/app/pages/google/google_page.rb.tt +16 -0
  28. data/lib/simplexframe/generators/simplexframe/app/pages/google/google_search_result_page.rb.tt +4 -0
  29. data/lib/simplexframe/generators/simplexframe/app/pages/mantis/login_page.rb.tt +17 -0
  30. data/lib/simplexframe/generators/simplexframe/app/pages/mantis/my_view_page.rb.tt +8 -0
  31. data/lib/simplexframe/generators/simplexframe/app/pages/mantis/report_issue_page.rb.tt +26 -0
  32. data/lib/simplexframe/generators/simplexframe/app/pages/mantis/view_all_bug_page.rb.tt +22 -0
  33. data/lib/simplexframe/generators/simplexframe/app/reports/.empty_directory +5 -0
  34. data/lib/simplexframe/generators/simplexframe/app/test_data/baidu.yml +4 -0
  35. data/lib/simplexframe/generators/simplexframe/app/test_data/login_user.yml +4 -0
  36. data/lib/simplexframe/generators/simplexframe/bin/console +7 -0
  37. data/lib/simplexframe/generators/simplexframe/bin/console.bat +6 -0
  38. data/lib/simplexframe/generators/simplexframe/bin/setup.rb.tt +12 -0
  39. data/lib/simplexframe/generators/simplexframe/config/config.yml +4 -0
  40. data/lib/simplexframe/generators/simplexframe/config/simplexframe_formatter.rb +24 -0
  41. data/lib/simplexframe/simple_config.rb +21 -0
  42. data/lib/simplexframe/simple_initializer.rb +48 -0
  43. data/lib/simplexframe/simple_navigator.rb +56 -0
  44. data/lib/simplexframe/simple_page.rb +35 -0
  45. data/simplexframe.gemspec +132 -0
  46. data/spec/app/pages/components/footer.rb +3 -0
  47. data/spec/app/pages/components/sub/sub_footer.rb +3 -0
  48. data/spec/app/pages/module1/module1_page.rb +6 -0
  49. data/spec/app/pages/module1/sub_test_page.rb +4 -0
  50. data/spec/app/pages/test_navigator.rb +4 -0
  51. data/spec/app/pages/test_page.rb +4 -0
  52. data/spec/config/config.yml +3 -0
  53. data/spec/config/wrong_config.yml +5 -0
  54. data/spec/pages/components/footer.rb +2 -0
  55. data/spec/pages/test_page.rb +5 -0
  56. data/spec/simple_config_spec.rb +28 -0
  57. data/spec/simple_initializer_spec.rb +28 -0
  58. data/spec/simple_navigator_spec.rb +36 -0
  59. data/spec/simple_page_spec.rb +44 -0
  60. data/spec/spec_helper.rb +20 -0
  61. data/spec/string_spec.rb +10 -0
  62. metadata +278 -0
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ -
3
+ README.md
4
+ License.txt
5
+ Changelog.md
@@ -0,0 +1,4 @@
1
+ #encoding: utf-8
2
+ <% require 'active_support/all' %>
3
+ class <%= app_name.camelize %>Navigator < Simplexframe::Navigator
4
+ end
@@ -0,0 +1,4 @@
1
+ #encoding: utf-8
2
+ <% require 'active_support/all' %>
3
+ class <%= app_name.camelize%>Page < Simplexframe::Page
4
+ end
@@ -0,0 +1,14 @@
1
+ #encoding: utf-8
2
+ class BaiduPage < <%= app_name.camelize%>Page
3
+ page_url 'www.baidu.com'
4
+
5
+ text_field 'keyword', id: 'kw'
6
+ button 'search', id: 'su'
7
+
8
+ def search_for kw
9
+ self.keyword = kw
10
+ search_element.click
11
+ turn_to SearchResultPage
12
+ end
13
+
14
+ end
@@ -0,0 +1,4 @@
1
+ #encoding: utf-8
2
+ class SearchResultPage < <%= app_name.camelize%>Page
3
+ h3 'first_result', index: 0
4
+ end
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ -
3
+ README.md
4
+ License.txt
5
+ Changelog.md
@@ -0,0 +1,6 @@
1
+ module Menu
2
+ include PageObject
3
+ link 'main', text: 'Main'
4
+ link 'logout', text: 'Logout'
5
+ link 'report_issue', text: 'Report Issue'
6
+ end
@@ -0,0 +1,16 @@
1
+ #encoding: utf-8
2
+ class GooglePage < <%= app_name.camelize%>Page
3
+ page_url 'www.google.com.hk'
4
+
5
+ text_field 'keyword', name: 'q'
6
+ button 'search', name: 'btnK'
7
+
8
+ def search_for kw
9
+ self.keyword = kw
10
+ self.keyword_element.send_keys :return
11
+ # example show you how to use wait_until_present
12
+ @browser.table(id: 'nav').wait_until_present
13
+ turn_to GoogleSearchResultPage
14
+ end
15
+
16
+ end
@@ -0,0 +1,4 @@
1
+ #encoding: utf-8
2
+ class GoogleSearchResultPage < <%= app_name.camelize%>Page
3
+ h3 'first_result', index: 0
4
+ end
@@ -0,0 +1,17 @@
1
+ #encoding: utf-8
2
+ class LoginPage < <%= app_name.camelize%>Page
3
+ page_url "#{$config.host}login_page.php"
4
+
5
+ text_field 'username', name: 'username'
6
+ text_field 'password', name: 'password'
7
+ button 'login_btn', value: 'Login'
8
+
9
+ def login user, password
10
+ self.username = user
11
+ self.password = password
12
+ login_btn_element.click
13
+
14
+ turn_to MyViewPage
15
+ end
16
+
17
+ end
@@ -0,0 +1,8 @@
1
+ #encoding: utf-8
2
+
3
+ class MyViewPage < <%= app_name.camelize%>Page
4
+ include Menu
5
+
6
+ page_url "#{$config.host}my_view_page.php"
7
+
8
+ end
@@ -0,0 +1,26 @@
1
+ #encoding: utf-8
2
+
3
+ class ReportIssuePage < <%= app_name.camelize%>Page
4
+ include Menu
5
+
6
+ page_url "#{$config.host}bug_report_page.php"
7
+
8
+ select_list 'category', name: 'category_id'
9
+ text_field 'summary', name: 'summary'
10
+ text_field 'description', name: 'description'
11
+ radio_button 'view_state', name: 'view_state', value: 50
12
+ checkbox 'report_stay', name: 'report_stay'
13
+ button 'submit', value: 'Submit Report'
14
+
15
+ def create_issue category='', summary, description
16
+ #self.category = category_text_to_value(category)
17
+ self.category = category
18
+ self.summary = summary
19
+ self.description = description
20
+ #class_eval &blk if block_given?
21
+ yield self if block_given?
22
+ self.submit
23
+ turn_to ViewAllBugPage
24
+ end
25
+
26
+ end
@@ -0,0 +1,22 @@
1
+ #encoding: utf-8
2
+
3
+ class ViewAllBugPage < <%= app_name.camelize%>Page
4
+ include Menu
5
+
6
+ page_url "#{$config.host}view_all_bug_page.php"
7
+
8
+ table 'buglist', id: 'buglist'
9
+
10
+ def first_row
11
+ self.buglist_element[3]
12
+ end
13
+
14
+ def column_name_to_index(column_name)
15
+ {id: 3, category: 7, status: 9, summary: 11}[column_name]
16
+ end
17
+
18
+ def summary_column
19
+ column_name_to_index :summary
20
+ end
21
+
22
+ end
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ -
3
+ README.md
4
+ License.txt
5
+ Changelog.md
@@ -0,0 +1,4 @@
1
+ ---
2
+ one:
3
+ keyword=: '<%= 1.day.ago %>'
4
+ search_element: 'click'
@@ -0,0 +1,4 @@
1
+ ---
2
+ demo:
3
+ name: demo
4
+ password: demo
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ spec_helper = File.expand_path(File.join('.', 'app', 'cases', 'spec_helper.rb'))
4
+
5
+ setup = File.join(File.dirname(__FILE__), 'setup.rb')
6
+
7
+ exec "irb -r rspec -r #{spec_helper} -r #{setup} -r irb/completion --simple-prompt --readline"
@@ -0,0 +1,6 @@
1
+ @ECHO OFF
2
+ IF NOT "%~f0" == "~f0" GOTO :WinNT
3
+ @"ruby.exe" "" %1 %2 %3 %4 %5 %6 %7 %8 %9
4
+ GOTO :EOF
5
+ :WinNT
6
+ @"ruby.exe" "%~dpn0" %*
@@ -0,0 +1,12 @@
1
+ def test_data file
2
+ content = ''
3
+ file_path = File.expand_path(File.join('.', 'app', 'test_data', "#{file}.yml"))
4
+ raise "Can not find #{file}.yml" unless File.exists?(file_path)
5
+ File.open(file_path, 'r') do |handle|
6
+ content = handle.read
7
+ end
8
+ Psych.load ERB.new(content).result(binding)
9
+ end
10
+ <% require 'active_support/all' %>
11
+ $navi = <%= app_name.camelize %>Navigator.new $config
12
+
@@ -0,0 +1,4 @@
1
+ ---
2
+ browser: chrome
3
+ host: www.mantisbt.org/demo/
4
+ tags: baidu, google
@@ -0,0 +1,24 @@
1
+ require 'erb'
2
+ require 'rspec/core/formatters/html_formatter'
3
+
4
+ module Simplexframe
5
+ class SimplexframeFormatter < ::RSpec::Core::Formatters::HtmlFormatter
6
+ def initialize(output)
7
+ output = File.new(File.expand_path(File.join('.', 'app', 'reports', "#{Time.now.strftime("%Y%m%d_%H%M%S")}.html")), 'w')
8
+ super(output)
9
+ @printer.class.send(:define_method, 'puts') do |what|
10
+ @output.puts what
11
+ end #define_method
12
+ end
13
+
14
+ def example_failed(example)
15
+ super(example)
16
+ if $navi
17
+ failed_url = $navi.url rescue $navi.current_url
18
+ @printer.puts "<a target=\"_blank\" href=\"#{failed_url}\">failed url is [#{failed_url}]</a>"
19
+ @printer.puts '<br />'
20
+ @printer.flush
21
+ end #if
22
+ end
23
+ end #SimplexframeFormatter
24
+ end #Simplexframe
@@ -0,0 +1,21 @@
1
+ require 'yaml'
2
+ require 'simplexframe/errors'
3
+ require 'ostruct'
4
+
5
+ module Simplexframe
6
+ class Config
7
+ attr_reader :hash_content, :content
8
+
9
+ def initialize filepath
10
+ @f ||= filepath if valid?(filepath)
11
+ File.open(@f) {|handle| @hash_content = YAML.load(handle)}
12
+ @content = OpenStruct.new(@hash_content)
13
+ end
14
+
15
+ def valid?(filepath)
16
+ raise ConfigFileMissingError unless File.exists?(filepath)
17
+ true
18
+ end
19
+
20
+ end
21
+ end #Simplexframe
@@ -0,0 +1,48 @@
1
+ module Simplexframe
2
+ class Initializer
3
+ def initialize root, app_name
4
+ @root ||= root
5
+ @app_name ||= app_name
6
+ load_config
7
+ load_app_page_and_navigator
8
+ load_all_components
9
+ load_all_pages
10
+ generate_pathes
11
+ end
12
+
13
+ def load_app_page_and_navigator
14
+ @pages_path = File.join(@root, 'app', 'pages')
15
+ $:.unshift(@pages_path)
16
+ require File.join(@pages_path, "#{@app_name}_page")
17
+ require File.join(@pages_path, "#{@app_name}_navigator")
18
+ end
19
+
20
+ def load_all_components
21
+ @components_path = File.join(@pages_path, 'components')
22
+ Dir.glob(File.join @components_path, '**', '*.rb').select {|p| p =~ /\.rb$/}.each do |c|
23
+ puts c if $debug
24
+ require "#{c}"
25
+ end #each
26
+ end
27
+
28
+ def load_all_pages
29
+ Dir.glob(File.join @pages_path, '**', '*.rb').select { |p| p =~ /page\.rb$/ }.each do |page|
30
+ puts "#{page}" if $debug
31
+ require "#{page}"
32
+ end #each
33
+ end
34
+
35
+ def load_config
36
+ # hard code config file name here
37
+ @config_file = File.join @root, 'config', 'config.yml'
38
+ $config = Config.new(@config_file).content
39
+ end
40
+
41
+ def generate_pathes
42
+ $root = @root
43
+ $pages = @pages_path
44
+ $components = @components_path
45
+ end
46
+
47
+ end
48
+ end #Simplexframe
@@ -0,0 +1,56 @@
1
+ require 'simplexframe/errors'
2
+ module Simplexframe
3
+ class Navigator
4
+
5
+ def initialize config
6
+ @config = config.clone
7
+ defined_browser?
8
+ @browser = start_browser
9
+ raise "can not start browser, maybe you need to download the driver for #{@config.browser}" if @browser.nil?
10
+ define_goto_methods
11
+ end
12
+
13
+ def defined_browser?
14
+ if !@config.respond_to?(:browser) || @config.browser.empty?
15
+ raise IncorrectConfigFileError, 'you should define browser in your config file'
16
+ end #if
17
+ end
18
+
19
+ def start_browser
20
+ Watir::Browser.new @config.browser.to_sym
21
+ end
22
+
23
+ def define_goto_methods
24
+ p Module.constants.grep(/Page$/) if $debug
25
+ Module.constants.grep(/Page$/).each do |page_klass|
26
+ if simplexframe_page?(page_klass)
27
+ # define_method is private,so using send
28
+ self.class.send :define_method, "goto_#{page_klass.to_s.underscore}" do
29
+ page = Module.const_get(page_klass).new(@browser)
30
+ page.goto
31
+ page
32
+ end #define_method
33
+ puts "defined goto_#{page_klass.to_s.underscore}" if $debug
34
+ end #if
35
+ end #each
36
+ end
37
+
38
+ def valid_page_klass? klass
39
+ # skip Simplexframe::Page
40
+ return false if klass.eql?(:Page)
41
+ Module.const_get(klass) < Simplexframe::Page
42
+ end
43
+ alias_method :simplexframe_page?, :valid_page_klass?
44
+
45
+ def method_missing(m, *args, &blk)
46
+ if @browser.respond_to? m
47
+ @browser.send(m, *args, &blk)
48
+ else
49
+ super
50
+ end #if
51
+ end
52
+
53
+
54
+ end
55
+
56
+ end #Simplexframe
@@ -0,0 +1,35 @@
1
+ require 'simplexframe/errors'
2
+ module Simplexframe
3
+ class Page
4
+ include PageObject
5
+
6
+ def method_missing(m, *args, &blk)
7
+ if @browser.respond_to? m
8
+ @browser.send(m, *args, &blk)
9
+ else
10
+ super
11
+ end #if
12
+ end
13
+
14
+ def turn_to kls
15
+ raise InvalidSimplexframePageError unless kls <= Simplexframe::Page
16
+ kls.new(@browser)
17
+ end
18
+
19
+ def data_driven hash, &blk
20
+ raise ArgumentError unless hash.is_a?(Hash)
21
+ hash.each do |mtd, data|
22
+ m_with_eql = (mtd.to_s + '=').to_sym
23
+ if respond_to?(m_with_eql)
24
+ #self.send(m_with_eql, data)
25
+ eval "self.#{m_with_eql.to_s}(data)"
26
+ elsif respond_to?(mtd.to_sym)
27
+ self.send(mtd.to_sym).send(data.to_sym)
28
+ end #if
29
+ end #each
30
+ class_eval &blk if block_given?
31
+ end
32
+
33
+ end #Page
34
+
35
+ end #Simplexframe
@@ -0,0 +1,132 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "simplexframe"
8
+ s.version = "0.0.01"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["thesimplex"]
12
+ s.date = "2013-10-01"
13
+ s.description = "A test framework using watir-webdriver rspec and page-object"
14
+ s.email = "atsimplex@gmail.com"
15
+ s.executables = ["simplexframe"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE.txt",
18
+ "README.md",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "README.rdoc",
28
+ "Rakefile",
29
+ "VERSION",
30
+ "bin/simplexframe",
31
+ "simplexframe.gemspec",
32
+ "lib/simplexframe.rb",
33
+ "lib/simplexframe/cli.rb",
34
+ "lib/simplexframe/errors.rb",
35
+ "lib/simplexframe/ext/string.rb",
36
+ "lib/simplexframe/generators/simplexframe/.rspec",
37
+ "lib/simplexframe/generators/simplexframe/app/cases/baidu_and_google/baidu_example_spec.rb",
38
+ "lib/simplexframe/generators/simplexframe/app/cases/baidu_and_google/google_example_spec.rb",
39
+ "lib/simplexframe/generators/simplexframe/app/cases/mantis/report_issue_spec.rb",
40
+ "lib/simplexframe/generators/simplexframe/app/cases/shared/login.rb",
41
+ "lib/simplexframe/generators/simplexframe/app/cases/spec_helper.rb.tt",
42
+ "lib/simplexframe/generators/simplexframe/app/matchers/.empty_directory",
43
+ "lib/simplexframe/generators/simplexframe/app/pages/%app_name%_navigator.rb.tt",
44
+ "lib/simplexframe/generators/simplexframe/app/pages/%app_name%_page.rb.tt",
45
+ "lib/simplexframe/generators/simplexframe/app/pages/baidu/baidu_page.rb.tt",
46
+ "lib/simplexframe/generators/simplexframe/app/pages/baidu/search_result_page.rb.tt",
47
+ "lib/simplexframe/generators/simplexframe/app/pages/components/.empty_directory",
48
+ "lib/simplexframe/generators/simplexframe/app/pages/components/menu.rb",
49
+ "lib/simplexframe/generators/simplexframe/app/pages/google/google_page.rb.tt",
50
+ "lib/simplexframe/generators/simplexframe/app/pages/google/google_search_result_page.rb.tt",
51
+ "lib/simplexframe/generators/simplexframe/app/pages/mantis/login_page.rb.tt",
52
+ "lib/simplexframe/generators/simplexframe/app/pages/mantis/my_view_page.rb.tt",
53
+ "lib/simplexframe/generators/simplexframe/app/pages/mantis/report_issue_page.rb.tt",
54
+ "lib/simplexframe/generators/simplexframe/app/pages/mantis/view_all_bug_page.rb.tt",
55
+ "lib/simplexframe/generators/simplexframe/app/reports/.empty_directory",
56
+ "lib/simplexframe/generators/simplexframe/app/test_data/baidu.yml",
57
+ "lib/simplexframe/generators/simplexframe/app/test_data/login_user.yml",
58
+ "lib/simplexframe/generators/simplexframe/bin/console",
59
+ "lib/simplexframe/generators/simplexframe/bin/console.bat",
60
+ "lib/simplexframe/generators/simplexframe/bin/setup.rb.tt",
61
+ "lib/simplexframe/generators/simplexframe/config/config.yml",
62
+ "lib/simplexframe/generators/simplexframe/config/simplexframe_formatter.rb",
63
+ "lib/simplexframe/simple_config.rb",
64
+ "lib/simplexframe/simple_initializer.rb",
65
+ "lib/simplexframe/simple_navigator.rb",
66
+ "lib/simplexframe/simple_page.rb",
67
+ "spec/app/pages/components/footer.rb",
68
+ "spec/app/pages/components/sub/sub_footer.rb",
69
+ "spec/app/pages/module1/module1_page.rb",
70
+ "spec/app/pages/module1/sub_test_page.rb",
71
+ "spec/app/pages/test_navigator.rb",
72
+ "spec/app/pages/test_page.rb",
73
+ "spec/config/config.yml",
74
+ "spec/config/wrong_config.yml",
75
+ "spec/simple_config_spec.rb",
76
+ "spec/simple_initializer_spec.rb",
77
+ "spec/simple_navigator_spec.rb",
78
+ "spec/simple_page_spec.rb",
79
+ "spec/pages/components/footer.rb",
80
+ "spec/pages/test_page.rb",
81
+ "spec/spec_helper.rb",
82
+ "spec/string_spec.rb"
83
+ ]
84
+ s.homepage = "https://github.com/thesimplex/simplexframe"
85
+ s.licenses = ["MIT"]
86
+ s.require_paths = ["lib"]
87
+ s.rubygems_version = "1.8.17"
88
+ s.summary = "A simple web automation test framework"
89
+
90
+ if s.respond_to? :specification_version then
91
+ s.specification_version = 3
92
+
93
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
94
+ s.add_runtime_dependency(%q<rspec>, [">= 2.13.0"])
95
+ s.add_runtime_dependency(%q<page-object>, [">= 0.8.6.1"])
96
+ s.add_runtime_dependency(%q<thor>, [">= 0.14.6"])
97
+ s.add_runtime_dependency(%q<active_support>, ["~> 3.0.0"])
98
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
99
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
100
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
101
+ s.add_development_dependency(%q<rspec>, [">= 2.13.0"])
102
+ s.add_development_dependency(%q<page-object>, [">= 0.8.6.1"])
103
+ s.add_development_dependency(%q<thor>, [">= 0.14.6"])
104
+ s.add_development_dependency(%q<active_support>, ["~> 3.0.0"])
105
+ else
106
+ s.add_dependency(%q<rspec>, [">= 2.13.0"])
107
+ s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
108
+ s.add_dependency(%q<thor>, [">= 0.14.6"])
109
+ s.add_dependency(%q<active_support>, ["~> 3.0.0"])
110
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
111
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
112
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
113
+ s.add_dependency(%q<rspec>, [">= 2.13.0"])
114
+ s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
115
+ s.add_dependency(%q<thor>, [">= 0.14.6"])
116
+ s.add_dependency(%q<active_support>, ["~> 3.0.0"])
117
+ end
118
+ else
119
+ s.add_dependency(%q<rspec>, [">= 2.13.0"])
120
+ s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
121
+ s.add_dependency(%q<thor>, [">= 0.14.6"])
122
+ s.add_dependency(%q<active_support>, ["~> 3.0.0"])
123
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
124
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
125
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
126
+ s.add_dependency(%q<rspec>, [">= 2.13.0"])
127
+ s.add_dependency(%q<page-object>, [">= 0.8.6.1"])
128
+ s.add_dependency(%q<thor>, [">= 0.14.6"])
129
+ s.add_dependency(%q<active_support>, ["~> 3.0.0"])
130
+ end
131
+ end
132
+