From cdff7f346b092061e04eddb14840dc695cced8fc Mon Sep 17 00:00:00 2001 From: Nick Kugaevsky Date: Sun, 10 Mar 2013 06:40:57 +0400 Subject: [PATCH] Improve rails generator - fixed usage text - choose layout template depending of installed engines --- lib/foundation/generators/USAGE | 11 ++++++----- lib/foundation/generators/install_generator.rb | 18 +++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/foundation/generators/USAGE b/lib/foundation/generators/USAGE index d0dc8fefc..3b7893bef 100644 --- a/lib/foundation/generators/USAGE +++ b/lib/foundation/generators/USAGE @@ -1,14 +1,15 @@ Description: - Setup Foundation assets on your website or generate new layouts preconfigured to use Foundation + Setup Foundation assets in your app and generate new layouts preconfigured to use Foundation Example: rails g foundation:install - This will replace the default application assets: + This will insert foundation require lines into default application assets: /app/assets/javascripts/application.js /app/assets/stylesheets/application.css - rails generate foundation:layout - - This will create: + And create sample layout (depending of your template engine): /app/views/layouts/application.html.erb + + And foundation variables override file: + /app/assets/stylesheets/foundation_and_overrides.scss diff --git a/lib/foundation/generators/install_generator.rb b/lib/foundation/generators/install_generator.rb index 0a73dc43b..d08ea2dff 100644 --- a/lib/foundation/generators/install_generator.rb +++ b/lib/foundation/generators/install_generator.rb @@ -6,9 +6,9 @@ module Foundation source_root File.join(File.dirname(__FILE__), 'templates') argument :layout_name, :type => :string, :default => 'application', :banner => 'layout_name' - class_option :haml, :desc => 'Generate HAML layout instead of ERB.', :type => :boolean - class_option :slim, :desc => 'Generate Slim layout instead of ERB.', :type => :boolean - + class_option :haml, :desc => 'Generate HAML layout instead of erb', :type => :boolean + class_option :slim, :desc => 'Generate Slim layout instead of erb', :type => :boolean + def add_assets # rails_ujs breaks, need to incorporate rails-behavior plugin for this to work seamlessly # gsub_file "app/assets/javascripts/application#{detect_js_format[0]}", /\/\/= require jquery\n/, "" @@ -17,14 +17,14 @@ module Foundation settings_file = File.join(File.dirname(__FILE__),"..","..","..","templates","project","scss","_settings.scss") create_file "app/assets/stylesheets/foundation_and_overrides.scss", File.read(settings_file) append_to_file "app/assets/stylesheets/foundation_and_overrides.scss", "\n@import 'foundation';\n" - insert_into_file "app/assets/stylesheets/application#{detect_css_format[0]}", "#{detect_css_format[1]} require foundation_and_overrides\n", :after => "require_self\n" + insert_into_file "app/assets/stylesheets/application#{detect_css_format[0]}", "#{detect_css_format[1]} require foundation_and_overrides\n", :after => "require_self\n" end - + def detect_js_format return ['.js.coffee', '#='] if File.exist?('app/assets/javascripts/application.js.coffee') return ['.js', '//='] if File.exist?('app/assets/javascripts/application.js') end - + def detect_css_format return ['.css', ' *='] if File.exist?('app/assets/stylesheets/application.css') return ['.css.sass', ' //='] if File.exist?('app/assets/stylesheets/application.css.sass') @@ -34,9 +34,9 @@ module Foundation end def create_layout - if options.haml? + if options.haml?||(defined?(Haml) && !options.slim?) template 'application.html.haml', "app/views/layouts/#{file_name}.html.haml" - elsif options.slim? + elsif options.slim?||(defined?(Slim) && !options.haml?) template 'application.html.slim', "app/views/layouts/#{file_name}.html.slim" else template 'application.html.erb', "app/views/layouts/#{file_name}.html.erb" @@ -50,4 +50,4 @@ module Foundation end end end -end \ No newline at end of file +end -- 2.47.3