picky-client 0.0.0 → 0.0.1

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 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')