merb-gen 1.0.15 → 1.1.0.pre
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/Rakefile +59 -69
- data/bin/merb-gen +14 -2
- data/lib/generators/fcgi.rb +16 -0
- data/lib/generators/merb/merb_core.rb +14 -12
- data/lib/generators/merb/merb_flat.rb +11 -6
- data/lib/generators/merb/merb_stack.rb +14 -22
- data/lib/generators/merb/merb_very_flat.rb +32 -11
- data/lib/generators/passenger.rb +15 -0
- data/lib/generators/resource_controller.rb +1 -1
- data/lib/generators/templates/application/common/Gemfile +12 -0
- data/lib/generators/templates/application/common/Rakefile +10 -1
- data/lib/generators/templates/application/common/dotgitignore +3 -3
- data/lib/generators/templates/application/common/merb +20 -0
- data/lib/generators/templates/application/merb_core/autotest/merb_rspec.rb +9 -9
- data/lib/generators/templates/application/merb_core/config/init.rb +3 -5
- data/lib/generators/templates/application/merb_core/spec/spec.opts +1 -1
- data/lib/generators/templates/application/merb_core/spec/spec_helper.rb +9 -7
- data/lib/generators/templates/application/merb_core/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_flat/application.rbt +3 -0
- data/lib/generators/templates/application/merb_flat/config/init.rb +23 -19
- data/lib/generators/templates/application/merb_flat/spec/spec_helper.rb +8 -6
- data/lib/generators/templates/application/merb_flat/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_plugin/Rakefile +35 -4
- data/lib/generators/templates/application/merb_stack/Gemfile +48 -0
- data/lib/generators/templates/application/merb_stack/autotest/merb_rspec.rb +7 -7
- data/lib/generators/templates/application/merb_stack/config/init.rb +2 -2
- data/lib/generators/templates/application/merb_stack/config.ru +23 -0
- data/lib/generators/templates/application/merb_stack/spec/spec.opts +1 -1
- data/lib/generators/templates/application/merb_stack/spec/spec_helper.rb +9 -7
- data/lib/generators/templates/application/merb_stack/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_very_flat/application.rbt +1 -8
- data/lib/generators/templates/application/merb_very_flat/spec/spec_helper.rb +8 -6
- data/lib/generators/templates/application/merb_very_flat/test/test_helper.rb +9 -7
- data/lib/generators/templates/{application/common → component/fcgi}/dothtaccess +1 -2
- data/lib/generators/templates/{application/merb_stack/public → component/fcgi}/merb.fcgi +10 -4
- data/lib/generators/templates/component/model/spec/models/%file_name%_spec.rb +1 -1
- data/lib/merb-gen/app_generator.rb +58 -0
- data/lib/merb-gen/generator.rb +1 -1
- data/lib/merb-gen/version.rb +17 -0
- data/lib/merb-gen.rb +27 -25
- data/spec/controller_spec.rb +1 -1
- data/spec/fcgi_spec.rb +24 -0
- data/spec/generator_spec.rb +1 -1
- data/spec/layout_spec.rb +1 -1
- data/spec/merb_core_spec.rb +17 -5
- data/spec/merb_flat_spec.rb +10 -1
- data/spec/merb_plugin_spec.rb +3 -3
- data/spec/merb_stack_spec.rb +23 -10
- data/spec/merb_very_flat_spec.rb +13 -2
- data/spec/migration_spec.rb +1 -1
- data/spec/model_spec.rb +1 -1
- data/spec/named_generator_spec.rb +1 -1
- data/spec/namespaced_generator_spec.rb +1 -1
- data/spec/part_controller_spec.rb +1 -1
- data/spec/passenger_spec.rb +20 -0
- data/spec/resource_controller_spec.rb +1 -1
- data/spec/resource_spec.rb +1 -1
- data/spec/session_migration_spec.rb +1 -1
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +53 -4
- metadata +78 -45
- data/lib/generators/templates/application/common/doc.thor +0 -149
- data/lib/generators/templates/application/common/merb_thor/app_script.rb +0 -31
- data/lib/generators/templates/application/common/merb_thor/common.rb +0 -68
- data/lib/generators/templates/application/common/merb_thor/gem_ext.rb +0 -125
- data/lib/generators/templates/application/common/merb_thor/main.thor +0 -151
- data/lib/generators/templates/application/common/merb_thor/ops.rb +0 -93
- data/lib/generators/templates/application/common/merb_thor/utils.rb +0 -40
- data/lib/generators/templates/application/merb_core/public/merb.fcgi +0 -22
- data/lib/generators/templates/application/merb_stack/config/dependencies.rb +0 -34
- data/lib/generators/thor.rb +0 -33
data/Rakefile
CHANGED
@@ -1,78 +1,68 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
##############################################################################
|
4
|
-
# Package && release
|
5
|
-
##############################################################################
|
6
|
-
RUBY_FORGE_PROJECT = "merb"
|
7
|
-
PROJECT_URL = "http://merbivore.com"
|
8
|
-
PROJECT_SUMMARY = "Generators suite for Merb."
|
9
|
-
PROJECT_DESCRIPTION = PROJECT_SUMMARY
|
10
|
-
|
11
|
-
GEM_AUTHOR = "Jonas Nicklas"
|
12
|
-
GEM_EMAIL = "jonas.nicklas@gmail.com"
|
13
|
-
|
14
|
-
GEM_NAME = "merb-gen"
|
15
|
-
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
16
|
-
GEM_VERSION = Merb::VERSION + PKG_BUILD
|
17
|
-
|
18
|
-
RELEASE_NAME = "REL #{GEM_VERSION}"
|
19
|
-
|
20
|
-
require "extlib/tasks/release"
|
21
|
-
|
22
|
-
spec = Gem::Specification.new do |s|
|
23
|
-
s.rubyforge_project = RUBY_FORGE_PROJECT
|
24
|
-
s.name = GEM_NAME
|
25
|
-
s.version = GEM_VERSION
|
26
|
-
s.platform = Gem::Platform::RUBY
|
27
|
-
s.has_rdoc = true
|
28
|
-
s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
|
29
|
-
s.summary = PROJECT_SUMMARY
|
30
|
-
s.description = PROJECT_DESCRIPTION
|
31
|
-
s.author = GEM_AUTHOR
|
32
|
-
s.email = GEM_EMAIL
|
33
|
-
s.homepage = PROJECT_URL
|
34
|
-
s.bindir = "bin"
|
35
|
-
s.executables = %w( merb-gen )
|
36
|
-
|
37
|
-
s.add_dependency "merb-core", ">= #{Merb::VERSION}"
|
38
|
-
s.add_dependency "templater", ">= 0.3.3"
|
39
|
-
|
40
|
-
s.require_path = 'lib'
|
41
|
-
s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,bin,spec,merb}/**/*")
|
42
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
43
3
|
|
44
|
-
|
45
|
-
|
46
|
-
end
|
4
|
+
# Assume a typical dev checkout to fetch the current merb-core version
|
5
|
+
require File.expand_path('../../merb-core/lib/merb-core/version', __FILE__)
|
47
6
|
|
48
|
-
|
49
|
-
|
50
|
-
Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
|
51
|
-
end
|
7
|
+
# Load this library's version information
|
8
|
+
require File.expand_path('../lib/merb-gen/version', __FILE__)
|
52
9
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
10
|
+
begin
|
11
|
+
|
12
|
+
gem 'jeweler', '~> 1.4'
|
13
|
+
require 'jeweler'
|
14
|
+
|
15
|
+
Jeweler::Tasks.new do |gemspec|
|
16
|
+
|
17
|
+
gemspec.version = Merb::Generators::VERSION
|
18
|
+
|
19
|
+
gemspec.name = "merb-gen"
|
20
|
+
gemspec.description = "Merb plugin containing useful code generators"
|
21
|
+
gemspec.summary = "Merb plugin that provides a suite of code generators for Merb."
|
22
|
+
|
23
|
+
gemspec.authors = [ "Jonas Nicklas" ]
|
24
|
+
gemspec.email = "jonas.nicklas@gmail.com"
|
25
|
+
gemspec.homepage = "http://merbivore.com/"
|
26
|
+
|
27
|
+
gemspec.files = %w(LICENSE Rakefile README TODO) + Dir['{bin,lib,spec}/**/*']
|
28
|
+
|
29
|
+
# Runtime dependencies
|
30
|
+
gemspec.add_dependency('merb-core', "~> #{Merb::VERSION}")
|
31
|
+
gemspec.add_dependency "templater", ">= 1.0.0"
|
32
|
+
|
33
|
+
# Development dependencies
|
34
|
+
gemspec.add_development_dependency 'rspec', '>= 1.2.9'
|
35
|
+
|
36
|
+
# Executable files
|
37
|
+
gemspec.executables = 'merb-gen'
|
57
38
|
|
58
|
-
desc "Create a gemspec file"
|
59
|
-
task :gemspec do
|
60
|
-
File.open("#{GEM_NAME}.gemspec", "w") do |file|
|
61
|
-
file.puts spec.to_ruby
|
62
39
|
end
|
40
|
+
|
41
|
+
Jeweler::GemcutterTasks.new
|
42
|
+
|
43
|
+
rescue LoadError
|
44
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
63
45
|
end
|
64
46
|
|
65
|
-
|
66
|
-
Spec::Rake::SpecTask.new(
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
47
|
+
require 'spec/rake/spectask'
|
48
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
49
|
+
spec.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
|
50
|
+
spec.libs << 'lib' << 'spec'
|
51
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
52
|
+
end
|
53
|
+
|
54
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
55
|
+
spec.libs << 'lib' << 'spec'
|
56
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
57
|
+
spec.rcov = true
|
75
58
|
end
|
76
59
|
|
77
|
-
|
78
|
-
|
60
|
+
task :default => :spec
|
61
|
+
|
62
|
+
require 'rake/rdoctask'
|
63
|
+
Rake::RDocTask.new do |rdoc|
|
64
|
+
rdoc.rdoc_dir = 'rdoc'
|
65
|
+
rdoc.title = "test_gem #{Merb::Generators::VERSION}"
|
66
|
+
rdoc.rdoc_files.include('README*')
|
67
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
68
|
+
end
|
data/bin/merb-gen
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require 'rubygems'
|
4
3
|
require 'merb-gen'
|
5
4
|
|
6
|
-
|
5
|
+
begin
|
6
|
+
# Just in case the bundle was locked
|
7
|
+
# This shouldn't happen in a dev environment but lets be safe
|
8
|
+
require '.bundle/environment'
|
9
|
+
rescue LoadError
|
10
|
+
begin
|
11
|
+
require 'rubygems'
|
12
|
+
require 'bundler'
|
13
|
+
Bundler.setup
|
14
|
+
rescue Bundler::GemfileNotFound
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Merb::Generators.run_cli(Dir.pwd, 'merb-gen', Merb::VERSION, ARGV)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Merb::Generators
|
2
|
+
class FcgiGenerator < AppGenerator
|
3
|
+
|
4
|
+
desc <<-DESC
|
5
|
+
Generates the configuration files needed to run Merb with FastCGI.
|
6
|
+
DESC
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.join(super, 'component', 'fcgi')
|
10
|
+
end
|
11
|
+
|
12
|
+
file :dothtaccess, "dothtaccess", File.join("public", ".htaccess")
|
13
|
+
file :merbfcgi, "merb.fcgi", File.join("public", "merb.fcgi")
|
14
|
+
end
|
15
|
+
add :fcgi, FcgiGenerator
|
16
|
+
end
|
@@ -44,7 +44,19 @@ module Merb
|
|
44
44
|
# ==== Common directories & files
|
45
45
|
#
|
46
46
|
|
47
|
-
empty_directory :
|
47
|
+
empty_directory :lib_tasks, 'lib/tasks'
|
48
|
+
|
49
|
+
empty_directory :bin, 'bin'
|
50
|
+
template :merb do |template|
|
51
|
+
template.source = File.join(common_templates_dir, "merb")
|
52
|
+
template.destination = "bin/merb"
|
53
|
+
end
|
54
|
+
|
55
|
+
template :gemfile do |template|
|
56
|
+
template.source = File.join(common_templates_dir, "Gemfile")
|
57
|
+
template.destination = "Gemfile"
|
58
|
+
end
|
59
|
+
|
48
60
|
template :rakefile do |template|
|
49
61
|
template.source = File.join(common_templates_dir, "Rakefile")
|
50
62
|
template.destination = "Rakefile"
|
@@ -55,22 +67,12 @@ module Merb
|
|
55
67
|
file.destination = ".gitignore"
|
56
68
|
end
|
57
69
|
|
58
|
-
file :htaccess do |file|
|
59
|
-
file.source = File.join(common_templates_dir, 'dothtaccess')
|
60
|
-
file.destination = 'public/.htaccess'
|
61
|
-
end
|
62
|
-
|
63
70
|
directory :test_dir do |directory|
|
64
71
|
dir = testing_framework == :rspec ? "spec" : "test"
|
65
72
|
|
66
73
|
directory.source = File.join(source_root, dir)
|
67
74
|
directory.destination = dir
|
68
75
|
end
|
69
|
-
|
70
|
-
directory :thor_file do |directory|
|
71
|
-
directory.source = File.join(common_templates_dir, "merb_thor")
|
72
|
-
directory.destination = File.join("tasks", "merb.thor")
|
73
|
-
end
|
74
76
|
|
75
77
|
#
|
76
78
|
# ==== Layout specific things
|
@@ -83,7 +85,7 @@ module Merb
|
|
83
85
|
glob! "config"
|
84
86
|
glob! "doc", []
|
85
87
|
glob! "public"
|
86
|
-
|
88
|
+
|
87
89
|
invoke :layout do |generator|
|
88
90
|
generator.new(destination_root, options, 'application')
|
89
91
|
end
|
@@ -44,7 +44,17 @@ module Merb
|
|
44
44
|
# ==== Common directories & files
|
45
45
|
#
|
46
46
|
|
47
|
-
empty_directory :
|
47
|
+
empty_directory :bin, 'bin'
|
48
|
+
template :merb do |template|
|
49
|
+
template.source = File.join(common_templates_dir, "merb")
|
50
|
+
template.destination = "bin/merb"
|
51
|
+
end
|
52
|
+
|
53
|
+
template :gemfile do |template|
|
54
|
+
template.source = File.join(common_templates_dir, "Gemfile")
|
55
|
+
template.destination = "Gemfile"
|
56
|
+
end
|
57
|
+
|
48
58
|
template :rakefile do |template|
|
49
59
|
template.source = File.join(common_templates_dir, "Rakefile")
|
50
60
|
template.destination = "Rakefile"
|
@@ -62,11 +72,6 @@ module Merb
|
|
62
72
|
directory.destination = dir
|
63
73
|
end
|
64
74
|
|
65
|
-
directory :thor_file do |directory|
|
66
|
-
directory.source = File.join(common_templates_dir, "merb_thor")
|
67
|
-
directory.destination = File.join("tasks", "merb.thor")
|
68
|
-
end
|
69
|
-
|
70
75
|
#
|
71
76
|
# ==== Layout specific things
|
72
77
|
#
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'merb-gen/version'
|
2
|
+
|
1
3
|
module Merb
|
2
4
|
module Generators
|
3
5
|
class MerbStackGenerator < AppGenerator
|
@@ -48,7 +50,14 @@ module Merb
|
|
48
50
|
# ==== Common directories & files
|
49
51
|
#
|
50
52
|
|
51
|
-
empty_directory :
|
53
|
+
empty_directory :bin, 'bin'
|
54
|
+
template :merb do |template|
|
55
|
+
template.source = File.join(common_templates_dir, "merb")
|
56
|
+
template.destination = "bin/merb"
|
57
|
+
end
|
58
|
+
|
59
|
+
empty_directory :lib_tasks, 'lib/tasks'
|
60
|
+
|
52
61
|
template :rakefile do |template|
|
53
62
|
template.source = File.join(common_templates_dir, "Rakefile")
|
54
63
|
template.destination = "Rakefile"
|
@@ -59,26 +68,11 @@ module Merb
|
|
59
68
|
file.destination = ".gitignore"
|
60
69
|
end
|
61
70
|
|
62
|
-
file :htaccess do |file|
|
63
|
-
file.source = File.join(common_templates_dir, 'dothtaccess')
|
64
|
-
file.destination = 'public/.htaccess'
|
65
|
-
end
|
66
|
-
|
67
|
-
file :doctask do |file|
|
68
|
-
file.source = File.join(common_templates_dir, 'doc.thor')
|
69
|
-
file.destination = 'tasks/doc.thor'
|
70
|
-
end
|
71
|
-
|
72
71
|
file :jquery do |file|
|
73
72
|
file.source = File.join(common_templates_dir, 'jquery.js')
|
74
73
|
file.destination = 'public/javascripts/jquery.js'
|
75
74
|
end
|
76
75
|
|
77
|
-
directory :thor_file do |directory|
|
78
|
-
directory.source = File.join(common_templates_dir, "merb_thor")
|
79
|
-
directory.destination = File.join("tasks", "merb.thor")
|
80
|
-
end
|
81
|
-
|
82
76
|
directory :test_dir do |directory|
|
83
77
|
dir = testing_framework == :rspec ? "spec" : "test"
|
84
78
|
|
@@ -89,17 +83,15 @@ module Merb
|
|
89
83
|
#
|
90
84
|
# ==== Layout specific things
|
91
85
|
#
|
92
|
-
|
93
|
-
|
94
|
-
Merb::VERSION
|
95
|
-
end
|
86
|
+
template :gemfile, "Gemfile", "Gemfile"
|
87
|
+
file :passenger_config, "config.ru"
|
96
88
|
|
97
89
|
def dm_gems_version
|
98
|
-
Merb::
|
90
|
+
Merb::Generators::DM_VERSION_REQUIREMENT
|
99
91
|
end
|
100
92
|
|
101
93
|
def do_gems_version
|
102
|
-
Merb::
|
94
|
+
Merb::Generators::DO_VERSION_REQUIREMENT
|
103
95
|
end
|
104
96
|
|
105
97
|
# empty array means all files are considered to be just
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module Merb
|
2
2
|
module Generators
|
3
3
|
class MerbVeryFlatGenerator < AppGenerator
|
4
|
+
#
|
5
|
+
# ==== Paths
|
6
|
+
#
|
7
|
+
|
4
8
|
def self.source_root
|
5
9
|
File.join(super, 'application', 'merb_very_flat')
|
6
10
|
end
|
@@ -15,10 +19,13 @@ module Merb
|
|
15
19
|
end
|
16
20
|
|
17
21
|
def common_templates_dir
|
18
|
-
|
19
|
-
'templates', 'application', 'common'))
|
22
|
+
self.class.common_templates_dir
|
20
23
|
end
|
21
24
|
|
25
|
+
#
|
26
|
+
# ==== Generator options
|
27
|
+
#
|
28
|
+
|
22
29
|
option :testing_framework, :default => :rspec,
|
23
30
|
:desc => 'Testing framework to use (one of: rspec, test_unit).'
|
24
31
|
option :orm, :default => :none,
|
@@ -33,6 +40,26 @@ module Merb
|
|
33
40
|
|
34
41
|
first_argument :name, :required => true, :desc => "Application name"
|
35
42
|
|
43
|
+
#
|
44
|
+
# ==== Common directories & files
|
45
|
+
#
|
46
|
+
|
47
|
+
empty_directory :bin, 'bin'
|
48
|
+
template :merb do |template|
|
49
|
+
template.source = File.join(common_templates_dir, "merb")
|
50
|
+
template.destination = "bin/merb"
|
51
|
+
end
|
52
|
+
|
53
|
+
template :gemfile do |template|
|
54
|
+
template.source = File.join(common_templates_dir, "Gemfile")
|
55
|
+
template.destination = "Gemfile"
|
56
|
+
end
|
57
|
+
|
58
|
+
template :rakefile do |template|
|
59
|
+
template.source = File.join(common_templates_dir, "Rakefile")
|
60
|
+
template.destination = "Rakefile"
|
61
|
+
end
|
62
|
+
|
36
63
|
template :application do |template|
|
37
64
|
template.source = 'application.rbt'
|
38
65
|
template.destination = "#{base_name}.rb"
|
@@ -49,15 +76,9 @@ module Merb
|
|
49
76
|
directory.destination = dir
|
50
77
|
end
|
51
78
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
template :rakefile do |template|
|
58
|
-
template.source = File.join(common_templates_dir, "Rakefile")
|
59
|
-
template.destination = "Rakefile"
|
60
|
-
end
|
79
|
+
#
|
80
|
+
# ==== Layout specific things
|
81
|
+
#
|
61
82
|
|
62
83
|
def class_name
|
63
84
|
self.name.gsub("-", "_").camel_case
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Merb::Generators
|
2
|
+
class PassengerGenerator < AppGenerator
|
3
|
+
|
4
|
+
desc <<-DESC
|
5
|
+
Generates the configuration files needed to run Merb with Phusion Passenger.
|
6
|
+
DESC
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.join(super, 'application', 'merb_stack')
|
10
|
+
end
|
11
|
+
|
12
|
+
file :config, "config.ru"
|
13
|
+
end
|
14
|
+
add :passenger, PassengerGenerator
|
15
|
+
end
|
@@ -32,7 +32,7 @@ module Merb::Generators
|
|
32
32
|
template.destination = "app/controllers" / base_path / "#{file_name}.rb"
|
33
33
|
self.add_resource_route(self.plural_model) unless skip_route_definition?
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
[:index, :show, :edit, :new].each do |view|
|
37
37
|
template "view_#{view}_none".to_sym, :template_engine => :erb, :orm => :none do |template|
|
38
38
|
template.source = "app/views/%file_name%/#{view}.html.erb"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# dependencies are generated using a strict version, don't forget to edit the dependency versions when upgrading.
|
2
|
+
merb_gems_version = "<%= merb_gems_version %>"
|
3
|
+
|
4
|
+
# If you did disable json for Merb, comment out this line.
|
5
|
+
# If you want use json gem just change it.
|
6
|
+
# Don't use json gem version lower than 1.1.7! Older versions has security bug!
|
7
|
+
gem "json_pure", ">= 1.1.7", :require => "json"
|
8
|
+
gem "merb-core", merb_gems_version
|
9
|
+
|
10
|
+
<%= gems_for_orm(orm) %>
|
11
|
+
<%= gems_for_template_engine(template_engine) %>
|
12
|
+
<%= gems_for_testing_framework(testing_framework) %>
|
@@ -1,4 +1,13 @@
|
|
1
|
-
|
1
|
+
begin
|
2
|
+
# Just in case the bundle was locked
|
3
|
+
# This shouldn't happen in a dev environment but lets be safe
|
4
|
+
require '.bundle/environment'
|
5
|
+
rescue LoadError
|
6
|
+
require 'rubygems'
|
7
|
+
require 'bundler'
|
8
|
+
Bundler.setup
|
9
|
+
end
|
10
|
+
|
2
11
|
require 'rake/rdoctask'
|
3
12
|
|
4
13
|
require 'merb-core'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
# Just in case the bundle was locked
|
5
|
+
# This shouldn't happen in a dev environment but lets be safe
|
6
|
+
require File.expand_path('.bundle/environment', __FILE__)
|
7
|
+
rescue LoadError
|
8
|
+
require 'rubygems'
|
9
|
+
require 'bundler'
|
10
|
+
Bundler.setup
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'merb-core'
|
14
|
+
|
15
|
+
ARGV.push '-H' if ARGV[0] && ARGV[0] =~ /^[^-]/
|
16
|
+
unless %w[-a --adapter -i --irb-console -r --script-runner].any? { |o| ARGV.index(o) }
|
17
|
+
ARGV.push *%w[-a mongrel]
|
18
|
+
end
|
19
|
+
|
20
|
+
Merb.start
|
@@ -14,7 +14,7 @@ class Autotest::MerbRspec < Autotest
|
|
14
14
|
super
|
15
15
|
|
16
16
|
# Ignore any happenings in these directories
|
17
|
-
add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)%
|
17
|
+
add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3|.*\.thor)%
|
18
18
|
# Ignore SCM directories and custom Autotest mappings
|
19
19
|
%w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
|
20
20
|
|
@@ -44,7 +44,7 @@ class Autotest::MerbRspec < Autotest
|
|
44
44
|
# Any change to global_helpers will result in all view and controller
|
45
45
|
# tests being run
|
46
46
|
add_mapping %r%^app/helpers/global_helpers\.rb% do
|
47
|
-
files_matching %r%^spec/(views|controllers|helpers)/.*_spec\.rb$%
|
47
|
+
files_matching %r%^spec/(views|controllers|helpers|requests)/.*_spec\.rb$%
|
48
48
|
end
|
49
49
|
|
50
50
|
# Any change to a helper will cause its spec to be run
|
@@ -54,7 +54,7 @@ class Autotest::MerbRspec < Autotest
|
|
54
54
|
|
55
55
|
# Changes to a view cause its spec to be run
|
56
56
|
add_mapping %r%^app/views/(.*)/% do |_, m|
|
57
|
-
spec_for(m[1], '
|
57
|
+
spec_for(m[1], 'request')
|
58
58
|
end
|
59
59
|
|
60
60
|
# Changes to a controller result in its corresponding spec being run. If
|
@@ -62,15 +62,15 @@ class Autotest::MerbRspec < Autotest
|
|
62
62
|
# controller specs are run.
|
63
63
|
add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
|
64
64
|
if ["application", "exception"].include?(m[1])
|
65
|
-
files_matching %r%^spec/
|
65
|
+
files_matching %r%^spec/requests/.*_spec\.rb$%
|
66
66
|
else
|
67
|
-
spec_for(m[1], '
|
67
|
+
spec_for(m[1], 'request')
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
71
|
# If a change is made to the router, run controller, view and helper specs
|
72
72
|
add_mapping %r%^config/router.rb$% do
|
73
|
-
files_matching %r%^spec/(controllers|
|
73
|
+
files_matching %r%^spec/(views|controllers|helpers|requests)/.*_spec\.rb$%
|
74
74
|
end
|
75
75
|
|
76
76
|
# If any of the major files governing the environment are altered, run
|
@@ -157,9 +157,9 @@ private
|
|
157
157
|
# String
|
158
158
|
#
|
159
159
|
# ==== Example
|
160
|
-
# > spec_for('post', :
|
161
|
-
# => "spec/
|
160
|
+
# > spec_for('post', :model')
|
161
|
+
# => "spec/models/post_spec.rb"
|
162
162
|
def spec_for(match, kind)
|
163
|
-
|
163
|
+
files_matching %r%^spec/#{kind}s/#{match}(/.*)?_spec.rb$%
|
164
164
|
end
|
165
165
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# Go to http://wiki.merbivore.com/pages/init-rb
|
2
|
-
|
3
|
-
# Specify a specific version of a dependency
|
4
|
-
# dependency "RedCloth", "> 3.0"
|
5
2
|
|
6
|
-
|
3
|
+
# Specify your dependencies in the Gemfile
|
4
|
+
<%= "use_orm :#{orm}" unless orm == :none %>
|
7
5
|
use_test :<%= testing_framework %>
|
8
6
|
use_template_engine :<%= template_engine %>
|
9
7
|
|
@@ -22,4 +20,4 @@ end
|
|
22
20
|
|
23
21
|
Merb::BootLoader.after_app_loads do
|
24
22
|
# This will get executed after your app's classes have been loaded.
|
25
|
-
end
|
23
|
+
end
|
@@ -1,2 +1,2 @@
|
|
1
1
|
--format specdoc
|
2
|
-
--colour
|
2
|
+
--colour
|
@@ -1,13 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
begin
|
2
|
+
# Just in case the bundle was locked
|
3
|
+
# This shouldn't happen in a dev environment but lets be safe
|
4
|
+
require File.expand_path('../.bundle/environment', __FILE__)
|
5
|
+
rescue LoadError
|
6
|
+
require 'rubygems'
|
7
|
+
require 'bundler'
|
8
|
+
Bundler.setup
|
7
9
|
end
|
8
10
|
|
9
|
-
require "merb-core"
|
10
11
|
require "spec" # Satisfies Autotest and anyone else not using the Rake tasks
|
12
|
+
require "merb-core"
|
11
13
|
|
12
14
|
# this loads all plugins required in your init file so don't add them
|
13
15
|
# here again, Merb will do it for you
|
@@ -1,9 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
begin
|
2
|
+
# Just in case the bundle was locked
|
3
|
+
# This shouldn't happen in a dev environment but lets be safe
|
4
|
+
require File.expand_path('../.bundle/environment', __FILE__)
|
5
|
+
rescue LoadError
|
6
|
+
require 'rubygems'
|
7
|
+
require 'bundler'
|
8
|
+
Bundler.setup
|
7
9
|
end
|
8
10
|
|
9
11
|
require "merb-core"
|
@@ -16,4 +18,4 @@ Merb.start :environment => (ENV['MERB_ENV'] || 'test'),
|
|
16
18
|
class Test::Unit::TestCase
|
17
19
|
include Merb::Test::RequestHelper
|
18
20
|
# Add more helper methods to be used by all tests here...
|
19
|
-
end
|
21
|
+
end
|
@@ -1,5 +1,8 @@
|
|
1
1
|
class <%= class_name %> < Merb::Controller
|
2
2
|
|
3
|
+
# Templates go in: views/index.html.<%= template_engine %>
|
4
|
+
# Layouts go in: views/layout.application.html.<%= template_engine %>
|
5
|
+
# Modify this method to use another location.
|
3
6
|
def _template_location(action, type = nil, controller = controller_name)
|
4
7
|
controller == "layout" ? "layout.#{action}.#{type}" : "#{action}.#{type}"
|
5
8
|
end
|