GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Fork of wycats/merb-plugins
Description: Merb Plugins: Even more modules to hook up your Merb installation
Homepage: http://www.merbivore.com
Clone URL: git://github.com/auser/merb-plugins.git
ORM generators all functional with new merb-gen command.
hassox (author)
Wed Feb 06 02:20:03 -0800 2008
commit  550cec95cc4209fc531a7c13f60e406406a7324e
tree    6be3f6a557d1ab627096cafa9d1cb5f2abc4aff2
parent  ed14694b1350483cbeb411adc1a6f7ba742fa104
...
1
 
2
3
4
...
 
1
2
3
4
0
@@ -1,4 +1,4 @@
0
-Copyright (c) 2007 YOUR NAME
0
+Copyright (c) 2007 Duane Johnson
0
 
0
 Permission is hereby granted, free of charge, to any person obtaining
0
 a copy of this software and associated documentation files (the
...
1
2
 
3
4
5
6
 
 
 
7
8
9
...
 
 
1
2
3
4
5
6
7
8
9
10
11
0
@@ -1,9 +1,11 @@
0
-require 'merb'
0
-class DatabaseSessionsMigrationGenerator < RubiGen::Base
0
+class DatabaseSessionsMigrationGenerator < Merb::GeneratorBase
0
   
0
   default_options :author => nil
0
 
0
   def initialize(runtime_args, runtime_options = {})
0
+ # put somthing into the runtime_args so that super doesn't show the
0
+ # description
0
+ runtime_args.push ""
0
     super
0
     @name = 'database_sessions'
0
   end
...
1
2
3
 
 
4
5
6
7
 
 
 
 
 
 
 
8
9
10
11
12
 
 
 
 
 
 
 
 
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
15
...
 
 
 
1
2
3
 
 
 
4
5
6
7
8
9
10
11
12
 
 
 
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
0
@@ -1,14 +1,42 @@
0
-require 'merb/generators/merb_generator_helpers'
0
-
0
-class MigrationGenerator < Merb::GeneratorHelpers::MigrationGeneratorBase
0
+class MigrationGenerator < Merb::GeneratorBase
0
+ attr_reader :model_attributes, :model_class_name, :model_file_name, :table_name
0
   
0
- def initialize( *args )
0
- super( *args )
0
- @migration_template_name = "new_migration.erb"
0
+ def initialize(args, runtime_args = {})
0
+ @base = File.dirname(__FILE__)
0
+ super
0
+ @model_file_name = args.shift.snake_case
0
+ @table_name = @model_file_name.pluralize
0
+ @model_class_name = @model_file_name.to_const_string
0
+ @model_attributes = Hash[*(args.map{|a| a.split(":") }.flatten)]
0
   end
0
   
0
- def self.superclass
0
- RubiGen::Base
0
- end
0
+ def manifest
0
+ record do |m|
0
+ @m = m
0
+
0
+ m.directory "schema/migrations"
0
+
0
+ current_migration_number = Dir[Dir.pwd+'/schema/migrations/*'].map{|f| File.basename(f) =~ /^(\d+)/; $1}.max
0
+ @migration_file_name = format("%03d_%s", (current_migration_number.to_i+1), model_file_name) + "_migration"
0
     
0
+ @assigns = { :model_file_name => model_file_name,
0
+ :model_attributes => model_attributes,
0
+ :model_class_name => model_class_name,
0
+ :table_name => table_name,
0
+ :migration_file_name => @migration_file_name
0
+ }
0
+ copy_dirs
0
+ copy_files
0
+ end
0
+ end
0
+
0
+ protected
0
+ def banner
0
+ <<-EOS.split("\n").map{|x| x.strip}.join("\n")
0
+ Creates an Active Record Migration stub..
0
+
0
+ USAGE: #{spec.name}"
0
+ EOS
0
+ end
0
+
0
 end
0
\ No newline at end of file
...
1
2
3
 
 
4
5
6
7
8
9
 
 
 
 
 
 
 
 
 
 
10
11
12
13
14
 
 
 
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
17
...
 
 
 
1
2
3
 
 
 
 
 
4
5
6
7
8
9
10
11
12
13
14
15
 
 
 
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
0
@@ -1,16 +1,41 @@
0
-require 'merb/generators/merb_generator_helpers'
0
-
0
-class ModelGenerator < Merb::GeneratorHelpers::ModelGeneratorBase
0
+class ModelGenerator < Merb::GeneratorBase
0
+ attr_reader :model_attributes, :model_class_name, :model_file_name, :migration_args
0
   
0
- def initialize( *args )
0
- super( *args )
0
- @model_template_name = "new_model.erb"
0
- @migration_generator_name = "migration"
0
- @model_test_generator_name = "merb_model_test"
0
+ def initialize(args, runtime_args = {})
0
+ @base = File.dirname(__FILE__)
0
+ @migration_args = args.dup
0
+ super
0
+ @model_file_name = args.shift.snake_case
0
+ @model_class_name = @model_file_name.to_const_string
0
+ @model_attributes = Hash[*(args.map{|a| a.split(":") }.flatten)]
0
+ @model_file_name = "#{@model_class_name.snake_case}"
0
+
0
+
0
   end
0
   
0
- def self.superclass
0
- RubiGen::Base
0
- end
0
+ def manifest
0
+ record do |m|
0
+ @m = m
0
     
0
+ @assigns = { :model_file_name => model_file_name,
0
+ :model_attributes => model_attributes,
0
+ :model_class_name => model_class_name
0
+ }
0
+ copy_dirs
0
+ copy_files
0
+
0
+ m.dependency "migration", [*self.migration_args]
0
+ m.dependency "merb_model_test", [model_file_name], @assigns
0
+ end
0
+ end
0
+
0
+ protected
0
+ def banner
0
+ <<-EOS.split("\n").map{|x| x.strip}.join("\n")
0
+ Creates an Active Record Model stub..
0
+
0
+ USAGE: #{spec.name}"
0
+ EOS
0
+ end
0
+
0
 end
0
\ No newline at end of file
...
1
2
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
5
6
7
8
9
10
 
11
12
13
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
16
17
18
19
20
 
 
21
22
23
 
 
24
25
26
27
...
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
 
 
 
 
 
36
37
 
 
 
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
 
68
69
70
 
 
71
72
73
 
74
75
0
@@ -1,26 +1,74 @@
0
-require 'merb/generators/merb_generator_helpers'
0
-
0
-class ResourceControllerGenerator < Merb::GeneratorHelpers::ControllerGeneratorBase
0
+class ResourceControllerGenerator < Merb::GeneratorBase
0
+
0
+ attr_reader :controller_class_name,
0
+ :controller_file_name,
0
+ :controller_base_path,
0
+ :controller_modules,
0
+ :model_class_name,
0
+ :full_controller_const,
0
+ :singular_model,
0
+ :plural_model
0
+
0
+ def initialize(args, runtime_args = {})
0
+ @base = File.dirname(__FILE__)
0
+
0
+ super
0
+ name = args.shift
0
+ nfp = name.snake_case.gsub("::", "/")
0
+ nfp = nfp.split("/")
0
+ @model_class_name = nfp.pop.singularize.to_const_string
0
+ @model_class_name = runtime_args[:model_class_name] if runtime_args[:model_class_name]
0
+ @singular_model = @model_class_name.snake_case
0
+ @plural_model = @singular_model.pluralize
0
+
0
+ nfp << @plural_model
0
+
0
+ @controller_file_name = nfp.join("/")
0
+
0
+ # Need to setup the directories
0
+ unless @controller_file_name == File.basename(@controller_file_name)
0
+ @controller_base_path = controller_file_name.split("/")[0..-2].join("/")
0
+ end
0
+
0
+ @controller_modules = @controller_file_name.to_const_string.split("::")[0..-2]
0
+ @controller_class_name = @controller_file_name.to_const_string.split("::").last
0
 
0
- def initialize(*args)
0
- runtime_options = args.last.is_a?(Hash) ? args.pop : {}
0
- name, *actions = args.flatten
0
- runtime_options[:actions] = %w[index show new edit]
0
- runtime_options[:test_stub_generator] = "merb_controller_test"
0
- super( [name], runtime_options )
0
+ @full_controller_const = ((@controller_modules.dup || []) << @controller_class_name).join("::")
0
   end
0
-
0
- def self.superclass
0
- RubiGen::Base
0
+
0
+ def manifest
0
+ record do |m|
0
+ @m = m
0
+
0
+ # Create the controller directory
0
+ m.directory File.join("app/controllers", controller_base_path) if controller_base_path
0
+
0
+ # Create the helpers directory
0
+ m.directory File.join("app/helpers", controller_base_path) if controller_base_path
0
+
0
+ @assigns = {
0
+ :controller_modules => controller_modules,
0
+ :controller_class_name => controller_class_name,
0
+ :controller_file_name => controller_file_name,
0
+ :controller_base_path => controller_base_path,
0
+ :full_controller_const => full_controller_const,
0
+ :model_class_name => model_class_name,
0
+ :singular_model => singular_model,
0
+ :plural_model => plural_model
0
+ }
0
+ copy_dirs
0
+ copy_files
0
+
0
+ m.dependency "merb_resource_controller_test", [@controller_class_name], @assigns
0
+ end
0
   end
0
   
0
   protected
0
   def banner
0
- <<-EOS
0
- Creates a Merb controller, views and specs using Active Record Models
0
+ <<-EOS.split("\n").map{|x| x.strip}.join("\n")
0
+ Creates a basic Merb resource controller.
0
 
0
- USAGE: #{$0} #{spec.name} resource_name"
0
- EOS
0
+ USAGE: #{spec.name} my_resource
0
+ EOS
0
   end
0
-
0
 end
0
\ No newline at end of file
...
46
47
48
49
50
51
52
53
 
 
 
54
55
56
...
46
47
48
 
 
 
 
 
49
50
51
52
53
54
0
@@ -46,11 +46,9 @@ module Merb
0
         # Registering this ORM lets the user choose active_record as a session
0
         # in merb.yml's session_store: option.
0
         def register_session_type
0
- Merb.after_app_loaded do
0
- Merb.register_session_type("activerecord",
0
- "merb/session/active_record_session",
0
- "Using ActiveRecord database sessions")
0
- end
0
+ Merb.register_session_type("activerecord",
0
+ "merb/session/active_record_session",
0
+ "Using ActiveRecord database sessions")
0
         end
0
       end
0
     end
...
2
3
4
5
6
7
8
9
10
11
 
 
 
 
 
 
 
 
12
13
14
15
16
 
 
 
 
 
 
 
 
 
17
18
19
...
2
3
4
 
 
 
 
 
 
 
5
6
7
8
9
10
11
12
13
 
 
 
 
14
15
16
17
18
19
20
21
22
23
24
25
0
@@ -2,18 +2,24 @@ require "active_record"
0
 
0
 module Merb
0
   module SessionMixin
0
- def setup_session
0
- Merb.logger.info("Setting up session")
0
- before = cookies[_session_id_key]
0
- request.session, cookies[_session_id_key] = Merb::ActiveRecordSession.persist(cookies[_session_id_key])
0
- @_fingerprint = Marshal.dump(request.session.data).hash
0
- @_new_cookie = cookies[_session_id_key] != before
0
- end
0
+ def self.included(base)
0
+ base.add_hook :before_dispatch do
0
+ Merb.logger.info("Setting up session")
0
+ before = cookies[_session_id_key]
0
+ request.session, cookies[_session_id_key] = Merb::ActiveRecordSession.persist(cookies[_session_id_key])
0
+ @_fingerprint = Marshal.dump(request.session.data).hash
0
+ @_new_cookie = cookies[_session_id_key] != before
0
+ end
0
 
0
- def finalize_session
0
- Merb.logger.info("Finalize session")
0
- request.session.save if @_fingerprint != Marshal.dump(request.session.data).hash
0
- set_cookie(_session_id_key, request.session.session_id, _session_expiry) if (@_new_cookie || request.session.needs_new_cookie)
0
+ base.add_hook :after_dispatch do
0
+ Merb.logger.info("Finalize session")
0
+ request.session.save if @_fingerprint != Marshal.dump(request.session.data).hash
0
+ set_cookie(_session_id_key, request.session.session_id, _session_expiry) if (@_new_cookie || request.session.needs_new_cookie)
0
+ end
0
+ end
0
+
0
+ def session_store_type
0
+ "activerecord"
0
     end
0
   end # ActiveRecordMixin
0
 
...
21
22
23
 
 
24
25
26
...
21
22
23
24
25
26
27
28
0
@@ -21,6 +21,8 @@ class ModelGenerator < Merb::GeneratorBase
0
                   }
