aslon_scaffold 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +4 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +26 -0
  5. data/Rakefile +2 -0
  6. data/aslon_scaffold.gemspec +33 -0
  7. data/config/locales/aslon_scaffold.fr.yml +14 -0
  8. data/init.rb +1 -0
  9. data/install.rb +1 -0
  10. data/lib/app/controllers/articles_controller.rb +7 -0
  11. data/lib/app/helpers/application_helper.rb +410 -0
  12. data/lib/app/views/aslon_scaffolds/_search.haml +1 -0
  13. data/lib/app/views/aslon_scaffolds/index.haml +4 -0
  14. data/lib/app/views/aslon_scaffolds/new_edit.haml +8 -0
  15. data/lib/app/views/aslon_scaffolds/show.haml +9 -0
  16. data/lib/aslon_scaffold.rb +34 -0
  17. data/lib/aslon_scaffold/aslon_scaffold.rb +237 -0
  18. data/lib/aslon_scaffold/version.rb +4 -0
  19. data/lib/generators/haml.rb +11 -0
  20. data/lib/generators/haml/scaffold/scaffold_generator.rb +25 -0
  21. data/lib/generators/haml/scaffold/templates/_new_edit.haml.erb +6 -0
  22. data/lib/generators/haml/scaffold/templates/_search.haml.erb +6 -0
  23. data/lib/generators/haml/scaffold/templates/edit.haml.erb +5 -0
  24. data/lib/generators/haml/scaffold/templates/index.haml.erb +10 -0
  25. data/lib/generators/haml/scaffold/templates/layout.haml.erb +17 -0
  26. data/lib/generators/haml/scaffold/templates/new.haml.erb +6 -0
  27. data/lib/generators/haml/scaffold/templates/new_edit.haml.erb +13 -0
  28. data/lib/generators/haml/scaffold/templates/show.haml.erb +14 -0
  29. data/lib/generators/nifty.rb +28 -0
  30. data/lib/generators/nifty/aslon/USAGE +51 -0
  31. data/lib/generators/nifty/aslon/aslon_generator.rb +320 -0
  32. data/lib/generators/nifty/aslon/templates/actions/create.rb +8 -0
  33. data/lib/generators/nifty/aslon/templates/actions/destroy.rb +5 -0
  34. data/lib/generators/nifty/aslon/templates/actions/edit.rb +3 -0
  35. data/lib/generators/nifty/aslon/templates/actions/index.rb +3 -0
  36. data/lib/generators/nifty/aslon/templates/actions/new.rb +3 -0
  37. data/lib/generators/nifty/aslon/templates/actions/show.rb +3 -0
  38. data/lib/generators/nifty/aslon/templates/actions/update.rb +8 -0
  39. data/lib/generators/nifty/aslon/templates/controller.rb +10 -0
  40. data/lib/generators/nifty/aslon/templates/fixtures.yml +9 -0
  41. data/lib/generators/nifty/aslon/templates/helper.rb +2 -0
  42. data/lib/generators/nifty/aslon/templates/migration.rb +16 -0
  43. data/lib/generators/nifty/aslon/templates/model.rb +4 -0
  44. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/create.rb +11 -0
  45. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/destroy.rb +6 -0
  46. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/edit.rb +4 -0
  47. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/index.rb +4 -0
  48. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/new.rb +4 -0
  49. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/show.rb +4 -0
  50. data/lib/generators/nifty/aslon/templates/tests/rspec/actions/update.rb +11 -0
  51. data/lib/generators/nifty/aslon/templates/tests/rspec/controller.rb +8 -0
  52. data/lib/generators/nifty/aslon/templates/tests/rspec/model.rb +7 -0
  53. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/create.rb +13 -0
  54. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/destroy.rb +8 -0
  55. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/edit.rb +6 -0
  56. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/index.rb +6 -0
  57. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/new.rb +6 -0
  58. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/show.rb +6 -0
  59. data/lib/generators/nifty/aslon/templates/tests/shoulda/actions/update.rb +13 -0
  60. data/lib/generators/nifty/aslon/templates/tests/shoulda/controller.rb +5 -0
  61. data/lib/generators/nifty/aslon/templates/tests/shoulda/model.rb +7 -0
  62. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/create.rb +11 -0
  63. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/destroy.rb +6 -0
  64. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/edit.rb +4 -0
  65. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/index.rb +4 -0
  66. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/new.rb +4 -0
  67. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/show.rb +4 -0
  68. data/lib/generators/nifty/aslon/templates/tests/testunit/actions/update.rb +11 -0
  69. data/lib/generators/nifty/aslon/templates/tests/testunit/controller.rb +5 -0
  70. data/lib/generators/nifty/aslon/templates/tests/testunit/model.rb +7 -0
  71. data/lib/generators/nifty/aslon/templates/views/haml/_new_edit.html.haml +6 -0
  72. data/lib/generators/nifty/aslon/templates/views/haml/_search.html.haml +6 -0
  73. data/lib/generators/nifty/aslon/templates/views/haml/index.html.haml +10 -0
  74. data/lib/generators/nifty/aslon/templates/views/haml/layout.haml.erb +17 -0
  75. data/lib/generators/nifty/aslon/templates/views/haml/new_edit.html.haml +13 -0
  76. data/lib/generators/nifty/aslon/templates/views/haml/show.html.haml +14 -0
  77. data/lib/generators/nifty/layout/USAGE +25 -0
  78. data/lib/generators/nifty/layout/layout_generator.rb +42 -0
  79. data/lib/generators/nifty/layout/templates/_default.html.haml +9 -0
  80. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/add.gif +0 -0
  81. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/delete.gif +0 -0
  82. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/edit.gif +0 -0
  83. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/folder.gif +0 -0
  84. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/grid-blue-hd.gif +0 -0
  85. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/grid-split.gif +0 -0
  86. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/grid3-hrow.gif +0 -0
  87. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/indicator.gif +0 -0
  88. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/magnifier.png +0 -0
  89. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/sort_asc.gif +0 -0
  90. data/lib/generators/nifty/layout/templates/assets/images/aslon_scaffold/sort_desc.gif +0 -0
  91. data/lib/generators/nifty/layout/templates/assets/stylesheets/aslon_scaffold/base.css.sass +263 -0
  92. data/lib/generators/nifty/layout/templates/assets/stylesheets/aslon_scaffold/formtastic.css.sass +176 -0
  93. data/lib/generators/nifty/layout/templates/assets/stylesheets/aslon_scaffold/formtastic_changes.css.sass +31 -0
  94. data/lib/generators/nifty/layout/templates/assets/stylesheets/aslon_scaffold/table_coffee_with_milk.css.sass +94 -0
  95. data/lib/generators/nifty/layout/templates/error_messages_helper.rb +23 -0
  96. data/lib/generators/nifty/layout/templates/layout.html.haml +13 -0
  97. data/lib/generators/nifty/layout/templates/layout_helper.rb +22 -0
  98. data/lib/generators/nifty/layout/templates/locales/aslon_scaffold.fr.yml +14 -0
  99. data/lib/generators/nifty/scaffold/USAGE +51 -0
  100. data/lib/generators/nifty/scaffold/scaffold_generator.rb +319 -0
  101. data/lib/generators/nifty/scaffold/templates/actions/create.rb +8 -0
  102. data/lib/generators/nifty/scaffold/templates/actions/destroy.rb +5 -0
  103. data/lib/generators/nifty/scaffold/templates/actions/edit.rb +3 -0
  104. data/lib/generators/nifty/scaffold/templates/actions/index.rb +3 -0
  105. data/lib/generators/nifty/scaffold/templates/actions/new.rb +3 -0
  106. data/lib/generators/nifty/scaffold/templates/actions/show.rb +3 -0
  107. data/lib/generators/nifty/scaffold/templates/actions/update.rb +8 -0
  108. data/lib/generators/nifty/scaffold/templates/controller.rb +3 -0
  109. data/lib/generators/nifty/scaffold/templates/fixtures.yml +9 -0
  110. data/lib/generators/nifty/scaffold/templates/helper.rb +2 -0
  111. data/lib/generators/nifty/scaffold/templates/migration.rb +16 -0
  112. data/lib/generators/nifty/scaffold/templates/model.rb +4 -0
  113. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/create.rb +11 -0
  114. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/destroy.rb +6 -0
  115. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/edit.rb +4 -0
  116. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/index.rb +4 -0
  117. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/new.rb +4 -0
  118. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/show.rb +4 -0
  119. data/lib/generators/nifty/scaffold/templates/tests/rspec/actions/update.rb +11 -0
  120. data/lib/generators/nifty/scaffold/templates/tests/rspec/controller.rb +8 -0
  121. data/lib/generators/nifty/scaffold/templates/tests/rspec/model.rb +7 -0
  122. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/create.rb +13 -0
  123. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/destroy.rb +8 -0
  124. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/edit.rb +6 -0
  125. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/index.rb +6 -0
  126. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/new.rb +6 -0
  127. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/show.rb +6 -0
  128. data/lib/generators/nifty/scaffold/templates/tests/shoulda/actions/update.rb +13 -0
  129. data/lib/generators/nifty/scaffold/templates/tests/shoulda/controller.rb +5 -0
  130. data/lib/generators/nifty/scaffold/templates/tests/shoulda/model.rb +7 -0
  131. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/create.rb +11 -0
  132. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/destroy.rb +6 -0
  133. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/edit.rb +4 -0
  134. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/index.rb +4 -0
  135. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/new.rb +4 -0
  136. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/show.rb +4 -0
  137. data/lib/generators/nifty/scaffold/templates/tests/testunit/actions/update.rb +11 -0
  138. data/lib/generators/nifty/scaffold/templates/tests/testunit/controller.rb +5 -0
  139. data/lib/generators/nifty/scaffold/templates/tests/testunit/model.rb +7 -0
  140. data/lib/generators/nifty/scaffold/templates/views/erb/_form.html.erb +10 -0
  141. data/lib/generators/nifty/scaffold/templates/views/erb/edit.html.erb +14 -0
  142. data/lib/generators/nifty/scaffold/templates/views/erb/index.html.erb +29 -0
  143. data/lib/generators/nifty/scaffold/templates/views/erb/new.html.erb +7 -0
  144. data/lib/generators/nifty/scaffold/templates/views/erb/show.html.erb +20 -0
  145. data/lib/generators/nifty/scaffold/templates/views/haml/_new_edit.html.haml +6 -0
  146. data/lib/generators/nifty/scaffold/templates/views/haml/_search.html.haml +6 -0
  147. data/lib/generators/nifty/scaffold/templates/views/haml/index.html.haml +10 -0
  148. data/lib/generators/nifty/scaffold/templates/views/haml/layout.haml.erb +17 -0
  149. data/lib/generators/nifty/scaffold/templates/views/haml/new_edit.haml.erb +13 -0
  150. data/lib/generators/nifty/scaffold/templates/views/haml/show.haml.erb +14 -0
  151. data/lib/generators/templates/rails/scaffold_controller/controller.rb +11 -0
  152. data/lib/tasks/aslon_scaffold_tasks.rake +91 -0
  153. data/lib/tasks/task.rake +113 -0
  154. data/test/articles_controller_test.rb +24 -0
  155. data/test/database.yml +8 -0
  156. data/test/schema.rb +6 -0
  157. data/test/test_helper.rb +39 -0
  158. data/test/undeletable_plugin.sqlite.db +0 -0
  159. data/test/undeletable_plugin2.sqlite3.db +0 -0
  160. data/uninstall.rb +1 -0
  161. data/vendor/assets/images/aslon_scaffold/add.gif +0 -0
  162. data/vendor/assets/images/aslon_scaffold/delete.gif +0 -0
  163. data/vendor/assets/images/aslon_scaffold/edit.gif +0 -0
  164. data/vendor/assets/images/aslon_scaffold/folder.gif +0 -0
  165. data/vendor/assets/images/aslon_scaffold/grid-blue-hd.gif +0 -0
  166. data/vendor/assets/images/aslon_scaffold/grid-split.gif +0 -0
  167. data/vendor/assets/images/aslon_scaffold/grid3-hrow.gif +0 -0
  168. data/vendor/assets/images/aslon_scaffold/indicator.gif +0 -0
  169. data/vendor/assets/images/aslon_scaffold/magnifier.png +0 -0
  170. data/vendor/assets/images/aslon_scaffold/sort_asc.gif +0 -0
  171. data/vendor/assets/images/aslon_scaffold/sort_desc.gif +0 -0
  172. data/vendor/assets/stylesheets/aslon_scaffold_base.css.sass +116 -0
  173. data/vendor/assets/stylesheets/aslon_scaffold_base.css.sass.old +263 -0
  174. data/vendor/assets/stylesheets/aslon_scaffold_table.css.sass +94 -0
  175. data/vendor/assets/stylesheets/formtastic_changes.css.sass +31 -0
  176. metadata +185 -4
