picky-client 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc ADDED
@@ -0,0 +1,24 @@
1
+ = Picky Client
2
+
3
+ == Usage
4
+
5
+ 1. Define a client instance, and save it (as an example) in a constant:
6
+
7
+ <tt>FullSearch = Picky::Client::Full.new :host => 'some_host', :port => 1234, :path => '/path/to/search'</tt>
8
+
9
+ 2. Use it in your controllers to search:
10
+
11
+ <tt>result = FullSearch.search :query => 'some query', :offset => 123 # This gets you a hash</tt>
12
+
13
+ 3. Then, to make access easier (if needed):
14
+
15
+ <tt>result.extend Picky::Convenience</tt>
16
+
17
+ 4. This gets you the following methods on result:
18
+
19
+ * <tt>empty?</tt>
20
+ * <tt>ids(limit=20)</tt>
21
+ * <tt>clear_ids</tt>
22
+ * <tt>allocations</tt>
23
+ * <tt>allocations_size</tt>
24
+ * <tt>total</tt>
@@ -0,0 +1,10 @@
1
+ $KCODE = 'UTF-8' unless RUBY_VERSION > '1.8.7'
2
+
3
+ require 'rubygems'
4
+
5
+ require 'active_support'
6
+
7
+ this = File.dirname __FILE__
8
+ require File.join(this, '/picky-client/engine')
9
+ require File.join(this, '/picky-client/serializer')
10
+ require File.join(this, '/picky-client/convenience')
@@ -1,4 +1,4 @@
1
- module Search
1
+ module Picky
2
2
  # Use this class to extend the hash the serializer returns.
3
3
  #
4
4
  module Convenience
@@ -1,6 +1,6 @@
1
1
  require 'net/http'
2
2
 
3
- module Search
3
+ module Picky
4
4
  # Frontend for the search client.
5
5
  #
6
6
  # Configure a search by passing the options in the initializer:
@@ -11,7 +11,7 @@ module Search
11
11
  # TODO Rewrite such that instead of an http request we connect through tcp.
12
12
  # Or use EventMachine.
13
13
  #
14
- module Engine
14
+ module Client
15
15
 
16
16
  class Base
17
17
 
@@ -41,23 +41,23 @@ module Search
41
41
  options
42
42
  end
43
43
  end
44
-
44
+
45
45
  # Merges the given params, overriding the defaults.
46
46
  #
47
47
  def defaultize params = {}
48
48
  default_params.merge params
49
49
  end
50
-
50
+
51
51
  # Searches the index. Use this method.
52
52
  #
53
53
  # Returns a hash. Extend with Convenience.
54
54
  #
55
55
  def search params = {}
56
- return {} if params[:query].blank?
57
-
56
+ return {} unless params[:query] && !params[:query].empty?
57
+
58
58
  send_search params
59
59
  end
60
-
60
+
61
61
  # Sends a search to the configured address.
62
62
  #
63
63
  def send_search params = {}
@@ -87,6 +87,7 @@ end
87
87
 
88
88
  # Extend hash with to_query method.
89
89
  #
90
+ require 'active_support/core_ext/object/to_query'
90
91
  class Hash
91
92
  def to_query namespace = nil
92
93
  collect do |key, value|
@@ -1,4 +1,4 @@
1
- module Search
1
+ module Picky
2
2
 
3
3
  # This class handles serialization and deserialization.
4
4
  #
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- describe Search::Convenience do
3
+ describe Picky::Convenience do
4
4
 
5
5
  before(:each) do
6
6
  @convenience = {
@@ -10,7 +10,7 @@ describe Search::Convenience do
10
10
  :offset => 123,
11
11
  :total => 12345,
12
12
  :duration => 0.12345
13
- }.extend Search::Convenience
13
+ }.extend Picky::Convenience
14
14
  end
15
15
 
16
16
  # describe 'replace_ids_with' do
@@ -1,11 +1,11 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- describe Search::Engine do
3
+ describe Picky::Client do
4
4
 
5
5
  describe 'defaultize' do
6
6
  context 'no default params' do
7
7
  before(:each) do