0
       copy_dirs
0
       copy_files
0
+
0
+ m.dependency "merb_model_test", [model_file_name], @assigns
0
     end
0
   end
0
   
...
16
17
18
19
 
 
 
 
 
 
 
20
21
22
...
26
27
28
29
30
31
32
 
33
34
35
...
16
17
18
 
19
20
21
22
23
24
25
26
27
28
...
32
33
34
 
 
 
 
35
36
37
38
0
@@ -16,7 +16,13 @@ class ResourceControllerGenerator < Merb::GeneratorBase
0
     name = args.shift
0
     nfp = name.snake_case.gsub("::", "/")
0
     nfp = nfp.split("/")
0
- nfp << (nfp.pop.pluralize)
0
+ @model_class_name = nfp.pop.singularize.to_const_string
0
+ @model_class_name = runtime_args[:model_class_name] if runtime_args[:model_class_name]
0
+ @singular_model = @model_class_name.snake_case
0
+ @plural_model = @singular_model.pluralize
0
+
0
+ nfp << @plural_model
0
+
0
     @controller_file_name = nfp.join("/")
0
     
0
     # Need to setup the directories
0
@@ -26,10 +32,7 @@ class ResourceControllerGenerator < Merb::GeneratorBase
0
     
0
     @controller_modules = @controller_file_name.to_const_string.split("::")[0..-2]
