class Swatches::FileGenerator

Public Class Methods

write!() click to toggle source
# File lib/swatches/file_generator.rb, line 6
def self.write!
  ensure_app_stylesheet_directory_exists
  write_color_variables_file
  write_swatch_preview_file
end

Private Class Methods

app_stylesheet_directory() click to toggle source
# File lib/swatches/file_generator.rb, line 22
def self.app_stylesheet_directory
  File.join(Rails.root, 'app', 'assets', 'stylesheets', Swatches.config.stylesheet_directory)
end
color_variables_filename() click to toggle source
# File lib/swatches/file_generator.rb, line 14
def self.color_variables_filename
  File.join(app_stylesheet_directory, '_color-swatches.css.scss')
end
engine_stylesheet_directory() click to toggle source
# File lib/swatches/file_generator.rb, line 26
def self.engine_stylesheet_directory
  File.join(Rails.root, 'app', 'assets', 'stylesheets', Swatches.config.stylesheet_directory)
end
ensure_app_stylesheet_directory_exists() click to toggle source
# File lib/swatches/file_generator.rb, line 30
def self.ensure_app_stylesheet_directory_exists
  FileUtils.mkdir_p(app_stylesheet_directory)
end
header() click to toggle source
# File lib/swatches/file_generator.rb, line 52
    def self.header
      # The ASCII-art below looks funny because we have to escape backslashes.
      <<-HEADER.strip_heredoc
        /***********************************************************************
         *     _____ _______ ____  _____                                       *
         *    / ____|__   __/ __ \\|  __ \\       THIS IS A GENERATED FILE.      *
         *   | (___    | | | |  | | |__) |                                     *
         *    \\___ \\   | | | |  | |  ___/       DO NOT EDIT.                   *
         *    ____) |  | | | |__| | |                                          *
         *   |_____/   |_|  \\____/|_|                                          *
         *                                                                     *
         ***********************************************************************
         *                                                                     *
         *  This file was generated by the Swatches engine.  Refer to its      *
         *  README for details.                                                *
         *                                                                     *
         ***********************************************************************/


      HEADER
    end
swatch_preview_filename() click to toggle source
# File lib/swatches/file_generator.rb, line 18
def self.swatch_preview_filename
  File.join(engine_stylesheet_directory, '_preview-colors.css.scss')
end
write_color_variables(f, name, red, green, blue) click to toggle source
# File lib/swatches/file_generator.rb, line 74
    def self.write_color_variables(f, name, red, green, blue)
      swatch_header = <<-SWATCH_HEADER.strip_heredoc
        /*
         *  COLOR SWATCH FOR COLOR "#{name.upcase}"
         *
         *  Base Color
         *    red:   #{red}
         *    green: #{green}
         *    blue:  #{blue}
         *
         */
      SWATCH_HEADER
      f.puts swatch_header
      base_color = Sass::Script::Color.new(red: red, green: green, blue: blue)
      swatch_generator = Swatches::SwatchGenerator.new(base_color, name)
      f.puts swatch_generator.to_sass
      f.puts
    end
write_color_variables_file() click to toggle source
# File lib/swatches/file_generator.rb, line 34
def self.write_color_variables_file
  File.open(color_variables_filename, 'w') do |f|
    f.puts header
    Swatches::Colors.each_color do |name, red, green, blue|
      write_color_variables(f, name, red, green, blue)
    end
  end
end
write_preview_css(f, name, red, green, blue) click to toggle source
# File lib/swatches/file_generator.rb, line 93
def self.write_preview_css(f, name, red, green, blue)
  (0..50).each do |i|
    f.puts ".#{name}-#{i*2} { background-color: $#{name}-#{i*2} }"
  end
end
write_swatch_preview_file() click to toggle source
# File lib/swatches/file_generator.rb, line 43
def self.write_swatch_preview_file
  File.open(swatch_preview_filename, 'w') do |f|
    f.puts header
    Swatches::Colors.each_color do |name, red, green, blue|
      write_preview_css(f, name, red, green, blue)
    end
  end
end