overlord 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Tatemae
1
+ Copyright (c) 2009 Tatemae.com
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -1,13 +1,18 @@
1
1
  = overlord
2
2
 
3
3
  Talk to the Google ajax apis and render the results. This gem contains several method calls and partials to call
4
- out to the Google Ajax Apis (http://code.google.com/apis/ajax/).
4
+ out to the Google Ajax Apis (http://code.google.com/apis/ajax/). This gem is designed to work in Ruby on Rails and
5
+ currently won't work outside that framework.
5
6
 
6
7
  == Usage
7
8
 
9
+ === Installation
10
+ Installing the gem should install the dependencies
11
+ sudo gem install overlord
12
+
8
13
  === Settings
9
14
  This gem requires some configuration before it will work in your Rails application:
10
- You will need a global_config file with 'google_ajax_api_key' defined. You can set it up thus:
15
+ You will need a global_config file with 'google_ajax_api_key' and 'google_ajax_referer' defined. You can set it up thus:
11
16
 
12
17
  # Load a global constant so the initializers can use them
13
18
  require 'ostruct'
@@ -32,7 +37,8 @@ Then in global_config.yml:
32
37
  session_secret: 882585c5d472d21e832965410ab233be541ea626e50ed0eb68a00a2f49b59073480e58599404e3dc62105a803ee42d67872e3f95eb48e2d6508b42038436abd6
33
38
 
34
39
  # Google related
35
- google_ajax_api_key:
40
+ google_ajax_api_key: # Google ajax api key
41
+ google_ajax_referer: # Website making the request. Required by Google.
36
42
  show_google_search: true # Determines whether or not a google search is displayed on the topic page
37
43
  load_feeds_on_server: false # Determines whether feeds on a topic page are loaded on the server or the client. Loading on the server can take a while
38
44
  combine_feeds_on_server: false # Combines feeds loaded on the server
@@ -113,4 +119,4 @@ inside of the test directory for more information on how to create these classes
113
119
 
114
120
  == Copyright
115
121
 
116
- Copyright (c) 2009 Tatemae. See LICENSE for details.
122
+ Copyright (c) 2009 Tatemae.com. See LICENSE for details.
data/Rakefile CHANGED
@@ -12,7 +12,8 @@ begin
12
12
  gem.email = "justin@tatemae.com"
13
13
  gem.homepage = "http://github.com/jbasdf/overlord"
14
14
  gem.authors = ["Justin Ball", "Joel Duffin"]
15
- gem.add_development_dependency "thoughtbot-shoulda"
15
+ gem.add_dependency "httparty"
16
+ gem.add_development_dependency "shoulda"
16
17
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
18
  end
18
19
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
@@ -1,4 +1,7 @@
1
- require 'httparty'
1
+ require 'json'
2
+ require 'open-uri'
3
+ require 'overlord/google_base'
4
+ require 'overlord/google_search_request'
2
5
  require 'overlord/google_feed_request'
3
6
 
4
7
  I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '..', 'locales', '*.{rb,yml}') ]
@@ -0,0 +1,43 @@
1
+ module Overlord
2
+
3
+ class GoogleBase
4
+
5
+ # api_key_id: Valid Google access key (optional)
6
+ def self.api_key_id=(val)
7
+ @api_key_id = val
8
+ end
9
+
10
+ def self.api_key_id
11
+ @api_key_id
12
+ end
13
+
14
+ # referer: Url of the website making request. Required by Google.
15
+ def self.referer=(val)
16
+ @referer = val
17
+ end
18
+
19
+ def self.referer
20
+ @referer
21
+ end
22
+
23
+ # Add standard items to the google query
24
+ def self.build_google_query(query_options)
25
+ key = self.api_key_id || GlobalConfig.google_ajax_api_key rescue ''
26
+ query_options[:v] = '1.0'
27
+ query_options[:key] = key if key
28
+ query_options
29
+ end
30
+
31
+ def self.get(uri, options)
32
+ header_params = { "UserAgent" => "Ruby/#{RUBY_VERSION}" }
33
+ ref = self.referer || GlobalConfig.google_ajax_referer rescue nil
34
+ header_params["Referer"] = ref if ref
35
+ # to_params comes from the httparty gem
36
+ buffer = open("#{uri}?#{options[:query].to_params}", header_params).read
37
+ JSON.parse(buffer)
38
+ end
39
+
40
+ end
41
+
42
+
43
+ end
@@ -5,17 +5,8 @@ module Overlord
5
5
  # Google code playground:
6
6
  # http://code.google.com/apis/ajax/playground/?exp=search#load_feed
7
7
  #
8
- class GoogleFeedRequest
9
- include HTTParty
10
- format :json
11
-
12
- # Initialize Google Request.
13
- # Parameters:
14
- # api_key_id: Valid Google access key (optional)
15
- def initialize(api_key_id = nil)
16
- @api_key_id = api_key_id
17
- end
18
-
8
+ class GoogleFeedRequest < GoogleBase
9
+
19
10
  # Lookup a given feed.