@@ -0,0 +1 @@
1
+ =eval("table('#{@objet_name}',@#{@objet_name.pluralize}, #{@as_options[:display_columns]},[])").html_safe
@@ -0,0 +1,4 @@
1
+ =titre_action(controller.action_name,@model_name)
2
+ =titre(eval("#{@model_name}.to_s.pluralize"),@model_name,search=true)
3
+ #ajaxw
4
+ =render :partial=>'aslon_scaffolds/search'
@@ -0,0 +1,8 @@
1
+ = titre_action(controller.action_name,@model_name)
2
+ = semantic_form_for @as_objet do |f|
3
+ = f.error_messages
4
+ = f.inputs :name => @as_options[:legend], :id => "basic" do
5
+ - @as_options[:edit_fields].each do |field|
6
+ - field= field.chop.chop.chop if field.ends_with?('_id')
7
+ = eval "f.input :#{field}" if field != :document
8
+ = f.buttons
@@ -0,0 +1,9 @@
1
+ =eval("titre_show(@#{@objet_name},@#{@objet_name}.to_label)")
2
+ %form.formtastic
3
+ %fieldset.inputs
4
+ %legend
5
+ %span=@as_options[:legend]
6
+ %ol
7
+ -@as_options[:show_fields].each do |field|
8
+ = eval "show @#{@objet_name}, '#{field}'"
9
+ =link_to 'Back', eval("#{@objet_name.pluralize}_path")
@@ -0,0 +1,34 @@
1
+
2
+
3
+ module AslonScaffold
4
+
5
+ # uniquement pour mettre vendor/Asset dans le load path (cf doc asset exemple rails-jquery)
6
+ class Engine < ::Rails::Engine
7
+ end
8
+
9
+ class Railtie < Rails::Railtie
10
+ rake_tasks do
11
+ load "tasks/aslon_scaffold_tasks.rake"
12
+ end
13
+ end
14
+
15
+
16
+ end
17
+
18
+ # Rails.application.config.assets.paths << "#{File.dirname(__FILE__)}/app/assets/flash"
19
+
20
+ # Undeletable
21
+ require 'aslon_scaffold/aslon_scaffold.rb'
22
+
23
+ require File.join(File.dirname(__FILE__), "app", "helpers", "application_helper.rb")
24
+
25
+ %w{ models controllers}.each do |dir|
26
+ path = File.join(File.dirname(__FILE__), 'app', dir)
27
+ $LOAD_PATH << path
28
+ ActiveSupport::Dependencies.autoload_paths << path
29
+ ActiveSupport::Dependencies.autoload_once_paths.delete(path)
30
+ end
31
+
32
+ VIEW_PATH = File.join(File.dirname(__FILE__),'app' , 'views')
33
+ ActionController::Base.append_view_path(VIEW_PATH) unless ActionController::Base.view_paths.include?(VIEW_PATH)
34
+
@@ -0,0 +1,237 @@
1
+ require "will_paginate"
2
+ require "haml"
3
+ require "formtastic"
4
+ require "dynamic_form"
5
+
6
+ #module Undeletable
7
+ # def self.included(base)
8
+ # base.send :extend, ClassMethods
9
+ # end
10
+ #
11
+ # module ClassMethods
12
+ # # any method placed here will apply to classes, like Hickwall
13
+ # def acts_as_undeletable(options = {})
14
+ # cattr_accessor :undeletable
15
+ # self.undeletable = (options[:actif] || true)
16
+ # send :include, InstanceMethods
17
+ # end
18
+ #
19
+ # end
20
+ #
21
+ # module InstanceMethods
22
+ # def before_destroy
23
+ # !self.undeletable
24
+ # end
25
+ # end
26
+ #end
27
+ #
28
+ #ActiveRecord::Base.send :include, Undeletable
29
+
30
+ # module InstanceMethods
31
+ # def before_destroy
32
+ # !self.undeletable
33
+ # end
34
+ # end
35
+ #
36
+ #class ActiveRecord::Base
37
+ # def self.acts_as_undeletable(options = {})
38
+ # cattr_accessor :undeletable
39
+ # self.undeletable = (options[:actif] || true)
40
+ #
41
+ # def self.delete_all
42
+ # puts "delete all"
43
+ # end
44
+ # include InstanceMethods
45
+ #
46
+ # end
47
+ #
48
+ #end
49
+
50
+ class ActiveRecord::Base
51
+ cattr_reader :per_page
52
+ @@per_page = 30
53
+
54
+ def to_label
55
+ begin
56
+ lib
57
+ rescue
58
+ begin
59
+ nom
60
+ rescue
61
+ begin
62
+ name
63
+ rescue
64
+ begin
65
+ label
66
+ rescue
67
+ self.id.to_s+'(id)'
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+ end
75
+
76
+ class ActionController::Base
77
+ def self.aslon_scaffold(options={})
78
+ cattr_accessor :config_removed_columns
79
+ self.config_removed_columns=%w(id created_at updated_at updated_by created_by del_protected)
80
+ #write_inheritable_attribute :as_options, options
81
+ #class_inheritable_reader :as_options
82
+ class_attribute :as_options
83
+ self.as_options=options
84
+
85
+ include InstanceMethods_for
86
+ end
87
+ end
88
+
89
+ module InstanceMethods_for
90
+ def initialize
91
+ @as_options=as_options
92
+ begin
93
+ @as_options[:display_columns] = eval "#{model_name}.column_names-self.config_removed_columns" if !@as_options[:display_columns]
94
+ @as_options[:search_fields] ||= eval "#{model_name}.columns.map { |o| (o.type==:string || o.type==:text) ? o.name : 'no'} -%w(no)"
95
+ rescue
96
+ end
97
+
98
+ @as_options[:edit_fields] ||= @as_options[:display_columns]
99
+ @as_options[:show_fields] ||= @as_options[:edit_fields]
100
+ @as_options[:legend] ||= model_name
101
+ @objet_name=objet_name
102
+ @model_name=model_name
103
+ # : Langue.columns.each { |o| puts a+=[o.name] if (o.type==:string )
104
+ super
105
+ end
106
+
107
+ def index
108
+ eval "
109
+ if params[:order]
110
+ @#{objet_names} = #{model_name}.paginate :page => params[:page], :order=>'#{params[:order]} #{params[:sens]}', :conditions => [condition]
111
+ else
112
+ @#{objet_names} = #{model_name}.paginate(:page => params[:page], :conditions => [condition])
113
+ end"
114
+ # @clients = Client.paginate(:page =>1)
115
+ yield if block_given?
116
+ aslon_render("index")
117
+ end
118
+
119
+ def show
120
+ eval " @#{objet_name} = #{model_name}.find(params[:id])"
121
+ yield if block_given?
122
+ aslon_render("show")
123
+ end
124
+
125
+ def edit
126
+ eval "@as_objet=@#{objet_name} = #{model_name}.find(params[:id])"
127
+ yield if block_given?
128
+ aslon_render('new_edit')
129
+ end
130
+
131
+ def new
132
+ eval "@as_objet=@#{objet_name} = #{model_name}.new"
133
+ yield if block_given?
134
+ aslon_render('new_edit')
135
+ end
136
+
137
+ def create
138
+ eval "@as_objet=@#{objet_name} = #{model_name}.new(params[:#{objet_name}])
139
+ if @#{objet_name}.save
140
+ flash[:notice] = t('views.messages.ok_created', :model=>#{model_name}.to_s)
141
+ (block_given?) ? yield : redirect_to(:action => 'index')
142
+ else
143
+ aslon_render('new_edit')
144
+ end"
145
+ end
146
+
147
+ def update
148
+ eval "@as_objet= @#{objet_name} = #{model_name}.find(params[:id])
149
+ if @#{objet_name}.update_attributes(params[:#{objet_name}])
150
+ flash[:notice] = t('views.messages.ok_updated',:model=>#{model_name}.model_name.human)
151
+ (block_given?) ? yield : redirect_to(:action => 'index')
152
+ else
153
+ aslon_render('new_edit')
154
+ end"
155
+ end
156
+
157
+ def destroy
158
+ eval"
159
+ @#{objet_name} = #{model_name}.find(params[:id])
160
+ count=#{model_name}.count
161
+ @#{objet_name}.destroy
162
+ if (count > #{model_name}.count)
163
+ flash[:notice] = t('views.messages.ok_deleted', :model=>#{model_name}.model_name.human)
164
+ (block_given?) ? yield : redirect_to(#{objet_name.pluralize}_url)
165
+ else
166
+ flash[:error] = t('views.messages.ko_deleted', :model=>#{model_name}.model_name.human)
167
+ aslon_render('show')
168
+ end"
169
+ end
170
+
171
+ def condition
172
+ cond=''
173
+ #todo
174
+ if params[:XXXXXXXXXX_id]
175
+ cond+="XXXXXXXXXX_id="+[params[:XXXXXXXXXX_id]].to_s
176
+ end
177
+ if cond ==''
178
+ return '1=1'
179
+ else
180
+ return cond
181
+ end
182
+ end
183
+
184
+ def search
185
+ #todo : bug trie après search réalisé
186
+ search_field=@as_options[:search_fields]
187
+
188
+ first_part_condition=""
189
+ search_field.each {|field| first_part_condition += "LOWER(#{field}) LIKE ? or "}
190
+ first_part_condition.chop!.chop!.chop!
191
+ last_part_condition=", '%#{params[:search]}%'"
192
+ all_part_condition= "' (#{first_part_condition}) and (#{condition}) '" +last_part_condition*search_field.size
193
+
194
+ eval "@#{objet_name.pluralize}=#{model_name}.paginate(:page => params[:page], :conditions => [#{all_part_condition}], :order=>'id')"
195
+
196
+ aslon_render_partial('search')
197
+ end
198
+
199
+ # private
200
+ def model_name
201
+ # self.controller_name.singularize.camelize
202
+ self.class.to_s.gsub('sController','')
203
+ end
204
+
205
+ def objet_name
206
+ model_name.underscore.downcase.gsub('/','_')
207
+ end
208
+
209
+ def objet_names
210
+ objet_name.pluralize
211
+ end
212
+
213
+ def aslon_render(action)
214
+ render :action=>"#{action}"
215
+ begin
216
+
217
+ rescue
218
+ render "aslon_scaffolds/#{action}"
219
+ end
220
+ end
221
+ def aslon_render_partial(action)
222
+ begin
223
+ render :partial=>"#{action}", :layout=>false
224
+
225
+ rescue
226
+ render :partial=>"aslon_scaffolds/#{action}", :layout=>false
227
+ end
228
+ end
229
+ end
230
+
231
+
232
+ #class Rails::Application
233
+ # config.generators do |g|
234
+ # g.template_engine :haml
235
+ # end
236
+ #end
237
+
@@ -0,0 +1,4 @@
1
+ module AslonScaffold
2
+ VERSION = "0.0.12"
3
+
4
+ end
@@ -0,0 +1,11 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module Haml
4
+ module Generators
5
+ module TemplatePath
6
+ def source_root
7
+ @_haml_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'haml', generator_name, 'templates'))
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ require 'generators/haml'
2
+ require 'rails/generators/erb/scaffold/scaffold_generator'
3
+
4
+ module Haml
5
+ module Generators
6
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
7
+ extend TemplatePath
8
+
9
+ def copy_layout_file
10
+ return unless options[:layout]
11
+ template "layout.haml.erb",
12
+ File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.haml")
13
+ end
14
+
15
+ protected
16
+ def format
17
+ :haml
18
+ end
19
+ def available_views
20
+ %w(index show new_edit _search)
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,6 @@
1
+ - semantic_form_for @<%= singular_name %> do |f|
2
+ - f.inputs :name => "Basic", :id => "basic" do
3
+ <% for attribute in attributes -%>
4
+ = f.input :<%= attribute.name%>
5
+ <% end -%>
6
+ = f.buttons
@@ -0,0 +1,6 @@
1
+ -# encoding UTF-8
2
+ -# autogenerated_by_scaffold
3
+ =table("<%= singular_name %>",@<%= plural_name %>,[<% for attribute in attributes -%>{:<%=attribute.name%>=>'<%= attribute.name %>'},<% end -%>],['show','edit','delete'])
4
+
5
+
6
+
@@ -0,0 +1,5 @@
1
+ -# encoding UTF-8
2
+ -# autogenerated_by_scaffold
3
+ = titre_action("edit","<%= singular_name %>")
4
+ = error_messages_for :<%= singular_name %>
5
+ = render :partial=>'new_edit'
@@ -0,0 +1,10 @@
1
+ -# ruby <%=$0%> scaffold <%ARGV.each {|a|%><%=a%> <%}%> --force
2
+ -# encoding UTF-8
3
+ -# autogenerated_by_scaffold
4
+
5
+
6
+ =titre("<%= plural_name %>","<%= singular_name %>")
7
+
8
+ #ajaxw
9
+ = render :partial=>'search'
10
+
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
+ <title><%= controller_class_name %>: <%%= aslon_controller.action_name %></title>
8
+ <%%= stylesheet_link_tag 'scaffold' %>
9
+ </head>
10
+ <body>
11
+
12
+ <p style="color: green"><%%= flash[:notice] %></p>
13
+
14
+ <%%= yield %>
15
+
16
+ </body>
17
+ </html>
@@ -0,0 +1,6 @@
1
+ -# encoding UTF-8
2
+ -# autogenerated_by_scaffold
3
+ = titre_action("new","<%= singular_name %>")
4
+ = error_messages_for :<%= singular_name %>
5
+ = render :partial=>'new_edit'
6
+
@@ -0,0 +1,13 @@
1
+ -# encoding UTF-8
2
+ -# autogenerated_by_scaffold
3
+
4
+ = titre_action(controller.action_name,"<%= singular_name %>")
5
+ = error_messages_for :<%= singular_name %>
6
+
7
+ - semantic_form_for @<%= singular_name %> do |f|
8
+
9
+ - f.inputs :name => "Basic", :id => "basic" do
10
+ <% for attribute in attributes -%>
11
+ = f.input :<%= attribute.name%>
12
+ <% end -%>
13
+ = f.buttons
@@ -0,0 +1,14 @@
1
+ -# encoding UTF-8
2
+ -# autogenerated_by_scaffold
3
+
4
+ =titre_show(@<%= singular_name %>,@<%= singular_name %>.lib)
5
+ %form.formtastic
6
+ %fieldset.inputs
7
+ %legend
8
+ %span=@as_options[:legend]
9
+
10
+ <% for attribute in attributes -%>
11
+ = show @<%= singular_name %>,:<%= attribute.name %>
12
+ <%end%>
13
+ = link_to 'Back', <%= plural_name %>_path
14
+
@@ -0,0 +1,28 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Nifty
4
+ module Generators
5
+ class Base < Rails::Generators::Base #:nodoc:
6
+ def self.source_root
7
+ @_nifty_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'nifty', generator_name, 'templates'))
8
+ end
9
+
10
+ def self.banner
11
+ "rails generate nifty:#{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
12
+ end
13
+
14
+ private
15
+
16
+ def add_gem(name, options = {})
17
+ gemfile_content = File.read(destination_path("Gemfile"))
18
+ File.open(destination_path("Gemfile"), 'a') { |f| f.write("\n") } unless gemfile_content =~ /\n\Z/
19
+ gem name, options unless gemfile_content.include? name
20
+ end
21
+
22
+ def print_usage
23
+ self.class.help(Thor::Base.shell.new)
24
+ exit
25
+ end
26
+ end
27
+ end
28
+ end