module Smmrize

Constants

VERSION

Public Class Methods

create_document_query_string(options) click to toggle source
# File lib/smmrize/request_types/document.rb, line 22
def self.create_document_query_string(options)
  raise ArgumentError, "Unknown key in `options`" unless options.keys == document_option_defaults.keys
  query_string = "&SM_API_KEY=#{Smmrize::Defaults.api_key}&SM_LENGTH=#{options[:length]}&SM_KEYWORD_COUNT=#{options[:keywords]}"

  if options[:avoid_quotes]
    query_string += "&SM_QUOTE_AVOID"
  end

  if options[:with_break]
    query_string += "&SM_WITH_BREAK"
  end

  Smmrize::Defaults.api_url + query_string
end
create_webpage_query_string(options) click to toggle source
# File lib/smmrize/request_types/webpage.rb, line 21
def self.create_webpage_query_string(options)
  raise ArgumentError, "Unknown key in `options`" unless options.keys == webpage_option_defaults.keys
  query_string = "&SM_API_KEY=#{Smmrize::Defaults.api_key}&SM_LENGTH=#{options[:length]}&SM_KEYWORD_COUNT=#{options[:keywords]}"

  if options[:avoid_quotes]
    query_string += "&SM_QUOTE_AVOID"
  end

  if options[:with_break]
    query_string += "&SM_WITH_BREAK"
  end

  Smmrize::Defaults.api_url + query_string + "&SM_URL=#{CGI::escape(options[:url])}"
end
document(options={}) click to toggle source
# File lib/smmrize/request_types/document.rb, line 2
def self.document(options={})
  raise ArgumentError, "Options should be a hash" unless options.is_a?(Hash)
  raise ArgumentError, "Maximum number of options are #{document_option_defaults.size}" unless options.size <= document_option_defaults.size

  send_document_request(options)
end
document_option_defaults() click to toggle source
# File lib/smmrize/request_types/document.rb, line 37
def self.document_option_defaults
  {
    input: nil,
    length: 7,
    keywords: 0,
    avoid_quotes: false,
    with_break: false
  }
end
prepare_document_options(options) click to toggle source
# File lib/smmrize/request_types/document.rb, line 15
def self.prepare_document_options(options)
  raise ArgumentError, "Options must contain an `input` parameter" unless options.keys.include?(:input)
  raise ArgumentError, "Options must not contain a URl - Did you mean to use `Smmrize.webpage?`" if options.keys.include?(:url)
  options = document_option_defaults.merge(options)
  create_document_query_string(options)
end
prepare_webpage_options(options) click to toggle source
# File lib/smmrize/request_types/webpage.rb, line 15
def self.prepare_webpage_options(options)
  raise ArgumentError, "Options must contain a URL" unless options.keys.include?(:url)
  options = webpage_option_defaults.merge(options)
  create_webpage_query_string(options)
end
send_document_request(options) click to toggle source
# File lib/smmrize/request_types/document.rb, line 9
def self.send_document_request(options)
  uri = URI(prepare_document_options(options))
  response = Net::HTTP.post_form(uri, 'sm_api_input': options[:input])
  JSON.parse(response.body)
end
send_webpage_request(options) click to toggle source
# File lib/smmrize/request_types/webpage.rb, line 9
def self.send_webpage_request(options)
  url = prepare_webpage_options(options)
  response = Net::HTTP.get_response(URI(url))
  JSON.parse(response.body)
end
webpage(options={}) click to toggle source
# File lib/smmrize/request_types/webpage.rb, line 2
def self.webpage(options={})
  raise ArgumentError, "Options should be a hash" unless options.is_a?(Hash)
  raise ArgumentError, "Maximum number of options are #{webpage_option_defaults.size}" unless options.size <= webpage_option_defaults.size

  send_webpage_request(options)
end
webpage_option_defaults() click to toggle source
# File lib/smmrize/request_types/webpage.rb, line 36
def self.webpage_option_defaults
  {
    url: nil,
    length: 7,
    keywords: 0,
    avoid_quotes: false,
    with_break: false
  }
end