20
11
  def self.lookup_feed(uri)
21
12
  get('http://ajax.googleapis.com/ajax/services/feed/lookup', :query => build_google_query({:q => uri}))
@@ -104,13 +95,6 @@ module Overlord
104
95
  :service_id => Service.find_service_by_uri(google_feed['link']).id)
105
96
  end
106
97
  end
107
-
108
- # Add standard items to the google query
109
- def self.build_google_query(query_options)
110
- query_options[:v] = '1.0'
111
- query_options[:key] = GlobalConfig.google_ajax_api_key if GlobalConfig.google_ajax_api_key
112
- query_options
113
- end
114
-
98
+
115
99
  end
116
100
  end
@@ -5,16 +5,7 @@ module Overlord
5
5
  # Google code playground:
6
6
  # http://code.google.com/apis/ajax/playground
7
7
  #
8
- class GoogleSearchRequest
9
- include HTTParty
10
- format :json
11
-
12
- # Initialize Google Request.
13
- # Parameters:
14
- # api_key_id: Valid Google access key (optional)
15
- def initialize(api_key_id = nil)
16
- @api_key_id = api_key_id
17
- end
8
+ class GoogleSearchRequest < GoogleBase
18
9
 
19
10
  # Run a local search
20
11
  # Google docs:
@@ -73,13 +64,6 @@ module Overlord
73
64
  end
74
65
  end
75
66
  end
76
-
77
- # Add standard items to the google query
78
- def self.build_google_query(query_options)
79
- query_options[:v] = '1.0'
80
- query_options[:key] = GlobalConfig.google_ajax_api_key if GlobalConfig.google_ajax_api_key
81
- query_options
82
- end
83
67
 
84
68
  end
85
69
  end
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{overlord}
8
- s.version = "0.1.4"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Justin Ball", "Joel Duffin"]
12
- s.date = %q{2009-12-04}
12
+ s.date = %q{2009-12-08}
13
13
  s.description = %q{Code to interact with the google ajax apis on the server and the client.}
14
14
  s.email = %q{justin@tatemae.com}
15
15
  s.extra_rdoc_files = [
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "app/views/google/_search.html.erb",
35
35
  "app/views/google/_slide_show.html.erb",
36
36
  "lib/overlord.rb",
37
+ "lib/overlord/google_base.rb",
37
38
  "lib/overlord/google_feed_request.rb",
38
39
  "lib/overlord/google_search_request.rb",
39
40
  "locales/ar.yml",
@@ -680,11 +681,15 @@ Gem::Specification.new do |s|
680
681
  s.specification_version = 3
681
682
 
682
683
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
683
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
684
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
685
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
684
686
  else
685
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
687
+ s.add_dependency(%q<httparty>, [">= 0"])
688
+ s.add_dependency(%q<shoulda>, [">= 0"])
686
689
  end
687
690
  else
688
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
691
+ s.add_dependency(%q<httparty>, [">= 0"])
692
+ s.add_dependency(%q<shoulda>, [">= 0"])
689
693
  end
690
694
  end
695
+
@@ -15,5 +15,6 @@ end
15
15
 
16
16
  Rails::Initializer.run do |config|
17
17
  config.time_zone = 'UTC'
18
+ config.gem "httparty"
18
19
  config.plugin_locators << TestGemLocator
19
20
  end
@@ -14,7 +14,8 @@ default: &DEFAULT
14
14
  session_secret: 882585c5d472d21e832965410ab233be541ea626e50ed0eb68a00a2f49b59073480e58599404e3dc62105a803ee42d67872e3f95eb48e2d6508b42038436abd6
15
15
 
16
16
  # Google related
17
- google_ajax_api_key:
17
+ google_ajax_api_key: # A google ajax api key - http://code.google.com/apis/ajaxsearch/signup.html
18
+ google_ajax_referer: # The url of the site making the request.
18
19
  show_google_search: true # Determines whether or not a google search is displayed on the topic page
19
20
  load_feeds_on_server: false # Determines whether feeds on a topic page are loaded on the server or the client. Loading on the server can take a while
20
21
  combine_feeds_on_server: false # Combines feeds loaded on the server
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: overlord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Ball
@@ -10,11 +10,21 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-12-04 00:00:00 -07:00
13
+ date: 2009-12-08 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: thoughtbot-shoulda
17
+ name: httparty
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: shoulda
18
28
  type: :development
19
29
  version_requirement:
20
30
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,6 +60,7 @@ files:
50
60
  - app/views/google/_search.html.erb
51
61
  - app/views/google/_slide_show.html.erb
52
62
  - lib/overlord.rb
63
+ - lib/overlord/google_base.rb
53
64
  - lib/overlord/google_feed_request.rb
54
65
  - lib/overlord/google_search_request.rb
55
66
  - locales/ar.yml