Sha256: dd9e1e49acf15cc5d96bf3e245202b98fba0edf92d63fbc276e3ce8e569e5aec
Contents?: true
Size: 1.63 KB
Versions: 4
Compression:
Stored size: 1.63 KB
Contents
module Redmineup class AssetsManager def self.install_assets return unless Gem.loaded_specs[GEM_NAME] source = File.join(Gem.loaded_specs[GEM_NAME].full_gem_path, 'app', 'assets') destination = File.join(Dir.pwd, 'public', 'plugin_assets', GEM_NAME) return unless File.directory?(source) source_files = Dir[source + '/**/*'] source_dirs = source_files.select { |d| File.directory?(d) } source_files -= source_dirs unless source_files.empty? base_target_dir = File.join(destination, File.dirname(source_files.first).gsub(source, '')) begin FileUtils.mkdir_p(base_target_dir) rescue Exception => e raise "Could not create directory #{base_target_dir}: " + e.message end end source_dirs.each do |dir| target_dir = File.join(destination, dir.gsub(source, '')) begin FileUtils.mkdir_p(target_dir) rescue Exception => e raise "Could not create directory #{target_dir}: " + e.message end end source_files.each do |file| begin target = File.join(destination, file.gsub(source, '')) unless File.exist?(target) && FileUtils.identical?(file, target) FileUtils.cp(file, target) end rescue Exception => e raise "Could not copy #{file} to #{target}: " + e.message end end end def self.base_path Gem.loaded_specs[GEM_NAME].full_gem_path end def self.assets_paths return [] unless Gem.loaded_specs[GEM_NAME] Dir[File.join(base_path, 'app', 'assets', '*')] end end end
Version data entries
4 entries across 4 versions & 1 rubygems