class ThumbsYup::ReviewDecorator

Attributes

review[RW]

Public Class Methods

new(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 5
def initialize(vars)
  @review = {
    "body" => formatted_body(vars),
    "full_name" => full_name(vars),
    "title_and_business_name" =>  title_and_business_name(vars),
    "city_state_and_country" =>  city_state_and_country(vars),
  }
  @review = clean_vars(@review)
end

Private Instance Methods

city_state_and_country(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 35
def city_state_and_country(vars)
  separator1 = ", " if vars["city"] && vars["state"]
  separator2 = ", " if (vars["city"] && vars["country"]) || (vars["state"] && vars["country"])
  "#{vars["city"]}#{separator1}#{vars["state"]}#{separator2}#{vars["country"]}"
end
clean_vars(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 41
def clean_vars(vars)
  vars.each do |key, value|
    vars[key] ||= ""
    vars[key] = if (key == "body")
                  vars["body"].split("<br>").map { |section| CGI::escapeHTML(section) }.join("<br>")
                else
                  CGI::escapeHTML(vars[key])
                end
  end
end
formatted_body(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 17
def formatted_body(vars)
  vars["body"].gsub(%r(\n), "<br><br>")
end
full_name(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 21
def full_name(vars)
  return "Anonymous" unless vars["first_name"] || vars["middle_name"] || vars["last_name"] || vars["business_name"]

  separator1 = " " if vars["first_name"] && vars["middle_name"]
  separator2 = " " if (vars["first_name"] && vars["last_name"]) || (vars["middle_name"] && vars["last_name"])

  "#{vars["first_name"]}#{separator1}#{vars["middle_name"]}#{separator2}#{vars["last_name"]}"
end
title_and_business_name(vars) click to toggle source
# File lib/thumbs_yup/review_decorator.rb, line 30
def title_and_business_name(vars)
  separator = ", " if vars["title"] && vars["business_name"]
  "#{vars["title"]}#{separator}#{vars["business_name"]}"
end