lucid_works 0.6.13 → 0.6.14

Sign up to get free protection for your applications and to get access to all the features.
data/lib/lucid_works.rb CHANGED
@@ -6,13 +6,10 @@ end
6
6
  require 'active_model'
7
7
  require 'active_support/core_ext'
8
8
  require 'active_support/inflector'
9
- begin
10
- require 'action_view/helpers/number_helper' # Optional formatter support
11
- rescue LoadError
12
- end
13
9
  require 'restclient'
14
10
  require 'json'
15
11
  require 'rsolr'
12
+ require 'rsolr-ext'
16
13
  require 'nokogiri'
17
14
 
18
15
  require 'lucid_works/utils'
@@ -55,3 +52,4 @@ require 'lucid_works/logs/index/summary'
55
52
  require 'lucid_works/version'
56
53
 
57
54
  I18n.load_path += Dir.glob(File.join(File.dirname(__FILE__), '..', 'config', 'locales', '*.yml'))
55
+ I18n.reload! if Rails.env == 'development' rescue nil
@@ -113,7 +113,7 @@ module LucidWorks
113
113
 
114
114
  class_eval <<-EOF, __FILE__, __LINE__ + 1
115
115
  def #{resource}
116
- @#{resource}_association ||= HasOne.new(self, #{resource_class_name}, #{options.to_s})
116
+ @#{resource}_association ||= Associations::HasOne.new(self, #{resource_class_name}, #{options.to_s})
117
117
  end
118
118
 
119
119
  def #{resource}!
@@ -137,7 +137,7 @@ module LucidWorks
137
137
 
138
138
  class_eval <<-EOF, __FILE__, __LINE__ + 1
139
139
  def #{resources}(options={})
140
- @#{resources}_association ||= HasMany.new(self, #{resource_class_name}, #{options.to_s})
140
+ @#{resources}_association ||= Associations::HasMany.new(self, #{resource_class_name}, #{options.to_s})
141
141
  @#{resources}_association.remember_find_options(options) unless options.empty?
142
142
  @#{resources}_association
143
143
  end
@@ -66,7 +66,7 @@ module LucidWorks
66
66
  # end
67
67
 
68
68
  def schema(&block)
69
- @schema ||= Schema.new
69
+ @schema ||= LucidWorks::Schema.new
70
70
  if block_given?
71
71
  @schema.instance_eval(&block)
72
72
  @schema.create_accessors_for_attributes(self)
@@ -205,7 +205,7 @@ module LucidWorks
205
205
  # [{"history":[...history_models...],"id":372},{"history":[...history_models...],"id":371}]
206
206
  JSON.parse(raw_response).each do |group_of_targets|
207
207
  owner_id = group_of_targets['id']
208
- owner = results_array.detect { |result| result.id == owner_id }
208
+ owner = results_array.detect { |result| result.id == owner_id.to_i }
209
209
  targets = group_of_targets[target_name].collect do |target_attrs|
210
210
  target_class.new(target_attrs.merge(:parent => owner, :persisted => true))
211
211
  end
@@ -28,16 +28,16 @@ module LucidWorks
28
28
  unless @rsolr
29
29
  server_uri = self.server.host
30
30
  @path_prefix = URI.parse(server_uri).path # The API key
31
- @rsolr = RSolr.connect :url => server_uri.dup
31
+ @rsolr = RSolr::Ext.connect :url => server_uri.dup
32
32
  end
33
33
  @rsolr
34
34
  end
35
35
 
36
36
  # Perform a Solr search using RSolr
37
- def search(search_params={}, options={})
38
- page = options[:page] ||= 1
39
- per_page = options[:per_page] ||= 10
40
- resp = rsolr.paginate page, per_page, "#{@path_prefix}/solr/#{name}/select", :params => search_params
37
+ def search(search_params={})
38
+ search_params[:page] ||= 1
39
+ search_params[:per_page] ||= 10
40
+ resp = rsolr.find "#{@path_prefix}/solr/#{name}/select", search_params
41
41
  if search_params[:wt] == :xml
42
42
  data = Nokogiri.XML(resp)
43
43
  raise "search received bad XML" unless data.root
@@ -3,6 +3,21 @@ module LucidWorks
3
3
  class Field < Base
4
4
  belongs_to :collection
5
5
 
