Class: HViewLoader

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/hengine/hviewloader.rb

Instance Method Summary collapse

Constructor Details

#initializeHViewLoader

Returns a new instance of HViewLoader.



38
39
40
# File 'lib/hengine/hviewloader.rb', line 38

def initialize()
  @hviews = {} # hypersonic views
end

Instance Method Details

#value(fieldName, viewName) ⇒ Object



57
58
59
60
61
# File 'lib/hengine/hviewloader.rb', line 57

def value(fieldName, viewName)

  return self.view(viewName)[fieldName] 

end

#view(moduleName, viewName) ⇒ Object



51
52
53
54
55
# File 'lib/hengine/hviewloader.rb', line 51

def view(moduleName, viewName)

  return self.viewByFileName(moduleName, "#{Dir.pwd}/app/modules/#{moduleName}/#{viewName}/#{viewName}_view.xml")

end

#viewByFileName(moduleName, filename) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/hengine/hviewloader.rb', line 42

def viewByFileName(moduleName, filename)
  
  viewName = filename 
  @hviews[moduleName] = {} unless @hviews[moduleName]
  return @hviews[moduleName][viewName] if @hviews[moduleName][viewName]
  @hviews[moduleName][viewName] = Nokogiri::Slop(File.read(filename))

end

#viewByType(moduleName, viewName, type) ⇒ Object



63
64
65
# File 'lib/hengine/hviewloader.rb', line 63

def viewByType(moduleName, viewName, type)
  return self.view(moduleName, viewName).xpath("//view[@type='#{type}']//*")
end

#viewParsing(moduleName, viewName, type) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/hengine/hviewloader.rb', line 67

def viewParsing(moduleName, viewName, type)

  nodes = []
  view = self.view(moduleName, viewName).xpath("//view[@type='#{type}']//*")
  #view = view.xpath(".//*")
  view.each do |node| 
    p node.name
    # node[:type]
    case node.name 
    when "table"
      puts "table"
    when "form"
      puts "form"
    when "panel"
      puts "panel"
    when "field"
      nodes << node          
    else
    end
  end

  return nodes

end