merb_activerecord 0.9.3 → 0.9.4
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 +48 -29
- data/lib/active_record/merbtasks.rb +8 -10
- data/lib/generators/migration.rb +4 -0
- data/lib/generators/model.rb +8 -0
- data/lib/generators/resource_controller.rb +12 -0
- data/lib/generators/session_migration.rb +4 -0
- data/lib/generators/templates/migration/schema/migrations/%file_name%.rb +19 -0
- data/lib/generators/templates/model/app/models/%file_name%.rb +4 -0
- data/lib/generators/templates/resource_controller/app/controllers/%file_name%.rb +57 -0
- data/lib/generators/templates/resource_controller/app/views/%file_name%/edit.html.erb +3 -0
- data/lib/generators/templates/resource_controller/app/views/%file_name%/index.html.erb +3 -0
- data/lib/generators/templates/resource_controller/app/views/%file_name%/new.html.erb +3 -0
- data/lib/generators/templates/resource_controller/app/views/%file_name%/show.html.erb +3 -0
- data/lib/generators/templates/session_migration/schema/migrations/%version%_sessions.rb +14 -0
- data/lib/merb/orms/active_record/connection.rb +8 -2
- data/lib/merb/orms/active_record/database.yml.sample +4 -1
- data/lib/merb/session/active_record_session.rb +1 -1
- data/lib/merb_activerecord.rb +7 -1
- metadata +35 -40
- data/activerecord_generators/database_sessions_migration/USAGE +0 -5
- data/activerecord_generators/database_sessions_migration/database_sessions_migration_generator.rb +0 -53
- data/activerecord_generators/database_sessions_migration/templates/sessions_migration.erb +0 -15
- data/activerecord_generators/migration/USAGE +0 -5
- data/activerecord_generators/migration/migration_generator.rb +0 -42
- data/activerecord_generators/migration/templates/schema/migrations/%migration_file_name%.rb +0 -17
- data/activerecord_generators/model/USAGE +0 -4
- data/activerecord_generators/model/model_generator.rb +0 -41
- data/activerecord_generators/model/templates/app/models/%model_file_name%.rb +0 -2
- data/activerecord_generators/resource_controller/USAGE +0 -0
- data/activerecord_generators/resource_controller/resource_controller_generator.rb +0 -74
- data/activerecord_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb +0 -68
- data/activerecord_generators/resource_controller/templates/app/helpers/%controller_file_name%_helper.rb +0 -16
- data/activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/edit.html.erb +0 -3
- data/activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/index.html.erb +0 -3
- data/activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/new.html.erb +0 -3
- data/activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/show.html.erb +0 -3
data/Rakefile
CHANGED
@@ -1,45 +1,64 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake/gempackagetask'
|
3
|
+
require "extlib"
|
4
|
+
require 'merb-core/tasks/merb_rake_helper'
|
5
|
+
require "spec/rake/spectask"
|
3
6
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
##############################################################################
|
8
|
+
# Package && release
|
9
|
+
##############################################################################
|
10
|
+
RUBY_FORGE_PROJECT = "merb"
|
11
|
+
PROJECT_URL = "http://merbivore.com"
|
12
|
+
PROJECT_SUMMARY = "Merb plugin that provides ActiveRecord support for Merb"
|
13
|
+
PROJECT_DESCRIPTION = PROJECT_SUMMARY
|
14
|
+
|
15
|
+
GEM_AUTHOR = "Duane Johnson"
|
16
|
+
GEM_EMAIL = "canadaduane@gmail.com"
|
17
|
+
|
18
|
+
GEM_NAME = "merb_activerecord"
|
19
|
+
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
20
|
+
GEM_VERSION = (Merb::MORE_VERSION rescue "0.9.4") + PKG_BUILD
|
21
|
+
|
22
|
+
RELEASE_NAME = "REL #{GEM_VERSION}"
|
23
|
+
|
24
|
+
require "extlib/tasks/release"
|
11
25
|
|
12
26
|
spec = Gem::Specification.new do |s|
|
13
|
-
s.
|
14
|
-
s.
|
27
|
+
s.rubyforge_project = RUBY_FORGE_PROJECT
|
28
|
+
s.name = GEM_NAME
|
29
|
+
s.version = GEM_VERSION
|
15
30
|
s.platform = Gem::Platform::RUBY
|
16
31
|
s.has_rdoc = true
|
17
32
|
s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
|
18
|
-
s.summary =
|
19
|
-
s.description =
|
20
|
-
s.author =
|
21
|
-
s.email =
|
22
|
-
s.homepage =
|
23
|
-
s.add_dependency(
|
24
|
-
s.require_path =
|
25
|
-
s.
|
26
|
-
s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs,activerecord_generators}/**/*")
|
27
|
-
end
|
28
|
-
|
29
|
-
windows = (PLATFORM =~ /win32|cygwin/) rescue nil
|
30
|
-
|
31
|
-
SUDO = windows ? "" : "sudo"
|
33
|
+
s.summary = PROJECT_SUMMARY
|
34
|
+
s.description = PROJECT_DESCRIPTION
|
35
|
+
s.author = GEM_AUTHOR
|
36
|
+
s.email = GEM_EMAIL
|
37
|
+
s.homepage = PROJECT_URL
|
38
|
+
s.add_dependency('merb-core', '>= 0.9.4')
|
39
|
+
s.require_path = 'lib'
|
40
|
+
s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs}/**/*") end
|
32
41
|
|
33
42
|
Rake::GemPackageTask.new(spec) do |pkg|
|
34
43
|
pkg.gem_spec = spec
|
35
44
|
end
|
36
45
|
|
37
|
-
desc "Install
|
38
|
-
task :install => :package do
|
39
|
-
sh %{#{
|
46
|
+
desc "Install the gem"
|
47
|
+
task :install => [:package] do
|
48
|
+
sh %{#{sudo} gem install #{install_home} pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources}
|
49
|
+
end
|
50
|
+
|
51
|
+
namespace :jruby do
|
52
|
+
|
53
|
+
desc "Run :package and install the resulting .gem with jruby"
|
54
|
+
task :install => :package do
|
55
|
+
sh %{#{sudo} jruby -S gem install #{install_home} pkg/#{GEM_NAME}-#{GEM_VERSION}.gem --no-rdoc --no-ri}
|
56
|
+
end
|
57
|
+
|
40
58
|
end
|
41
59
|
|
42
|
-
desc "
|
43
|
-
|
44
|
-
|
60
|
+
desc "Run all specs"
|
61
|
+
Spec::Rake::SpecTask.new("specs") do |t|
|
62
|
+
t.spec_opts = ["--format", "specdoc", "--colour"]
|
63
|
+
t.spec_files = Dir["spec/**/*_spec.rb"].sort
|
45
64
|
end
|
@@ -57,7 +57,7 @@ namespace :db do
|
|
57
57
|
when 'mysql'
|
58
58
|
ActiveRecord::Base.connection.drop_database config[:database]
|
59
59
|
when /^sqlite/
|
60
|
-
FileUtils.rm(File.join(
|
60
|
+
FileUtils.rm(File.join(Merb.root, config[:database]))
|
61
61
|
when 'postgresql'
|
62
62
|
ActiveRecord::Base.clear_active_connections!
|
63
63
|
`dropdb "#{config[:database]}"`
|
@@ -170,8 +170,9 @@ namespace :db do
|
|
170
170
|
require 'active_record/fixtures'
|
171
171
|
config = Merb::Orms::ActiveRecord.configurations[Merb.environment.to_sym]
|
172
172
|
ActiveRecord::Base.establish_connection(config)
|
173
|
-
|
174
|
-
|
173
|
+
test_folder = (Merb.test_framework_generator_scope == :rspec) ? 'spec' : 'test'
|
174
|
+
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(Merb.root, test_folder, 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
|
175
|
+
Fixtures.create_fixtures(File.join(test_folder, 'fixtures'), File.basename(fixture_file, '.*'))
|
175
176
|
end
|
176
177
|
end
|
177
178
|
end
|
@@ -315,13 +316,10 @@ namespace :db do
|
|
315
316
|
end
|
316
317
|
|
317
318
|
namespace :sessions do
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
# require 'rails_generator/scripts/generate'
|
323
|
-
# Rails::Generator::Scripts::Generate.new.run(["session_migration", ENV["MIGRATION"] || "AddSessions"])
|
324
|
-
# end
|
319
|
+
desc "Create sessions table"
|
320
|
+
task :create => :merb_start do
|
321
|
+
Merb::ActiveRecordSession.create_table!
|
322
|
+
end
|
325
323
|
|
326
324
|
desc "Clear the sessions table"
|
327
325
|
task :clear => :merb_start do
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Merb::Generators::ModelGenerator.template :model_activerecord, :orm => :activerecord do
|
2
|
+
source(File.dirname(__FILE__), "templates/model/app/models/%file_name%.rb")
|
3
|
+
destination("app/models", base_path, "#{file_name}.rb")
|
4
|
+
end
|
5
|
+
|
6
|
+
Merb::Generators::ModelGenerator.invoke :migration, :orm => :activerecord do |generator|
|
7
|
+
generator.new(destination_root, options.merge(:model => true), file_name, attributes)
|
8
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Merb::Generators::ResourceControllerGenerator.template :controller_activerecord, :orm => :activerecord do
|
2
|
+
source(File.dirname(__FILE__), "templates/resource_controller/app/controllers/%file_name%.rb")
|
3
|
+
destination("app/controllers", base_path, "#{file_name}.rb")
|
4
|
+
end
|
5
|
+
|
6
|
+
[:index, :show, :edit, :new].each do |view|
|
7
|
+
Merb::Generators::ResourceControllerGenerator.template "view_#{view}_activerecord".to_sym,
|
8
|
+
:orm => :activerecord, :template_engine => :erb do
|
9
|
+
source(File.dirname(__FILE__), "templates/resource_controller/app/views/%file_name%/#{view}.html.erb")
|
10
|
+
destination("app/views", base_path, "#{file_name}/#{view}.html.erb")
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
Merb::Generators::SessionMigrationGenerator.template :session_migration_activerecord, :orm => :activerecord do
|
2
|
+
source(File.dirname(__FILE__), 'templates/session_migration/schema/migrations/%version%_sessions.rb')
|
3
|
+
destination("schema/migrations/#{version}_sessions.rb")
|
4
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class <%= class_name %> < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
<% if model -%>
|
4
|
+
create_table :<%= table_name %> do |t|
|
5
|
+
<% attributes.each do |name, type| -%>
|
6
|
+
t.<%= name %> :<%= type %>
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
<% end -%>
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.down
|
15
|
+
<% if model -%>
|
16
|
+
drop_table :<%= table_name %>
|
17
|
+
<% end -%>
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class <%= class_name %> < Application
|
2
|
+
# provides :xml, :yaml, :js
|
3
|
+
|
4
|
+
def index
|
5
|
+
@<%= plural_model %> = <%= model_class_name %>.find(:all)
|
6
|
+
display @<%= plural_model %>
|
7
|
+
end
|
8
|
+
|
9
|
+
def show
|
10
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
11
|
+
raise NotFound unless @<%= singular_model %>
|
12
|
+
display @<%= singular_model %>
|
13
|
+
end
|
14
|
+
|
15
|
+
def new
|
16
|
+
only_provides :html
|
17
|
+
@<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
18
|
+
render
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
@<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
23
|
+
if @<%= singular_model %>.save
|
24
|
+
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
25
|
+
else
|
26
|
+
render :new
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def edit
|
31
|
+
only_provides :html
|
32
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
33
|
+
raise NotFound unless @<%= singular_model %>
|
34
|
+
render
|
35
|
+
end
|
36
|
+
|
37
|
+
def update
|
38
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
39
|
+
raise NotFound unless @<%= singular_model %>
|
40
|
+
if @<%= singular_model %>.update_attributes(params[:<%= singular_model %>])
|
41
|
+
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
42
|
+
else
|
43
|
+
raise BadRequest
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def destroy
|
48
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
49
|
+
raise NotFound unless @<%= singular_model %>
|
50
|
+
if @<%= singular_model %>.destroy
|
51
|
+
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>s)
|
52
|
+
else
|
53
|
+
raise BadRequest
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class DatabaseSessions < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :sessions do |t|
|
4
|
+
t.column :session_id, :string
|
5
|
+
t.column :data, :text
|
6
|
+
end
|
7
|
+
add_index :sessions, :session_id
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.down
|
11
|
+
remove_index :sessions, :session_id
|
12
|
+
drop_table :sessions
|
13
|
+
end
|
14
|
+
end
|
@@ -31,7 +31,13 @@ module Merb
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def config
|
34
|
-
|
34
|
+
#If Merb#runs_like specifies a differnt db env, use it.
|
35
|
+
env_sym = (Merb.environment_info.nil?) ?
|
36
|
+
Merb.environment.to_sym :
|
37
|
+
Merb.environment_info[:db_env].to_sym
|
38
|
+
|
39
|
+
raise ArgumentError, "missing environment :#{Merb.environment} in config file #{config_file}" unless configurations.key?(env_sym)
|
40
|
+
@config ||= (Merb::Plugins.config[:merb_active_record] = configurations[env_sym])
|
35
41
|
end
|
36
42
|
|
37
43
|
def configurations
|
@@ -62,7 +68,7 @@ module Merb
|
|
62
68
|
else
|
63
69
|
copy_sample_config
|
64
70
|
Merb.logger.error! "No database.yml file found in #{Merb.root}/config."
|
65
|
-
Merb.logger.error! "A sample file was created called database.sample
|
71
|
+
Merb.logger.error! "A sample file was created called database.yml.sample for you to copy and edit."
|
66
72
|
exit(1)
|
67
73
|
end
|
68
74
|
end
|
data/lib/merb_activerecord.rb
CHANGED
@@ -5,7 +5,7 @@ if defined?(Merb::Plugins)
|
|
5
5
|
|
6
6
|
class Merb::Orms::ActiveRecord::Connect < Merb::BootLoader
|
7
7
|
|
8
|
-
after
|
8
|
+
after BeforeAppLoads
|
9
9
|
|
10
10
|
def self.run
|
11
11
|
Merb::Orms::ActiveRecord.connect
|
@@ -13,5 +13,11 @@ if defined?(Merb::Plugins)
|
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
16
|
+
|
17
|
+
generators = File.join(File.dirname(__FILE__), 'generators')
|
18
|
+
Merb.add_generators generators / :migration
|
19
|
+
Merb.add_generators generators / :model
|
20
|
+
Merb.add_generators generators / :resource_controller
|
21
|
+
Merb.add_generators generators / :session_migration
|
16
22
|
|
17
23
|
end
|
metadata
CHANGED
@@ -1,25 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merb_activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duane Johnson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-08-13 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: merb-core
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
20
21
|
- - ">="
|
21
22
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.9.
|
23
|
+
version: 0.9.4
|
23
24
|
version:
|
24
25
|
description: Merb plugin that provides ActiveRecord support for Merb
|
25
26
|
email: canadaduane@gmail.com
|
@@ -38,6 +39,34 @@ files:
|
|
38
39
|
- TODO
|
39
40
|
- lib/active_record
|
40
41
|
- lib/active_record/merbtasks.rb
|
42
|
+
- lib/generators
|
43
|
+
- lib/generators/migration.rb
|
44
|
+
- lib/generators/model.rb
|
45
|
+
- lib/generators/resource_controller.rb
|
46
|
+
- lib/generators/session_migration.rb
|
47
|
+
- lib/generators/templates
|
48
|
+
- lib/generators/templates/migration
|
49
|
+
- lib/generators/templates/migration/schema
|
50
|
+
- lib/generators/templates/migration/schema/migrations
|
51
|
+
- lib/generators/templates/migration/schema/migrations/%file_name%.rb
|
52
|
+
- lib/generators/templates/model
|
53
|
+
- lib/generators/templates/model/app
|
54
|
+
- lib/generators/templates/model/app/models
|
55
|
+
- lib/generators/templates/model/app/models/%file_name%.rb
|
56
|
+
- lib/generators/templates/resource_controller
|
57
|
+
- lib/generators/templates/resource_controller/app
|
58
|
+
- lib/generators/templates/resource_controller/app/controllers
|
59
|
+
- lib/generators/templates/resource_controller/app/controllers/%file_name%.rb
|
60
|
+
- lib/generators/templates/resource_controller/app/views
|
61
|
+
- lib/generators/templates/resource_controller/app/views/%file_name%
|
62
|
+
- lib/generators/templates/resource_controller/app/views/%file_name%/edit.html.erb
|
63
|
+
- lib/generators/templates/resource_controller/app/views/%file_name%/index.html.erb
|
64
|
+
- lib/generators/templates/resource_controller/app/views/%file_name%/new.html.erb
|
65
|
+
- lib/generators/templates/resource_controller/app/views/%file_name%/show.html.erb
|
66
|
+
- lib/generators/templates/session_migration
|
67
|
+
- lib/generators/templates/session_migration/schema
|
68
|
+
- lib/generators/templates/session_migration/schema/migrations
|
69
|
+
- lib/generators/templates/session_migration/schema/migrations/%version%_sessions.rb
|
41
70
|
- lib/merb
|
42
71
|
- lib/merb/orms
|
43
72
|
- lib/merb/orms/active_record
|
@@ -48,40 +77,6 @@ files:
|
|
48
77
|
- lib/merb_activerecord.rb
|
49
78
|
- specs/merb_active_record_spec.rb
|
50
79
|
- specs/spec_helper.rb
|
51
|
-
- activerecord_generators/database_sessions_migration
|
52
|
-
- activerecord_generators/database_sessions_migration/database_sessions_migration_generator.rb
|
53
|
-
- activerecord_generators/database_sessions_migration/templates
|
54
|
-
- activerecord_generators/database_sessions_migration/templates/sessions_migration.erb
|
55
|
-
- activerecord_generators/database_sessions_migration/USAGE
|
56
|
-
- activerecord_generators/migration
|
57
|
-
- activerecord_generators/migration/migration_generator.rb
|
58
|
-
- activerecord_generators/migration/templates
|
59
|
-
- activerecord_generators/migration/templates/schema
|
60
|
-
- activerecord_generators/migration/templates/schema/migrations
|
61
|
-
- activerecord_generators/migration/templates/schema/migrations/%migration_file_name%.rb
|
62
|
-
- activerecord_generators/migration/USAGE
|
63
|
-
- activerecord_generators/model
|
64
|
-
- activerecord_generators/model/model_generator.rb
|
65
|
-
- activerecord_generators/model/templates
|
66
|
-
- activerecord_generators/model/templates/app
|
67
|
-
- activerecord_generators/model/templates/app/models
|
68
|
-
- activerecord_generators/model/templates/app/models/%model_file_name%.rb
|
69
|
-
- activerecord_generators/model/USAGE
|
70
|
-
- activerecord_generators/resource_controller
|
71
|
-
- activerecord_generators/resource_controller/resource_controller_generator.rb
|
72
|
-
- activerecord_generators/resource_controller/templates
|
73
|
-
- activerecord_generators/resource_controller/templates/app
|
74
|
-
- activerecord_generators/resource_controller/templates/app/controllers
|
75
|
-
- activerecord_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb
|
76
|
-
- activerecord_generators/resource_controller/templates/app/helpers
|
77
|
-
- activerecord_generators/resource_controller/templates/app/helpers/%controller_file_name%_helper.rb
|
78
|
-
- activerecord_generators/resource_controller/templates/app/views
|
79
|
-
- activerecord_generators/resource_controller/templates/app/views/%controller_file_name%
|
80
|
-
- activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/edit.html.erb
|
81
|
-
- activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/index.html.erb
|
82
|
-
- activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/new.html.erb
|
83
|
-
- activerecord_generators/resource_controller/templates/app/views/%controller_file_name%/show.html.erb
|
84
|
-
- activerecord_generators/resource_controller/USAGE
|
85
80
|
has_rdoc: true
|
86
81
|
homepage: http://merbivore.com
|
87
82
|
post_install_message:
|
@@ -103,8 +98,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
98
|
version:
|
104
99
|
requirements: []
|
105
100
|
|
106
|
-
rubyforge_project:
|
107
|
-
rubygems_version: 1.0
|
101
|
+
rubyforge_project: merb
|
102
|
+
rubygems_version: 1.2.0
|
108
103
|
signing_key:
|
109
104
|
specification_version: 2
|
110
105
|
summary: Merb plugin that provides ActiveRecord support for Merb
|
data/activerecord_generators/database_sessions_migration/database_sessions_migration_generator.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
class DatabaseSessionsMigrationGenerator < Merb::GeneratorBase
|
2
|
-
|
3
|
-
default_options :author => nil
|
4
|
-
|
5
|
-
def initialize(runtime_args, runtime_options = {})
|
6
|
-
# put somthing into the runtime_args so that super doesn't show the
|
7
|
-
# description
|
8
|
-
runtime_args.push ""
|
9
|
-
super
|
10
|
-
@name = 'database_sessions'
|
11
|
-
end
|
12
|
-
|
13
|
-
def manifest
|
14
|
-
record do |m|
|
15
|
-
# Ensure appropriate folder(s) exists
|
16
|
-
m.directory 'schema/migrations'
|
17
|
-
|
18
|
-
# Create stubs
|
19
|
-
highest_migration = Dir[Dir.pwd+'/schema/migrations/*'].map{|f| File.basename(f) =~ /^(\d+)/; $1}.max
|
20
|
-
filename = format("%03d_%s", (highest_migration.to_i+1), @name.snake_case)
|
21
|
-
m.template "sessions_migration.erb", "schema/migrations/#{filename}.rb"
|
22
|
-
puts banner
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
protected
|
28
|
-
def banner
|
29
|
-
<<-EOS
|
30
|
-
A migration to add sessions to your database has been created.
|
31
|
-
Run 'rake db:migrate' to add the sessions migration to your database.
|
32
|
-
|
33
|
-
EOS
|
34
|
-
end
|
35
|
-
|
36
|
-
def add_options!(opts)
|
37
|
-
# opts.separator ''
|
38
|
-
# opts.separator 'Options:'
|
39
|
-
# For each option below, place the default
|
40
|
-
# at the top of the file next to "default_options"
|
41
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
42
|
-
# "Some comment about this option",
|
43
|
-
# "Default: none") { |options[:author]| }
|
44
|
-
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
45
|
-
end
|
46
|
-
|
47
|
-
def extract_options
|
48
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
49
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
50
|
-
# raw instance variable value.
|
51
|
-
# @author = options[:author]
|
52
|
-
end
|
53
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
class MigrationGenerator < Merb::GeneratorBase
|
2
|
-
attr_reader :model_attributes, :model_class_name, :model_file_name, :table_name
|
3
|
-
|
4
|
-
def initialize(args, runtime_args = {})
|
5
|
-
@base = File.dirname(__FILE__)
|
6
|
-
super
|
7
|
-
@model_file_name = args.shift.snake_case
|
8
|
-
@table_name = @model_file_name.pluralize
|
9
|
-
@model_class_name = @model_file_name.to_const_string
|
10
|
-
@model_attributes = Hash[*(args.map{|a| a.split(":") }.flatten)]
|
11
|
-
end
|
12
|
-
|
13
|
-
def manifest
|
14
|
-
record do |m|
|
15
|
-
@m = m
|
16
|
-
|
17
|
-
m.directory "schema/migrations"
|
18
|
-
|
19
|
-
current_migration_number = Dir[Dir.pwd+'/schema/migrations/*'].map{|f| File.basename(f) =~ /^(\d+)/; $1}.max
|
20
|
-
@migration_file_name = format("%03d_%s", (current_migration_number.to_i+1), model_file_name) + "_migration"
|
21
|
-
|
22
|
-
@assigns = { :model_file_name => model_file_name,
|
23
|
-
:model_attributes => model_attributes,
|
24
|
-
:model_class_name => model_class_name,
|
25
|
-
:table_name => table_name,
|
26
|
-
:migration_file_name => @migration_file_name
|
27
|
-
}
|
28
|
-
copy_dirs
|
29
|
-
copy_files
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
protected
|
34
|
-
def banner
|
35
|
-
<<-EOS.split("\n").map{|x| x.strip}.join("\n")
|
36
|
-
Creates an Active Record Migration stub..
|
37
|
-
|
38
|
-
USAGE: #{spec.name}"
|
39
|
-
EOS
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class <%= model_class_name %>Migration < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
<%= "create_table :#{table_name} do |t|" if table_name %>
|
4
|
-
<% for attribute in model_attributes -%>
|
5
|
-
t.<%= "%-11s" % attribute.last %> :<%= attribute.first %>
|
6
|
-
<% end -%>
|
7
|
-
|
8
|
-
t.timestamps
|
9
|
-
<%= "end" if table_name %>
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
<% if table_name -%>
|
14
|
-
drop_table :<%= table_name %>
|
15
|
-
<% end -%>
|
16
|
-
end
|
17
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
class ModelGenerator < Merb::GeneratorBase
|
2
|
-
attr_reader :model_attributes, :model_class_name, :model_file_name, :migration_args
|
3
|
-
|
4
|
-
def initialize(args, runtime_args = {})
|
5
|
-
@base = File.dirname(__FILE__)
|
6
|
-
@migration_args = args.dup
|
7
|
-
super
|
8
|
-
@model_file_name = args.shift.snake_case
|
9
|
-
@model_class_name = @model_file_name.to_const_string
|
10
|
-
@model_attributes = Hash[*(args.map{|a| a.split(":") }.flatten)]
|
11
|
-
@model_file_name = "#{@model_class_name.snake_case}"
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
def manifest
|
17
|
-
record do |m|
|
18
|
-
@m = m
|
19
|
-
|
20
|
-
@assigns = { :model_file_name => model_file_name,
|
21
|
-
:model_attributes => model_attributes,
|
22
|
-
:model_class_name => model_class_name
|
23
|
-
}
|
24
|
-
copy_dirs
|
25
|
-
copy_files
|
26
|
-
|
27
|
-
m.dependency "migration", [*self.migration_args]
|
28
|
-
m.dependency "merb_model_test", [model_file_name], @assigns
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
protected
|
33
|
-
def banner
|
34
|
-
<<-EOS.split("\n").map{|x| x.strip}.join("\n")
|
35
|
-
Creates an Active Record Model stub..
|
36
|
-
|
37
|
-
USAGE: #{spec.name}"
|
38
|
-
EOS
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
File without changes
|
@@ -1,74 +0,0 @@
|
|
1
|
-
class ResourceControllerGenerator < Merb::GeneratorBase
|
2
|
-
|
3
|
-
attr_reader :controller_class_name,
|
4
|
-
:controller_file_name,
|
5
|
-
:controller_base_path,
|
6
|
-
:controller_modules,
|
7
|
-
:model_class_name,
|
8
|
-
:full_controller_const,
|
9
|
-
:singular_model,
|
10
|
-
:plural_model
|
11
|
-
|
12
|
-
def initialize(args, runtime_args = {})
|
13
|
-
@base = File.dirname(__FILE__)
|
14
|
-
|
15
|
-
super
|
16
|
-
name = args.shift
|
17
|
-
nfp = name.snake_case.gsub("::", "/")
|
18
|
-
nfp = nfp.split("/")
|
19
|
-
@model_class_name = nfp.pop.singularize.to_const_string
|
20
|
-
@model_class_name = runtime_args[:model_class_name] if runtime_args[:model_class_name]
|
21
|
-
@singular_model = @model_class_name.snake_case
|
22
|
-
@plural_model = @singular_model.pluralize
|
23
|
-
|
24
|
-
nfp << @plural_model
|
25
|
-
|
26
|
-
@controller_file_name = nfp.join("/")
|
27
|
-
|
28
|
-
# Need to setup the directories
|
29
|
-
unless @controller_file_name == File.basename(@controller_file_name)
|
30
|
-
@controller_base_path = controller_file_name.split("/")[0..-2].join("/")
|
31
|
-
end
|
32
|
-
|
33
|
-
@controller_modules = @controller_file_name.to_const_string.split("::")[0..-2]
|
34
|
-
@controller_class_name = @controller_file_name.to_const_string.split("::").last
|
35
|
-
|
36
|
-
@full_controller_const = ((@controller_modules.dup || []) << @controller_class_name).join("::")
|
37
|
-
end
|
38
|
-
|
39
|
-
def manifest
|
40
|
-
record do |m|
|
41
|
-
@m = m
|
42
|
-
|
43
|
-
# Create the controller directory
|
44
|
-
m.directory File.join("app/controllers", controller_base_path) if controller_base_path
|
45
|
-
|
46
|
-
# Create the helpers directory
|
47
|
-
m.directory File.join("app/helpers", controller_base_path) if controller_base_path
|
48
|
-
|
49
|
-
@assigns = {
|
50
|
-
:controller_modules => controller_modules,
|
51
|
-
:controller_class_name => controller_class_name,
|
52
|
-
:controller_file_name => controller_file_name,
|
53
|
-
:controller_base_path => controller_base_path,
|
54
|
-
:full_controller_const => full_controller_const,
|
55
|
-
:model_class_name => model_class_name,
|
56
|
-
:singular_model => singular_model,
|
57
|
-
:plural_model => plural_model
|
58
|
-
}
|
59
|
-
copy_dirs
|
60
|
-
copy_files
|
61
|
-
|
62
|
-
m.dependency "merb_resource_controller_test", [@controller_class_name], @assigns
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
protected
|
67
|
-
def banner
|
68
|
-
<<-EOS.split("\n").map{|x| x.strip}.join("\n")
|
69
|
-
Creates a basic Merb resource controller.
|
70
|
-
|
71
|
-
USAGE: #{spec.name} my_resource
|
72
|
-
EOS
|
73
|
-
end
|
74
|
-
end
|
data/activerecord_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
<% counter = 0 -%>
|
2
|
-
<% controller_modules.each_with_index do |mod, i| -%>
|
3
|
-
<%= " " * i %>module <%= mod %>
|
4
|
-
<% counter = i -%>
|
5
|
-
<% end -%>
|
6
|
-
<% counter = counter == 0 ? 0 : (counter + 1) -%>
|
7
|
-
<%= " " * counter %>class <%= controller_class_name %> < Application
|
8
|
-
<%= " " * counter %> # provides :xml, :yaml, :js
|
9
|
-
|
10
|
-
<%= " " * counter %> def index
|
11
|
-
<%= " " * counter %> @<%= plural_model %> = <%= model_class_name %>.find(:all)
|
12
|
-
<%= " " * counter %> display @<%= plural_model %>
|
13
|
-
<%= " " * counter %> end
|
14
|
-
|
15
|
-
<%= " " * counter %> def show
|
16
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
17
|
-
<%= " " * counter %> raise NotFound unless @<%= singular_model %>
|
18
|
-
<%= " " * counter %> display @<%= singular_model %>
|
19
|
-
<%= " " * counter %> end
|
20
|
-
|
21
|
-
<%= " " * counter %> def new
|
22
|
-
<%= " " * counter %> only_provides :html
|
23
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
24
|
-
<%= " " * counter %> render
|
25
|
-
<%= " " * counter %> end
|
26
|
-
|
27
|
-
<%= " " * counter %> def create
|
28
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
29
|
-
<%= " " * counter %> if @<%= singular_model %>.save
|
30
|
-
<%= " " * counter %> redirect url(:<%= (controller_modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
31
|
-
<%= " " * counter %> else
|
32
|
-
<%= " " * counter %> render :new
|
33
|
-
<%= " " * counter %> end
|
34
|
-
<%= " " * counter %> end
|
35
|
-
|
36
|
-
<%= " " * counter %> def edit
|
37
|
-
<%= " " * counter %> only_provides :html
|
38
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
39
|
-
<%= " " * counter %> raise NotFound unless @<%= singular_model %>
|
40
|
-
<%= " " * counter %> render
|
41
|
-
<%= " " * counter %> end
|
42
|
-
|
43
|
-
<%= " " * counter %> def update
|
44
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
45
|
-
<%= " " * counter %> raise NotFound unless @<%= singular_model %>
|
46
|
-
<%= " " * counter %> if @<%= singular_model %>.update_attributes(params[:<%= singular_model %>])
|
47
|
-
<%= " " * counter %> redirect url(:<%= (controller_modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
48
|
-
<%= " " * counter %> else
|
49
|
-
<%= " " * counter %> raise BadRequest
|
50
|
-
<%= " " * counter %> end
|
51
|
-
<%= " " * counter %> end
|
52
|
-
|
53
|
-
<%= " " * counter %> def destroy
|
54
|
-
<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
55
|
-
<%= " " * counter %> raise NotFound unless @<%= singular_model %>
|
56
|
-
<%= " " * counter %> if @<%= singular_model %>.destroy
|
57
|
-
<%= " " * counter %> redirect url(:<%= (controller_modules.collect{|m| m.downcase} << singular_model).join("_") %>s)
|
58
|
-
<%= " " * counter %> else
|
59
|
-
<%= " " * counter %> raise BadRequest
|
60
|
-
<%= " " * counter %> end
|
61
|
-
<%= " " * counter %> end
|
62
|
-
|
63
|
-
<%= " " * counter %>end
|
64
|
-
<% counter = counter == 0 ? 0 : (counter - 1) -%>
|
65
|
-
<% controller_modules.reverse.each_with_index do |mod, i| -%>
|
66
|
-
<%= " " * counter %>end # <%= mod %>
|
67
|
-
<% counter = counter - 1 -%>
|
68
|
-
<% end -%>
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<% counter = 1 -%>
|
2
|
-
module Merb
|
3
|
-
<% controller_modules.each_with_index do |mod, i| -%>
|
4
|
-
<%= " " * i %>module <%= mod %>
|
5
|
-
<% counter = i -%>
|
6
|
-
<% end -%>
|
7
|
-
<% counter = counter == 0 ? 0 : (counter + 1) -%>
|
8
|
-
<%= " " * counter %>module <%= controller_class_name %>Helper
|
9
|
-
|
10
|
-
<%= " " * counter %>end
|
11
|
-
<% counter = counter == 0 ? 0 : (counter - 1) -%>
|
12
|
-
<% controller_modules.reverse.each_with_index do |mod, i| -%>
|
13
|
-
<%= " " * counter %>end # <%= mod %>
|
14
|
-
<% counter = counter - 1 -%>
|
15
|
-
<% end -%>
|
16
|
-
end
|