class GlobalAssets

Public Class Methods

erb(template, locals) click to toggle source
# File lib/global_assets.rb, line 28
def erb(template, locals)
  ERB.new(template).result(OpenStruct.new(locals).instance_eval { binding })
end
inherited(base) click to toggle source
Calls superclass method
# File lib/global_assets.rb, line 8
def inherited(base)
  configs = YAML.load_file(File.expand_path("config/#{snake_case(base)}.yml"))
  if configs[snake_case(base)] && configs[snake_case(base)]["target_dirs"]
    base.set(:target_js, configs[snake_case(base)]["target_dirs"]["js"])
    base.set(:target_css, configs[snake_case(base)]["target_dirs"]["css"])
    base.set(:target_img, configs[snake_case(base)]["target_dirs"]["img"])
  end
  super
end
move_global_files() click to toggle source
# File lib/global_assets.rb, line 32
def move_global_files
  # delete all 3 target directories
  puts "Wiping old global directories..."
  [settings[:target_js], settings[:target_css], settings[:target_img]].each do |dir|
    if dir
      FileUtils.rm_rf(dir)
      FileUtils.mkdir_p(dir)
    end
  end
  # copy over all 3 source directories to the target dirs
  if settings[:target_js]
    puts "Moving global JS..."
    FileUtils.cp_r(File.join(settings[:source_dir], "js/."), settings[:target_js])
  end
  if settings[:target_css]
    puts "Moving global CSS..."
    FileUtils.cp_r(File.join(settings[:source_dir], "css/."), settings[:target_css])
  end
  if settings[:target_img]
    puts "Moving global Images..."
    FileUtils.cp_r(File.join(settings[:source_dir], "img/."), settings[:target_img])
  end
end
set(key, val) click to toggle source
# File lib/global_assets.rb, line 56
def set(key, val)
  settings[key] = val
end
settings() click to toggle source
# File lib/global_assets.rb, line 60
def settings
  @settings ||= {}
end
snippet(name, locals = {}) click to toggle source
# File lib/global_assets.rb, line 18
def snippet(name, locals = {})
  file_at = File.join(settings[:source_dir], "snippets", name.to_s + ".erb")
  if(File.exists?(file_at))
    ret_val = erb(File.read(file_at), locals)
    return ret_val.html_safe if ret_val.respond_to?(:html_safe)
    return ret_val
  end
  raise Exception, "Could not find Snippet: [#{name.to_s}]"
end

Private Class Methods

snake_case(camel_cased_word) click to toggle source
# File lib/global_assets.rb, line 65
def snake_case(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end