Module: Paste::JS::Cache

Included in:
Base
Defined in:
lib/paste/js/cache.rb

Instance Method Summary collapse

Instance Method Details

#needs_dependency_update?(result) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
55
56
# File 'lib/paste/js/cache.rb', line 52

def needs_dependency_update? result
  needs_update_relative_to_sources result do
    results[result][:parser].js_dependencies
  end
end

#needs_update?(result) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
49
50
# File 'lib/paste/js/cache.rb', line 46

def needs_update? result
  needs_update_relative_to_sources result do
    results[result][:sources]
  end
end

#rebuildObject



7
8
9
10
11
# File 'lib/paste/js/cache.rb', line 7

def rebuild
  rebuild_if do |result, sources|
    needs_update? result
  end
end

#rebuild!Object



13
14
15
# File 'lib/paste/js/cache.rb', line 13

def rebuild!
  rebuild_if { |r, s| true }
end

#rebuild_if(&blk) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/paste/js/cache.rb', line 17

def rebuild_if &blk
  render_all_erb
  results.each_pair do |result, sources|
    begin
      if blk.call(result, sources[:sources])
        sources[:parser].reset!
        write_result result
      end
    rescue ResolveError
      results.delete result
    end
  end
end

#register(sources) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/paste/js/cache.rb', line 31

def register sources
  if results[result_name(sources)][:sources] != sources
    results[result_name(sources)] = {
      :sources => sources,
      :parser  => config.parser.new(self, sources)
    }

    write_cache_to_disk
  end
end

#registered?(sources) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/paste/js/cache.rb', line 42

def registered? sources
  results.key? result_name(sources)
end

#resultsObject



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/paste/js/cache.rb', line 58

def results
  return @results if defined?(@results)
  @results = Hash.new { {} }

  begin
    cached = YAML.load_file tmp_path(config.cache_file)
  rescue
    cached = []
  end

  cached.each do |sources|
    register sources
  end

  @results
end