monkeyhelper-muddyit_fu 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == Installation
4
4
 
5
- sudo gem install muddyit-fu
5
+ sudo gem install monkeyhelper-muddyit-fu --source http://gems.github.com
6
6
 
7
7
  == Getting started
8
8
 
@@ -56,7 +56,7 @@ can be stored in a yml file, an example of which is provided below.
56
56
  :access_token_secret => 'ddd')
57
57
  site = muddyit.sites.first
58
58
  site.pages.index do |page|
59
- puts page.content_data.title
59
+ puts page.title
60
60
  page.results.each do |result|
61
61
  puts result.uri
62
62
  end
@@ -76,7 +76,7 @@ can be stored in a yml file, an example of which is provided below.
76
76
  require 'muddyit_fu'
77
77
  muddyit = Muddyit.new('muddyit.yml')
78
78
  site = muddyit.sites.first
79
- site.pages.related_entities('http://dbpedia.org/resource/Gordon_Brown').each do |entity|
79
+ site.entities.related('http://dbpedia.org/resource/Gordon_Brown').each do |entity|
80
80
  puts "#{entity.uri} : #{entity.confidence}"
81
81
  end
82
82
 
@@ -86,9 +86,9 @@ can be stored in a yml file, an example of which is provided below.
86
86
  muddyit = Muddyit.new('muddyit.yml')
87
87
  site = muddyit.sites.first
88
88
  page = site.pages.find('http://news.bbc.co.uk/1/hi/uk_politics/7878418.stm')
89
- puts "Our page : #{page.content_data.title}\n\n"
89
+ puts "Our page : #{page.title}\n\n"
90
90
  page.related_content.each do |results|
91
- puts "#{results[:page].content_data.title} #{results[:count]}"
91
+ puts "#{results[:page].title} #{results[:count]}"
92
92
  end
93
93
 
94
94
  == Authorising clients using irb
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.homepage = "http://github.com/monkeyhelper/muddyit_fu"
11
11
  gem.authors = ["robl"]
12
12
  gem.add_dependency('json', '>= 0.0.0')
13
- gem.add_dependency('oauth', '>= 0.0.0')
13
+ # gem.add_dependency('oauth', '>= 0.0.0')
14
14
 
15
15
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -0,0 +1,3 @@
1
+ class Entities
2
+ # Placeholder
3
+ end
@@ -0,0 +1,35 @@
1
+ class Muddyit::Sites::Site::Entities::Entity < Muddyit::Generic
2
+
3
+ def classification
4
+ unless @attributes[:type]
5
+ # We merge here as we don't want to overwrite a entity specific confidence score
6
+ @attributes.merge!(self.fetch)
7
+ end
8
+ @attributes[:type]
9
+ end
10
+
11
+ # retrieve entities related to the specified entity within the site entities collection
12
+ #
13
+ # Params
14
+ # * options (Optional)
15
+ #
16
+ def related(options = {})
17
+ api_url = "/sites/#{self.site.attributes[:token]}/entities/#{Digest::MD5.hexdigest(URI.encode(@attributes[:uri]))}/related"
18
+ response = @muddyit.send_request(api_url, :get, options)
19
+
20
+ results = []
21
+ response.each { |result|
22
+ # The return format needs sorting out here .......
23
+ results.push Muddyit::Sites::Site::Entities::Entity.new(@muddyit, result)
24
+ }
25
+ return results
26
+ end
27
+
28
+ protected
29
+ def fetch
30
+ api_url = "/sites/#{@attributes[:site][:token]}/entities/#{Digest::MD5.hexdigest(URI.encode(@attributes[:uri]))}"
31
+ response = @muddyit.send_request(api_url, :get)
32
+ response.nested_symbolize_keys!
33
+ end
34
+
35
+ end
@@ -0,0 +1,22 @@
1
+ class Muddyit::Sites::Site::Entities
2
+ # Placeholder
3
+
4
+ # retrieve entities related to the specified entity within the site entities collection
5
+ #
6
+ # Params
7
+ # * options (Optional)
8
+ #
9
+ def related(uri, options = {})
10
+ raise if uri.nil?
11
+ api_url = "/sites/#{self.site.attributes[:token]}/entities/#{Digest::MD5.hexdigest(URI.encode(uri))}/related"
12
+ response = @muddyit.send_request(api_url, :get, options)
13
+
14
+ results = []
15
+ response.each { |result|
16
+ # The return format needs sorting out here .......
17
+ results.push Muddyit::Sites::Site::Entities::Entity.new(@muddyit, result)
18
+ }
19
+ return results
20
+ end
21
+
22
+ end
@@ -1,4 +1,4 @@
1
- class Muddyit::Sites::Site::Page::ContentData < Muddyit::Generic
1
+ class Muddyit::Sites::Site::Pages::Page::ExtractedContent < Muddyit::Generic
2
2
 
