lib/refills/import_generator.rb in refills-0.0.2 vs lib/refills/import_generator.rb in refills-0.1.0
- old
+ new
@@ -3,15 +3,78 @@
module Refills
class ImportGenerator < Rails::Generators::Base
desc 'Copy refills'
source_root File.expand_path("../../../source", __FILE__)
argument :snippet, type: :string, required: true
+ class_option :coffee, type: :boolean, default: false
def copy_html
- copy_file "_#{snippet}.html.erb", "app/views/refills/_#{snippet}.html.erb"
+ copy_file_if_exists(
+ partial_name,
+ File.join('app', 'views', 'refills', partial_name),
+ )
end
def copy_styles
- copy_file "stylesheets/refills/_#{snippet}.scss", "app/assets/stylesheets/refills/_#{snippet}.scss"
+ copy_file_if_exists(
+ File.join('stylesheets', 'refills', stylesheet_name),
+ File.join('app', 'assets', 'stylesheets', 'refills', stylesheet_name),
+ )
+ end
+
+ def copy_javascripts
+ copy_file_if_exists(
+ javascript_path,
+ File.join('app', 'assets', 'javascripts', 'refills', javascript_name),
+ )
+ end
+
+ private
+
+ def copy_file_if_exists(source, destination)
+ if File.exists?(File.join(self.class.source_root, source))
+ copy_file source, destination
+ end
+ end
+
+ def partial_name
+ "_#{snippet.underscore}.html.erb"
+ end
+
+ def stylesheet_name
+ "_#{snippet.dasherize}.scss"
+ end
+
+ def javascript_name
+ "#{snippet.underscore}.#{javascript_extension}"
+ end
+
+ def javascript_extension
+ if coffee?
+ "coffee"
+ else
+ "js"
+ end
+ end
+
+ def javascript_path
+ if coffee?
+ File.join(
+ "javascripts",
+ "refills",
+ "coffeescript",
+ javascript_name
+ )
+ else
+ File.join(
+ "javascripts",
+ "refills",
+ javascript_name
+ )
+ end
+ end
+
+ def coffee?
+ options[:coffee]
end
end
end