module SirTrevor::Helpers::ViewHelper

Public Instance Methods

parse_sir_trevor(json) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 65
def parse_sir_trevor(json)
  hash = (json.is_a?(String) ? SirTrevor.parse_json(json) : json)
  return false unless hash.has_key?(:data)
  hash[:data]
end
render_sir_trevor(json, image_type = :large) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 7
def render_sir_trevor(json, image_type = :large)
  if hash = parse_sir_trevor(json)
    safe_join hash.map { |object|
      render_sir_trevor_block(object, image_type)
    }.compact
  else
    ''
  end
end
render_sir_trevor_block(object, image_type = :large) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 17
def render_sir_trevor_block(object, image_type = :large)
  view_name = "sir-trevor/blocks/#{object[:type].to_s.downcase}_block"

  render(view_name,
         :block => object[:data],
         :image_type => image_type) if object.has_key?(:data)
end
render_sir_trevor_image(json, image_type = :large) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 25
def render_sir_trevor_image(json, image_type = :large)
  image = pluck_sir_trevor_type(json, :image)

  unless image.nil?
    render(:partial => "sir-trevor/blocks/image_block",
           :locals => { :block => image[:data], :image_type => image_type,
                        :protocol => request.protocol }) if image.has_key?(:data)
  end
end
sir_trevor_image_tag(block, image_type) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 35
def sir_trevor_image_tag(block, image_type)
  # Does the image type exist on the block?
  if(block[:file].present? && block[:file][image_type].present?)

    image = block[:file][image_type]

    image_url = image[:url]
    width = image[:width] if image[:width].present?
    height = image[:height] if image[:height].present?

    options = {
      :class => "sir-trevor-image #{image_type}",
      :alt => block[:description]
    }

    options.merge!({ :width => width }) unless width.nil?
    options.merge!({ :height => height }) unless height.nil?

    image_tag(image_url, options) unless image_url.nil?
  end
end
sir_trevor_markdown(text) click to toggle source
# File lib/sir-trevor/helpers/view_helper.rb, line 57
def sir_trevor_markdown(text)
  renderer = CustomMarkdownFormatter.new(:hard_wrap => true, :filter_html => true,
                                         :autolink => true, :no_intraemphasis => true,
                                         :fenced_code => true)
  markdown = Redcarpet::Markdown.new(renderer)
  markdown.render(text).html_safe
end

Private Instance Methods

pluck_sir_trevor_type(json, type) click to toggle source

Get's the first instance of a type from the specified JSON

# File lib/sir-trevor/helpers/view_helper.rb, line 73
def pluck_sir_trevor_type(json, type)
  hash = SirTrevor.parse_json(json)
  if hash.has_key?(:data)
    item = hash[:data].select { |item| item[:type] == type }
    item.first[:text] if item.any?
  end
end