lib/generators/chanko/unit/unit_generator.rb
module Chanko
module Generators
class UnitGenerator < Rails::Generators::NamedBase
ASSETS_TYPES = %w[images javascripts stylesheets]
source_root File.expand_path("../templates", __FILE__)
def create_unit_directory
empty_directory(directory)
end
def create_unit_file
template("unit.rb.erb", "#{directory}/#{file_name}.rb")
end
def create_views_directory
create_file("#{directory}/views/.gitkeep", "")
end
ASSETS_TYPES.each do |type|
define_method("create_#{type}_directory") do
create_file("#{directory}/#{type}/.gitkeep", "")
end
end
ASSETS_TYPES.each do |type|
define_method("create_#{type}_symlink") do
create_assets_symlink(type)
end
end
private
def create_assets_symlink(type)
from = "app/assets/#{type}/#{directory_name}/#{file_name}"
to = "../../../../#{directory}/#{type}"
create_link(from, to)
end
def directory
"#{Chanko::Config.units_directory_path}/#{file_name}"
end
def directory_name
Chanko::Config.units_directory_path.split("/").last
end
end
end
end