6
+ schema do
7
+ attribute :name, :string, :primary_key => true, :omit_during_update => true
8
+ attribute :editable, :boolean, :omit_during_update => true
9
+ attributes :indexed, :stored, :facet, :include_in_results,
10
+ :search_by_default, :highlight, :multi_valued,
11
+ :term_vectors, :omit_tf,
12
+ :use_for_deduplication, :synonym_expansion,
13
+ :index_for_spellcheck, :index_for_autocomplete,
14
+ :query_time_stopword_handling,
15
+ :use_in_find_similar,
16
+ :type => :boolean
17
+ attribute :default_boost, :integer
18
+ attributes :field_type, :short_field_boost, :term_vectors, :default_value, :copy_fields, :type => :string
19
+ end
20
+
6
21
  TYPES = [
7
22
  'string',
8
23
  'boolean',
@@ -1,5 +1,5 @@
1
1
  module LucidWorks
2
- VERSION = "0.6.13"
2
+ VERSION = "0.6.14"
3
3
 
4
4
  class Version < Base
5
5
  end
data/lucid_works.gemspec CHANGED
@@ -24,5 +24,6 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency 'rest-client', '>= 1.6.1'
25
25
  s.add_runtime_dependency 'json'
26
26
  s.add_runtime_dependency 'rsolr'
27
+ s.add_runtime_dependency 'rsolr-ext'
27
28
  s.add_runtime_dependency 'nokogiri'
28
29
  end
@@ -317,16 +317,16 @@ describe LucidWorks::Collection do
317
317
  mock_server = double('server', :host => 'http://fake-solr-host.com/fake_access_path')
318
318
  @collection.stub(:server) { mock_server }
319
319
  @mock_rsolr_client = double("RSolr::Client")
320
- RSolr.stub(:connect) { @mock_rsolr_client }
320
+ RSolr::Ext.stub(:connect) { @mock_rsolr_client }
321
321
  end
322
322
 
323
- it "should respect pagination variables" do
324
- @mock_rsolr_client.should_receive(:paginate)
325
- .with(33, 44, '/fake_access_path/solr/collection_to_search/select',
326
- :params => {:q => 'fake_query', :wt => :ruby})
323
+ it "should pass thru pagination variables" do
324
+ @mock_rsolr_client.should_receive(:find)
325
+ .with('/fake_access_path/solr/collection_to_search/select',
326
+ :q => 'fake_query', :wt => :ruby, :page => 33, :per_page => 44)
327
327
  .and_return({})
328
328
 
329
- @collection.search({:q => 'fake_query', :wt => :ruby}, :page => 33, :per_page => 44)
329
+ @collection.search(:q => 'fake_query', :wt => :ruby, :page => 33, :per_page => 44)
330
330
  end
331
331
 
332
332
  context "when requesting an XML response" do
@@ -335,16 +335,16 @@ describe LucidWorks::Collection do
335
335
  end
336
336
 
337
337
  it "should call RSolr.get to perform the search" do
338
- @mock_rsolr_client.should_receive(:paginate)
339
- .with(1, 10, '/fake_access_path/solr/collection_to_search/select',
340
- :params => {:q => 'fake_query', :wt => :xml})
338
+ @mock_rsolr_client.should_receive(:find)
339
+ .with('/fake_access_path/solr/collection_to_search/select',
340
+ :q => 'fake_query', :wt => :xml, :page => 1, :per_page => 10)
341
341
  .and_return(@good_xml)
342
342
 
343
343
  @collection.search(:q => 'fake_query', :wt => :xml)
344
344
  end
345
345
 
346
346
  it "should parse the XML results" do
347
- @mock_rsolr_client.stub(:paginate) { @good_xml }
347
+ @mock_rsolr_client.stub(:find) { @good_xml }
348
348
  results = @collection.search(:q => 'fake_query', :wt => :xml)
349
349
  results.should be_a(Nokogiri::XML::Document)
350
350
  results.root.children.first.text.should == "FooBar"
@@ -297,7 +297,7 @@ describe LucidWorks::Datasource do
297
297
 
298
298
  describe "#progress" do
299
299
  before do
300
- @datasource = LucidWorks::Datasource.new(
300
+ @datasource = LucidWorks::Datasource.create(
301
301
  :collection => @collection,
302
302
  :crawler => LucidWorks::Datasource::CRAWLERS['file'],
303
303
  :type => 'file',
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: lucid_works
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.13
5
+ version: 0.6.14
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sam Pierson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-27 00:00:00 -07:00
13
+ date: 2011-06-03 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -69,7 +69,7 @@ dependencies:
69
69
  type: :runtime
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: nokogiri
72
+ name: rsolr-ext
73
73
  prerelease: false
74
74
  requirement: &id006 !ruby/object:Gem::Requirement
75
75
  none: false
@@ -79,6 +79,17 @@ dependencies:
79
79
  version: "0"
80
80
  type: :runtime
81
81
  version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: nokogiri
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ type: :runtime
92
+ version_requirements: *id007
82
93
  description: Ruby wrapper for the LucidWorks REST API
83
94
  email:
84
95
  - sam.pierson@lucidimagination.com