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