Class: Glib::Json::Traversal::Visitor
- Inherits:
-
Object
- Object
- Glib::Json::Traversal::Visitor
- Defined in:
- app/controllers/concerns/glib/json/traversal.rb
Instance Attribute Summary collapse
-
#forms ⇒ Object
readonly
Used in test crawler.
Instance Method Summary collapse
-
#initialize ⇒ Visitor
constructor
A new instance of Visitor.
- #traverse_multiple(views, block) ⇒ Object
- #traverse_single(view, block) ⇒ Object
- #traverse_vertical_content(view, block) ⇒ Object
Constructor Details
#initialize ⇒ Visitor
Returns a new instance of Visitor.
38 39 40 |
# File 'app/controllers/concerns/glib/json/traversal.rb', line 38 def initialize @forms = [] end |
Instance Attribute Details
#forms ⇒ Object (readonly)
Used in test crawler
36 37 38 |
# File 'app/controllers/concerns/glib/json/traversal.rb', line 36 def forms @forms end |
Instance Method Details
#traverse_multiple(views, block) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/controllers/concerns/glib/json/traversal.rb', line 42 def traverse_multiple(views, block) if views.is_a? Array views.each do |view| case view['view'] when 'panels/form-v1' @forms << view traverse_single view, block @forms.pop else traverse_single view, block end end end end |
#traverse_single(view, block) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'app/controllers/concerns/glib/json/traversal.rb', line 61 def traverse_single(view, block) block.call view # Generic view children traverse_multiple view['childViews'], block # Generic menu buttons traverse_multiple view['buttons'], block traverse_multiple view['childButtons'], block # Split panel traverse_vertical_content view['left'], block traverse_vertical_content view['center'], block traverse_vertical_content view['right'], block # TODO: crawl header and footer # Table/List if (sections = view['sections']).is_a? Array sections.each do |section| traverse_vertical_content section['header'], block traverse_multiple section['rows'], block traverse_vertical_content section['footer'], block end end end |
#traverse_vertical_content(view, block) ⇒ Object
57 58 59 |
# File 'app/controllers/concerns/glib/json/traversal.rb', line 57 def traverse_vertical_content(view, block) traverse_multiple view['childViews'], block if view end |