3
3
  def initialize(muddyit, attributes)
4
4
  super(muddyit, attributes)
@@ -1,10 +1,10 @@
1
- class Muddyit::Sites::Site::Page < Muddyit::Generic
1
+ class Muddyit::Sites::Site::Pages::Page < Muddyit::Generic
2
2
 
3
3
  # Create a set of entities from the categorisation results
4
4
  def initialize(muddyit, attributes = {})
5
5
  super(muddyit, attributes)
6
6
  create_entities
7
- @content_data_cache = nil
7
+ @extracted_content_cache = nil
8
8
  end
9
9
 
10
10
  # submit a page or text for re-categorisation
@@ -12,38 +12,38 @@ class Muddyit::Sites::Site::Page < Muddyit::Generic
12
12
  # Params
13
13
  # * options (Required)
14
14
  #
15
- def refresh(options = {})
15
+ def update(options = {})
16
16
 
17
- # Ensure we get content_data as well
17
+ # Ensure we get extracted_content as well
18
18
  options[:include_content] = true
19
19
 
20
20
  body = { :page => { :uri => self.uri }, :options => options }
21
21
 
22
- api_url = "/sites/#{self.site.attributes[:token]}/pages/#{URI.escape(CGI.escape(self.identifier),'.')}"
22
+ api_url = "/sites/#{self.site.attributes[:token]}/pages/#{self.identifier}"
23
23
  response = @muddyit.send_request(api_url, :put, {}, body.to_json)
24
- return Muddyit::Sites::Site::Page.new(@muddyit, response.merge!(:site => self.site))
24
+ return Muddyit::Sites::Site::Pages::Page.new(@muddyit, response['page'].merge!(:site => self.site))
25
25
  end
26
26
 
27
27
 
28
- # get content_data for page
28
+ # get extracted_content for page
29
29
  #
30
- def content_data
31
- if @content_data_cache.nil?
32
- if @attributes[:content_data]
33
- @content_data_cache = Muddyit::Sites::Site::Page::ContentData.new(@muddyit, @attributes[:content_data])
30
+ def extracted_content
31
+ if @extracted_content_cache.nil?
32
+ if @attributes[:extracted_content]
33
+ @extracted_content_cache = Muddyit::Sites::Site::Pages::Page::ExtractedContent.new(@muddyit, @attributes[:extracted_content])
34
34
  else
35
35
  r = self.fetch
36
- @content_data_cache = Muddyit::Sites::Site::Page::ContentData.new(@muddyit, r[:content_data])
36
+ @extracted_content_cache = Muddyit::Sites::Site::Pages::Page::ExtractedContent.new(@muddyit, r[:extracted_content])
37
37
  end
38
38
  end
39
- @content_data_cache
39
+ @extracted_content_cache
40
40
  end
41
41
 
42
42
 
43
43
  # delete the page
44
44
  #
45
45
  def destroy
46
- api_url = "/sites/#{self.site.attributes[:token]}/pages/#{URI.escape(CGI.escape(@attributes[:identifier]),'.')}"
46
+ api_url = "/sites/#{self.site.attributes[:token]}/pages/#{@attributes[:identifier]}"
47
47
  response = @muddyit.send_request(api_url, :delete, {})
48
48
  # Is this the correct thing to return ?
49
49
  return true
@@ -55,8 +55,8 @@ class Muddyit::Sites::Site::Page < Muddyit::Generic
55
55
  # * options (Optional)
56
56
  #
57
57
  def related_content(options = {})
