integra 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ba28710f95525dfe85086db933f38d3e77819e4f
4
+ data.tar.gz: 6c00e2048eb5bd4b3220c3a56ac8e59b32442740
5
+ SHA512:
6
+ metadata.gz: f3802a54d043b5e49e6361e8ef9ed9ebca279dd201328fb383ecf2e507d60e7c4d902b5875623fd25c16db14d6ed81603cb4b5e7d2d7ae7048d5454aea803af6
7
+ data.tar.gz: 7549ca51fa1c1f5f386f57164ab8bc7ae8e6dbbebbacf6f0d26a531a7a7a7878ab333dad295b542b2cd0f71553c19e9e86ee88bf9275c3eeadba120f2cc5206f
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in integra.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Endel Dreyer
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
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.
data/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # Integra
2
+
3
+ A nice set of defaults for integration tests, no matter what language your
4
+ application is written in.
5
+
6
+ ## Requirements
7
+
8
+ - [ruby >= 1.9.2](http://rvm.io/)
9
+ - [phantomjs](https://github.com/ariya/phantomjs)
10
+
11
+ ## Installation
12
+
13
+ Install it globally in your system:
14
+
15
+ $ gem install integra
16
+
17
+ ## How to use
18
+
19
+ Goto your project root and run the initializer:
20
+
21
+ $ cd ~/Projects/my-nice-project/
22
+ $ integra init localhost
23
+
24
+ For custom [gherkin](https://github.com/cucumber/gherkin) language support, use
25
+ the `--lang=` option:
26
+
27
+ $ integra init --lang=pt
28
+
29
+ ## The defaults
30
+
31
+ - [turnip](https://github.com/jnicklas/turnip/)
32
+ - [turnip_formatter](https://github.com/gongo/turnip_formatter/)
33
+ - [capybara](https://github.com/jnicklas/capybara)
34
+ - [rspec](https://github.com/rspec/rspec)
35
+ - [poltergeist](https://github.com/jonleighton/poltergeist)
36
+
37
+ ## Contributing
38
+
39
+ 1. Fork it
40
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
41
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
42
+ 4. Push to the branch (`git push origin my-new-feature`)
43
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/integra ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ $: << './lib'
3
+ require 'optparse'
4
+ require 'integra'
5
+
6
+ options = {
7
+ :command => (ARGV[0].kind_of?(String) && !ARGV[0].start_with?('-')) ? ARGV.shift : :run,
8
+ :args => ARGV.select {|arg| !arg.start_with?('-') }
9
+ }
10
+
11
+ config_file = File.expand_path('.integra')
12
+ if File.exists?(config_file)
13
+ ARGV.concat open(config_file).read.split("\n")
14
+ end
15
+
16
+ OptionParser.new do |opts|
17
+ opts.banner = "Usage: integra [options]"
18
+ opts.separator "Options:"
19
+
20
+ opts.on_tail("-v", "--version", "Show version") do |v|
21
+ puts "#{Integra::NAME} v#{Integra::VERSION}"
22
+ exit
23
+ end
24
+
25
+ opts.on_tail("-h", "--help", "Show help") do |v|
26
+ puts opts
27
+ exit
28
+ end
29
+
30
+ opts.on("--project_name=", "Project name") do |name|
31
+ options[:project_name] = name
32
+ end
33
+
34
+ opts.on("--app_host=", "Application host to be tested") do |host|
35
+ options[:app_host] = host
36
+ end
37
+
38
+ opts.on("--lang=", "Specify gherkin language") do |lang|
39
+ options[:lang] = lang
40
+ end
41
+
42
+ opts.on("--driver=", "Specify default capybara driver") do |driver|
43
+ options[:driver] = driver
44
+ end
45
+ end.parse!
46
+
47
+ Integra.command!(options)
data/integra.gemspec ADDED
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'integra/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = Integra::NAME
8
+ spec.version = Integra::VERSION
9
+ spec.authors = ["Endel Dreyer"]
10
+ spec.email = ["endel.dreyer@gmail.com"]
11
+
12
+ spec.description = %q{A nice set of defaults for integration tests, no matter what language your application is written in.}
13
+ spec.summary = %q{Integration testing tools.}
14
+ spec.homepage = "https://github.com/endel/integra"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files`.split($/)
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency 'rspec', '>= 2.14.1'
23
+ spec.add_dependency 'poltergeist', '>= 1.4.1'
24
+ spec.add_dependency 'capybara', '>= 2.1.0'
25
+ spec.add_dependency 'turnip', '>= 1.1.0'
26
+ spec.add_dependency 'turnip_formatter', '>= 0.2.7'
27
+ spec.add_dependency 'gnawrnip', '>= 0.1.3'
28
+ spec.add_dependency 'colorize', '>= 0.6.0'
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.3"
31
+ spec.add_development_dependency "rake"
32
+ end
data/lib/integra.rb ADDED
@@ -0,0 +1,29 @@
1
+ require "integra/version"
2
+
3
+ module Integra
4
+ autoload :Commands, 'integra/commands'
5
+ autoload :Config, 'integra/config'
6
+ autoload :Logger, 'integra/logger'
7
+
8
+ module Drivers; end
9
+
10
+ class << self
11
+ attr_accessor :logger, :config
12
+ end
13
+
14
+ def self.command!(options={})
15
+ @logger = Logger.new
16
+ @config = Config.new(options)
17
+
18
+ Commands.send(options[:command], options)
19
+ end
20
+
21
+ # Return a directory with the project libraries.
22
+ def self.gem_libdir
23
+ t = ["#{File.dirname(File.expand_path($0))}/../lib/#{Integra::NAME}",
24
+ "#{Gem.dir}/gems/#{Integra::NAME}-#{Integra::VERSION}/lib/#{Integra::NAME}"]
25
+ t.each {|i| return i if File.readable?(i) }
26
+ raise "both paths are invalid: #{t}"
27
+ end
28
+
29
+ end
@@ -0,0 +1,72 @@
1
+ require 'integra'
2
+
3
+ #
4
+ # simulate rspec command call for rspec autorun
5
+ #
6
+ $0 = 'rspec'
7
+ require 'rspec/autorun'
8
+
9
+ require "turnip"
10
+ require "turnip/rspec"
11
+ require 'turnip/capybara'
12
+ require "turnip_formatter"
13
+
14
+ require 'integra/ext/gherkin'
15
+ require 'integra/defaults/placeholders'
16
+
17
+ # Load all steps
18
+ Dir.glob("features/steps/**.rb") { |f| load f, true }
19
+
20
+ # Load all support files
21
+ Dir.glob("features/support/**.rb") { |f| load f, true }
22
+
23
+ require 'capybara'
24
+ require 'capybara/rspec'
25
+ require 'capybara/webkit'
26
+
27
+ #
28
+ # Take screenshots on every step
29
+ #
30
+ require 'gnawrnip'
31
+ Gnawrnip.ready!
32
+ Gnawrnip.configure do |c|
33
+ c.publisher_driver = :js
34
+ c.make_animation = true
35
+ c.frame_interval = 2000 # milliseconds
36
+ c.frame_size = [640, 360] # width, height
37
+ end
38
+
39
+ #
40
+ # Configure Selenium + Vagrant | Multiple browsers
41
+ # http://www.without-brains.net/blog/2012/08/01/capybara-and-selenium-with-vagrant/
42
+ #
43
+
44
+ Capybara.app_host = Integra.config.app_host
45
+ Capybara.default_wait_time = 10
46
+ Capybara.ignore_hidden_elements = false
47
+
48
+ #
49
+ # Setup driver
50
+ #
51
+ require "integra/drivers/#{Integra.config.driver}"
52
+ Capybara.default_driver = Integra.config.driver
53
+
54
+ #
55
+ # RSpec configuration
56
+ #
57
+ RSpec.configure do |c|
58
+ c.project_name = Integra.config.project_name
59
+
60
+ c.before(:type => :feature) do
61
+ #
62
+ # Use Firefox as default user-agent
63
+ #
64
+ page.driver.add_headers({
65
+ "User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0"
66
+ }) if page.driver.respond_to?(:add_headers)
67
+ end
68
+
69
+ c.after(:type => :feature) do |group|
70
+ #page.save_screenshot("./tmp/screenshots/#{example.description.downcase}-#{Integra.config.driver}.png")
71
+ end
72
+ end
@@ -0,0 +1,55 @@
1
+ module Integra
2
+ module Commands
3
+ extend self
4
+
5
+ def run(options)
6
+ Integra.logger.log("Running: #{Integra.config.app_host}", :green)
7
+ require 'integra/autorun'
8
+ end
9
+
10
+ def init(options)
11
+ require 'fileutils'
12
+
13
+ if (app_host = options[:args].first)
14
+ Integra.config.app_host = self.build_url(app_host)
15
+ end
16
+
17
+ # Create '.integra' file.
18
+ ['integra', 'rspec'].each do |file|
19
+ File.open(File.expand_path("./.#{file}"), 'w+') do |f|
20
+ data = open("#{Integra.gem_libdir}/template/#{file}").read
21
+ #
22
+ # replace config variables
23
+ #
24
+ data.gsub!('{lang}', Integra.config.lang.to_s)
25
+ data.gsub!('{app_host}', Integra.config.app_host.to_s)
26
+ f.write(data)
27
+ end
28
+ Integra.logger.action('create', "./.#{file}")
29
+ end
30
+
31
+ # Create 'features' and 'support' directories
32
+ FileUtils.mkdir_p(File.expand_path('./features/support/'))
33
+
34
+ # Sample feature
35
+ FileUtils.cp(Integra.gem_libdir + "/template/i18n/sample.#{Integra.config.lang}.feature", File.expand_path('./features/sample.feature'))
36
+ Integra.logger.action('create', './features/sample.feature')
37
+
38
+ support_dest = './features/support/'
39
+ Dir.glob(Integra.gem_libdir + "/template/features/support/*.rb").each do |source|
40
+ unless File.exists?(File.expand_path("#{support_dest}#{File.basename(source)}"))
41
+ FileUtils.cp(source, File.expand_path(support_dest))
42
+ Integra.logger.action('create', "#{support_dest}#{File.basename(source)}")
43
+ end
44
+ end
45
+ end
46
+
47
+ protected
48
+
49
+ def build_url(url)
50
+ url = "http://#{url}" if !url.start_with?('http')
51
+ url
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,16 @@
1
+ require 'ostruct'
2
+
3
+ module Integra
4
+ class Config < OpenStruct
5
+ def initialize(options)
6
+ configs = {}
7
+
8
+ configs[:driver] = (options[:driver] || 'poltergeist').to_sym
9
+ configs[:lang] = (options[:lang] || 'en').to_sym
10
+ configs[:app_host] = options[:app_host] || 'http://localhost'
11
+ configs[:project_name] = options[:project_name] || File.basename(File.expand_path('.'))
12
+
13
+ super(configs)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,30 @@
1
+ placeholder :url do
2
+ match /([a-z0-9A-Z\.\-\/]+)/ do |url|
3
+ url
4
+ end
5
+ end
6
+
7
+ placeholder :float do
8
+ match /[0-9\.]+/ do |float|
9
+ float.to_i
10
+ end
11
+ end
12
+
13
+ placeholder :int do
14
+ match /[0-9]+/ do |int|
15
+ int.to_i
16
+ end
17
+ end
18
+
19
+ placeholder :selector do
20
+ match /'([^']+)'/ do |selector|
21
+ selector
22
+ end
23
+ end
24
+
25
+ placeholder :email do
26
+ match /([a-z0-9\.\-@]+)/ do |email|
27
+ email
28
+ end
29
+ end
30
+
@@ -0,0 +1,13 @@
1
+ require 'capybara/poltergeist'
2
+
3
+ Capybara.register_driver :poltergeist do |app|
4
+ Capybara::Poltergeist::Driver.new(app, {
5
+ :timeout => 35, # seconds to communicate with phantomjs
6
+ :phantomjs_logger => Logger.new($stdout),
7
+ :phantomjs_options => [
8
+ '--load-images=no', '--ignore-ssl-errors=yes', '--local-to-remote-url-access=yes'
9
+ ],
10
+ #:debug => true,
11
+ :window_size => [1280, 1024]
12
+ })
13
+ end
@@ -0,0 +1 @@
1
+ require 'selenium-webdriver'
@@ -0,0 +1,22 @@
1
+ #
2
+ # Override default iso_code for pt support
3
+ #
4
+
5
+ module Gherkin
6
+ module Parser
7
+ class Parser
8
+
9
+ # Initialize the parser. +machine_name+ refers to a state machine table.
10
+ def initialize(formatter, raise_on_error=true, machine_name='root', force_ruby=false, iso_code=Integra.config.lang.to_s)
11
+ @formatter = formatter
12
+ @listener = Listener::FormatterListener.new(@formatter)
13
+ @raise_on_error = raise_on_error
14
+ @machine_name = machine_name
15
+ @machines = []
16
+ @lexer = Gherkin::Lexer::I18nLexer.new(self, force_ruby, iso_code)
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,22 @@
1
+ require 'logger'
2
+ require 'colorize'
3
+
4
+ module Integra
5
+ class Logger
6
+ def initialize
7
+ @logger = ::Logger.new(STDOUT)
8
+ @logger.formatter = proc do |severity, datetime, progname, msg|
9
+ "#{msg}\n"
10
+ end
11
+ end
12
+
13
+ def log(action, color=:green)
14
+ @logger.info("#{action.send(color)}")
15
+ end
16
+
17
+ def action(name, description)
18
+ @logger.info("#{name.green}\t#{description}")
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ #
2
+ # Define custom placeholders for step definitions here
3
+ #
4
+ # Example:
5
+ #
6
+ # placeholder :url do
7
+ # match /([a-z0-9A-Z\.\-\/]+)/ do |url|
8
+ # url
9
+ # end
10
+ # end
@@ -0,0 +1,56 @@
1
+ #
2
+ # ---------
3
+ # URL Steps
4
+ # ---------
5
+ # step "access :url" do |url|
6
+ # visit url
7
+ # end
8
+ #
9
+ # Defining a step alias:
10
+ # step "access homepage" do
11
+ # step "access /"
12
+ # end
13
+ #
14
+ # -----------
15
+ # Login steps
16
+ # -----------
17
+ # step "login with :email and :password" do |email, password|
18
+ # click_link 'link_login'
19
+ #
20
+ # within('#login') do
21
+ # fill_in 'user', :with => email
22
+ # fill_in 'password', :with => password
23
+ # end
24
+ #
25
+ # find('#submit').click
26
+ # sleep 10 # wait for redirects...
27
+ # end
28
+ #
29
+ # step "i'm logged in" do
30
+ # step "access homepage"
31
+ # step "login with username@domain.com p4ssw0rd"
32
+ # end
33
+ #
34
+ # --------------
35
+ # CSS assertions
36
+ # --------------
37
+ # step "element :selector should exist" do |selector|
38
+ # page.should have_selector(selector)
39
+ # end
40
+ #
41
+ # step "elemento :selector shouldn't exist" do |selector|
42
+ # page.should_not have_selector(selector)
43
+ # end
44
+ #
45
+ # -----------
46
+ # Utilities
47
+ # -----------
48
+ # step "wait for ajax" do
49
+ # Timeout.timeout(Capybara.default_wait_time) do
50
+ # loop do
51
+ # active = page.evaluate_script('jQuery.active')
52
+ # break if active == 0
53
+ # end
54
+ # end
55
+ # end
56
+ #
@@ -0,0 +1,9 @@
1
+ Feature: Pretty Formatter
2
+ In order to have pretty gherkin
3
+ I want to verify that all prettified cucumber features parse OK
4
+
5
+ Scenario: Parse all the features in Cucumber
6
+ Given I have Cucumber's source code next to Gherkin's
7
+ And I find all of the .feature files
8
+ When I send each prettified original through the "pretty" machinery
9
+ Then the machinery output should be identical to the prettified original
@@ -0,0 +1,9 @@
1
+ Funcionalidade: Formatter Bonito
2
+ Para se ter maxixe muito
3
+ Quero verificar se todos os recursos pepino embelezados analisar OK
4
+
5
+ Cenário: Analisar todos os recursos do Pepino
6
+ Dado que eu tenho o código fonte do pepino ao lado do Gherkin
7
+ E eu encontrar todos os arquivos de funcionalidades
8
+ Quando eu enviar cada original prettified através do mecanismo "bastante"
9
+ Então a saída de máquinas devem ser idênticas ao original prettified
@@ -0,0 +1,2 @@
1
+ --lang={lang}
2
+ --app_host={app_host}
@@ -0,0 +1,6 @@
1
+ --default_path features
2
+ --color
3
+ --format progress
4
+ --format documentation -o tmp/integration.txt
5
+ --format RSpecTurnipFormatter -o tmp/integration.html
6
+
@@ -0,0 +1,4 @@
1
+ module Integra
2
+ NAME = 'integra'
3
+ VERSION = "0.0.1"
4
+ end
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: integra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Endel Dreyer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-11-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.14.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.14.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: poltergeist
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.4.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: capybara
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.1.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.1.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: turnip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: turnip_formatter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.7
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.7
83
+ - !ruby/object:Gem::Dependency
84
+ name: gnawrnip
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.3
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.1.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: colorize
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.6.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.6.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: A nice set of defaults for integration tests, no matter what language
140
+ your application is written in.
141
+ email:
142
+ - endel.dreyer@gmail.com
143
+ executables:
144
+ - integra
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - .gitignore
149
+ - Gemfile
150
+ - LICENSE.txt
151
+ - README.md
152
+ - Rakefile
153
+ - bin/integra
154
+ - integra.gemspec
155
+ - lib/integra.rb
156
+ - lib/integra/autorun.rb
157
+ - lib/integra/commands.rb
158
+ - lib/integra/config.rb
159
+ - lib/integra/defaults/placeholders.rb
160
+ - lib/integra/drivers/poltergeist.rb
161
+ - lib/integra/drivers/selenium.rb
162
+ - lib/integra/ext/gherkin.rb
163
+ - lib/integra/logger.rb
164
+ - lib/integra/template/features/support/placeholders.rb
165
+ - lib/integra/template/features/support/steps.rb
166
+ - lib/integra/template/i18n/sample.en.feature
167
+ - lib/integra/template/i18n/sample.pt.feature
168
+ - lib/integra/template/integra
169
+ - lib/integra/template/rspec
170
+ - lib/integra/version.rb
171
+ homepage: https://github.com/endel/integra
172
+ licenses:
173
+ - MIT
174
+ metadata: {}
175
+ post_install_message:
176
+ rdoc_options: []
177
+ require_paths:
178
+ - lib
179
+ required_ruby_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - '>='
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ requirements: []
190
+ rubyforge_project:
191
+ rubygems_version: 2.1.8
192
+ signing_key:
193
+ specification_version: 4
194
+ summary: Integration testing tools.
195
+ test_files: []
196
+ has_rdoc: