diff options
| author | mo k <mo@mokhan.ca> | 2012-05-23 20:18:08 -0600 |
|---|---|---|
| committer | mo k <mo@mokhan.ca> | 2012-05-23 20:18:08 -0600 |
| commit | 32dd0fbe629c7677685eb5e338857f451399702e (patch) | |
| tree | 07bc49bf58f5dfb83280ebfdfd9033715a9f7b17 | |
| parent | b5576edf06eedefd0e3696323341048afc0f0591 (diff) | |
add search engine class.
| -rw-r--r-- | Gemfile | 1 | ||||
| -rw-r--r-- | Gemfile.lock | 7 | ||||
| -rw-r--r-- | HD0vXrvkPvXEjNNm55aSzgu5KB2ClFFWTw7cqLZtnDg= | 0 | ||||
| -rw-r--r-- | app/services/search_engine.rb | 6 | ||||
| -rw-r--r-- | features/step_definitions/search_steps.rb | 2 | ||||
| -rw-r--r-- | spec/services/search_engine_spec.rb | 13 | ||||
| -rw-r--r-- | spec/vcr_helper.rb | 5 |
7 files changed, 33 insertions, 1 deletions
@@ -2,6 +2,7 @@ source 'https://rubygems.org' gem 'rails', '3.2.3' gem 'sqlite3' +gem 'rbing' # Gems used only for assets and not required # in production environments by default. diff --git a/Gemfile.lock b/Gemfile.lock index 155e517..7c83f72 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -75,6 +75,9 @@ GEM guard (>= 0.10.0) spork (>= 0.8.4) hike (1.2.1) + httparty (0.8.3) + multi_json (~> 1.0) + multi_xml i18n (0.6.0) journey (1.0.3) jquery-rails (2.0.2) @@ -89,6 +92,7 @@ GEM treetop (~> 1.4.8) mime-types (1.18) multi_json (1.3.5) + multi_xml (0.5.1) nokogiri (1.5.2) polyglot (0.3.3) rack (1.4.1) @@ -114,6 +118,8 @@ GEM rdoc (~> 3.4) thor (~> 0.14.6) rake (0.9.2.2) + rbing (1.1.0) + httparty (>= 0.4.0) rdoc (3.12) json (~> 1.4) rspec (2.10.0) @@ -174,6 +180,7 @@ DEPENDENCIES guard-spork jquery-rails rails (= 3.2.3) + rbing rspec-rails sass-rails (~> 3.2.3) sqlite3 diff --git a/HD0vXrvkPvXEjNNm55aSzgu5KB2ClFFWTw7cqLZtnDg= b/HD0vXrvkPvXEjNNm55aSzgu5KB2ClFFWTw7cqLZtnDg= new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/HD0vXrvkPvXEjNNm55aSzgu5KB2ClFFWTw7cqLZtnDg= diff --git a/app/services/search_engine.rb b/app/services/search_engine.rb index 8dcdc2c..fad1da3 100644 --- a/app/services/search_engine.rb +++ b/app/services/search_engine.rb @@ -1,2 +1,8 @@ +require "rbing" + class SearchEngine + def self.count_results(query) + bing = RBing.new(ENV.fetch("BING_APP_ID")) + bing.web(query).web.total + end end diff --git a/features/step_definitions/search_steps.rb b/features/step_definitions/search_steps.rb index d42b3e0..67a1481 100644 --- a/features/step_definitions/search_steps.rb +++ b/features/step_definitions/search_steps.rb @@ -4,5 +4,5 @@ When /^I search for (.*)$/ do |term| end Then /^apple should have a higher score than microsoft$/ do - pending + @scores["apple"].should == be > @scores["micrsoft"] end diff --git a/spec/services/search_engine_spec.rb b/spec/services/search_engine_spec.rb new file mode 100644 index 0000000..8c40af0 --- /dev/null +++ b/spec/services/search_engine_spec.rb @@ -0,0 +1,13 @@ +require "rbing" +require "vcr" +require_relative '../../app/services/search_engine' + +describe SearchEngine do + it "counts results" do + VCR.use_cassette("windows-vs-beos") do + windows = SearchEngine.count_results("windows") + beos = SearchEngine.count_results("beos") + windows.should be > beos + end + end +end diff --git a/spec/vcr_helper.rb b/spec/vcr_helper.rb new file mode 100644 index 0000000..fa01e56 --- /dev/null +++ b/spec/vcr_helper.rb @@ -0,0 +1,5 @@ +VCR.config do |config| + config.cassette_library_dir = "fixtures/cassettes" + config.stub_with :webmock + config.filter_sensitive_data("<BING_APP_ID>") { ENV.fetch("BING_APP_ID") } +end |