8
- @base = Search::Engine::Base.new
8
+ @base = Picky::Client::Base.new
9
9
  end
10
10
  it 'should return unchanged' do
11
11
  @base.defaultize( :a => :b ).should == { :a => :b }
@@ -13,11 +13,11 @@ describe Search::Engine do
13
13
  end
14
14
  context 'default params' do
15
15
  before(:each) do
16
- Search::Engine::Base.default_params 'c' => 'd'
17
- @base = Search::Engine::Base.new
16
+ Picky::Client::Base.default_params 'c' => 'd'
17
+ @base = Picky::Client::Base.new
18
18
  end
19
19
  after(:each) do
20
- Search::Engine::Base.default_params
20
+ Picky::Client::Base.default_params
21
21
  end
22
22
  it 'should return changed' do
23
23
  @base.defaultize( 'a' => 'b' ).should == { 'a' => 'b', 'c' => 'd' }
@@ -30,7 +30,7 @@ describe Search::Engine do
30
30
 
31
31
  describe 'Base' do
32
32
  before(:each) do
33
- @base = Search::Engine::Base.new
33
+ @base = Picky::Client::Base.new
34
34
  end
35
35
  it 'should have a default_configuration method' do
36
36
  lambda { @base.default_configuration }.should_not raise_error
@@ -48,7 +48,7 @@ describe Search::Engine do
48
48
 
49
49
  describe "Full" do
50
50
  before(:each) do
51
- @full = Search::Engine::Full.new
51
+ @full = Picky::Client::Full.new
52
52
  end
53
53
  describe "defaults" do
54
54
  it "should set host to 'localhost'" do
@@ -64,7 +64,7 @@ describe Search::Engine do
64
64
 
65
65
  describe "cattr_accessors" do
66
66
  before(:each) do
67
- @full = Search::Engine::Full.new :host => :some_host, :port => :some_port, :path => :some_path
67
+ @full = Picky::Client::Full.new :host => :some_host, :port => :some_port, :path => :some_path
68
68
  end
69
69
  it "should have a writer for the host" do
70
70
  @full.host = :some_host
@@ -94,7 +94,7 @@ describe Search::Engine do
94
94
  before(:each) do
95
95
  @query = nil
96
96
  end
97
- it "should return a Search::Results for company" do
97
+ it "should return a Search::Results for bla" do
98
98
  @full.search(:query => @query).should be_kind_of(Hash)
99
99
  end
100
100
  it "should return an empty Search::Results" do
@@ -105,7 +105,7 @@ describe Search::Engine do
105
105
  before(:each) do
106
106
  @query = ''
107
107
  end
108
- it "should return a Search::Results for company" do
108
+ it "should return a Search::Results" do
109
109
  @full.search(:query => @query).should be_kind_of(Hash)
110
110
  end
111
111
  it "should return an empty Search::Results" do
@@ -117,7 +117,7 @@ describe Search::Engine do
117
117
 
118
118
  describe "Live" do
119
119
  before(:each) do
120
- @live = Search::Engine::Live.new
120
+ @live = Picky::Client::Live.new
121
121
  end
122
122
  describe "defaults" do
123
123
  it "should set host to 'localhost'" do
@@ -1,13 +1,13 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- describe Search::Serializer do
3
+ describe Picky::Serializer do
4
4
 
5
5
  describe "serialize-deserialize" do
6
6
  it "should serialize and deserialize certain values" do
7
7
  results = stub :results
8
8
  results.stub! :serialize => {}
9
9
 
10
- deserialized = Search::Serializer.deserialize Search::Serializer.serialize(results)
10
+ deserialized = Picky::Serializer.deserialize Picky::Serializer.serialize(results)
11
11
 
12
12
  deserialized.should == {}
13
13
  end
@@ -24,13 +24,13 @@ describe Search::Serializer do
24
24
  :duration => 0.12345
25
25
  }
26
26
 
