Class: Goat::DOMDistiller
Instance Method Summary collapse
- #all_component_classes ⇒ Object
- #all_components ⇒ Object
-
#initialize(dom, cs) ⇒ DOMDistiller
constructor
A new instance of DOMDistiller.
- #ordered_component_classes ⇒ Object
- #script ⇒ Object
- #style ⇒ Object
- #unpressed_component_classes ⇒ Object
Constructor Details
#initialize(dom, cs) ⇒ DOMDistiller
Returns a new instance of DOMDistiller.
713 714 715 716 |
# File 'lib/goat.rb', line 713 def initialize(dom, cs) @dom = dom @components = cs end |
Instance Method Details
#all_component_classes ⇒ Object
722 723 724 725 726 |
# File 'lib/goat.rb', line 722 def all_component_classes @all_component_classes ||= \ all_components.map(&:class).uniq.\ map{|cls| cls.superclasses(Component)}.uniq.flatten end |
#all_components ⇒ Object
718 719 720 |
# File 'lib/goat.rb', line 718 def all_components @components end |
#ordered_component_classes ⇒ Object
728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 |
# File 'lib/goat.rb', line 728 def ordered_component_classes cs = all_component_classes i = 0 # invariant: left of i has no superclasses to right while i < cs.size c = cs[i] if cs[(i+1)..-1].any?{|sup| c.subclass_of?(sup)} cs.delete(c) cs << c else i += 1 end end cs end |
#script ⇒ Object
752 753 754 755 756 757 758 759 760 |
# File 'lib/goat.rb', line 752 def script cs = unpressed_component_classes [ cs.map(&:__script), all_components.select{|c| c.class.wired?}.map(&:wire_script), all_components.map(&:__script) ].flatten.compact.join(';') end |
#style ⇒ Object
762 763 764 |
# File 'lib/goat.rb', line 762 def style unpressed_component_classes.select(&:__css).map(&:scoped_css).join end |