simplexframe 0.0.01

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