monkeyhelper-muddyit_fu 0.1.1 → 0.2.0

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.
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