Class: FileSorter
- Inherits:
-
Object
- Object
- FileSorter
- Defined in:
- lib/theme_importer_rails/file_sorter.rb
Instance Attribute Summary collapse
-
#css_files ⇒ Object
readonly
Returns the value of attribute css_files.
-
#font_files ⇒ Object
readonly
Returns the value of attribute font_files.
-
#images ⇒ Object
readonly
Returns the value of attribute images.
-
#js_files ⇒ Object
readonly
Returns the value of attribute js_files.
Instance Method Summary collapse
- #compile_and_move_sass ⇒ Object
- #create_imported_theme_dir ⇒ Object
- #find_css ⇒ Object
- #find_font_files ⇒ Object
- #find_images ⇒ Object
- #find_js ⇒ Object
- #find_sass ⇒ Object
- #generate_css_manifest ⇒ Object
- #generate_js_manifest ⇒ Object
-
#initialize(theme_orig) ⇒ FileSorter
constructor
A new instance of FileSorter.
- #move_css_files ⇒ Object
- #move_font_files ⇒ Object
- #move_images ⇒ Object
- #move_js_files ⇒ Object
Constructor Details
#initialize(theme_orig) ⇒ FileSorter
Returns a new instance of FileSorter.
18 19 20 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 18 def initialize(theme_orig) @theme_orig = theme_orig end |
Instance Attribute Details
#css_files ⇒ Object (readonly)
Returns the value of attribute css_files.
2 3 4 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 2 def css_files @css_files end |
#font_files ⇒ Object (readonly)
Returns the value of attribute font_files.
4 5 6 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 4 def font_files @font_files end |
#images ⇒ Object (readonly)
Returns the value of attribute images.
5 6 7 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 5 def images @images end |
#js_files ⇒ Object (readonly)
Returns the value of attribute js_files.
3 4 5 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 3 def js_files @js_files end |
Instance Method Details
#compile_and_move_sass ⇒ Object
125 126 127 128 129 130 131 132 133 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 125 def compile_and_move_sass files_to_compile = [] @sass_files.each do |sass_file| file_name = File.basename(sass_file, '.*') files_to_compile << [sass_file, "#{Rails.root}/vendor/assets/imported_theme/stylesheets/#{file_name}.css"] end Sass::Plugin.[:cache] = false Sass::Plugin.update_stylesheets(files_to_compile) end |
#create_imported_theme_dir ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 45 def create_imported_theme_dir # vendor assets directory for css and js files unless Dir.exist?("#{Rails.root}/vendor/assets") Dir.mkdir("#{Rails.root}/vendor/assets") end unless Dir.exist?("#{Rails.root}/vendor/assets/imported_theme") Dir.mkdir("#{Rails.root}/vendor/assets/imported_theme") end #public assets directory for fonts and images unless Dir.exist?("#{Rails.root}/public/assets") Dir.mkdir("#{Rails.root}/public/assets") end unless Dir.exist?("#{Rails.root}/public/assets/imported_theme") Dir.mkdir("#{Rails.root}/public/assets/imported_theme") end end |
#find_css ⇒ Object
22 23 24 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 22 def find_css @css_files = Dir.glob("#{@theme_orig}/**/*.css") end |
#find_font_files ⇒ Object
37 38 39 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 37 def find_font_files @font_files = Dir.glob("#{@theme_orig}/**/*{#{FONT_EXTENSIONS.join(',')}}") end |
#find_images ⇒ Object
41 42 43 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 41 def find_images @images = Dir.glob("#{@theme_orig}/**/*{#{IMAGE_EXTENSIONS.join(',')}}") end |
#find_js ⇒ Object
33 34 35 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 33 def find_js @js_files = Dir.glob("#{@theme_orig}/**/*{.js,.coffee}") end |
#find_sass ⇒ Object
26 27 28 29 30 31 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 26 def find_sass @sass_files = Dir.glob("#{@theme_orig}/**/*.scss") #ignore partials @sass_files.delete_if {|file| /^_.*/.match(File.basename(file))} end |
#generate_css_manifest ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 135 def generate_css_manifest unless @css_files.nil? create_imported_theme_dir manifest_file = File.open("#{Rails.root}/vendor/assets/imported_theme/imported_theme.css", "w") manifest_file.puts("/*") @css_files.each do |css_file| css_file_name = File.basename(css_file) manifest_file.puts("*= require stylesheets/#{css_file_name}") end @sass_files.each do |sass_file| sass_file_name = File.basename(sass_file, '.*') manifest_file.puts("*= require stylesheets/#{sass_file_name}.css") end manifest_file.puts("*/") manifest_file.close end end |
#generate_js_manifest ⇒ Object
154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 154 def generate_js_manifest unless @js_files.nil? create_imported_theme_dir manifest_file = File.open("#{Rails.root}/vendor/assets/imported_theme/imported_theme.js", "w") @js_files.each do |js_file| js_file_name = File.basename(js_file) manifest_file.puts("//= require javascripts/#{js_file_name}") end manifest_file.close end end |
#move_css_files ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 65 def move_css_files unless @css_files.nil? create_imported_theme_dir unless Dir.exist?("#{Rails.root}/vendor/assets/imported_theme/stylesheets") Dir.mkdir("#{Rails.root}/vendor/assets/imported_theme/stylesheets") end @css_files.each do |file| file_name = File.basename(file) FileUtils.cp(file, "#{Rails.root}/vendor/assets/imported_theme/stylesheets/#{file_name}") end end end |
#move_font_files ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 95 def move_font_files unless @font_files.nil? create_imported_theme_dir unless Dir.exist?("#{Rails.root}/public/assets/imported_theme/fonts") Dir.mkdir("#{Rails.root}/public/assets/imported_theme/fonts") end @font_files.each do |file| file_name = File.basename(file) FileUtils.cp(file, "#{Rails.root}/public/assets/imported_theme/fonts/#{file_name}") end end end |
#move_images ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 110 def move_images unless @images.nil? create_imported_theme_dir unless Dir.exist?("#{Rails.root}/public/assets/imported_theme/images") Dir.mkdir("#{Rails.root}/public/assets/imported_theme/images") end @images.each do |file| file_name = File.basename(file) FileUtils.cp(file, "#{Rails.root}/public/assets/imported_theme/images/#{file_name}") end end end |
#move_js_files ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/theme_importer_rails/file_sorter.rb', line 80 def move_js_files unless @js_files.nil? create_imported_theme_dir unless Dir.exist?("#{Rails.root}/vendor/assets/imported_theme/javascripts") Dir.mkdir("#{Rails.root}/vendor/assets/imported_theme/javascripts") end @js_files.each do |file| file_name = File.basename(file) FileUtils.cp(file, "#{Rails.root}/vendor/assets/imported_theme/javascripts/#{file_name}") end end end |