leonardo 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/CHANGELOG +15 -0
  2. data/README.rdoc +40 -23
  3. data/lib/generators/erb/leosca/leosca_generator.rb +5 -2
  4. data/lib/generators/erb/leosca/templates/_form.html.erb +1 -1
  5. data/lib/generators/erb/leosca/templates/_list.erb +4 -1
  6. data/lib/generators/erb/leosca/templates/formtastic/_form.html.erb +8 -3
  7. data/lib/generators/erb/leosca/templates/index.html.erb +3 -1
  8. data/lib/generators/erb/leosca/templates/show.html.erb +17 -5
  9. data/lib/generators/leolay/leolay_generator.rb +131 -26
  10. data/lib/generators/leolay/templates/app/assets/javascripts/custom.js +2 -0
  11. data/lib/generators/leolay/templates/config/locales/en.yml +179 -2
  12. data/lib/generators/leolay/templates/config/locales/it.yml +125 -20
  13. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/Thumbs.db +0 -0
  14. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  15. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  16. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  17. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  18. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  19. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  20. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  21. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  22. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  23. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  24. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  25. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  26. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  27. data/lib/generators/leolay/templates/styles/cloudy/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  28. data/lib/generators/leolay/templates/vendor/assets/javascripts/jquery-ui/jquery.ui.datepicker-de.js +23 -0
  29. data/lib/generators/leolay/templates/vendor/assets/javascripts/jquery-ui/jquery.ui.datepicker-en.js +23 -0
  30. data/lib/generators/leolay/templates/vendor/assets/javascripts/jquery-ui/jquery.ui.datepicker-it.js +23 -0
  31. data/lib/generators/leolay/templates/vendor/assets/javascripts/vendor.js +2 -0
  32. data/lib/generators/leolay/templates/{app/assets/stylesheets → vendor/assets/stylesheets/formtastic}/formtastic.css +0 -0
  33. data/lib/generators/leolay/templates/{app/assets/stylesheets → vendor/assets/stylesheets/formtastic}/formtastic_changes.css +0 -0
  34. data/lib/generators/leolay/templates/vendor/assets/stylesheets/jquery-ui/jquery-ui-1.8.16.redcarpet.css +568 -0
  35. data/lib/generators/leolay/templates/vendor/assets/stylesheets/vendor.css +4 -0
  36. data/lib/generators/rails/leosca_controller/leosca_controller_generator.rb +17 -11
  37. data/template.rb +4 -2
  38. metadata +29 -7
data/CHANGELOG CHANGED
@@ -1,3 +1,18 @@
1
+ 1.4.0 (August 24th, 2011) Marco Mastrodonato
2
+ * New file custom.js to fill with your javascripts and use application.js as manifest file
3
+ * Two new files under vendor/assets folder: vendor.js and vendor.css to use as manifest file
4
+ * Now you can skip formtastic also with leosca generator (leolay already could) and though if it is installed.
5
+ * jQuery ui (1.8.16) support with a custom ligthness theme to combine with leonardo default style
6
+ * Filter fields labels on index views now have id linked to own text field.
7
+ * Remove underscore from fields labels on yaml i18n files.
8
+ * Fields labels on _form partial now use i18n tags. Who used formastic didn't need it.
9
+ * Now date use a text fields with calendar class for jquery ui calendar, if you chose it
10
+ * The three users created by leolay (admin, manager and user) have now a new password: abcd1234
11
+ * Association now generate a link to related object showing its name || id. These changes are in the _list and show which now use a table => will be changed with a tableless layout
12
+ * Minor improvement
13
+
14
+
15
+
1
16
  1.3.1 (August 22th, 2011) Marco Mastrodonato
2
17
  * Fixed csv name (to enable csv data export you have to set remote = false)
3
18
  * Fixed seeds creation when references fields are used
data/README.rdoc CHANGED
@@ -1,14 +1,16 @@
1
1
  = Leolay Generators
2
2
 
3
3
  A layout and customized scaffold generator for Rails 3.1
4
- Generate a layout using the ERGO Insurance Group\'s style, you can customize it or add your own. It also provides a customized scaffold to generates cool sites ajax ready.
4
+ A generator for creating Rails 3.1 applications ready to go. It generates the layout, the style, the internationalization and manage external gems for authentication, authorization and other. It also provides a customized scaffold to generates cool sites ajax ready in few minutes. If you find a bug please report to m.mastrodonato@gmail.com
5
5
 
6
6
 
7
7
  == Install
8
8
 