58
- api_url = "/sites/#{self.site.attributes[:token]}/pages/#{URI.escape(CGI.escape(@attributes[:identifier]),'.')}/related/content"
59
- response = @muddyit.send_request(api_url, :get, options)
58
+ api_url = "/sites/#{self.site.attributes[:token]}/pages/#{@attributes[:identifier]}/related"
59
+ response = @muddyit.send_request(api_url, :get, options, nil)
60
60
  results = []
61
61
  response.each { |result|
62
62
  # The return format needs sorting out here .......
@@ -67,8 +67,10 @@ class Muddyit::Sites::Site::Page < Muddyit::Generic
67
67
 
68
68
  protected
69
69
  def fetch
70
- api_url = "/sites/#{self.site.attributes[:token]}/pages/#{URI.escape(CGI.escape(@attributes[:identifier]),'.')}"
71
- response = @muddyit.send_request(api_url, :get, {:include_content => true })
70
+ api_url = "/sites/#{self.site.attributes[:token]}/pages/#{@attributes[:identifier]}"
71
+
72
+ response = @muddyit.send_request(api_url, :get, {:include_content => true}, nil)
73
+
72
74
  response.nested_symbolize_keys!
73
75
  end
74
76
 
@@ -77,7 +79,7 @@ class Muddyit::Sites::Site::Page < Muddyit::Generic
77
79
  results = []
78
80
  if @attributes.has_key?(:entities)
79
81
  @attributes[:entities].each do |result|
80
- results.push Muddyit::Entity.new(@muddyit, result)
82
+ results.push Muddyit::Sites::Site::Entities::Entity.new(@muddyit, result)
81
83
  end
82
84
  @attributes[:entities] = results
83
85
  end
@@ -18,7 +18,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
18
18
  begin
19
19
  response = @muddyit.send_request(api_url, :get, options.merge!(:page => token))
20
20
  response['pages'].each { |page|
21
- yield Muddyit::Sites::Site::Page.new(@muddyit, page.merge!(:site => self.site))
21
+ yield Muddyit::Sites::Site::Pages::Page.new(@muddyit, page.merge!(:site => self.site))
22
22
  }
23
23
  token = response['next_page']
24
24
  # Need to figure out which of the below actually occurs
@@ -28,7 +28,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
28
28
  response = @muddyit.send_request(api_url, :get, options)
29
29
 
30
30
  pages = []
31
- response['pages'].each { |page| pages.push Muddyit::Sites::Site::Page.new(@muddyit, page.merge!(:site => self.site)) }
31
+ response['pages'].each { |page| pages.push Muddyit::Sites::Site::Pages::Page.new(@muddyit, page.merge!(:site => self.site)) }
32
32
  return { :next_page => response['next_page'], :pages => pages }
33
33
  end
34
34
  else
@@ -36,36 +36,20 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
36
36
  end
37
37
 
38
38
  elsif type.is_a? String
39
- api_url = "/sites/#{self.site.attributes[:token]}/pages/#{URI.escape(CGI.escape(type),'.')}"
39
+ api_url = "/sites/#{self.site.attributes[:token]}/pages/#{type}"
40
40
  response = @muddyit.send_request(api_url, :get, {})
41
- response.has_key?('identifier') ? Muddyit::Sites::Site::Page.new(@muddyit, response.merge!(:site => self.site)) : nil
41
+ response.has_key?('identifier') ? Muddyit::Sites::Site::Pages::Page.new(@muddyit, response.merge!(:site => self.site)) : nil
42
42
  end
43
43
  end
44
44
 
45
- # retrieve entities related to the specified entity within the site pages collection
46
- #
47
- # Params
48
- # * options (Optional)
49
- #
50
- def related_entities(uri, options = {})
51
- raise "no uri supplied" if uri.nil?
52
- api_url = "/sites/#{self.site.attributes[:token]}/related/entities/#{URI.escape(CGI.escape(uri),'.')}"
53
- response = @muddyit.send_request(api_url, :get, options)
54
-
55
- results = []
56
- response.each { |result|
57
- # The return format needs sorting out here .......
58
- results.push Muddyit::Entity.new(@muddyit, result)
59
- }
60
- return results
61
- end
45
+
62
46
 
63
47
  # submit a page or text for categorisation
64
48
  #
65
49
  # Params
66
50
  # * options (Required)
67
51
  #
68
- def categorise(doc = {}, options = {})
52
+ def create(doc = {}, options = {})
69
53
 
70
54
  # Ensure we get content_data as well
71
55
  options[:include_content] = true
@@ -79,7 +63,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
79
63
 
80
64
  api_url = "/sites/#{self.site.attributes[:token]}/pages/"
81
65
  response = @muddyit.send_request(api_url, :post, {}, body.to_json)
82
- return Muddyit::Sites::Site::Page.new(@muddyit, response.merge!(:site => self.site))
66
+ return Muddyit::Sites::Site::Pages::Page.new(@muddyit, response['page'].merge!(:site => self.site))
83
67
  end
84
68
 
85
69
  # find all pages with specified entity
@@ -141,7 +125,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
141
125
  # must contain uri parameter which corresponds to dbpedia uri
142
126
  #
143
127
  def queryAllWithURI(uri, options, &block)
144
- api_url = "/sites/#{self.site.attributes[:token]}/entities/#{URI.escape(CGI.escape(uri),'.')}"
128
+ api_url = "/sites/#{self.site.attributes[:token]}/entities/#{Digest::MD5.hexdigest(URI.encode(uri))}"
145
129
  query_page(api_url, options, &block)
146
130
  end
147
131
 
@@ -171,7 +155,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
171
155
  options.merge!(:page => token) unless token.nil?
172
156
  response = @muddyit.send_request(api_url, :get, options.merge!(:page => token))
173
157
  response['pages'].each { |page|
174
- yield Muddyit::Sites::Site::Page.new(@muddyit, page.merge!(:site => self.site))
158
+ yield Muddyit::Sites::Site::Pages::Page.new(@muddyit, page.merge!(:site => self.site))
175
159
  }
176
160
  token = response['next_page']
177
161
  # Need to figure out which of the below actually occurs
@@ -180,7 +164,7 @@ class Muddyit::Sites::Site::Pages < Muddyit::Generic
180
164
  response = @muddyit.send_request(api_url, :get, {})
181
165
 
182
166
  pages = []
183
- response['pages'].each { |page| pages.push Muddyit::Sites::Site::Page.new(@muddyit, page.merge!(:site => self.site)) }
167
+ response['pages'].each { |page| pages.push Muddyit::Sites::Site::Pages::Page.new(@muddyit, page.merge!(:site => self.site)) }
184
168
  return { :next_page => response[:next_page], :pages => pages }
185
169
  end
186
170
  end
File without changes
data/lib/muddyit_fu.rb CHANGED
@@ -3,7 +3,9 @@ require 'net/http'
3
3
  require 'cgi'
4
4
  require 'json'
5
5
  #require 'json/ext'
6
+ #gem 'monkeyhelper-oauth', :lib => 'lib/oauth'
6
7
  require 'oauth/consumer'
8
+ require 'digest/md5'
7
9
 
8
10
  require 'pp'
9
11
 
@@ -44,7 +46,7 @@ class Hash
44
46
  end
45
47
 
46
48
  # base must load first
47
- %w(base errors generic sites entity site pages page content_data).each do |file|
49
+ %w(base errors generic sites entity sites/site sites/pages sites/pages/page sites/pages/page/extracted_content sites/entities sites/entities/entity).each do |file|
48
50
  require File.join(File.dirname(__FILE__), 'muddyit', file)
49
51
  end
50
52
 
data/muddyit_fu.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{muddyit_fu}
5
- s.version = "0.1.1"
5
+ s.version = "0.2.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["robl"]
9
- s.date = %q{2009-06-23}
9
+ s.date = %q{2009-08-03}
10
10
  s.email = %q{robl[at]monkeyhelper.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -20,21 +20,23 @@ Gem::Specification.new do |s|
20
20
  "Rakefile",
21
21
  "VERSION",
22
22
  "lib/muddyit/base.rb",
23
- "lib/muddyit/content_data.rb",
24
- "lib/muddyit/entity.rb",
23
+ "lib/muddyit/entities.rb",
25
24
  "lib/muddyit/errors.rb",
26
25
  "lib/muddyit/generic.rb",
27
- "lib/muddyit/page.rb",
28
- "lib/muddyit/pages.rb",
29
- "lib/muddyit/site.rb",
30
26
  "lib/muddyit/sites.rb",
27
+ "lib/muddyit/sites/entities.rb",
28
+ "lib/muddyit/sites/entities/entity.rb",
29
+ "lib/muddyit/sites/pages.rb",
30
+ "lib/muddyit/sites/pages/page.rb",
31
+ "lib/muddyit/sites/pages/page/extracted_content.rb",
32
+ "lib/muddyit/sites/site.rb",
31
33
  "lib/muddyit_fu.rb",
32
34
  "muddyit_fu.gemspec"
33
35
  ]
34
36
  s.homepage = %q{http://github.com/monkeyhelper/muddyit_fu}
35
37
  s.rdoc_options = ["--charset=UTF-8"]
36
38
  s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.4}
39
+ s.rubygems_version = %q{1.3.5}
38
40
  s.summary = %q{Provides a ruby interface to muddy.it}
39
41
 
40
42
  if s.respond_to? :specification_version then
@@ -43,13 +45,10 @@ Gem::Specification.new do |s|
43
45
 
44
46
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
45
47
  s.add_runtime_dependency(%q<json>, [">= 0.0.0"])
46
- s.add_runtime_dependency(%q<oauth>, [">= 0.0.0"])
47
48
  else
48
49
  s.add_dependency(%q<json>, [">= 0.0.0"])
49
- s.add_dependency(%q<oauth>, [">= 0.0.0"])
50
50
  end
51
51
  else
52
52
  s.add_dependency(%q<json>, [">= 0.0.0"])
53
- s.add_dependency(%q<oauth>, [">= 0.0.0"])
54
53
  end
55
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monkeyhelper-muddyit_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - robl
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-23 00:00:00 -07:00
12
+ date: 2009-08-03 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,16 +22,6 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.0.0
24
24
  version:
25
- - !ruby/object:Gem::Dependency
26
- name: oauth
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.0.0
34
- version:
35
25
  description:
36
26
  email: robl[at]monkeyhelper.com
37
27
  executables: []
@@ -49,18 +39,21 @@ files:
49
39
  - Rakefile
50
40
  - VERSION
51
41
  - lib/muddyit/base.rb
52
- - lib/muddyit/content_data.rb
53
- - lib/muddyit/entity.rb
42
+ - lib/muddyit/entities.rb
54
43
  - lib/muddyit/errors.rb
55
44
  - lib/muddyit/generic.rb
56
- - lib/muddyit/page.rb
57
- - lib/muddyit/pages.rb
58
- - lib/muddyit/site.rb
59
45
  - lib/muddyit/sites.rb
46
+ - lib/muddyit/sites/entities.rb
47
+ - lib/muddyit/sites/entities/entity.rb
48
+ - lib/muddyit/sites/pages.rb
49
+ - lib/muddyit/sites/pages/page.rb
50
+ - lib/muddyit/sites/pages/page/extracted_content.rb
51
+ - lib/muddyit/sites/site.rb
60
52
  - lib/muddyit_fu.rb
61
53
  - muddyit_fu.gemspec
62
54
  has_rdoc: false
63
55
  homepage: http://github.com/monkeyhelper/muddyit_fu
56
+ licenses:
64
57
  post_install_message:
65
58
  rdoc_options:
66
59
  - --charset=UTF-8
@@ -81,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
74
  requirements: []
82
75
 
83
76
  rubyforge_project:
84
- rubygems_version: 1.2.0
77
+ rubygems_version: 1.3.5
85
78
  signing_key:
86
79
  specification_version: 3
87
80
  summary: Provides a ruby interface to muddy.it
@@ -1,18 +0,0 @@
1
- class Muddyit::Entity < Muddyit::Generic
2
-
3
- def classification
4
- unless @attributes[:type]
5
- # We merge here as we don't want to overwrite a entity specific confidence score
6
- @attributes.merge!(self.fetch)
7
- end
8
- @attributes[:type]
9
- end
10
-
11
- protected
12
- def fetch
13
- api_url = "/entities/#{URI.escape(CGI.escape(@attributes[:uri]),'.')}"
14
- response = @muddyit.send_request(api_url, :get)
15
- response.nested_symbolize_keys!
16
- end
17
-
18
- end