27
- Search::Serializer.serialize(results).should == "\x04\b{\t:\x10allocations[\b[\t000[\ri\x06i\ai\bi\ti\ni\vi\fi\r[\t000[\ri\x0Ei\x0Fi\x10i\x11i\x12i\x13i\x14i\x15[\t000[\fi\x16i\x17i\x18i\x19i\x1Ai\ei\x1C:\voffseti\x01{:\ntotali\x0290:\rdurationf\x0F0.12345\x00\xF2|"
27
+ Picky::Serializer.serialize(results).should == "\x04\b{\t:\x10allocations[\b[\t000[\ri\x06i\ai\bi\ti\ni\vi\fi\r[\t000[\ri\x0Ei\x0Fi\x10i\x11i\x12i\x13i\x14i\x15[\t000[\fi\x16i\x17i\x18i\x19i\x1Ai\ei\x1C:\voffseti\x01{:\ntotali\x0290:\rdurationf\x0F0.12345\x00\xF2|"
28
28
  end
29
29
  end
30
30
 
31
31
  describe "deserialize" do
32
32
  it "should deserialize" do
33
- results = Search::Serializer.deserialize "\x04\b{\t:\x10allocations[\b[\t000[\ri\x06i\ai\bi\ti\ni\vi\fi\r[\t000[\ri\x0Ei\x0Fi\x10i\x11i\x12i\x13i\x14i\x15[\t000[\fi\x16i\x17i\x18i\x19i\x1Ai\ei\x1C:\voffseti\x01{:\ntotali\x0290:\rdurationf\x0F0.12345\x00\xF2|"
33
+ results = Picky::Serializer.deserialize "\x04\b{\t:\x10allocations[\b[\t000[\ri\x06i\ai\bi\ti\ni\vi\fi\r[\t000[\ri\x0Ei\x0Fi\x10i\x11i\x12i\x13i\x14i\x15[\t000[\fi\x16i\x17i\x18i\x19i\x1Ai\ei\x1C:\voffseti\x01{:\ntotali\x0290:\rdurationf\x0F0.12345\x00\xF2|"
34
34
 
35
35
  results.should be_kind_of(Hash)
36
36
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 0
9
- version: 0.0.0
8
+ - 1
9
+ version: 0.0.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Florian Hanke
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-10 00:00:00 +02:00
17
+ date: 2010-09-29 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -25,16 +25,16 @@ executables: []
25
25
  extensions: []
26
26
 
27
27
  extra_rdoc_files:
28
- - README.textile
28
+ - README.rdoc
29
29
  files:
30
- - lib/search/convenience.rb
31
- - lib/search/engine.rb
32
- - lib/search/serializer.rb
33
- - lib/search-engine.rb
34
- - spec/search/convenience_spec.rb
35
- - spec/search/engine_spec.rb
36
- - spec/search/serializer_spec.rb
37
- - README.textile
30
+ - lib/picky-client/convenience.rb
31
+ - lib/picky-client/engine.rb
32
+ - lib/picky-client/serializer.rb
33
+ - lib/picky-client.rb
34
+ - spec/picky-client/convenience_spec.rb
35
+ - spec/picky-client/engine_spec.rb
36
+ - spec/picky-client/serializer_spec.rb
37
+ - README.rdoc
38
38
  has_rdoc: true
39
39
  homepage: http://floere.github.com/picky
40
40
  licenses: []
@@ -68,6 +68,6 @@ signing_key:
68
68
  specification_version: 3
69
69
  summary: picky Search Engine Client
70
70
  test_files:
71
- - spec/search/convenience_spec.rb
72
- - spec/search/engine_spec.rb
73
- - spec/search/serializer_spec.rb
71
+ - spec/picky-client/convenience_spec.rb
72
+ - spec/picky-client/engine_spec.rb
73
+ - spec/picky-client/serializer_spec.rb
data/README.textile DELETED
@@ -1,3 +0,0 @@
1
- h1. Search engine client.
2
-
3
- # TODO Usage etc.
data/lib/search-engine.rb DELETED
@@ -1,10 +0,0 @@
1
- $KCODE = 'UTF-8' unless RUBY_VERSION > '1.8.7'
2
-
3
- require 'rubygems'
4
-
5
- require 'active_support'
6
-
7
- this = File.dirname __FILE__
8
- require File.join(this, '/search/engine')
9
- require File.join(this, '/search/serializer')
10
- require File.join(this, '/search/convenience')