Class: Polymer::Rails::Component

Inherits:
Object
  • Object
show all
Defined in:
lib/polymer-rails/component.rb

Constant Summary collapse

SELECTORS =

Selectors for component resources

{
  html:       "link[rel='import']:not([type='css'])",
  stylesheet: "link[rel='stylesheet'], link[rel='import'][type='css']",
  javascript: "script[src]"
}

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Component

Returns a new instance of Component.



14
15
16
17
# File 'lib/polymer-rails/component.rb', line 14

def initialize(data)
  @adapter = XmlAdapters::Base.factory
  @doc = @adapter.parse_document(data)
end

Instance Method Details

#html_importsObject



37
38
39
# File 'lib/polymer-rails/component.rb', line 37

def html_imports
  @adapter.css_select(@doc, SELECTORS[:html])
end

#javascriptsObject



31
32
33
34
35
# File 'lib/polymer-rails/component.rb', line 31

def javascripts
  @adapter.css_select(@doc, SELECTORS[:javascript]).reject do |tag|
    is_external? tag.attributes['src'].value
  end
end

#replace_node(node, name, content) ⇒ Object



23
24
25
# File 'lib/polymer-rails/component.rb', line 23

def replace_node(node, name, content)
  @adapter.replace_node node, @adapter.create_node(@doc, name, content)
end

#stringifyObject



19
20
21
# File 'lib/polymer-rails/component.rb', line 19

def stringify
  @adapter.stringify(@doc)
end

#stylesheetsObject



27
28
29
# File 'lib/polymer-rails/component.rb', line 27

def stylesheets
  @adapter.css_select(@doc, SELECTORS[:stylesheet]).reject{|tag| is_external? tag.attributes['href'].value}
end