class DynamicStylesheet
Public Class Methods
new(options)
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 2 def initialize(options) @options = options end
Public Instance Methods
compile()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 38 def compile precompile unless Rails.application.config.assets.compile env = Rails.application.assets.is_a?(Sprockets::Index) ? Rails.application.assets.instance_variable_get('@environment') : Rails.application.assets Sprockets::StaticCompiler.new( env, File.join(Rails.public_path, Rails.application.config.assets.prefix), [self.stylesheet_file], digest: true, manifest: false ).compile Rails.application.config.assets.digests[self.stylesheet_file] = env[self.stylesheet_file].digest_path end Dir[self.scss_file_path.sub(/\d+.css.scss$/, '*')].each do |file| File.delete file unless file == self.scss_file_path.to_s end end
compiled?()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 26 def compiled? if Rails.application.config.assets.compile File.exists?(self.scss_file_path) && !File.zero?(self.scss_file_path) else Rails.application.config.assets.digests[self.stylesheet_file].present? end end
erb_file_path()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 18 def erb_file_path Rails.root.join('app', 'assets', 'stylesheets', 'sass', erb_filename) end
erb_filename()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 14 def erb_filename 'dyn_stylesheet.scss.erb' end
precompile()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 34 def precompile File.open(scss_file_path, 'w') { |f| f.write render_scss } end
render_scss()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 22 def render_scss ERB.new(File.read(erb_file_path)).result(binding) end
scss_file_path()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 10 def scss_file_path Rails.root.join('app', 'assets', 'stylesheets', "#{self.stylesheet_file}.scss") end
stylesheet_file()
click to toggle source
# File lib/generators/templates/dynamic_stylesheet.rb, line 6 def stylesheet_file "#{Rails.env}_dyn_stylesheet.css" end