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.
@@ -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
@@ -0,0 +1,3 @@
1
+ module Smmrize
2
+ VERSION = "0.1.2"
3
+ 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: []