class Inkcite::View::MediaQuery

Public Class Methods

new(view, max_width) click to toggle source
# File lib/inkcite/view/media_query.rb, line 5
def initialize view, max_width

  @view = view
  @max_width = max_width

  # Initialize the responsive styles used in this email.  This will hold
  # an array of Responsive::Rule objects.
  @responsive_styles = Renderer::Responsive.presets(view)

end

Public Instance Methods

<<(rule) click to toggle source
# File lib/inkcite/view/media_query.rb, line 16
def << rule

  # Rules only get added once
  @responsive_styles << rule unless @responsive_styles.include?(rule)

  rule
end
active_styles() click to toggle source
# File lib/inkcite/view/media_query.rb, line 24
def active_styles
  @responsive_styles.select(&:active?)
end
blank?() click to toggle source
# File lib/inkcite/view/media_query.rb, line 28
def blank?
  @responsive_styles.none?(&:active?)
end
find_by_declaration(declarations) click to toggle source
# File lib/inkcite/view/media_query.rb, line 32
def find_by_declaration declarations
  @responsive_styles.detect { |r| r.declarations == declarations }
end
find_by_klass(klass) click to toggle source
# File lib/inkcite/view/media_query.rb, line 36
def find_by_klass klass
  @responsive_styles.detect { |r| r.klass == klass }
end
find_by_tag_and_klass(tag, klass) click to toggle source
# File lib/inkcite/view/media_query.rb, line 40
def find_by_tag_and_klass tag, klass
  @responsive_styles.detect { |r| r.klass == klass  && r.include?(tag) }
end
to_a() click to toggle source
# File lib/inkcite/view/media_query.rb, line 44
def to_a

  css = []
  css << "@media only screen and (max-width: #{Inkcite::Renderer::px(@max_width)}) {"

  # Remove extraneous right-margin on Gmail by applying this to the
  # body via a class selector.
  # https://litmus.com/community/discussions/5913-new-gmail-app-not-respect-full-width
  css << 'u + .body { min-width: 100vw; }'

  css += active_styles.collect(&:to_css)
  css << '}'

  css
end
to_css() click to toggle source
# File lib/inkcite/view/media_query.rb, line 60
def to_css
  to_a.join("\n")
end