0
     @controller_class_name = @controller_file_name.to_const_string.split("::").last
0
- @model_class_name = runtime_args[:model_class_name] || @controller_class_name.split("::").last.singularize
0
- @singular_model = @model_class_name.snake_case.singularize
0
- @plural_model = @singular_model.pluralize
0
-
0
+
0
     @full_controller_const = ((@controller_modules.dup || []) << @controller_class_name).join("::")
0
   end
0
   
...
12
13
14
15
16
 
 
17
18
19
...
24
25
26
27
 
28
29
 
30
31
32
33
34
35
 
 
36
37
38
...
40
41
42
43
44
 
 
45
46
 
47
48
49
50
51
52
53
54
 
 
55
56
57
...
12
13
14
 
 
15
16
17
18
19
...
24
25
26
 
27
28
 
29
30
31
32
33
 
 
34
35
36
37
38
...
40
41
42
 
 
43
44
45
 
46
47
48
49
50
51
52
 
 
53
54
55
56
57
0
@@ -12,8 +12,8 @@
0
 <%= " " * counter %> display @<%= plural_model %>
0
 <%= " " * counter %> end
0
 
0
-<%= " " * counter %> def show(id)
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[id]
0
+<%= " " * counter %> def show
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.first(params[:id])
0
 <%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> display @<%= singular_model %>