9
9
  gem install leonardo
10
10
 
11
-
11
+ or
12
+
13
+ rails new NewApp -m http://cloud.github.com/downloads/marcomd/Leonardo/template.rb
12
14
 
13
15
 
14
16
  == Usage
@@ -19,16 +21,19 @@ To run the generator, go to your rails project directory and call it using rails
19
21
  rails g leolay or rails destroy leolay
20
22
  rails g leosca or rails destroy leosca
21
23
 
22
- PS: Ergosca destroy do not remove variables parts like the attributes inserted into i18n yaml
24
+ PS: leosca destroy do not remove variables parts like the attributes inserted into i18n yaml
25
+
23
26
  PPS: You can run it more times and right like scaffold, is smart and won't generate tons of identical code
24
27
 
25
28
  === Step by step
26
29
 
27
30
  1. Firstly, create layout and initialize your project:
28
- rails new AppExample -m template.rb
29
- (You could find a template into gem root folder)
31
+ rails new AppExample -m http://cloud.github.com/downloads/marcomd/Leonardo/template.rb
32
+ (You can also find a template into gem root folder)
30
33
 
31
- there will be only a conflict on locales/en.yml which you can force
34
+ Answer y for the gem you need.
35
+ After the question will start generations.
36
+ There will be a conflict on locales/en.yml which you must force if it is the first generation.
32
37
 
33
38
  Will be:
34
39
  * Created an application layout with a nice and dynamic stylesheet based on sass
@@ -36,43 +41,45 @@ Will be:
36
41
  * Customized application.rb to exclude javascript and stylesheet for every resource you will create
37
42
  * Customized application controller to manage i18n and others stuff like authentication, authorization ecc [optionals]
38
43
  * Created customized partials for pagination with kaminari [optional]
44
+ * Added jQuery-ui with a custom ligthness layout
39
45
 
40
46
  2. If you have used my template you have an application ready to work:
41
- run rails s and try it on localhost:3000
42
- if you choosed authentication you have to sign in, try with this different profile:
43
- email: admin@AppExample.com, password: AppExample
47
+ run rails s and try it on http://localhost:3000
48
+ if you chose authentication you have to sign in, try with this different profile:
49
+ email: admin@AppExample.com, password: abcd1234
44
50
  [this profile can do everything]
45
51
  or
46
- email: manager@AppExample.com, password: AppExample
52
+ email: manager@AppExample.com, password: abcd1234
47
53
  [can read, create and update]
48
54
  or
49
- email: user@AppExample.com, password: AppExample
55
+ email: user@AppExample.com, password: abcd1234
50
56
  [can read, create, update and destroy]
51
57
 
52
- Profile exists only if you choosed authorization as well.
53
- That are default and ready to be customized to suit your needs.
58
+ Profile exists only if you chose authorization as well.
54
59
 
55
60
  3. Create your resource:
56
61
  rails g leosca product name:string description:text active:boolean items:integer price:decimal
57
62
 
58
- This will act as a normal scaffold more new stuff:
63
+ This will act as a normal scaffold and has more new features:
59
64
  * will be invoked new leosca_controller which is a customized scaffold_controller
60
- * customized views with new layout and ajax ready [set remote to true into index]
61
- * attributes will be insert into i18n files for fast translation
65
+ * customized views with new layout and ajax ready (only destroy atm)
66
+ * attributes will be insert into i18n files for a fast translation
62
67
  * seeds will be created for you to populate new table
68
+ * ...and other stuff
63
69
 
64
- 4. Apply on db
70
+ 4. Apply to db
65
71
  rake db:migrate
66
72
  rake db:seed
67
73
 
68
- READY!
69
-
74
+ That's all!
75
+ The new application is ready to be customized and to suit your needs.
70
76
 
71
- You could also customize it, copy under your project folder running:
77
+ You could also customize templates: both views and controller.
78
+ To copy under your project folder run:
72
79
  rails g leosca:install
73
80
 
74
- Then go to lib\generators\erb to change erb views like you would do with original scaffold
75
- go to lib\generators\rails if you want to customize more.
81
+ Then go to lib\generators\erb to edit erb views like you would do with original scaffold.
82
+ Go to lib\generators\rails if you want to customize more.
76
83
 
77
84
 
78
85
  For more information about usage:
@@ -102,7 +109,13 @@ PS: Of course, these options are in addition to those provided by the original s
102
109
 
103
110
  === Available layout
104
111
 
