lucid_works 0.3.9 → 0.4.9
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 +33 -3
- data/config/locales/en.yml +21 -12
- data/lib/lucid_works.rb +10 -0
- data/lib/lucid_works/associations.rb +14 -12
- data/lib/lucid_works/base.rb +13 -13
- data/lib/lucid_works/collection.rb +65 -5
- data/lib/lucid_works/collection/activity.rb +33 -0
- data/lib/lucid_works/collection/activity/history.rb +20 -0
- data/lib/lucid_works/collection/activity/status.rb +14 -0
- data/lib/lucid_works/collection/settings.rb +28 -8
- data/lib/lucid_works/crawler.rb +3 -3
- data/lib/lucid_works/datasource.rb +29 -3
- data/lib/lucid_works/datasource/job.rb +9 -0
- data/lib/lucid_works/datasource/status.rb +6 -11
- data/lib/lucid_works/patch_time.rb +13 -0
- data/lib/lucid_works/schema.rb +36 -8
- data/lib/lucid_works/utils.rb +22 -0
- data/lib/lucid_works/version.rb +1 -1
- data/lucid_works.gemspec +2 -0
- data/spec/lib/lucid_works/associations_spec.rb +12 -1
- data/spec/lib/lucid_works/base_spec.rb +26 -10
- data/spec/lib/lucid_works/collection/activity/history_spec.rb +33 -0
- data/spec/lib/lucid_works/collection/activity/status_spec.rb +20 -0
- data/spec/lib/lucid_works/collection/activity_spec.rb +88 -0
- data/spec/lib/lucid_works/collection/prime_activities_spec.rb +86 -0
- data/spec/lib/lucid_works/collection_spec.rb +140 -1
- data/spec/lib/lucid_works/datasource/history_spec.rb +11 -7
- data/spec/lib/lucid_works/datasource/status_spec.rb +64 -32
- data/spec/lib/lucid_works/datasource_spec.rb +48 -13
- data/spec/lib/lucid_works/schema_spec.rb +56 -4
- data/spec/lib/lucid_works/utils_spec.rb +62 -0
- data/spec/spec_helper.rb +17 -14
- metadata +41 -3
@@ -4,7 +4,7 @@ describe LucidWorks::Datasource do
|
|
4
4
|
before :all do
|
5
5
|
@server = connect_to_live_server
|
6
6
|
@server.reset_collections!
|
7
|
-
@collection = @server.collections
|
7
|
+
@collection = @server.collections!.first
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "CRUD" do
|
@@ -222,7 +222,7 @@ describe LucidWorks::Datasource do
|
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
|
-
describe "#
|
225
|
+
describe "#index" do
|
226
226
|
it "should return a new LucidWorks::Datasource::Index for this datasource" do
|
227
227
|
@datasource = LucidWorks::Datasource.create(
|
228
228
|
:collection => @collection,
|
@@ -240,9 +240,44 @@ describe LucidWorks::Datasource do
|
|
240
240
|
end
|
241
241
|
end
|
242
242
|
|
243
|
+
describe "job control" do
|
244
|
+
before :all do
|
245
|
+
@datasource = LucidWorks::Datasource.create(
|
246
|
+
:collection => @collection,
|
247
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
248
|
+
:type => 'file',
|
249
|
+
:name => "datasource we are going to mess with job of",
|
250
|
+
:path => "/fake_ds_to_mess_with_job_of",
|
251
|
+
:crawl_depth => 2
|
252
|
+
)
|
253
|
+
@datasource.should be_valid
|
254
|
+
end
|
255
|
+
|
256
|
+
describe "#job" do
|
257
|
+
it "should return a new LucidWorks::Datasource::Job for this datasource" do
|
258
|
+
job = @datasource.job
|
259
|
+
job.should be_a(LucidWorks::Datasource::Job)
|
260
|
+
job.should be_persisted # special case - singletons are always considered persisted
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
describe "#start_crawl!" do
|
265
|
+
it "should PUT /api/collections/<collection_id>/datasources/<datasource_id>/job" do
|
266
|
+
RestClient.should_receive(:put).with("#{@datasource.uri}/job", "{}", {:content_type => :json})
|
267
|
+
@datasource.start_crawl!
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
describe "#stop_crawl!" do
|
272
|
+
it "should DELETE /api/collections/<collection_id>/datasources/<datasource_id>/job" do
|
273
|
+
RestClient.should_receive(:delete).with("#{@datasource.uri}/job", {})
|
274
|
+
@datasource.stop_crawl!
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
243
279
|
describe "#empty!" do
|
244
280
|
before do
|
245
|
-
@collection = @server.collections.first
|
246
281
|
@datasource = LucidWorks::Datasource.create(
|
247
282
|
:collection => @collection,
|
248
283
|
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
@@ -259,18 +294,18 @@ describe LucidWorks::Datasource do
|
|
259
294
|
|
260
295
|
@datasource.empty!
|
261
296
|
end
|
297
|
+
end
|
262
298
|
|
263
|
-
|
264
|
-
|
265
|
-
|
299
|
+
describe "#progress" do
|
300
|
+
context "when the datasource has no prior history" do
|
301
|
+
it "should return nil"
|
302
|
+
end
|
303
|
+
context "when the datasource has history" do
|
304
|
+
context "and the most last crawl duration was longer then our current crawl duration" do
|
305
|
+
it "should return the fraction completed (between 0.0 and 1.0)"
|
266
306
|
end
|
267
|
-
context "
|
268
|
-
|
269
|
-
it "should return the fraction completed (between 0.0 and 1.0)"
|
270
|
-
end
|
271
|
-
context "and the most recent crawl duration was no longer our current duration" do
|
272
|
-
it "should return nil"
|
273
|
-
end
|
307
|
+
context "and the most recent crawl duration was no longer our current duration" do
|
308
|
+
it "should return nil"
|
274
309
|
end
|
275
310
|
end
|
276
311
|
end
|
@@ -4,7 +4,7 @@ describe LucidWorks::Schema do
|
|
4
4
|
before do
|
5
5
|
@schema = LucidWorks::Schema.new
|
6
6
|
@schema.instance_eval do
|
7
|
-
attribute :foo
|
7
|
+
attribute :foo, :string, :primary_key => true
|
8
8
|
attribute :abool, :boolean
|
9
9
|
attributes :bar, :baz, :type => :integer
|
10
10
|
end
|
@@ -18,13 +18,50 @@ describe LucidWorks::Schema do
|
|
18
18
|
'baz' => {'type' => :integer},
|
19
19
|
'abool' => {'type' => :boolean}
|
20
20
|
}
|
21
|
+
@schema.primary_key.should == :foo
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#primary_key" do
|
26
|
+
it "should default to 'id'" do
|
27
|
+
LucidWorks::Schema.new.primary_key.should == :id
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when given an argument" do
|
31
|
+
it "should set the primary key to the provided value" do
|
32
|
+
schema = LucidWorks::Schema.new
|
33
|
+
schema.primary_key 'foo'
|
34
|
+
schema.primary_key.should == :foo
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#dynamic_attributes" do
|
40
|
+
it "should default to true" do
|
41
|
+
schema = LucidWorks::Schema.new
|
42
|
+
schema.dynamic_attributes.should be_true
|
43
|
+
end
|
44
|
+
|
45
|
+
context "when given an argument" do
|
46
|
+
it "should set dynamic_attributes to the provided value" do
|
47
|
+
schema = LucidWorks::Schema.new
|
48
|
+
schema.dynamic_attributes false
|
49
|
+
schema.dynamic_attributes.should be_false
|
50
|
+
end
|
21
51
|
end
|
22
52
|
end
|
23
53
|
|
24
54
|
describe "create_accessors_for_attributes" do
|
25
55
|
before do
|
26
|
-
class ClassWithAddedAccessors
|
56
|
+
class ClassWithAddedAccessors
|
57
|
+
include LucidWorks::Utils::BoolConverter
|
58
|
+
attr_accessor :attributes
|
59
|
+
def initialize
|
60
|
+
@attributes = {}
|
61
|
+
end
|
62
|
+
end
|
27
63
|
@schema.create_accessors_for_attributes(ClassWithAddedAccessors)
|
64
|
+
@model = ClassWithAddedAccessors.new
|
28
65
|
end
|
29
66
|
|
30
67
|
it "should add readers and writers for all attributes" do
|
@@ -33,8 +70,23 @@ describe LucidWorks::Schema do
|
|
33
70
|
ClassWithAddedAccessors.new.should respond_to(:abool, :abool=)
|
34
71
|
end
|
35
72
|
|
36
|
-
|
37
|
-
|
73
|
+
context "for a boolean attribute" do
|
74
|
+
it "should add a predicate method" do
|
75
|
+
ClassWithAddedAccessors.new.should respond_to(:abool?)
|
76
|
+
end
|
77
|
+
|
78
|
+
[0, '0', false, 'false', 'FALSE', 'no', 'NO'].each do |false_value|
|
79
|
+
it "setter should recongnize #{false_value} as false" do
|
80
|
+
@model.abool = false_value
|
81
|
+
@model.abool.should === false
|
82
|
+
end
|
83
|
+
end
|
84
|
+
[1, '1', true, 'true', 'TRUE', 'yes', 'YES'].each do |true_value|
|
85
|
+
it "setter should recongnize #{true_value} as true" do
|
86
|
+
@model.abool = true_value
|
87
|
+
@model.abool.should === true
|
88
|
+
end
|
89
|
+
end
|
38
90
|
end
|
39
91
|
end
|
40
92
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LucidWorks::Utils do
|
4
|
+
describe "BoolConverter" do
|
5
|
+
before do
|
6
|
+
class ::TestClass
|
7
|
+
extend LucidWorks::Utils::BoolConverter
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "to_bool" do
|
12
|
+
describe "actual booleans" do
|
13
|
+
it "should return the boolean itself" do
|
14
|
+
::TestClass.to_bool(true).should be_true
|
15
|
+
::TestClass.to_bool(false).should be_false
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "strings" do
|
20
|
+
['1', 'true', 'TRUE', 'yes', 'YES'].each do |true_value|
|
21
|
+
it "should recognize #{true_value} as true" do
|
22
|
+
::TestClass.to_bool(true_value).should be_true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
['0', 'false', 'FALSE', 'no', 'NO'].each do |false_value|
|
27
|
+
it "should recognize #{false_value} as false" do
|
28
|
+
::TestClass.to_bool(false_value).should be_false
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should raise an error for any non true/false recognized string" do
|
33
|
+
lambda {
|
34
|
+
::TestClass.to_bool('foo')
|
35
|
+
}.should raise_error
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "integers" do
|
40
|
+
it "should recognize 0 and 1 and false and true respectively" do
|
41
|
+
::TestClass.to_bool(1).should be_true
|
42
|
+
::TestClass.to_bool(0).should be_false
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should raise an error for anything but 0/1" do
|
46
|
+
lambda {
|
47
|
+
::TestClass.to_bool(2)
|
48
|
+
}.should raise_error
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "anything else" do
|
53
|
+
it "should raise an error for anything but integers, booleans or strings" do
|
54
|
+
lambda {
|
55
|
+
::TestClass.to_bool({})
|
56
|
+
}.should raise_error
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,6 +10,7 @@ def connect_to_live_server
|
|
10
10
|
end
|
11
11
|
|
12
12
|
class LucidWorks::Server
|
13
|
+
DUMMY_COLLECTION_NAME = 'collection_that_should_never_exist'
|
13
14
|
DEFAULT_COLLECTION_NAME = 'collection1'
|
14
15
|
|
15
16
|
# Reset set of collections to contain 1 collection with the default name "collection1".
|
@@ -23,25 +24,27 @@ class LucidWorks::Server
|
|
23
24
|
def reset_collections!
|
24
25
|
notes = [ "Resetting all collections:" ]
|
25
26
|
|
26
|
-
collections = self.collections
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
default_collection.empty!
|
33
|
-
notes << "Emptied collection '#{default_collection.name}'"
|
27
|
+
collections = self.collections!
|
28
|
+
|
29
|
+
dummy_collection = collections.find { |c| c.name == DUMMY_COLLECTION_NAME }
|
30
|
+
if dummy_collection
|
31
|
+
notes << "Using dummy collection #{dummy_collection.name}"
|
32
|
+
collections.delete_if { |c| c.name == DUMMY_COLLECTION_NAME }
|
34
33
|
else
|
35
|
-
|
36
|
-
notes << "Created collection
|
34
|
+
dummy_collection = self.create_collection(:name => DUMMY_COLLECTION_NAME)
|
35
|
+
notes << "Created collection #{dummy_collection.name}"
|
37
36
|
end
|
38
37
|
|
39
38
|
collections.each do |c|
|
40
|
-
|
41
|
-
|
42
|
-
notes << "Deleted collection '#{c.name}'"
|
43
|
-
end
|
39
|
+
c.destroy
|
40
|
+
notes << "Deleted collection '#{c.name}'"
|
44
41
|
end
|
42
|
+
|
43
|
+
default_collection = self.create_collection(:name => DEFAULT_COLLECTION_NAME)
|
44
|
+
notes << "Created collection '#{default_collection.name}'"
|
45
|
+
|
46
|
+
dummy_collection.destroy
|
47
|
+
notes << "Deleted collection #{dummy_collection.name}"
|
45
48
|
notes
|
46
49
|
end
|
47
50
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: lucid_works
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.9
|
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-
|
13
|
+
date: 2011-04-09 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -57,6 +57,28 @@ dependencies:
|
|
57
57
|
version: "0"
|
58
58
|
type: :runtime
|
59
59
|
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rsolr
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
type: :runtime
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: nokogiri
|
73
|
+
prerelease: false
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
type: :runtime
|
81
|
+
version_requirements: *id006
|
60
82
|
description: Ruby wrapper for the LucidWorks REST API
|
61
83
|
email:
|
62
84
|
- sam.pierson@lucidimagination.com
|
@@ -81,6 +103,9 @@ files:
|
|
81
103
|
- lib/lucid_works/associations.rb
|
82
104
|
- lib/lucid_works/base.rb
|
83
105
|
- lib/lucid_works/collection.rb
|
106
|
+
- lib/lucid_works/collection/activity.rb
|
107
|
+
- lib/lucid_works/collection/activity/history.rb
|
108
|
+
- lib/lucid_works/collection/activity/status.rb
|
84
109
|
- lib/lucid_works/collection/index.rb
|
85
110
|
- lib/lucid_works/collection/info.rb
|
86
111
|
- lib/lucid_works/collection/settings.rb
|
@@ -89,6 +114,7 @@ files:
|
|
89
114
|
- lib/lucid_works/datasource/crawldata.rb
|
90
115
|
- lib/lucid_works/datasource/history.rb
|
91
116
|
- lib/lucid_works/datasource/index.rb
|
117
|
+
- lib/lucid_works/datasource/job.rb
|
92
118
|
- lib/lucid_works/datasource/schedule.rb
|
93
119
|
- lib/lucid_works/datasource/status.rb
|
94
120
|
- lib/lucid_works/exceptions.rb
|
@@ -99,12 +125,18 @@ files:
|
|
99
125
|
- lib/lucid_works/logs/query.rb
|
100
126
|
- lib/lucid_works/logs/query/summary.rb
|
101
127
|
- lib/lucid_works/patch_restclient.rb
|
128
|
+
- lib/lucid_works/patch_time.rb
|
102
129
|
- lib/lucid_works/schema.rb
|
103
130
|
- lib/lucid_works/server.rb
|
131
|
+
- lib/lucid_works/utils.rb
|
104
132
|
- lib/lucid_works/version.rb
|
105
133
|
- lucid_works.gemspec
|
106
134
|
- spec/lib/lucid_works/associations_spec.rb
|
107
135
|
- spec/lib/lucid_works/base_spec.rb
|
136
|
+
- spec/lib/lucid_works/collection/activity/history_spec.rb
|
137
|
+
- spec/lib/lucid_works/collection/activity/status_spec.rb
|
138
|
+
- spec/lib/lucid_works/collection/activity_spec.rb
|
139
|
+
- spec/lib/lucid_works/collection/prime_activities_spec.rb
|
108
140
|
- spec/lib/lucid_works/collection_spec.rb
|
109
141
|
- spec/lib/lucid_works/datasource/history_spec.rb
|
110
142
|
- spec/lib/lucid_works/datasource/status_spec.rb
|
@@ -112,6 +144,7 @@ files:
|
|
112
144
|
- spec/lib/lucid_works/field_spec.rb
|
113
145
|
- spec/lib/lucid_works/schema_spec.rb
|
114
146
|
- spec/lib/lucid_works/server_spec.rb
|
147
|
+
- spec/lib/lucid_works/utils_spec.rb
|
115
148
|
- spec/spec_helper.rb
|
116
149
|
has_rdoc: true
|
117
150
|
homepage: ""
|
@@ -137,13 +170,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
170
|
requirements: []
|
138
171
|
|
139
172
|
rubyforge_project: lucid_works
|
140
|
-
rubygems_version: 1.
|
173
|
+
rubygems_version: 1.6.2
|
141
174
|
signing_key:
|
142
175
|
specification_version: 3
|
143
176
|
summary: Ruby wrapper for the LucidWorks REST API
|
144
177
|
test_files:
|
145
178
|
- spec/lib/lucid_works/associations_spec.rb
|
146
179
|
- spec/lib/lucid_works/base_spec.rb
|
180
|
+
- spec/lib/lucid_works/collection/activity/history_spec.rb
|
181
|
+
- spec/lib/lucid_works/collection/activity/status_spec.rb
|
182
|
+
- spec/lib/lucid_works/collection/activity_spec.rb
|
183
|
+
- spec/lib/lucid_works/collection/prime_activities_spec.rb
|
147
184
|
- spec/lib/lucid_works/collection_spec.rb
|
148
185
|
- spec/lib/lucid_works/datasource/history_spec.rb
|
149
186
|
- spec/lib/lucid_works/datasource/status_spec.rb
|
@@ -151,4 +188,5 @@ test_files:
|
|
151
188
|
- spec/lib/lucid_works/field_spec.rb
|
152
189
|
- spec/lib/lucid_works/schema_spec.rb
|
153
190
|
- spec/lib/lucid_works/server_spec.rb
|
191
|
+
- spec/lib/lucid_works/utils_spec.rb
|
154
192
|
- spec/spec_helper.rb
|