Class: Habaki::MediaRule

Inherits:
Rule show all
Defined in:
lib/habaki/media_rule.rb

Overview

Rule for @media

Instance Attribute Summary collapse

Attributes inherited from Rule

#stylesheet

Instance Method Summary collapse

Methods inherited from Rule

#declarations, #each_declaration, #each_selector, #element_match?, #selectors

Methods inherited from Node

#to_s

Constructor Details

#initializeMediaRule

Returns a new instance of MediaRule.



142
143
144
145
# File 'lib/habaki/media_rule.rb', line 142

def initialize
  @medias = MediaQueries.new
  @rules = Rules.new
end

Instance Attribute Details

#mediasMediaQueries

Returns:



138
139
140
# File 'lib/habaki/media_rule.rb', line 138

def medias
  @medias
end

#rulesRules

Returns:



140
141
142
# File 'lib/habaki/media_rule.rb', line 140

def rules
  @rules
end

Instance Method Details

#media_match?(media) ⇒ Boolean

does rule media match ?

Parameters:

  • media (Visitor::Media, String, NilClass)

    use String (eg: “print”) to check only media type, nil to match everything, or Visitor::Media for complex query

Returns:

  • (Boolean)


150
151
152
153
154
155
156
157
# File 'lib/habaki/media_rule.rb', line 150

def media_match?(media)
  case media
  when ::String, NilClass
    @medias.media_match?(Visitor::Media.new(media))
  else
    @medias.media_match?(media)
  end
end

#read_from_katana(rule) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Parameters:



168
169
170
171
# File 'lib/habaki/media_rule.rb', line 168

def read_from_katana(rule)
  @medias = MediaQueries.read_from_katana(rule.medias)
  @rules = Rules.read_from_katana(rule.rules)
end

#string(format = Formatter::Base.new) ⇒ String

Parameters:

Returns:



161
162
163
# File 'lib/habaki/media_rule.rb', line 161

def string(format = Formatter::Base.new)
  "@media #{@medias.string(format)} {\n#{@rules.string(format + 1)}\n}"
end