binged 0.1.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/.document +5 -0
- data/.gitignore +8 -0
- data/HISTORY +0 -0
- data/LICENSE +20 -0
- data/README.md +52 -0
- data/Rakefile +48 -0
- data/VERSION +1 -0
- data/binged.gemspec +76 -0
- data/lib/binged/client.rb +23 -0
- data/lib/binged/hashie_extensions.rb +11 -0
- data/lib/binged/search/base.rb +58 -0
- data/lib/binged/search/web.rb +88 -0
- data/lib/binged/search.rb +9 -0
- data/lib/binged.rb +35 -0
- data/spec/binged/search/web_spec.rb +83 -0
- data/spec/binged_spec.rb +19 -0
- data/spec/fixtures/web.json +1 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +29 -0
- metadata +150 -0
data/.document
ADDED
data/.gitignore
ADDED
data/HISTORY
ADDED
File without changes
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2010 Kevin Faustino
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
## About Binged
|
4
|
+
|
5
|
+
A Ruby wrapper for the Bing API
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
[sudo] gem install binged
|
10
|
+
|
11
|
+
### Get Your Bing API key
|
12
|
+
|
13
|
+
To use binged, you will require a Bing API key. Create one at: [http://www.bing.com/developers/createapp.aspx](http://www.bing.com/developers/createapp.aspx)
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
### Instantiate a client
|
18
|
+
binged = Binged::Client.new(:api_key => 'binged')
|
19
|
+
|
20
|
+
### Ruby on Rails
|
21
|
+
|
22
|
+
Binged allows for configuration to be done once using a configure block. To use binged in your Ruby on Rails project, configure it globally in an initializer.
|
23
|
+
|
24
|
+
# config/initializers/binged.rb
|
25
|
+
Binged.configure do |config|
|
26
|
+
config.api_key = 'api_key'
|
27
|
+
end
|
28
|
+
|
29
|
+
# Client initialization
|
30
|
+
binged = Binged::Client.new
|
31
|
+
|
32
|
+
### Web Search Example
|
33
|
+
|
34
|
+
Web search utilizes a criteria based query interface inspired by jnunemaker's [Twitter Gem](http://github.com/jnunemaker/twitter) Search API wrapper.
|
35
|
+
|
36
|
+
# Find 30 results for ruby from site http://www.ruby-lang.org
|
37
|
+
web_search = Binged::Client.new.web
|
38
|
+
web_search.containing('ruby').from_site('www.ruby-lang.org').per_page(30).each {|result| puts result.title }
|
39
|
+
|
40
|
+
## Note on Patches/Pull Requests
|
41
|
+
|
42
|
+
* Fork the project.
|
43
|
+
* Make your feature addition or bug fix.
|
44
|
+
* Add tests for it. This is important so I don't break it in a
|
45
|
+
future version unintentionally.
|
46
|
+
* Commit, do not mess with rakefile, version, or history.
|
47
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
48
|
+
* Send me a pull request. Bonus points for topic branches.
|
49
|
+
|
50
|
+
## Copyright
|
51
|
+
|
52
|
+
Copyright (c) 2010 Kevin Faustino. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "binged"
|
8
|
+
gem.summary = %Q{A wrapper for the bing api}
|
9
|
+
gem.description = %Q{A wrapper for the bing api}
|
10
|
+
gem.email = "kevin.faustino@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/kfaustino/binged"
|
12
|
+
gem.authors = ["Kevin Faustino"]
|
13
|
+
gem.add_dependency "hashie", "~>0.1.0"
|
14
|
+
gem.add_dependency "crack", ">=0.1.6"
|
15
|
+
gem.add_development_dependency "rspec", ">= 1.3.0"
|
16
|
+
gem.add_development_dependency "fakeweb", ">=1.2.8"
|
17
|
+
gem.add_development_dependency "yard", ">= 0"
|
18
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
19
|
+
end
|
20
|
+
Jeweler::GemcutterTasks.new
|
21
|
+
rescue LoadError
|
22
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'spec/rake/spectask'
|
26
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
27
|
+
spec.libs << 'lib' << 'spec'
|
28
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
29
|
+
end
|
30
|
+
|
31
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
32
|
+
spec.libs << 'lib' << 'spec'
|
33
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
34
|
+
spec.rcov = true
|
35
|
+
end
|
36
|
+
|
37
|
+
task :spec => :check_dependencies
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
41
|
+
begin
|
42
|
+
require 'yard'
|
43
|
+
YARD::Rake::YardocTask.new
|
44
|
+
rescue LoadError
|
45
|
+
task :yardoc do
|
46
|
+
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
47
|
+
end
|
48
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/binged.gemspec
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{binged}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Kevin Faustino"]
|
12
|
+
s.date = %q{2010-03-07}
|
13
|
+
s.description = %q{A wrapper for the bing api}
|
14
|
+
s.email = %q{kevin.faustino@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"HISTORY",
|
23
|
+
"LICENSE",
|
24
|
+
"README.md",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"binged.gemspec",
|
28
|
+
"lib/binged.rb",
|
29
|
+
"lib/binged/client.rb",
|
30
|
+
"lib/binged/hashie_extensions.rb",
|
31
|
+
"lib/binged/search.rb",
|
32
|
+
"lib/binged/search/base.rb",
|
33
|
+
"lib/binged/search/web.rb",
|
34
|
+
"spec/binged/search/web_spec.rb",
|
35
|
+
"spec/binged_spec.rb",
|
36
|
+
"spec/fixtures/web.json",
|
37
|
+
"spec/spec.opts",
|
38
|
+
"spec/spec_helper.rb"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/kfaustino/binged}
|
41
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.6}
|
44
|
+
s.summary = %q{A wrapper for the bing api}
|
45
|
+
s.test_files = [
|
46
|
+
"spec/binged/search/web_spec.rb",
|
47
|
+
"spec/binged_spec.rb",
|
48
|
+
"spec/spec_helper.rb"
|
49
|
+
]
|
50
|
+
|
51
|
+
if s.respond_to? :specification_version then
|
52
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
|
+
s.specification_version = 3
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<hashie>, ["~> 0.1.0"])
|
57
|
+
s.add_runtime_dependency(%q<crack>, [">= 0.1.6"])
|
58
|
+
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
59
|
+
s.add_development_dependency(%q<fakeweb>, [">= 1.2.8"])
|
60
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
61
|
+
else
|
62
|
+
s.add_dependency(%q<hashie>, ["~> 0.1.0"])
|
63
|
+
s.add_dependency(%q<crack>, [">= 0.1.6"])
|
64
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
65
|
+
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
66
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
67
|
+
end
|
68
|
+
else
|
69
|
+
s.add_dependency(%q<hashie>, ["~> 0.1.0"])
|
70
|
+
s.add_dependency(%q<crack>, [">= 0.1.6"])
|
71
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
72
|
+
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
73
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Binged
|
2
|
+
|
3
|
+
# A client which encapsulates the Bing API
|
4
|
+
class Client
|
5
|
+
|
6
|
+
attr_accessor :api_key
|
7
|
+
|
8
|
+
# @param [Hash] options the options to create a client with.
|
9
|
+
# @option options [String] :api_key The Bing API key used to make all API calls.
|
10
|
+
def initialize(options = {})
|
11
|
+
@api_key = options[:api_key] || Binged.api_key
|
12
|
+
end
|
13
|
+
|
14
|
+
# Create a web search through Bing
|
15
|
+
#
|
16
|
+
# @param [String] query The search term to be sent to Bing
|
17
|
+
def web(query='')
|
18
|
+
Search::Web.new(self,query)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Binged
|
2
|
+
module Search
|
3
|
+
|
4
|
+
# @abstract Subclass and override {#fetch} to implement a custom Searchable class
|
5
|
+
class Base
|
6
|
+
include Enumerable
|
7
|
+
attr_reader :client, :query, :source
|
8
|
+
|
9
|
+
BASE_URI = 'http://api.bing.net/json.aspx?'
|
10
|
+
|
11
|
+
# @param [Binged::Client] client
|
12
|
+
def initialize(client)
|
13
|
+
@client = client
|
14
|
+
reset_query
|
15
|
+
end
|
16
|
+
|
17
|
+
# Clears all filters to perform a new search
|
18
|
+
def clear
|
19
|
+
@fetch = nil
|
20
|
+
reset_query
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
def fetch
|
25
|
+
end
|
26
|
+
|
27
|
+
# Performs a GET call to Bing API
|
28
|
+
#
|
29
|
+
# @return [Hash] Hash of Bing API response
|
30
|
+
def perform
|
31
|
+
url = URI.parse BASE_URI
|
32
|
+
query = @query.dup
|
33
|
+
query[:Query] = query[:Query].join(' ')
|
34
|
+
query[:Sources] = self.source
|
35
|
+
query_options = default_options.merge(query).to_params
|
36
|
+
url.query = query_options
|
37
|
+
response = Net::HTTP.get(url)
|
38
|
+
Crack::JSON.parse(response)
|
39
|
+
end
|
40
|
+
|
41
|
+
# @yieldreturn [Hash] A result from a Bing query
|
42
|
+
def each
|
43
|
+
fetch().results.each { |r| yield r }
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def default_options
|
49
|
+
{:AppId => @client.api_key, :JsonType => 'raw', :Version => '2.2' }
|
50
|
+
end
|
51
|
+
|
52
|
+
def reset_query
|
53
|
+
@query = { :Query => [] }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module Binged
|
2
|
+
module Search
|
3
|
+
|
4
|
+
# A class that encapsulated the Bing Web Search source
|
5
|
+
# @todo Add support for adult and market filtering
|
6
|
+
class Web < Base
|
7
|
+
|
8
|
+
SUPPORTED_FILE_TYPES = [:doc, :dwf, :feed, :htm, :html, :pdf, :ppt, :ps, :rtf, :text, :txt, :xls]
|
9
|
+
|
10
|
+
# @param [Binged::Client] client
|
11
|
+
# @param [String] query The search term to be sent to Bing
|
12
|
+
# @param [Hash] options
|
13
|
+
def initialize(client, query=nil, options={})
|
14
|
+
super(client)
|
15
|
+
@source = :web
|
16
|
+
per_page(20).page(1)
|
17
|
+
containing(query) if query && query.strip != ''
|
18
|
+
end
|
19
|
+
|
20
|
+
# Add query to search
|
21
|
+
#
|
22
|
+
# @param [String] query The search term to be sent to Bing
|
23
|
+
# @return [self]
|
24
|
+
def containing(query)
|
25
|
+
@query[:Query] << query
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
29
|
+
# Retrieve results of the web search
|
30
|
+
#
|
31
|
+
# @return [Hash] A hash of the results returned from Bing
|
32
|
+
def fetch
|
33
|
+
if @fetch.nil?
|
34
|
+
response = perform
|
35
|
+
@fetch = Hashie::Mash.new(response["SearchResponse"]["Web"]) if response
|
36
|
+
end
|
37
|
+
|
38
|
+
@fetch || []
|
39
|
+
end
|
40
|
+
|
41
|
+
# Add filtering based on a file type
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# web_search.file_type(:pdf) # Isolate search to PDF files
|
45
|
+
#
|
46
|
+
# @param [Symbol] type A symbol of a {SUPPORTED_FILE_TYPES}
|
47
|
+
# @return [self]
|
48
|
+
# @see http://msdn.microsoft.com/en-us/library/dd250876.aspx Description of all supported file types
|
49
|
+
def file_type(type)
|
50
|
+
@query['Web.FileType'] = type if SUPPORTED_FILE_TYPES.include?(type)
|
51
|
+
self
|
52
|
+
end
|
53
|
+
|
54
|
+
# Isolate search results to a specific site
|
55
|
+
#
|
56
|
+
# @example
|
57
|
+
# web_search.from_site('www.ruby-lang.org')
|
58
|
+
#
|
59
|
+
# @param [String] site Web site address to limit search results to
|
60
|
+
# @return [self]
|
61
|
+
def from_site(site)
|
62
|
+
@query[:Query] << "site:#{site}"
|
63
|
+
self
|
64
|
+
end
|
65
|
+
|
66
|
+
# Set the page number of the results to display
|
67
|
+
#
|
68
|
+
# @param [Fixnum] num The page number of the search results
|
69
|
+
# @return [self]
|
70
|
+
def page(num=1)
|
71
|
+
offset = num - 1
|
72
|
+
@query['Web.Offset'] = @results_per_page * offset
|
73
|
+
self
|
74
|
+
end
|
75
|
+
|
76
|
+
# The amount of results to display per page. Initialized to 20 per page.
|
77
|
+
#
|
78
|
+
# @param [Fixnum] num The number of results per page
|
79
|
+
# @return [self]
|
80
|
+
def per_page(num)
|
81
|
+
@results_per_page = num
|
82
|
+
@query['Web.Count'] = @results_per_page
|
83
|
+
self
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/binged.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'crack'
|
2
|
+
require 'hashie'
|
3
|
+
require 'net/http'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
Hash.send :include, Hashie::HashExtensions
|
7
|
+
require 'binged/hashie_extensions'
|
8
|
+
|
9
|
+
# The module that contains everything Binged related
|
10
|
+
#
|
11
|
+
# * {Binged::Client} is used to interact with the Bing API
|
12
|
+
# * {Binged::Search} contains different Bing search sources
|
13
|
+
module Binged
|
14
|
+
autoload :Client, "binged/client"
|
15
|
+
autoload :Search, "binged/search"
|
16
|
+
|
17
|
+
# Configure global options for Binged
|
18
|
+
#
|
19
|
+
# For example:
|
20
|
+
#
|
21
|
+
# Binged.configure do |config|
|
22
|
+
# config.api_key = 'api_key'
|
23
|
+
# end
|
24
|
+
def self.configure
|
25
|
+
yield self
|
26
|
+
true
|
27
|
+
end
|
28
|
+
|
29
|
+
class << self
|
30
|
+
attr_accessor :api_key
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Binged
|
4
|
+
module Search
|
5
|
+
|
6
|
+
describe "Web" do
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
@client = Binged::Client.new(:api_key => 'binged')
|
10
|
+
@search = Web.new(@client)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should initialize with a search term" do
|
14
|
+
Web.new(@client, 'binged').query[:Query].should include('binged')
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be able to specify a site to limit searches to" do
|
18
|
+
@search.from_site('adventuresincoding.com')
|
19
|
+
@search.query[:Query].should include('site:adventuresincoding.com')
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should be able to specify the number of results per page" do
|
23
|
+
@search.per_page(10)
|
24
|
+
@search.query['Web.Count'].should == 10
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should be able to specify the page number" do
|
28
|
+
@search.page(3)
|
29
|
+
@search.query['Web.Offset'].should == 20 * 2
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should be able to set a file type" do
|
33
|
+
@search.file_type(:pdf)
|
34
|
+
@search.query['Web.FileType'].should == :pdf
|
35
|
+
end
|
36
|
+
|
37
|
+
context "fetching" do
|
38
|
+
|
39
|
+
before(:each) do
|
40
|
+
stub_get("http://api.bing.net/json.aspx?Web.Offset=0&Sources=web&AppId=binged&Query=ruby&JsonType=raw&Version=2.2&Web.Count=20", 'web.json')
|
41
|
+
@search.containing("ruby")
|
42
|
+
@response = @search.fetch
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should cache fetch to eliminate multiple calls to the api" do
|
46
|
+
Web.should_not_receive(:perform)
|
47
|
+
@search.fetch
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return the results of the search" do
|
51
|
+
@response.results.size.should == 20
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should support dot notation" do
|
55
|
+
result = @response.results.first
|
56
|
+
result.title.should == "Ruby Programming Language"
|
57
|
+
result.description.should == "Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is ..."
|
58
|
+
result.url.should == "http://www.ruby-lang.org/en/"
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
context "iterating over results" do
|
64
|
+
|
65
|
+
before(:each) do
|
66
|
+
stub_get("http://api.bing.net/json.aspx?Web.Offset=0&Sources=Web&AppId=binged&Query=ruby&JsonType=raw&Version=2.2&Web.Count=20", 'web.json')
|
67
|
+
@search.containing("ruby")
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should be able to iterate over results" do
|
71
|
+
@search.respond_to?(:each).should be_true
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should have items" do
|
75
|
+
@search.each {|item| item.should_not be_nil }
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
data/spec/binged_spec.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Binged" do
|
4
|
+
|
5
|
+
it "should configure the api_key for easy access" do
|
6
|
+
Binged.configure do |config|
|
7
|
+
config.api_key = 'api_key'
|
8
|
+
end
|
9
|
+
|
10
|
+
client = Binged::Client.new
|
11
|
+
client.api_key.should == 'api_key'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should provide a simple interface to web search" do
|
15
|
+
client = Binged::Client.new
|
16
|
+
client.web.should be_instance_of(Binged::Search::Web)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"ruby"},"Web":{"Total":29600000,"Offset":0,"Results":[{"Title":"Ruby Programming Language","Description":"Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is ...","Url":"http:\/\/www.ruby-lang.org\/en\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4627410722949096&w=54f314e7,2e58cc30","DisplayUrl":"www.ruby-lang.org\/en","DateTime":"2010-03-03T17:14:36Z","DeepLinks":[{"Title":"Downloads","Url":"http:\/\/www.ruby-lang.org\/en\/downloads\/"},{"Title":"Documentation","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/"},{"Title":"About Ruby","Url":"http:\/\/www.ruby-lang.org\/en\/about\/"},{"Title":"Ruby in Twenty Minutes","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/quickstart\/"},{"Title":"Libraries","Url":"http:\/\/www.ruby-lang.org\/en\/libraries\/"},{"Title":"Ruby from Other Languages","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/ruby-from-other-languages\/"},{"Title":"Community","Url":"http:\/\/www.ruby-lang.org\/en\/community\/"},{"Title":"Ruby Core","Url":"http:\/\/www.ruby-lang.org\/en\/community\/ruby-core\/"},{"Title":"News","Url":"http:\/\/www.ruby-lang.org\/en\/news\/"},{"Title":"Issue Tracking","Url":"http:\/\/redmine.ruby-lang.org\/"},{"Title":"Weblogs","Url":"http:\/\/www.ruby-lang.org\/en\/community\/weblogs\/"},{"Title":"Mailing Lists","Url":"http:\/\/www.ruby-lang.org\/en\/community\/mailing-lists"},{"Title":"Security","Url":"http:\/\/www.ruby-lang.org\/en\/security\/"}]},{"Title":"Ruby - Wikipedia, the free encyclopedia","Description":"A ruby is a pink to blood-red gemstone, a variety of the mineral corundum (aluminium oxide). The red color is caused mainly by the presence of the element chromium.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=661775063422&w=78e1f24a,3a2d897e","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby","DateTime":"2010-02-27T07:18:03Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"Wikipedia:About","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Citation Needed","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Citation_needed"},{"Title":"Sapphire","Url":"http:\/\/en.wikipedia.org\/wiki\/Sapphire"},{"Title":"Diamond","Url":"http:\/\/en.wikipedia.org\/wiki\/Diamond"},{"Title":"Ruby disambiguation","Url":"http:\/\/en.wikipedia.org\/wiki\/ruby_(disambiguation)"},{"Title":"Pakistan","Url":"http:\/\/en.wikipedia.org\/wiki\/Pakistan"},{"Title":"Birthstone","Url":"http:\/\/en.wikipedia.org\/wiki\/Birthstone"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"}]},{"Title":"Ruby - The Inspirational Weight Loss Journey on the Style Network ...","Description":"Inspirational weight loss and weight loss exercises from the show Ruby on the Style Network","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5041767689816463&w=bbeb6738,92443868","DisplayUrl":"www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","DateTime":"2010-03-03T17:50:23Z","DeepLinks":[{"Title":"Fashion DUI","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=bae9c59a-3236-426d-8eb6-33db1a459c31"},{"Title":"Top Steals of the Week","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=a02cc651-c811-4148-900a-fff42c858eb5"},{"Title":"Weight Loss Message Boards","Url":"http:\/\/www.mystyle.com\/mystyle\/community\/forums\/index.jsp"},{"Title":"Clean House Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=49b46faf-a336-4645-8d2b-e325a6d5e3a2"},{"Title":"Clean House","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/cleanhouse\/index.jsp"},{"Title":"Dress My Nest Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=9a4f89fc-e947-401b-ab9f-62f918b341a3"},{"Title":"Style Shout-Out","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=cee27be1-f8f4-44e8-a3b5-87da66c1412d"},{"Title":"Healthy Weight Loss","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/gettinghealthy\/index.jsp"},{"Title":"Giuliana & Bill","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/giulianaandbill\/index.jsp"},{"Title":"Whose Wedding Is It Anyway?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/whosewedding\/index.jsp"},{"Title":"How Do I Look?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/howdoilook\/index.jsp"},{"Title":"Photo Galleries","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/index.jsp"},{"Title":"mystyle Quiz","Url":"http:\/\/www.mystyle.com\/mystyle\/games\/index.jsp?game=mystylequiz&navSection=fashion,beauty"}]},{"Title":"Ruby (programming language) - Wikipedia, the free encyclopedia","Description":"Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby_(programming_language)","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5003684216244711&w=b7f38fb8,ccc1c0aa","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby_(programming_language)","DateTime":"2010-03-04T11:36:58Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"About Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Japan","Url":"http:\/\/en.wikipedia.org\/wiki\/Japan"},{"Title":"Recent changes","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:RecentChanges"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"},{"Title":"Contact Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Contact_us"},{"Title":"Upload file","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Upload"},{"Title":"Special pages","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:SpecialPages"},{"Title":"Microsoft Windows","Url":"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Windows"}]},{"Title":"Ruby - english","Description":"Ruby Which colour would you spontaneously associate with love and vivacity, passion and power? It's obvious, isn't it? Red. Red is the colour of love.","Url":"http:\/\/www.gemstone.org\/gem-by-gem\/english\/ruby.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4700979218418228&w=71813540,94f5edb5","DisplayUrl":"www.gemstone.org\/gem-by-gem\/english\/ruby.html","DateTime":"2010-03-03T16:31:39Z"},{"Title":"Ruby Meetup Groups - Ruby Meetups","Description":"Helps groups of people with shared interests plan meetings and form offline clubs in local communities around the world about Ruby","Url":"http:\/\/ruby.meetup.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=695343056075&w=73bd8912,24d17d8f","DisplayUrl":"ruby.meetup.com","DateTime":"2010-03-03T21:25:08Z"},{"Title":"Ruby (1992)","Description":"Directed by John Mackenzie. With Danny Aiello, Sherilyn Fenn, Arliss Howard. Visit IMDb for Photos, Showtimes, Cast, Crew, Reviews, Plot Summary, Comments, Discussions, Taglines ...","Url":"http:\/\/www.imdb.com\/title\/tt0105291\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4821474522039504&w=5143f877,76ab7637","DisplayUrl":"www.imdb.com\/title\/tt0105291","DateTime":"2010-02-04T07:59:38Z"},{"Title":"[Ruby-Doc.org: Documenting the Ruby Language]","Description":"Ruby documentation project: links and downloads of programming information, on many aspects of Ruby.","Url":"http:\/\/www.ruby-doc.org\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4998165183923249&w=ea8f6d25,95b1875e","DisplayUrl":"www.ruby-doc.org","DateTime":"2010-03-04T16:59:06Z","DeepLinks":[{"Title":"Standard API","Url":"http:\/\/www.ruby-doc.org\/stdlib\/"},{"Title":"Programming Ruby","Url":"http:\/\/www.ruby-doc.org\/docs\/ProgrammingRuby\/"},{"Title":"Files","Url":"http:\/\/www.ruby-doc.org\/core"},{"Title":"Getting Started","Url":"http:\/\/www.ruby-doc.org\/gettingstarted\/index.html"},{"Title":"Additional Documents","Url":"http:\/\/www.ruby-doc.org\/docs"},{"Title":"This","Url":"http:\/\/www.ruby-doc.org\/documentation-guidelines.html"},{"Title":"Standard Library","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Standard_Library"},{"Title":"Methods","Url":"http:\/\/www.ruby-doc.org\/core-1.8.7\/index.html"},{"Title":"Downloads","Url":"http:\/\/www.ruby-doc.org\/downloads\/"},{"Title":"Why Ruby","Url":"http:\/\/www.ruby-doc.org\/whyruby"},{"Title":"Ruby Spec: Core","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Core"},{"Title":"Ruby-Doc Docbar","Url":"http:\/\/www.ruby-doc.org\/docbar\/"},{"Title":"Status Report","Url":"http:\/\/www.ruby-doc.org\/stdlib\/status.html"}]},{"Title":"Ruby: Ruby mineral information and data.","Description":"A red, gem variety of Corundum. The red colour is caused by minor amounts of trivalent Cr replacing Al in the crystal structure. Pure Cr2O3 occurs in nature as the mineral <M ...","Url":"http:\/\/www.mindat.org\/min-3473.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4952668595489458&w=b55008d0,e8c4ddb4","DisplayUrl":"www.mindat.org\/min-3473.html","DateTime":"2010-02-28T21:43:01Z"},{"Title":"Ruby\/Ruby on Rails programming tutorials2 - Meshplex","Description":"Ruby for complete beginners: Ruby Introduction: What can I use RoR for? Reasons for choosing RoR over other popular programming languages such as php or asp.net .What makes Ruby so ...","Url":"http:\/\/www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4741832947336861&w=2d9d5b96,9eaf0e4c","DisplayUrl":"www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","DateTime":"2010-03-04T05:10:25Z"},{"Title":"Jack Ruby","Description":"Was Jack Ruby a mobster, a spook, or merely an emotional wannabe who expected public acclaim for killing Oswald?","Url":"http:\/\/mcadams.posc.mu.edu\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4935828028785085&w=a5cf0783,391d1a03","DisplayUrl":"mcadams.posc.mu.edu\/ruby.htm","DateTime":"2010-03-04T14:50:15Z"},{"Title":"Ruby-On-Rails","Description":"Ruby-On-Rails Developer's Journal ... Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments","Url":"http:\/\/ruby.sys-con.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4881479511180793&w=f0c3ddf5,73535976","DisplayUrl":"ruby.sys-con.com","DateTime":"2010-03-05T02:38:55Z"},{"Title":"The gemstone ruby","Description":"Ruby is distinguished and known by all for its fiery red color. Beside for its color, it is a most desirable gem due to its hardness, durability, luster, and rarity.","Url":"http:\/\/www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4621165840434460&w=ae21eda2,87c0c587","DisplayUrl":"www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","DateTime":"2010-03-05T02:53:14Z"},{"Title":"NetBeans IDE - Ruby and Ruby on Rails Development","Description":"NetBeans IDE - Integrated tools for Ruby and Ruby on Rails developers","Url":"http:\/\/netbeans.org\/features\/ruby\/index.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5027053135464027&w=d7848996,8be8650","DisplayUrl":"netbeans.org\/features\/ruby\/index.html","DateTime":"2010-03-04T03:37:22Z"},{"Title":"RubyForge: Ruby: Project Info","Description":"Tracker - Bugs ( 338 open \/ 809 total ) Bug Tracking System - Patches ( 69 open \/ 116 total ) Patch Tracking System - 1.9.1 showstoppers ( 0 open \/ 12 total )","Url":"http:\/\/rubyforge.org\/projects\/ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4713537701086745&w=53c417ed,1ba0970c","DisplayUrl":"rubyforge.org\/projects\/ruby","DateTime":"2010-03-04T04:13:10Z"},{"Title":"Ruby - The Official Website | Coming Soon!","Description":"Ruby's Official Website ... Hey all, welcome to my official website. Here you find all my news, images, video clips & up-to-date information, the website is under construction so ...","Url":"http:\/\/rubymania.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5043382597191621&w=72b61cb5,7046900c","DisplayUrl":"rubymania.com","DateTime":"2010-03-04T17:42:03Z"},{"Title":"CSS3 Ruby Module","Description":"Abstract \"Ruby\" are short runs of text alongside the base text, typically used in East Asian documents to indicate pronunciation or to provide a short annotation.","Url":"http:\/\/www.w3.org\/TR\/css3-ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4740681895184188&w=de16472f,c7ece477","DisplayUrl":"www.w3.org\/TR\/css3-ruby","DateTime":"2010-03-04T03:08:44Z"},{"Title":"Ruby Andrascik's Manotick Lifestyles","Description":"Sales representative in Manotick area. Recent sales, current listings, area information.","Url":"http:\/\/manoticklifestyles.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4985666828699639&w=6efb6d3f,50da2b69","DisplayUrl":"manoticklifestyles.com","DateTime":"2010-03-03T20:35:02Z"},{"Title":"Ruby","Description":"Abstract. The HyperText Markup Language (HTML) is a simple markup language used to create hypertext documents that are portable from one platform to another.","Url":"http:\/\/www.w3.org\/TR\/1999\/WD-ruby-19990924\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4820207509702663&w=8102eac9,23f9553","DisplayUrl":"www.w3.org\/TR\/1999\/WD-ruby-19990924","DateTime":"2010-03-05T07:32:24Z"},{"Title":"ruby - Wiktionary","Description":"This page was last modified on 10 February 2010, at 16:50. Text is available under the Creative Commons Attribution\/Share-Alike License; additional terms may apply.","Url":"http:\/\/en.wiktionary.org\/wiki\/ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4826869002143668&w=81c2b50f,9ecab98e","DisplayUrl":"en.wiktionary.org\/wiki\/ruby","DateTime":"2010-03-04T22:57:01Z"}]}}}
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'rubygems'
|
4
|
+
require 'spec'
|
5
|
+
require 'spec/autorun'
|
6
|
+
require 'fakeweb'
|
7
|
+
require 'binged'
|
8
|
+
|
9
|
+
FakeWeb.allow_net_connect = false
|
10
|
+
|
11
|
+
Spec::Runner.configure do |config|
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def bing_url(url)
|
16
|
+
"http://api.bing.net/json.aspx#{url}&Version=2.2&JsonType=raw&AppId=binged"
|
17
|
+
end
|
18
|
+
|
19
|
+
def fixture_file(filename)
|
20
|
+
return '' if filename == ''
|
21
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
22
|
+
File.read(file_path)
|
23
|
+
end
|
24
|
+
|
25
|
+
def stub_get(url, filename, options={})
|
26
|
+
fakeweb_options = {:body => fixture_file(filename)}.merge(options)
|
27
|
+
FakeWeb.register_uri(:get, url, fakeweb_options)
|
28
|
+
end
|
29
|
+
|
metadata
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: binged
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Kevin Faustino
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-07 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: hashie
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 1
|
30
|
+
- 0
|
31
|
+
version: 0.1.0
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: crack
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 1
|
44
|
+
- 6
|
45
|
+
version: 0.1.6
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 3
|
58
|
+
- 0
|
59
|
+
version: 1.3.0
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: fakeweb
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 1
|
71
|
+
- 2
|
72
|
+
- 8
|
73
|
+
version: 1.2.8
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: yard
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
type: :development
|
87
|
+
version_requirements: *id005
|
88
|
+
description: A wrapper for the bing api
|
89
|
+
email: kevin.faustino@gmail.com
|
90
|
+
executables: []
|
91
|
+
|
92
|
+
extensions: []
|
93
|
+
|
94
|
+
extra_rdoc_files:
|
95
|
+
- LICENSE
|
96
|
+
- README.md
|
97
|
+
files:
|
98
|
+
- .document
|
99
|
+
- .gitignore
|
100
|
+
- HISTORY
|
101
|
+
- LICENSE
|
102
|
+
- README.md
|
103
|
+
- Rakefile
|
104
|
+
- VERSION
|
105
|
+
- binged.gemspec
|
106
|
+
- lib/binged.rb
|
107
|
+
- lib/binged/client.rb
|
108
|
+
- lib/binged/hashie_extensions.rb
|
109
|
+
- lib/binged/search.rb
|
110
|
+
- lib/binged/search/base.rb
|
111
|
+
- lib/binged/search/web.rb
|
112
|
+
- spec/binged/search/web_spec.rb
|
113
|
+
- spec/binged_spec.rb
|
114
|
+
- spec/fixtures/web.json
|
115
|
+
- spec/spec.opts
|
116
|
+
- spec/spec_helper.rb
|
117
|
+
has_rdoc: true
|
118
|
+
homepage: http://github.com/kfaustino/binged
|
119
|
+
licenses: []
|
120
|
+
|
121
|
+
post_install_message:
|
122
|
+
rdoc_options:
|
123
|
+
- --charset=UTF-8
|
124
|
+
require_paths:
|
125
|
+
- lib
|
126
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
version: "0"
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
requirements: []
|
141
|
+
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 1.3.6
|
144
|
+
signing_key:
|
145
|
+
specification_version: 3
|
146
|
+
summary: A wrapper for the bing api
|
147
|
+
test_files:
|
148
|
+
- spec/binged/search/web_spec.rb
|
149
|
+
- spec/binged_spec.rb
|
150
|
+
- spec/spec_helper.rb
|