module Spritz

Public Class Methods

get_attribute_string(options) click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 26
def self.get_attribute_string(options)
  attributes = ""
  options.each do |k, v|
    next unless k and v
    attributes += " " unless attributes.empty?
    attributes += "#{k} = '#{v}'"
  end
  attributes
end
redicle_tag(options = {}) click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 19
def self.redicle_tag(options = {})
  # Set default options
  options["data-role"] = "spritzer"
  attributes = Spritz::get_attribute_string(options)
  "<p><div #{attributes}></div></p>"
end
sanitize_options(config) click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 36
def self.sanitize_options(config)
  return unless config["spritz"] && config["spritz"]["url"]

  if config[config["spritz"]["url"]]
    config["spritz"]["url"] = config[config["spritz"]["url"]]
  end

  unless /https?:\/\// =~ config["spritz"]["url"]
    config["spritz"]["url"] = "http://" + config["spritz"]["url"]
    Jekyll.logger.warn "Spritz for Jekyll:", " URL does not contain protocol. We will use HTTP by default."
  end

  if /\/$/ =~ config["spritz"]["url"]
    config["spritz"]["url"].gsub!(/\/+$/, "")
    Jekyll.logger.warn "Spritz for Jekyll:", "URL ends with a forward slash. We will remove it for you."
  end
end
script_tag(client_id, base_url, login_success) click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 2
  def self.script_tag(client_id, base_url, login_success)
    output = <<-HEREDOC
      <script>
        window.jQuery || document.write('<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\">\\x3C/script>');
        var SpritzSettings = {
          clientId: \"#{client_id}\",
          redirectUri: \"#{base_url}/#{login_success}\"
        };
        if (!(/^https?:\\/\\//i.test(SpritzSettings.redirectUri))) {
          SpritzSettings.redirectUri = window.location.protocol + "//" + window.location.host + SpritzSettings.redirectUri;
        }
      </script>
      <script id=\"spritzjs\" type=\"text/javascript\" src=\"//sdk.spritzinc.com/js/1.0/js/spritz.min.js\"></script>
    HEREDOC
    output.gsub(/^\s*/, "")
  end

Private Instance Methods

get_options(config) click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 55
def get_options(config)
  @options = {}
  Spritz::sanitize_options(config)

  @options[:client_id]     = config["spritz"]["client_id"]
  @options[:url]           = config["spritz"]["url"]
  @options[:login_success] = config["spritz"]["login_success_name"]
  @options[:selector]      = config["spritz"]["selector"]
  @options[:automode]      = config["spritz"]["auto_mode"]

  # Redicle options
  @options[:redicle] = {}
  return unless config["spritz"]["redicle"]
  @options[:redicle][:redicleWidth]   = config["spritz"]["redicle"]["width"]
  @options[:redicle][:redicleHeight]  = config["spritz"]["redicle"]["height"]
  @options[:redicle][:defaultSpeed]   = config["spritz"]["redicle"]["default_speed"]
  @options[:redicle][:speedItems]     = config["spritz"]["redicle"]["speed_items"]
  @options[:redicle][:controlButtons] = config["spritz"]["redicle"]["control_buttons"]
  @options[:redicle][:controlTitles]  = config["spritz"]["redicle"]["control_titles"]
end
warn_and_set_default() click to toggle source
# File lib/spritz_for_jekyll/commons/spritz.rb, line 76
def warn_and_set_default
  if @options[:client_id].nil?
    Jekyll.logger.warn "Spritz for Jekyll:", "You need a client ID!"
    @options[:client_id] = "12345"
  end

  if @options[:url].nil?
    Jekyll.logger.warn "Spritz for Jekyll:", "URL not set. Will guess on client side."
  end

  if @options[:login_success].nil?
    @options[:login_success] = "login_success.html"
  end

  if @options[:automode].nil?
    @options[:automode] = true
  end

  unless @options[:redicle].nil?
    @options[:redicle].delete_if { |_,v| v.nil? }
  end
end