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.
714 715 716 717 |
# File 'lib/goat.rb', line 714 def initialize(dom, cs) @dom = dom @components = cs end |
Instance Method Details
#all_component_classes ⇒ Object
723 724 725 726 727 |
# File 'lib/goat.rb', line 723 def all_component_classes @all_component_classes ||= \ all_components.map(&:class).uniq.\ map{|cls| cls.superclasses(Component)}.uniq.flatten end |
#all_components ⇒ Object
719 720 721 |
# File 'lib/goat.rb', line 719 def all_components @components end |
#ordered_component_classes ⇒ Object
729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 |
# File 'lib/goat.rb', line 729 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
753 754 755 756 757 758 759 760 761 |
# File 'lib/goat.rb', line 753 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
763 764 765 |
# File 'lib/goat.rb', line 763 def style unpressed_component_classes.select(&:__css).map(&:scoped_css).join end |