0
 <%= " " * counter %> end
0
@@ -24,15 +24,15 @@
0
 <%= " " * counter %> render
0
 <%= " " * counter %> end
0
 
0
-<%= " " * counter %> def edit(id)
0
+<%= " " * counter %> def edit
0
 <%= " " * counter %> only_provides :html
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[id]
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.first(params[:id])
0
 <%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> render
0
 <%= " " * counter %> end
0
 
0
-<%= " " * counter %> def create(singular_model)
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.new(<%= singular_model %>)
0
+<%= " " * counter %> def create
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
0
 <%= " " * counter %> if @<%= singular_model %>.save
0
 <%= " " * counter %> redirect url(:<%= singular_model %>, @<%= singular_model %>)
0
 <%= " " * counter %> else
0
@@ -40,18 +40,18 @@
0
 <%= " " * counter %> end
0
 <%= " " * counter %> end
0
 
0
-<%= " " * counter %> def update(id, singular_model)
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[id]
0
+<%= " " * counter %> def update
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.first(params[:id])
0
 <%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
-<%= " " * counter %> if @<%= singular_model %>.update_attributes(<%= singular_model %>)
0
+<%= " " * counter %> if @<%= singular_model %>.update_attributes(params[:<%= singular_model %>])
0
 <%= " " * counter %> redirect url(:<%= singular_model %>, @<%= singular_model %>)
