Smmry-Summary 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/Smmry-Summary.rb +19 -0
- data/lib/smmrize/request_types/document.rb +46 -0
- data/lib/smmrize/request_types/webpage.rb +45 -0
- data/lib/smmrize/version.rb +3 -0
- metadata +47 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1191221946b7da80f6b87bb90f7c5e4fcaa35294
|
4
|
+
data.tar.gz: 0985d23a7478d516c4f5dfbf9d98636d3573b341
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2ac333b4d8d9f288b45e1860997621e044296dba7c8beae1bb45da9b530355b509439a10c247a2a75d35effcb3b32dcfec1a0bc573535bb106afe603dd8ac784
|
7
|
+
data.tar.gz: 9431f58f9f30c18ecd371387734ad8cebf16a33dde5b8749cf82a1f84a5769defbf30bb985a918b0b44344555e645f901022320bb94c14b4d076899d1b4f1634
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "smmrize/version"
|
2
|
+
require "smmrize/request_types/webpage"
|
3
|
+
require "smmrize/request_types/document"
|
4
|
+
|
5
|
+
module Smmrize
|
6
|
+
class Defaults
|
7
|
+
class << self
|
8
|
+
attr_writer :api_key, :client_name
|
9
|
+
|
10
|
+
def api_key
|
11
|
+
@api_key or raise Exception.new "Smmrize::Defaults API Key is not set"
|
12
|
+
end
|
13
|
+
|
14
|
+
def api_url
|
15
|
+
'http://api.smmry.com/'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Smmrize
|
2
|
+
def self.document(options={})
|
3
|
+
raise ArgumentError, "Options should be a hash" unless options.is_a?(Hash)
|
4
|
+
raise ArgumentError, "Maximum number of options are #{document_option_defaults.size}" unless options.size <= document_option_defaults.size
|
5
|
+
|
6
|
+
send_document_request(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.send_document_request(options)
|
10
|
+
uri = URI(prepare_document_options(options))
|
11
|
+
response = Net::HTTP.post_form(uri, 'sm_api_input': options[:input])
|
12
|
+
JSON.parse(response.body)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.prepare_document_options(options)
|
16
|
+
raise ArgumentError, "Options must contain an `input` parameter" unless options.keys.include?(:input)
|
17
|
+
raise ArgumentError, "Options must not contain a URl - Did you mean to use `Smmrize.webpage?`" if options.keys.include?(:url)
|
18
|
+
options = document_option_defaults.merge(options)
|
19
|
+
create_document_query_string(options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.create_document_query_string(options)
|
23
|
+
raise ArgumentError, "Unknown key in `options`" unless options.keys == document_option_defaults.keys
|
24
|
+
query_string = "&SM_API_KEY=#{Smmrize::Defaults.api_key}&SM_LENGTH=#{options[:length]}&SM_KEYWORD_COUNT=#{options[:keywords]}"
|
25
|
+
|
26
|
+
if options[:avoid_quotes]
|
27
|
+
query_string += "&SM_QUOTE_AVOID"
|
28
|
+
end
|
29
|
+
|
30
|
+
if options[:with_break]
|
31
|
+
query_string += "&SM_WITH_BREAK"
|
32
|
+
end
|
33
|
+
|
34
|
+
Smmrize::Defaults.api_url + query_string
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.document_option_defaults
|
38
|
+
{
|
39
|
+
input: nil,
|
40
|
+
length: 7,
|
41
|
+
keywords: 0,
|
42
|
+
avoid_quotes: false,
|
43
|
+
with_break: false
|
44
|
+
}
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Smmrize
|
2
|
+
def self.webpage(options={})
|
3
|
+
raise ArgumentError, "Options should be a hash" unless options.is_a?(Hash)
|
4
|
+
raise ArgumentError, "Maximum number of options are #{webpage_option_defaults.size}" unless options.size <= webpage_option_defaults.size
|
5
|
+
|
6
|
+
send_webpage_request(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.send_webpage_request(options)
|
10
|
+
url = prepare_webpage_options(options)
|
11
|
+
response = Net::HTTP.get_response(URI(url))
|
12
|
+
JSON.parse(response.body)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.prepare_webpage_options(options)
|
16
|
+
raise ArgumentError, "Options must contain a URL" unless options.keys.include?(:url)
|
17
|
+
options = webpage_option_defaults.merge(options)
|
18
|
+
create_webpage_query_string(options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.create_webpage_query_string(options)
|
22
|
+
raise ArgumentError, "Unknown key in `options`" unless options.keys == webpage_option_defaults.keys
|
23
|
+
query_string = "&SM_API_KEY=#{Smmrize::Defaults.api_key}&SM_LENGTH=#{options[:length]}&SM_KEYWORD_COUNT=#{options[:keywords]}"
|
24
|
+
|
25
|
+
if options[:avoid_quotes]
|
26
|
+
query_string += "&SM_QUOTE_AVOID"
|
27
|
+
end
|
28
|
+
|
29
|
+
if options[:with_break]
|
30
|
+
query_string += "&SM_WITH_BREAK"
|
31
|
+
end
|
32
|
+
|
33
|
+
Smmrize::Defaults.api_url + query_string + "&SM_URL=#{CGI::escape(options[:url])}"
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.webpage_option_defaults
|
37
|
+
{
|
38
|
+
url: nil,
|
39
|
+
length: 7,
|
40
|
+
keywords: 0,
|
41
|
+
avoid_quotes: false,
|
42
|
+
with_break: false
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: Smmry-Summary
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Arnold Tonderai Marunda
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-13 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Summarise web and document content with the SMMRY API
|
14
|
+
email: arnold-fungai@live.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/Smmry-Summary.rb
|
20
|
+
- lib/smmrize/request_types/document.rb
|
21
|
+
- lib/smmrize/request_types/webpage.rb
|
22
|
+
- lib/smmrize/version.rb
|
23
|
+
homepage: https://github.com/arnoldfungai/Smmry-Summary
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements: []
|
42
|
+
rubyforge_project:
|
43
|
+
rubygems_version: 2.4.8
|
44
|
+
signing_key:
|
45
|
+
specification_version: 4
|
46
|
+
summary: A ruby wrapper of Smmry API
|
47
|
+
test_files: []
|