Module: MasterView::Analyzer::Common

Included in:
Builder, ContentEntry, Listener, TemplateSpec
Defined in:
lib/masterview/analyzer.rb

Constant Summary collapse

ImportToNonImportDir =
{
  "import_render" => "gen_partial",
  "import" => "generate",
}
NonImportToImportDir =
ImportToNonImportDir.invert

Instance Method Summary collapse

Instance Method Details

#calc_hash(data) ⇒ Object



20
21
22
23
# File 'lib/masterview/analyzer.rb', line 20

def calc_hash(data)
  #MasterView::Log.warn { 'hash= '+data.hash.to_s+' data='+data }
  data.gsub( /\s+/, ' ' ).hash #collapse whitespace
end

#convert_import_to_non_import_dirs(text) ⇒ Object

gsub any import directives with non-import directives and return, makes clone before gsub



31
32
33
34
35
36
37
38
# File 'lib/masterview/analyzer.rb', line 31

def convert_import_to_non_import_dirs(text)
  text_clone = text.clone
  mv_ns = DirectiveRegistry.current.mv_namespace_prefix
  ImportToNonImportDir.sort.reverse.each do |i,n| # reverse order to substitute longer items first
    text_clone.gsub! mv_ns+i, mv_ns+n  # mv:import_render to mv:gen_partial  and mv:import to mv:generate
  end
  text_clone
end

#convert_non_import_to_import_dirs(text) ⇒ Object

gsub any non-import directives with import directives and return, makes clone before gsub



41
42
43
44
45
46
47
48
# File 'lib/masterview/analyzer.rb', line 41

def convert_non_import_to_import_dirs(text)
  text_clone = text.clone
  mv_ns = DirectiveRegistry.current.mv_namespace_prefix
  NonImportToImportDir.sort.reverse.each do |i,n| # reverse order to substitute longer items first
    text_clone.gsub! mv_ns+i, mv_ns+n  # mv:gen_partial to mv:import_render and mv:generate to mv:import
  end
  text_clone
end

#src_hash(data_orig) ⇒ Object



25
26
27
28
# File 'lib/masterview/analyzer.rb', line 25

def src_hash(data_orig)
  data = convert_import_to_non_import_dirs(data_orig)
  calc_hash(data)
end