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.
701 702 703 704 |
# File 'lib/goat.rb', line 701 def initialize(dom, cs) @dom = dom @components = cs end |
Instance Method Details
#all_component_classes ⇒ Object
710 711 712 713 714 |
# File 'lib/goat.rb', line 710 def all_component_classes @all_component_classes ||= \ all_components.map(&:class).uniq.\ map{|cls| cls.superclasses(Component)}.uniq.flatten end |
#all_components ⇒ Object
706 707 708 |
# File 'lib/goat.rb', line 706 def all_components @components end |
#ordered_component_classes ⇒ Object
716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 |
# File 'lib/goat.rb', line 716 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
740 741 742 743 744 745 746 747 748 |
# File 'lib/goat.rb', line 740 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
750 751 752 |
# File 'lib/goat.rb', line 750 def style unpressed_component_classes.select(&:__css).map(&:scoped_css).join end |