steak 0.4.0.beta.1 → 1.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +94 -48
- data/Rakefile +1 -1
- data/lib/rspec-1/rails/generators/acceptance_spec/USAGE +1 -0
- data/lib/rspec-1/rails/generators/acceptance_spec/acceptance_spec_generator.rb +9 -0
- data/lib/{generators → rspec-1/rails/generators}/acceptance_spec/templates/acceptance_spec.rb +2 -3
- data/lib/{generators → rspec-1/rails/generators}/steak/USAGE +4 -4
- data/lib/rspec-1/rails/generators/steak/steak_generator.rb +26 -0
- data/lib/rspec-1/rails/generators/steak/templates/acceptance_helper.rb +18 -0
- data/lib/rspec-1/rails/generators/steak/templates/helpers.rb +5 -0
- data/lib/rspec-1/rails/generators/steak/templates/paths.rb +9 -0
- data/lib/rspec-1/rails/generators/steak/templates/steak.rake +19 -0
- data/lib/rspec-1/steak.rb +23 -0
- data/lib/rspec-2/rails/generators/install_generator.rb +39 -0
- data/lib/rspec-2/rails/generators/spec_generator.rb +33 -0
- data/lib/{generators/steak → rspec-2/rails/generators}/templates/acceptance_helper.rb +8 -10
- data/lib/rspec-2/rails/generators/templates/acceptance_spec.rb +12 -0
- data/lib/rspec-2/rails/generators/templates/helpers.rb +5 -0
- data/lib/rspec-2/rails/generators/templates/paths.rb +9 -0
- data/lib/rspec-2/rails/railtie.rb +14 -0
- data/lib/{generators/steak/templates → rspec-2/rails/tasks}/steak.rake +2 -2
- data/lib/rspec-2/steak.rb +22 -0
- data/lib/steak.rb +8 -10
- data/spec/acceptance/rspec-1/acceptance_helper.rb +95 -0
- data/spec/acceptance/{acceptance_spec_generator_spec.rb → rspec-1/acceptance_spec_generator_spec.rb} +14 -15
- data/spec/acceptance/{basic_spec.rb → rspec-1/basic_spec.rb} +7 -8
- data/spec/acceptance/{rails_spec.rb → rspec-1/rails_spec.rb} +10 -12
- data/spec/acceptance/{steak_generator_spec.rb → rspec-1/steak_generator_spec.rb} +22 -26
- data/spec/acceptance/rspec-2/acceptance_helper.rb +87 -0
- data/spec/acceptance/rspec-2/basic_spec.rb +78 -0
- data/spec/acceptance/rspec-2/rails_spec.rb +89 -0
- data/spec/acceptance/rspec-2/steak_install_generator_spec.rb +66 -0
- data/spec/acceptance/rspec-2/steak_spec_generator_spec.rb +63 -0
- metadata +112 -26
- data/init.rb +0 -8
- data/lib/generators/acceptance_spec/USAGE +0 -0
- data/lib/generators/acceptance_spec/acceptance_spec_generator.rb +0 -13
- data/lib/generators/steak/steak_generator.rb +0 -29
- data/lib/generators/steak/templates/helpers.rb +0 -6
- data/lib/generators/steak/templates/paths.rb +0 -9
- data/spec/acceptance/acceptance_helper.rb +0 -76
data/init.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
# Placeholder to satisfy Rails.
|
2
|
-
#
|
3
|
-
# Do NOT add any require statements to this file. Doing
|
4
|
-
# so will cause Rails to load this plugin all of the time.
|
5
|
-
#
|
6
|
-
# spec/acceptance/acceptance_helper.rb should include the necessary
|
7
|
-
# require statements and configuration. This file should
|
8
|
-
# be required by all of your acceptance specs.
|
File without changes
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
class AcceptanceSpecGenerator < Rails::Generators::NamedBase
|
4
|
-
def manifest
|
5
|
-
empty_directory File.join('spec/acceptance', class_path)
|
6
|
-
file_name.gsub!(/_spec$/,"")
|
7
|
-
template 'acceptance_spec.rb', File.join('spec/acceptance', class_path, "#{file_name}_spec.rb")
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.source_root
|
11
|
-
File.join(File.dirname(__FILE__), 'templates')
|
12
|
-
end
|
13
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
class SteakGenerator < Rails::Generators::Base
|
4
|
-
class_option :webrat, :desc => 'Use Webrat.', :type => :boolean
|
5
|
-
class_option :capybara, :desc => 'Use Capybara.', :type => :boolean
|
6
|
-
|
7
|
-
def initialize(args=[], options={}, config={})
|
8
|
-
puts "Defaulting to Capybara..." if options.empty?
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
def manifest
|
13
|
-
empty_directory 'spec/controllers'
|
14
|
-
empty_directory 'spec/acceptance/support'
|
15
|
-
empty_directory 'lib/tasks'
|
16
|
-
template "acceptance_helper.rb", "spec/acceptance/acceptance_helper.rb"
|
17
|
-
copy_file "helpers.rb", "spec/acceptance/support/helpers.rb"
|
18
|
-
copy_file "paths.rb", "spec/acceptance/support/paths.rb"
|
19
|
-
copy_file "steak.rake", "lib/tasks/steak.rake"
|
20
|
-
end
|
21
|
-
|
22
|
-
def driver
|
23
|
-
@driver = options.webrat? ? 'webrat' : 'capybara'
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.source_root
|
27
|
-
File.join(File.dirname(__FILE__), 'templates')
|
28
|
-
end
|
29
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rspec'
|
3
|
-
require File.dirname(__FILE__) + "/../../lib/steak"
|
4
|
-
require 'tempfile'
|
5
|
-
|
6
|
-
module Factories
|
7
|
-
def create_spec(options)
|
8
|
-
options = {:content => options} unless options.is_a?(Hash)
|
9
|
-
path = (options[:path] || Dir.tmpdir) + "/#{String.random}_spec.rb"
|
10
|
-
File.open(path, "w") do |file|
|
11
|
-
file.write options[:content]
|
12
|
-
end
|
13
|
-
path
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_rails_app(options = {})
|
17
|
-
path = File.join(Dir.tmpdir, String.random, "rails_app")
|
18
|
-
FileUtils.rm_rf path
|
19
|
-
`rails #{path}`
|
20
|
-
FileUtils.rm_rf path + '/public/index.html'
|
21
|
-
File.open(File.join(path, "Gemfile"), "a") do |file|
|
22
|
-
file.write "\ngem 'rspec-rails', '>= 2.0.0.a9'\n" <<
|
23
|
-
"gem 'capybara'\n"
|
24
|
-
end
|
25
|
-
|
26
|
-
File.open(File.join(path, "Gemfile"), "a") do |file|
|
27
|
-
file.write "\ngem 'steak', :path => '#{File.expand_path(File.dirname(__FILE__) + '/../..')}'\n"
|
28
|
-
end
|
29
|
-
|
30
|
-
Dir.chdir path do
|
31
|
-
`rails generate rspec:install`
|
32
|
-
if options[:scaffold]
|
33
|
-
`rails generate scaffold #{options[:scaffold]}`
|
34
|
-
`rake db:create db:migrate db:test:prepare`
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
unless options[:setup_steak] == false
|
39
|
-
Dir.chdir path do
|
40
|
-
`rails generate steak`
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
path
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
module HelperMethods
|
50
|
-
def run_spec(file_path, app_base=nil)
|
51
|
-
if app_base
|
52
|
-
current_dir = Dir.pwd
|
53
|
-
Dir.chdir app_base
|
54
|
-
end
|
55
|
-
|
56
|
-
output = `rspec #{file_path} 2>&1`
|
57
|
-
|
58
|
-
Dir.chdir current_dir if app_base
|
59
|
-
output
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class String
|
64
|
-
unless const_defined?("CHARS")
|
65
|
-
CHARS = ('a'..'z').to_a + ('A'..'Z').to_a
|
66
|
-
end
|
67
|
-
|
68
|
-
def self.random(size = 8)
|
69
|
-
(0..size).map{ CHARS[rand(CHARS.length)] }.join
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
Rspec.configure do |config|
|
74
|
-
config.include(Factories)
|
75
|
-
config.include(HelperMethods)
|
76
|
-
end
|