0
 <%= " " * counter %> else
0
 <%= " " * counter %> raise BadRequest
0
 <%= " " * counter %> end
0
 <%= " " * counter %> end
0
 
0
-<%= " " * counter %> def destroy(id)
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[id]
0
+<%= " " * counter %> def destroy
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>.first(params[:id])
0
 <%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> if @<%= singular_model %>.destroy!
0
 <%= " " * counter %> redirect url(:<%= singular_model.pluralize %>)
...
1
 
 
2
3
4
...
11
12
13
14
15
 
 
16
...
 
1
2
3
4
5
...
12
13
14
 
15
16
17
18
0
@@ -1,4 +1,5 @@
0
-<% counter = 0 -%>
0
+<% counter = 1 -%>
0
+module Merb
0
 <% controller_modules.each_with_index do |mod, i| -%>
0
 <%= " " * i %>module <%= mod %>
0
 <% counter = i -%>
0
@@ -11,4 +12,5 @@
0
 <% controller_modules.reverse.each_with_index do |mod, i| -%>
0
 <%= " " * counter %>end # <%= mod %>
0
 <% counter = counter - 1 -%>
0
-<% end -%>
0
\ No newline at end of file
0
+<% end -%>
0
+end
0
\ No newline at end of file
...
 
 
 
 
 
 
 
0
...
1
2
3
4
5
6
7
8
0
@@ -0,0 +1,7 @@
0
+namespace :dm do
0
+ desc "Automigrates all models"
0
+ task :auto_migrate => :merb_init do
0
+ DataMapper::Base.auto_migrate!
0
+ end
0
+end
0
+
0
\ No newline at end of file
...
18
19
20
 
 
 
 
21
22
23
...
18
19
20
21
22
23
24
25
26
27
0
@@ -18,6 +18,10 @@ module Merb
0
         set_cookie(_session_id_key, request.session.values[:session_id], _session_expiry) if (@_new_cookie || request.session.needs_new_cookie)
0
       end
0
     end
0
+
0
+ def session_store_type
0
+ "sequel"
0
+ end
0
 
0
   end
0
 
...
15
16
17
18
19
20
21
22
23
 
 
 
 
 
 
24
25
26
...
15
16
17
 
 
 
 
 
 
18
19
20
21
22
23
24
25
26
0
@@ -15,12 +15,12 @@ namespace :sequel do
0
 
0
     desc "Creates session migration"
0
     task :create => :merb_init do
0
- # TODO: this should not use '001' always...
0
- dest = File.join(Merb.root, "schema", "migrations","001_add_sessions_table.rb")
0
- source = File.join(File.dirname(__FILE__), "merb", "session","001_add_sessions_table.rb")
0
-
0
- FileUtils.mkdir_p File.join(Merb.root, "schema", "migrations")
0
- FileUtils.cp_r source, dest unless File.exists?(dest)
0
+ migration_exists = Dir[File.join(Merb.root,"schema", "migrations", "*.rb")].detect{ |f| f =~ /database_sessions\.rb/ }
0
+ if migration_exists
0
+ puts "\nThe Session Migration File already exists\n\n"
0
+ else
0
+ sh %{merb-gen database_sessions_migration}
0
+ end
0
     end
0
     
0
     desc "Clears sessions"
...
25
26
27
 
28
29
30
...
25
26
27
28
29
30
31
0
@@ -25,6 +25,7 @@ class ModelGenerator < Merb::GeneratorBase
0
       copy_files
0
       
0
       m.dependency "migration", [*self.migration_args]
0
+ m.dependency "merb_model_test", [model_file_name], @assigns
0
     end
0
   end
0
   
...
16
17
18
19
 
 
 
 
 
 
 
20
21
22
...
26
27
28
29
30
31
32
 
33
34
35
...
16
17
18
 
19
20
21
22
23
24
25
26
27
28
...
32
33
34
 
 
 
 
35
36
37
38
0
@@ -16,7 +16,13 @@ class ResourceControllerGenerator < Merb::GeneratorBase
0
     name = args.shift
