Sha256: eb97e96a732a3214768b1a4f78881f51c1bddad6da2be179a8f00416e48ed4dc
Contents?: true
Size: 1.56 KB
Versions: 2
Compression:
Stored size: 1.56 KB
Contents
namespace :<%= gem_name %> do namespace :install do desc "Initializes the <%= gem_name %> gem to rails engine" task default: %w(dependencies migrations routes) desc "Installs the <%= gem_name %> gem dependencies" task :dependencies do reenable_railties system "rake #{ app }uuids:install" end desc "Copies migrations from the <%= gem_name %> gem to application" task :migrations do reenable_railties Rake::Task["#{ app }<%= gem_name %>:install:migrations"].invoke end desc "Mounts the <%= gem_name %> API routes" task :routes do insert_into_file( "config/routes.rb", before: "\nend", line: "\n\n mount <%= module_name %>::Engine => \"/<%= gem_name %>\"", engine: "<%= module_name %>::Engine" ) unless engine? end def engine? @engine ||= Rake::Task.task_defined?("railties:install:migrations") end def app @app ||= engine? ? "" : "app:" end def reenable_railties Rake::Task["#{ app }railties:install:migrations"].reenable end def insert_into_file(name, before:, line:, engine:) say_with_time "mounting <%= gem_name %>' routes" do text = File.read(name) return if text[engine] File.write name, text.gsub(before, line << before) end end def say_with_time(text) start = current_time puts "=== #{ text } #{ "=" * (74 - text.count) }" yield puts " -> #{ (current_time - start).round(4) }s" end def current_time Time.new.to_f end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hexx-1.1.1 | lib/generators/install/templates/lib/task.erb |
hexx-1.1.0 | lib/generators/install/templates/lib/task.erb |