class DynamicStyles::Stylesheet

Public Class Methods

new(layout) click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 8
def initialize(layout)
  @layout = layout
end

Public Instance Methods

asset_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 24
def asset_path
  "#{base_path}.css"
end
base_filename() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 44
def base_filename
  [
    @layout.id,
    @layout.updated_at.to_s(:number),
    template_name
  ].join('-')
end
base_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 20
def base_path
  "#{template_name.pluralize}/#{base_filename}"
end
compile() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 57
def compile
  unless compiled?
    write_template!(render_template)
    compile!
    # cleanup
  end
end
compiler() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 12
def compiler
  AssetCompiler.new(asset_path, scss_path)
end
digested_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 36
def digested_path
  "/assets/#{base_path}-#{digest}.css"
end
path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 52
def path
  compile
  public_path
end
public_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 16
def public_path
  precompilation? ? digested_path : undigested_path
end
render_template() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 65
def render_template
  class_name = @layout.class.to_s
  controller = (class_name.pluralize + "Controller").constantize
  controller.new.render_to_string template_name,
    formats: [:scss],
    layout:  false,
    locals:  { :"#{class_name.downcase}" => @layout }
end
scss_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 28
def scss_path
  "#{base_path}.scss"
end
template_name() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 40
def template_name
  @layout.class.to_s.downcase.split('::').last
end
undigested_path() click to toggle source
# File lib/dynamic_styles/stylesheet.rb, line 32
def undigested_path
  "/assets/#{base_path}.css"
end