Module: Smmrize

Defined in:
lib/smmrize.rb,
lib/smmrize/version.rb,
lib/smmrize/request_types/webpage.rb,
lib/smmrize/request_types/document.rb

Defined Under Namespace

Classes: Defaults

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.create_document_query_string(options) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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 = {}) ⇒ Object

Raises:

  • (ArgumentError)


2
3
4
5
6
7
# 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_defaultsObject



37
38
39
40
41
42
43
44
45
# 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) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
# 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) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
# 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) ⇒ Object



9
10
11
12
13
# 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) ⇒ Object



9
10
11
12
13
# 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 = {}) ⇒ Object

Raises:

  • (ArgumentError)


2
3
4
5
6
7
# 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_defaultsObject



36
37
38
39
40
41
42
43
44
# 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