Class: Roadie::Stylesheet

Inherits:
Object
  • Object
show all
Defined in:
lib/roadie/stylesheet.rb

Overview

Domain object that represents a stylesheet (from disc, perhaps).

It has a name and a list of StyleBlocks.

Constant Summary collapse

BOM =
(+"\xEF\xBB\xBF").force_encoding('UTF-8').freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, css) ⇒ Stylesheet

Parses the CSS string into a Roadie::StyleBlocks and stores it.

Parameters:

  • name (String)
  • css (String)


19
20
21
22
# File 'lib/roadie/stylesheet.rb', line 19

def initialize(name, css)
  @name = name
  @blocks = parse_blocks(css.sub(BOM, ""))
end

Instance Attribute Details

#blocksArray<StyleBlock> (readonly)

Returns the current value of blocks.

Returns:

  • (Array<StyleBlock>)

    the current value of blocks



10
11
12
# File 'lib/roadie/stylesheet.rb', line 10

def blocks
  @blocks
end

#nameString (readonly)

the name of the stylesheet (“stylesheets/main.css”, “Admin user styles”, etc.). The name of the stylesheet will be visible if any errors occur.

Returns:

  • (String)

    the current value of name



10
11
12
# File 'lib/roadie/stylesheet.rb', line 10

def name
  @name
end

Instance Method Details

#each_inlinable_block {|selector, properties| ... } ⇒ Object

Deprecated.

Iterate over the ##blocks instead. Will be removed on version 4.0.

Yields:

  • (selector, properties)

Yield Parameters:



28
29
30
31
32
33
34
# File 'lib/roadie/stylesheet.rb', line 28

def each_inlinable_block(&block)
  # #map and then #each in order to support chained enumerations, etc. if
  # no block is provided
  inlinable_blocks.map { |style_block|
    [style_block.selector, style_block.properties]
  }.each(&block)
end

#to_sObject



36
37
38
# File 'lib/roadie/stylesheet.rb', line 36

def to_s
  blocks.join("\n")
end