Sha256: 82b2a770fae7e24fb1b0462b62a0c017ab0f0af59ce6563944a37a4b2193700e
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
require 'rails/generators' module DjDashboard module Tasks class Install def self.run puts 'installing dj_dashboard' copy_assets_files copy_db_files copy_config_files end def self.copy_assets_files return nil if Rails.version =~ /3.0/ # not needed for rails 3.0 origin = File.join(gem_path, 'public') destination = Rails.root.join('app/assets') if Rails.version =~ /3.1/ destination = Rails.root.join('public') if Rails.version =~ /3.0/ puts copy_files(%w( stylesheets images javascripts ), origin, destination, 'dj_dashboard') end def self.copy_db_files puts 'now copying db files' origin = File.join(gem_path, 'db') destination = Rails.root.join('db') puts copy_files(%w( migrate ), origin, destination) end def self.copy_config_files puts 'now copying initializer file' origin = File.join(gem_path, 'config') destination = Rails.root.join('config') puts copy_files(%w( initializers ), origin, destination) end def self.gem_path File.expand_path('../../..', File.dirname(__FILE__)) end def self.copy_files(directories, origin, destination, prefix = nil) directories.each do |directory| dirs = [origin, directory, prefix, '**/*'].compact Dir[File.join(*dirs)].each do |file| relative = file.gsub(/^#{origin}\//, '') dirs = [destination, relative].compact dest_file = File.join(*dirs) dest_dir = File.dirname(dest_file) if !File.exist?(dest_dir) FileUtils.mkdir_p(dest_dir) end copier.copy_file(file, dest_file) unless File.directory?(file) end end end def self.copier unless @copier Rails::Generators::Base.source_root(gem_path) @copier = Rails::Generators::Base.new end @copier end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dj_dashboard-0.0.6 | lib/dj_dashboard/tasks/install.rb |