105
- * ergo [default]
112
+ * cloudy [default]
113
+
114
+
115
+ == Tutorial
116
+
117
+ http://mastrodonato.info/index.php/2011/08/leonardo-generatore-di-applicazioni-rails-3-1/
118
+
106
119
 
107
120
 
108
121
  == Found a bug?
@@ -113,3 +126,7 @@ If you are having a problem please submit an issue at m.mastrodonato@gmail.com
113
126
  == Rails 2 and Rails 3.0.x
114
127
 
115
128
  This Generators does not work with versions earlier 3.1
129
+
130
+
131
+
132
+
@@ -11,6 +11,7 @@ module Erb
11
11
  argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
12
12
  class_option :authorization, :type => :boolean, :default => true, :description => "Add code to manage authorization with cancan"
13
13
  class_option :remote, :type => :boolean, :default => true, :description => "Enable ajax. You can also do later set remote to true into index view."
14
+ class_option :formtastic, :type => :boolean, :default => true, :description => "Create forms to manage with formtastic gem"
14
15
 
15
16
  def create_root_folder
16
17
  empty_directory File.join("app/views", controller_file_path)
@@ -63,11 +64,13 @@ module Erb
63
64
  def authorization?
64
65
  File.exists? "app/models/ability.rb"
65
66
  end
66
-
67
67
  def formtastic?
68
+ return false unless options.formtastic?
68
69
  File.exists? "config/initializers/formtastic.rb"
69
70
  end
70
-
71
+ def jquery_ui?
72
+ File.exists? "vendor/assets/javascripts/jquery-ui"
73
+ end
71
74
  end
72
75
  end
73
76
  end
@@ -13,7 +13,7 @@
13
13
 
14
14
  <% attributes.each do |attribute| -%>
15
15
  <div class="field">
16
- <%%= f.label :<%= attribute.name %> %><br />
16
+ <%%= f.label :<%= attribute.name %>, t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %><br />
17
17
  <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
18
18
  </div>
19
19
  <% end -%>
@@ -17,8 +17,11 @@
17
17
  <tr id="tr<%%= <%= singular_table_name %>.id %>" class="<%%= cycle("odd", "even")%>">
18
18
  <%- attributes.each do |attribute| -%>
19
19
  <%- case attribute.type
20
- when :boolean -%>
20
+ when :boolean -%>
21
21
  <td><%%= <%= singular_table_name %>.<%= attribute.name %> ? style_image_tag("ico_v.png") : style_image_tag('ico_x.png') %></td>
22
+ <%- when :references, :belongs_to -%>
23
+ <%% link_name = <%= singular_table_name %>.<%= attribute.name %>.try(:name) || <%= singular_table_name %>.<%= attribute.name %>.try(:id) %>
24
+ <td><%%= link_to(link_name, <%= singular_table_name %>.<%= attribute.name %> ) %></td>
22
25
  <%- else -%>
23
26
  <td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
24
27
  <%- end -%>
@@ -1,8 +1,13 @@
1
1
  <%%= semantic_form_for(@<%= singular_table_name %>) do |f| %>
2
2
  <%%= f.inputs do %>
3
- <% attributes.each do |attribute| -%>
4
- <%%= f.input :<%= attribute.name %> %>
5
- <% end -%>
3
+ <%- attributes.each do |attribute| -%>
4
+ <%- case attribute.type
5
+ when :date -%>
6
+ <%%= f.input :<%= attribute.name %>, :as => :string, :input_html => { :class => 'calendar', :maxlength => 10 } %>
7
+ <%- else -%>
8
+ <%%= f.input :<%= attribute.name %> %>
9
+ <%- end -%>
10
+ <%- end -%>
6
11
  <%% end %>
7
12
  <%%= f.buttons do %>
8
13
  <%%= f.commit_button :button_html => { :class => "button large" } %>
@@ -9,7 +9,7 @@
9
9
  <div class="filter-container">
10
10
  <%- attributes.each do |attribute| -%>
11
11
  <div class="filter-field">
12
- <b><%%= f.label t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %></b><br />
12
+ <b><%%= f.label :<%= attribute.name %>, t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %></b><br />
13
13
  <%- case attribute.type -%>
14
14
  <%- when :boolean -%>
15
15
  <%%= radio_button("<%= singular_table_name %>", "<%= attribute.name %>", "1", {:checked => (@<%= singular_table_name %>.<%= attribute.name %>)}) %><%%= label_tag "<%= singular_table_name %>_<%= attribute.name %>_1", t(:yes) %><br />
