class Deliver::HtmlGenerator

Constants

KEYWORD_SPLITTER

Splits keywords supporting:

  • separated by commas (with optional whitespace)

  • separated by newlines

Public Instance Methods

render(options, screenshots, export_path = nil) click to toggle source

Renders all data available to quickly see if everything was correctly generated. @param export_path (String) The path to a folder where the resulting HTML file should be stored.

# File lib/deliver/html_generator.rb, line 33
def render(options, screenshots, export_path = nil)
  @screenshots = screenshots || []
  @options = options

  @app_name = (options[:name]['en-US'] || options[:name].values.first) if options[:name]
  @app_name ||= options[:app].name

  @languages = options[:description].keys if options[:description]
  @languages ||= options[:app].latest_version.description.languages

  html_path = File.join(Deliver::ROOT, "lib/assets/summary.html.erb")
  html = ERB.new(File.read(html_path)).result(binding) # http://www.rrn.dk/rubys-erb-templating-system

  export_path = File.join(export_path, "Preview.html")
  File.write(export_path, html)

  return export_path
end
run(options, screenshots) click to toggle source
# File lib/deliver/html_generator.rb, line 8
def run(options, screenshots)
  begin
    html_path = self.render(options, screenshots, '.')
  rescue => ex
    UI.error(ex.inspect)
    UI.error(ex.backtrace.join("\n"))
    okay = UI.input("Could not render HTML preview. Do you still want to continue?")
    return if okay
    UI.crash!("Could not render HTML page")
  end
  UI.important("Verifying the upload via the HTML file can be disabled by either adding")
  UI.important("`force true` to your Deliverfile or using `deliver --force`")

  system("open '#{html_path}'")
  okay = UI.confirm("Does the Preview on path '#{html_path}' look okay for you?")

  if okay
    UI.success("HTML file confirmed...") # print this to give feedback to the user immediately
  else
    UI.user_error!("Did not upload the metadata, because the HTML file was rejected by the user")
  end
end
split_keywords(keywords) click to toggle source

Splits a string of keywords separated by comma or newlines into a presentable list @param keywords (String)

# File lib/deliver/html_generator.rb, line 54
def split_keywords(keywords)
  keywords.split(KEYWORD_SPLITTER)
end