Class: GlobalAssets

Inherits:
Object
  • Object
show all
Defined in:
lib/global_assets.rb

Class Method Summary collapse

Class Method Details

.erb(template, locals) ⇒ Object



28
29
30
# File 'lib/global_assets.rb', line 28

def erb(template, locals)
  ERB.new(template).result(OpenStruct.new(locals).instance_eval { binding })
end

.inherited(base) ⇒ Object



8
9
10
11
12
13
14
15
16
# 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_filesObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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) ⇒ Object



56
57
58
# File 'lib/global_assets.rb', line 56

def set(key, val)
  settings[key] = val
end

.settingsObject



60
61
62
# File 'lib/global_assets.rb', line 60

def settings
  @settings ||= {}
end

.snippet(name, locals = {}) ⇒ Object

Raises:

  • (Exception)


18
19
20
21
22
23
24
25
26
# 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