@@ -17,6 +17,8 @@
17
17
  <%%= radio_button("<%= singular_table_name %>", "<%= attribute.name %>", "") %><%%= label_tag "<%= singular_table_name %>_<%= attribute.name %>_", t(:all) %>
18
18
  <%- when :text -%>
19
19
  <%%= f.text_field :<%= attribute.name %> %>
20
+ <%- when :date -%>
21
+ <%%= f.text_field :<%= attribute.name %><%=", :class => \"calendar\"" if jquery_ui?%> %>
20
22
  <%- else -%>
21
23
  <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
22
24
  <%- end -%>
@@ -4,10 +4,22 @@
4
4
  {:value => link_to(t(:show), @<%= singular_table_name %>), :active => true}
5
5
  )%>
6
6
 
7
+ <table>
7
8
  <% attributes.each do |attribute| -%>
8
- <p>
9
- <b><%%= t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %>:</b>
10
- <%%= @<%= singular_table_name %>.<%= attribute.name %> %>
11
- </p>
12
-
9
+ <tr>
10
+ <%- case attribute.type
11
+ when :boolean -%>
12
+ <td><b><%%= t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %>:</b></td>
13
+ <td><%%= @<%= singular_table_name %>.<%= attribute.name %> ? style_image_tag("ico_v.png") : style_image_tag('ico_x.png') %></td>
14
+ <%- when :references, :belongs_to -%>
15
+ <%% link_name = @<%= singular_table_name %>.<%= attribute.name %>.try(:name) || @<%= singular_table_name %>.<%= attribute.name %>.try(:id) %>
16
+ <td><b><%%= t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %>:</b></td>
17
+ <td><%%= link_to(link_name, @<%= singular_table_name %>.<%= attribute.name %> ) %></td>
18
+ <%- else -%>
19
+ <td><b><%%= t('attributes.<%= singular_table_name %>.<%= attribute.name %>') %>:</b></td>
20
+ <td><%%= @<%= singular_table_name %>.<%= attribute.name %> %></td>
21
+ <%- end -%>
22
+ </tr>
13
23
  <% end -%>
24
+ </table>
25
+
@@ -8,45 +8,64 @@ class LeolayGenerator < Rails::Generators::Base
8
8
  class_option :authorization, :type => :boolean, :default => true, :description => "Add code to manage authorization with cancan"
9
9
  class_option :user_class, :type => :boolean, :default => 'user', :description => "Set the user class name"
10
10
  class_option :formtastic, :type => :boolean, :default => true, :description => "Copy formtastic files into leosca custom folder (inside project)"
11
+ class_option :jquery_ui, :type => :boolean, :default => true, :description => "To use jQuery ui improvement"
11
12
 
12
13
 
13
14
  def generate_layout
14
15
  template "config.rb", "config/initializers/config.rb"
15
16
 
16
- template "styles/#{style_name}/stylesheet.sass",
17
- "app/assets/stylesheets/#{style_name}.sass"
17
+ template "styles/#{style_name}/stylesheet.sass", "app/assets/stylesheets/#{style_name}.sass"
18
18
 
19
19
  copy_file "layout_helper.rb", "app/helpers/layout_helper.rb"
20
20
 
21
21
  copy_file "styles/#{style_name}/views/layout/application.html.erb", "app/views/layouts/application.html.erb", :force => true
22
22
  template "styles/#{style_name}/views/layout/_layout.html.erb", "app/views/layouts/_#{style_name}.html.erb"
23
- #{:authentication => options.authentication?,
24
- #:authorization => options.authorization?}
25
23
  copy_file "styles/#{style_name}/views/layout/_message.html.erb", "app/views/application/_message.html.erb"
26
24
  copy_file "styles/#{style_name}/views/layout/_session.html.erb", "app/views/application/_session.html.erb" if options.authentication?
27
25
 
28
- copy_file "config/locales/en.yml", "config/locales/en.yml"
29
- copy_file "config/locales/it.yml", "config/locales/it.yml"
26
+ locale_path = "config/locales"
27
+ source_paths.each do |source_path|
28
+ files = Dir["#{source_path}/#{locale_path}/??.yml"]
29
+ files.each do |f|
30
+ copy_file f, "#{locale_path}/#{File.basename(f)}"
31
+ end
32
+ break if files.any?
33
+ end
30
34
 
31
35
  copy_file "lib/utility.rb", "lib/extras/utility.rb"
32
36
 
33
37
  if options.pagination?