0
     nfp = name.snake_case.gsub("::", "/")
0
     nfp = nfp.split("/")
0
- nfp << (nfp.pop.pluralize)
0
+ @model_class_name = nfp.pop.singularize.to_const_string
0
+ @model_class_name = runtime_args[:model_class_name] if runtime_args[:model_class_name]
0
+ @singular_model = @model_class_name.snake_case
0
+ @plural_model = @singular_model.pluralize
0
+
0
+ nfp << @plural_model
0
+
0
     @controller_file_name = nfp.join("/")
0
     
0
     # Need to setup the directories
0
@@ -26,10 +32,7 @@ class ResourceControllerGenerator < Merb::GeneratorBase
0
     
0
     @controller_modules = @controller_file_name.to_const_string.split("::")[0..-2]
0
     @controller_class_name = @controller_file_name.to_const_string.split("::").last
0
- @model_class_name = runtime_args[:model_class_name] || @controller_class_name.split("::").last.singularize
0
- @singular_model = @model_class_name.snake_case.singularize
0
- @plural_model = @singular_model.pluralize
0
-
0
+
0
     @full_controller_const = ((@controller_modules.dup || []) << @controller_class_name).join("::")
0
   end
0
   
...
9
10
11
12
 
13
14
15
16
17
 
 
 
18
19
20
...
35
36
37
 
38
39
40
41
42
 
43
44
45
...
49
50
51
 
52
53
54
...
9
10
11
 
12
13
14
15
 
 
16
17
18
19
20
21
...
36
37
38
39
40
41
42
43
44
45
46
47
48
...
52
53
54
55
56
57
58
0
@@ -9,12 +9,13 @@
0
   
0
 <%= " " * counter %> def index
0
 <%= " " * counter %> @<%= plural_model %> = <%= model_class_name %>.all
0
-<%= " " * counter %> render @<%= plural_model %>
0
+<%= " " * counter %> display @<%= plural_model %>
0
 <%= " " * counter %> end
0
 
0
 <%= " " * counter %> def show
0
-<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[params[:id]]
0
-<%= " " * counter %> render @<%= singular_model %>
0
+<%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[params[:id]]
0
+<%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
+<%= " " * counter %> display @<%= singular_model %>
0
 <%= " " * counter %> end
0
 
0
 <%= " " * counter %> def new
0
@@ -35,11 +36,13 @@
0
 <%= " " * counter %> def edit
0
 <%= " " * counter %> only_provides :html
0
 <%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[params[:id]]
0
+<%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> render
0
 <%= " " * counter %> end
0
 
0
 <%= " " * counter %> def update
0
 <%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[params[:id]]
0
+<%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> if @<%= singular_model %>.update(params[:<%= singular_model %>])
0
 <%= " " * counter %> redirect url(:<%= singular_model %>, @<%= singular_model %>)
0
 <%= " " * counter %> else
0
@@ -49,6 +52,7 @@
0
 
0
 <%= " " * counter %> def destroy
0
 <%= " " * counter %> @<%= singular_model %> = <%= model_class_name %>[params[:id]]
0
+<%= " " * counter %> raise NotFound unless @<%= singular_model %>
0
 <%= " " * counter %> if @<%= singular_model %>.destroy
0
 <%= " " * counter %> redirect url(:<%= singular_model %>s)
0
 <%= " " * counter %> else
...
1
 
 
2
3
4
...
11
12
13
14
15
 
 
16
...
 
1
2
3
4
5
...
12
13
14
 
15
16
17
18
0
@@ -1,4 +1,5 @@
0
-<% counter = 0 -%>
0
+<% counter = 1 -%>
0
+module Merb
0
 <% controller_modules.each_with_index do |mod, i| -%>
0
 <%= " " * i %>module <%= mod %>
0
 <% counter = i -%>
0
@@ -11,4 +12,5 @@
0
 <% controller_modules.reverse.each_with_index do |mod, i| -%>
0
 <%= " " * counter %>end # <%= mod %>
0
 <% counter = counter - 1 -%>
0
-<% end -%>
0
\ No newline at end of file
0
+<% end -%>
0
+end
0
\ No newline at end of file

Comments

    No one has commented yet.