viewtext 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/viewtext.rb +2 -0
  2. data/lib/viewtext/viewtext.rb +38 -0
  3. metadata +92 -0
data/lib/viewtext.rb ADDED
@@ -0,0 +1,2 @@
1
+ require_relative 'viewtext/viewtext.rb'
2
+
@@ -0,0 +1,38 @@
1
+ require 'faraday'
2
+ require 'sanitize'
3
+ require 'json'
4
+ require 'ostruct'
5
+
6
+ class ViewTextResponse < OpenStruct
7
+ end
8
+
9
+ class ViewText
10
+ def initialize(target_url)
11
+ @target_url = target_url
12
+ end
13
+
14
+ def viewtext_url
15
+ "http://viewtext.org/api/text?url=#{@target_url}&format=json"
16
+ end
17
+
18
+ def fetch
19
+ conn = connection(viewtext_url)
20
+
21
+ begin
22
+ response = conn.get
23
+ data = JSON.parse(response.body)
24
+ data["content"] = Sanitize.clean(data["content"])
25
+ return ViewTextResponse.new(data)
26
+ rescue Faraday::Error::ParsingError => e
27
+ return nil
28
+ end
29
+ end
30
+
31
+ def connection(url, opts={})
32
+ if ENV['http_proxy']
33
+ opts.merge!({ :proxy => ENV['http_proxy'] })
34
+ end
35
+
36
+ conn = Faraday.new(url, opts)
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: viewtext
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Chris Lowis
9
+ - Duncan Robertson
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2011-05-25 00:00:00 +01:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: sanitize
19
+ prerelease: false
20
+ requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: "0"
26
+ type: :runtime
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: faraday-stack
30
+ prerelease: false
31
+ requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: "0"
37
+ type: :runtime
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: json
41
+ prerelease: false
42
+ requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
48
+ type: :runtime
49
+ version_requirements: *id003
50
+ description: |
51
+ Wrapper for the Viewtext API
52
+
53
+ email: chris.lowis@bbc.co.uk
54
+ executables: []
55
+
56
+ extensions: []
57
+
58
+ extra_rdoc_files: []
59
+
60
+ files:
61
+ - lib/viewtext/viewtext.rb
62
+ - lib/viewtext.rb
63
+ has_rdoc: true
64
+ homepage: ""
65
+ licenses: []
66
+
67
+ post_install_message:
68
+ rdoc_options: []
69
+
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ requirements: []
85
+
86
+ rubyforge_project: viewtext
87
+ rubygems_version: 1.5.0
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: ""
91
+ test_files: []
92
+