34
- copy_file "config/locales/kaminari.en.yml", "config/locales/kaminari.en.yml"
35
- copy_file "config/locales/kaminari.it.yml", "config/locales/kaminari.it.yml"
38
+ source_paths.each do |source_path|
39
+ files = Dir["#{source_path}/#{locale_path}/kaminari.??.yml"]
40
+ files.each do |f|
41
+ copy_file f, "#{locale_path}/#{File.basename(f)}"
42
+ end
43
+ break if files.any?
44
+ end
36
45
 
37
- copy_file "styles/#{style_name}/views/kaminari/_next_page.html.erb", "app/views/kaminari/_next_page.html.erb"
38
- copy_file "styles/#{style_name}/views/kaminari/_page.html.erb", "app/views/kaminari/_page.html.erb"
39
- copy_file "styles/#{style_name}/views/kaminari/_paginator.html.erb", "app/views/kaminari/_paginator.html.erb"
40
- copy_file "styles/#{style_name}/views/kaminari/_prev_page.html.erb", "app/views/kaminari/_prev_page.html.erb"
46
+ #copy_file "styles/#{style_name}/views/kaminari/_next_page.html.erb", "app/views/kaminari/_next_page.html.erb"
47
+ #copy_file "styles/#{style_name}/views/kaminari/_page.html.erb", "app/views/kaminari/_page.html.erb"
48
+ #copy_file "styles/#{style_name}/views/kaminari/_paginator.html.erb", "app/views/kaminari/_paginator.html.erb"
49
+ #copy_file "styles/#{style_name}/views/kaminari/_prev_page.html.erb", "app/views/kaminari/_prev_page.html.erb"
50
+ directory "styles/#{style_name}/views/kaminari", "app/views/kaminari"
41
51
 
42
- copy_file "styles/#{style_name}/images/kaminari/nav.png", "app/assets/images/styles/#{style_name}/kaminari/nav.png"
52
+
53
+ #copy_file "styles/#{style_name}/images/kaminari/nav.png", "app/assets/images/styles/#{style_name}/kaminari/nav.png"
54
+ directory "styles/#{style_name}/images/kaminari", "app/assets/images/styles/#{style_name}/kaminari"
43
55
  end
44
56
 
45
57
  directory "styles/#{style_name}/images/style", "app/assets/images/styles/#{style_name}"
46
58
 
59
+ directory "styles/#{style_name}/images/jquery-ui", "app/assets/images/styles/#{style_name}/jquery-ui" if options.jquery_ui?
60
+
47
61
  if options.authentication?
48
- copy_file "config/locales/devise.en.yml", "config/locales/devise.en.yml"
49
- copy_file "config/locales/devise.it.yml", "config/locales/devise.it.yml"
62
+ source_paths.each do |source_path|
63
+ files = Dir["#{source_path}/#{locale_path}/devise.??.yml"]
64
+ files.each do |f|
65
+ copy_file f, "#{locale_path}/#{File.basename(f)}"
66
+ end
67
+ break if files.any?
68
+ end
50
69
  directory "app/views/devise", "app/views/devise"
51
70
  end
52
71
  end
@@ -135,19 +154,19 @@ class LeolayGenerator < Rails::Generators::Base
135
154
  def create_admin_migration
136
155
  file = "db/migrate/*_create_admin.rb"
137
156
  return unless options.authentication? and Dir[file].empty?
138
- file = file.sub('*', Time.now.strftime("%Y%m%d%H9999"))
157
+ file = file.sub('*', Time.now.strftime("%Y%m%d%H%M99"))
139
158
  create_file file do
140
159
  <<-FILE.gsub(/^ /, '')
141
160
  class CreateAdmin < ActiveRecord::Migration
142
161
  def self.up
143
162
  add_column :users, :roles_mask, :integer
144
- user=User.new :email => 'admin@#{app_name}.com', :password => '#{app_name}', :password_confirmation => '#{app_name}'
163
+ user=User.new :email => 'admin@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
145
164
  user.roles=['admin']
146
165
  user.save
147
- user=User.new :email => 'manager@#{app_name}.com', :password => '#{app_name}', :password_confirmation => '#{app_name}'
166
+ user=User.new :email => 'manager@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
148
167
  user.roles=['manager']
149
168
  user.save
150
- user=User.new :email => 'user@#{app_name}.com', :password => '#{app_name}', :password_confirmation => '#{app_name}'
169
+ user=User.new :email => 'user@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
151
170
  user.roles=['user']
152
171
  user.save
153
172
  end
@@ -160,20 +179,20 @@ class LeolayGenerator < Rails::Generators::Base
160
179
  end
