class FileSorter

Attributes

css_files[R]
font_files[R]
images[R]
js_files[R]

Public Class Methods

new(theme_orig) click to toggle source
# File lib/theme_importer_rails/file_sorter.rb, line 18
def initialize(theme_orig)
  @theme_orig = theme_orig
end

Public Instance Methods

compile_and_move_sass() click to toggle source
# 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.options[:cache] = false
  Sass::Plugin.update_stylesheets(files_to_compile)
end
create_imported_theme_dir() click to toggle source
# 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() click to toggle source
# File lib/theme_importer_rails/file_sorter.rb, line 22
def find_css
  @css_files = Dir.glob("#{@theme_orig}/**/*.css")
end
find_font_files() click to toggle source
# 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() click to toggle source
# File lib/theme_importer_rails/file_sorter.rb, line 41
def find_images
  @images = Dir.glob("#{@theme_orig}/**/*{#{IMAGE_EXTENSIONS.join(',')}}")
end
find_js() click to toggle source
# File lib/theme_importer_rails/file_sorter.rb, line 33
def find_js
  @js_files = Dir.glob("#{@theme_orig}/**/*{.js,.coffee}")
end
find_sass() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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