161
180
  FILE
162
181
  end
182
+
163
183
  end
164
184
 
165
185
  def setup_formtastic
166
186
  return unless options.formtastic?
167
187
 
168
- file = "app/assets/stylesheets/formtastic.css"
169
- copy_file file, file
170
- file = "app/assets/stylesheets/formtastic_changes.css"
188
+ path = "vendor/assets/stylesheets/formtastic"
189
+ file = "#{path}/formtastic.css"
190
+ copy_file file, file unless File.exists?(file)
191
+ file = "#{path}/formtastic_changes.css"
171
192
  copy_file file, file
172
193
 
173
- #New version include custom partial _form
174
- #file_source = "lib/templates/erb/scaffold/_form.html.erb"
175
- #file_destination = "lib/templates/erb/leosca/_form.html.erb"
176
- #copy_file file_source, file_destination if File.exists?(file_source) and not File.exists?(file_destination)
194
+ path = "vendor/assets/stylesheets/jquery-ui"
195
+ directory path, path
177
196
 
178
197
  file = "config/initializers/formtastic.rb"
179
198
  inject_into_file file, :after => "# Formtastic::SemanticFormBuilder.i18n_lookups_by_default = false" do
@@ -184,6 +203,91 @@ class LeolayGenerator < Rails::Generators::Base
184
203
  end if File.exists?(file)
185
204
  end
186
205
 
206
+ def setup_javascript
207
+ app_path = "app/assets/javascripts"
208
+ vendor_path = "vendor/assets/javascripts"
209
+
210
+ file = "#{app_path}/custom.js"
211
+ copy_file file, file
212
+
213
+ file = "#{vendor_path}/vendor.js"
214
+ copy_file file, file
215
+
216
+ file = "#{app_path}/application.js"
217
+ append_file file do
218
+ <<-FILE.gsub(/^ /, '')
219
+
220
+ //= require vendor
221
+ FILE
222
+ end
223
+
224
+ if options.jquery_ui?
225
+ file = "#{app_path}/custom.js"
226
+ append_file file do
227
+ <<-FILE.gsub(/^ /, '')
228
+
229
+ $(function (){
230
+ $('.calendar').datepicker();
231
+ });
232
+ FILE
233
+ end
234
+
235
+ file = "#{app_path}/application.js"
236
+ inject_into_file file, :after => "//= require jquery_ujs" do
237
+ <<-FILE.gsub(/^ /, '')
238
+
239
+ //= require jquery-ui
240
+ FILE
241
+ end
242
+
243
+ #files = Dir["#{vendor_path}/jquery-ui/jquery.ui.datepicker-??.js"]
244
+ #files.each do |f|
245
+ # copy_file f, f
246
+ #end
247
+ directory "#{vendor_path}/jquery-ui", "#{vendor_path}/jquery-ui"
248
+
249
+ file = "#{vendor_path}/vendor.js"
250
+ append_file file do
251
+ <<-FILE.gsub(/^ /, '')
252
+
253
+ //= require_tree ./jquery-ui
254
+ FILE
255
+ end
256
+
257
+ end
258
+ end
259
+
260
+ def setup_stylesheets
261
+ app_path = "app/assets/stylesheets"
262
+ vendor_path = "vendor/assets/stylesheets"
263
+
264
+ file = "#{vendor_path}/vendor.css"
265
+ copy_file file, file
266
+
267
+ if options.jquery_ui?
268
+ file = "#{app_path}/application.css"
269
+ inject_into_file file, :before => "*/" do
270
+ <<-FILE.gsub(/^ /, '')
271
+ *= require vendor
272
+ FILE
273
+ end
274
+
275
+ file = "#{vendor_path}/vendor.css"
276
+ inject_into_file file, :before => "*/" do
277
+ <<-FILE.gsub(/^ /, '')
278
+ *= require_tree ./jquery-ui
279
+ FILE
280
+ end
281
+ end
282
+
283
+ file = "#{vendor_path}/vendor.css"
284
+ inject_into_file file, :before => "*/" do
285
+ <<-FILE.gsub(/^ /, '')
286
+ *= require_tree ./formtastic
287
+ FILE
288
+ end if options.formtastic?
289
+ end
290
+
187
291
  private
188
292
  def style_name
189
293
  style.underscore
@@ -192,4 +296,5 @@ class LeolayGenerator < Rails::Generators::Base
192
296
  def app_name
193
297
  File.basename(Dir.pwd)
194
298
  end
299
+
195
300
  end