lucid_works 0.2.0 → 0.3.9
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/LICENSE +202 -0
- data/NOTICE +202 -0
- data/README.rdoc +285 -0
- data/Rakefile +9 -3
- data/config/locales/en.yml +106 -0
- data/lib/lucid_works/associations.rb +60 -35
- data/lib/lucid_works/base.rb +170 -55
- data/lib/lucid_works/collection/info.rb +13 -0
- data/lib/lucid_works/collection/settings.rb +14 -0
- data/lib/lucid_works/collection.rb +11 -3
- data/lib/lucid_works/crawler.rb +8 -0
- data/lib/lucid_works/datasource/crawldata.rb +9 -0
- data/lib/lucid_works/datasource/history.rb +10 -2
- data/lib/lucid_works/datasource/schedule.rb +7 -0
- data/lib/lucid_works/datasource/status.rb +45 -0
- data/lib/lucid_works/datasource.rb +48 -29
- data/lib/lucid_works/field.rb +53 -0
- data/lib/lucid_works/logs.rb +1 -2
- data/lib/lucid_works/schema.rb +72 -0
- data/lib/lucid_works/server.rb +2 -2
- data/lib/lucid_works/version.rb +1 -1
- data/lib/lucid_works.rb +12 -0
- data/spec/lib/lucid_works/associations_spec.rb +41 -14
- data/spec/lib/lucid_works/base_spec.rb +209 -75
- data/spec/lib/lucid_works/collection_spec.rb +16 -4
- data/spec/lib/lucid_works/datasource/history_spec.rb +47 -0
- data/spec/lib/lucid_works/datasource/status_spec.rb +52 -0
- data/spec/lib/lucid_works/datasource_spec.rb +33 -36
- data/spec/lib/lucid_works/field_spec.rb +23 -0
- data/spec/lib/lucid_works/schema_spec.rb +50 -0
- metadata +18 -2
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'active_support/core_ext'
|
3
|
+
|
4
|
+
describe LucidWorks::Datasource::History do
|
5
|
+
|
6
|
+
before :all do
|
7
|
+
fake_server = "http://127.0.0.1:123456"
|
8
|
+
@fake_server = LucidWorks::Server.new(fake_server)
|
9
|
+
@fake_server_uri = "#{fake_server}/api"
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#doc_count" do
|
13
|
+
it "should sum counds of Updated, New and Unchanged" do
|
14
|
+
# History doesn't actually descend drectly from server, but for this test that doesn't matter
|
15
|
+
RestClient.should_receive(:get).
|
16
|
+
with("#{@fake_server_uri}/history").and_return('[{"numUpdated":11,"numNew":22,"numUnchanged":33}]')
|
17
|
+
histories = LucidWorks::Datasource::History.all(:parent => @fake_server)
|
18
|
+
histories.first.doc_count.should == 66
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#crawl_stopped" do
|
23
|
+
it "should be tested" do
|
24
|
+
pending "write some tests"
|
25
|
+
# TODO
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#crawl_started" do
|
30
|
+
it "should be tested" do
|
31
|
+
pending "write some tests"
|
32
|
+
# TODO
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#duration" do
|
37
|
+
it "should be tested" do
|
38
|
+
include ActiveSupport::Duration
|
39
|
+
|
40
|
+
history = LucidWorks::Datasource::History.new(:parent => @fake_server)
|
41
|
+
now = Time.now
|
42
|
+
history.stub(:crawl_started) { now.advance(:seconds => -15) }
|
43
|
+
history.stub(:crawl_stopped) { now.advance(:seconds => -10) }
|
44
|
+
history.duration.should == 5.seconds
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LucidWorks::Datasource::Status do
|
4
|
+
describe "state predicate methods" do
|
5
|
+
it "should be tested" do
|
6
|
+
pending "write some tests"
|
7
|
+
# TODO
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#none?" do
|
12
|
+
it "should be tested" do
|
13
|
+
pending "write some tests"
|
14
|
+
# TODO
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#stopped?" do
|
19
|
+
it "should be tested" do
|
20
|
+
pending "write some tests"
|
21
|
+
# TODO
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#post_processing?" do
|
26
|
+
it "should be tested" do
|
27
|
+
pending "write some tests"
|
28
|
+
# TODO
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#doc_count" do
|
33
|
+
it "should be tested" do
|
34
|
+
pending "write some tests"
|
35
|
+
# TODO
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#crawl_started_to_date_time" do
|
40
|
+
it "should be tested" do
|
41
|
+
pending "write some tests"
|
42
|
+
# TODO
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#elapsed_time" do
|
47
|
+
it "should be tested" do
|
48
|
+
pending "write some tests"
|
49
|
+
# TODO
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -15,27 +15,11 @@ describe LucidWorks::Datasource do
|
|
15
15
|
|
16
16
|
describe ".create" do
|
17
17
|
|
18
|
-
context "with no parameters" do
|
19
|
-
before do
|
20
|
-
@parameters = {
|
21
|
-
:parent => @collection
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should not create a datasource, and add a base error" do
|
26
|
-
d = nil
|
27
|
-
lambda {
|
28
|
-
d = LucidWorks::Datasource.create(@parameters)
|
29
|
-
}.should_not change(self, :datasource_count)
|
30
|
-
d.errors[:base].should == ["No input content found"]
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
18
|
context "without a crawler specified" do
|
35
19
|
before do
|
36
20
|
@parameters = {
|
37
21
|
:collection => @collection,
|
38
|
-
:type =>
|
22
|
+
:type => 'web',
|
39
23
|
:name => "foo"
|
40
24
|
}
|
41
25
|
end
|
@@ -73,8 +57,8 @@ describe LucidWorks::Datasource do
|
|
73
57
|
@parameters = {
|
74
58
|
:collection => @collection,
|
75
59
|
:name => "foo",
|
76
|
-
:crawler =>
|
77
|
-
:type =>
|
60
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['web'],
|
61
|
+
:type => 'web',
|
78
62
|
:url => "invalid url",
|
79
63
|
:crawl_depth => "invalid crawl depth"
|
80
64
|
}
|
@@ -95,8 +79,8 @@ describe LucidWorks::Datasource do
|
|
95
79
|
before do
|
96
80
|
@parameters = {
|
97
81
|
:collection => @collection,
|
98
|
-
:crawler =>
|
99
|
-
:type =>
|
82
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['web'],
|
83
|
+
:type => 'web',
|
100
84
|
:name => "Lucid Imagination Website",
|
101
85
|
:url => "http://www.lucidimagination.com/",
|
102
86
|
:crawl_depth => 2,
|
@@ -125,8 +109,8 @@ describe LucidWorks::Datasource do
|
|
125
109
|
before do
|
126
110
|
@datasource = LucidWorks::Datasource.create(
|
127
111
|
:collection => @collection,
|
128
|
-
:crawler =>
|
129
|
-
:type =>
|
112
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
113
|
+
:type => 'file',
|
130
114
|
:name => "slash_temp",
|
131
115
|
:path => "/tmp",
|
132
116
|
:crawl_depth => 2
|
@@ -147,8 +131,8 @@ describe LucidWorks::Datasource do
|
|
147
131
|
before do
|
148
132
|
@datasource = LucidWorks::Datasource.create(
|
149
133
|
:collection => @collection,
|
150
|
-
:crawler =>
|
151
|
-
:type =>
|
134
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
135
|
+
:type => 'file',
|
152
136
|
:name => "datasource we are going to update",
|
153
137
|
:path => "/fake_ds_to_be_updated",
|
154
138
|
:crawl_depth => 2
|
@@ -169,8 +153,8 @@ describe LucidWorks::Datasource do
|
|
169
153
|
before do
|
170
154
|
@datasource = LucidWorks::Datasource.create(
|
171
155
|
:collection => @collection,
|
172
|
-
:crawler =>
|
173
|
-
:type =>
|
156
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
157
|
+
:type => 'file',
|
174
158
|
:name => "datasource we are going to delete",
|
175
159
|
:path => "/fake_ds_to_be_deleted",
|
176
160
|
:crawl_depth => 2
|
@@ -194,8 +178,8 @@ describe LucidWorks::Datasource do
|
|
194
178
|
before :all do
|
195
179
|
@datasource = LucidWorks::Datasource.create(
|
196
180
|
:collection => @collection,
|
197
|
-
:crawler =>
|
198
|
-
:type =>
|
181
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
182
|
+
:type => 'file',
|
199
183
|
:name => "datasource we are going to get a status of",
|
200
184
|
:path => "/fake_ds_to_get_status_of",
|
201
185
|
:crawl_depth => 2
|
@@ -220,8 +204,8 @@ describe LucidWorks::Datasource do
|
|
220
204
|
it "should retrieve the datasource's schedule" do
|
221
205
|
@datasource = LucidWorks::Datasource.create(
|
222
206
|
:collection => @collection,
|
223
|
-
:crawler =>
|
224
|
-
:type =>
|
207
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
208
|
+
:type => 'file',
|
225
209
|
:name => "datasource we are going to get a schedule of",
|
226
210
|
:path => "/fake_ds_to_get_schedule_of",
|
227
211
|
:crawl_depth => 2
|
@@ -242,15 +226,15 @@ describe LucidWorks::Datasource do
|
|
242
226
|
it "should return a new LucidWorks::Datasource::Index for this datasource" do
|
243
227
|
@datasource = LucidWorks::Datasource.create(
|
244
228
|
:collection => @collection,
|
245
|
-
:crawler =>
|
246
|
-
:type =>
|
229
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
230
|
+
:type => 'file',
|
247
231
|
:name => "datasource we are going to get a index of",
|
248
232
|
:path => "/fake_ds_to_get_index_of",
|
249
233
|
:crawl_depth => 2
|
250
234
|
)
|
251
235
|
@datasource.should be_valid
|
252
236
|
|
253
|
-
index = @datasource.
|
237
|
+
index = @datasource.index
|
254
238
|
index.should be_a(LucidWorks::Datasource::Index)
|
255
239
|
index.should be_persisted # special case - singletons are always considered persisted
|
256
240
|
end
|
@@ -261,8 +245,8 @@ describe LucidWorks::Datasource do
|
|
261
245
|
@collection = @server.collections.first
|
262
246
|
@datasource = LucidWorks::Datasource.create(
|
263
247
|
:collection => @collection,
|
264
|
-
:crawler =>
|
265
|
-
:type =>
|
248
|
+
:crawler => LucidWorks::Datasource::CRAWLERS['file'],
|
249
|
+
:type => 'file',
|
266
250
|
:name => "datasource we are going to empty",
|
267
251
|
:path => "/fake_ds_to_empty",
|
268
252
|
:crawl_depth => 2
|
@@ -276,5 +260,18 @@ describe LucidWorks::Datasource do
|
|
276
260
|
@datasource.empty!
|
277
261
|
end
|
278
262
|
|
263
|
+
describe "#progress" do
|
264
|
+
context "when the datasource has no prior history" do
|
265
|
+
it "should return nil"
|
266
|
+
end
|
267
|
+
context "when the datasource has history" do
|
268
|
+
context "and the most last crawl duration was longer then our current crawl duration" do
|
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
|
274
|
+
end
|
275
|
+
end
|
279
276
|
end
|
280
277
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LucidWorks::Field do
|
4
|
+
before :all do
|
5
|
+
@server = connect_to_live_server
|
6
|
+
@server.reset_collections!
|
7
|
+
@collection = @server.collections.first
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should use the ORM" do
|
11
|
+
LucidWorks::Field.new(:parent => @collection).should be_a(LucidWorks::Base)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "CRUD" do
|
15
|
+
describe "find" do
|
16
|
+
it "should retrieve a field" do
|
17
|
+
field = LucidWorks::Field.find('body', :parent => @collection)
|
18
|
+
field.should be_a(LucidWorks::Field)
|
19
|
+
field.should respond_to(:field_type)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LucidWorks::Schema do
|
4
|
+
before do
|
5
|
+
@schema = LucidWorks::Schema.new
|
6
|
+
@schema.instance_eval do
|
7
|
+
attribute :foo
|
8
|
+
attribute :abool, :boolean
|
9
|
+
attributes :bar, :baz, :type => :integer
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "instance_eval" do
|
14
|
+
it "should process the block in its context and create an attribute list" do
|
15
|
+
@schema.should == {
|
16
|
+
'foo' => {'type' => :string},
|
17
|
+
'bar' => {'type' => :integer},
|
18
|
+
'baz' => {'type' => :integer},
|
19
|
+
'abool' => {'type' => :boolean}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "create_accessors_for_attributes" do
|
25
|
+
before do
|
26
|
+
class ClassWithAddedAccessors ; end
|
27
|
+
@schema.create_accessors_for_attributes(ClassWithAddedAccessors)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should add readers and writers for all attributes" do
|
31
|
+
ClassWithAddedAccessors.new.should respond_to(:foo, :foo=)
|
32
|
+
ClassWithAddedAccessors.new.should respond_to(:bar, :bar=)
|
33
|
+
ClassWithAddedAccessors.new.should respond_to(:abool, :abool=)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should also add a predicate method for boolean attributes" do
|
37
|
+
ClassWithAddedAccessors.new.should respond_to(:abool?)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#has_attribute?" do
|
42
|
+
it "should return true if the schema has that attribute" do
|
43
|
+
@schema.has_attribute?(:foo).should be_true
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return false if the schema does not have that attribute" do
|
47
|
+
@schema.has_attribute?(:not_an_attribute).should be_false
|
48
|
+
end
|
49
|
+
end
|
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.3.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-03-
|
13
|
+
date: 2011-03-24 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -72,7 +72,11 @@ files:
|
|
72
72
|
- .rspec
|
73
73
|
- .rvmrc
|
74
74
|
- Gemfile
|
75
|
+
- LICENSE
|
76
|
+
- NOTICE
|
77
|
+
- README.rdoc
|
75
78
|
- Rakefile
|
79
|
+
- config/locales/en.yml
|
76
80
|
- lib/lucid_works.rb
|
77
81
|
- lib/lucid_works/associations.rb
|
78
82
|
- lib/lucid_works/base.rb
|
@@ -80,25 +84,33 @@ files:
|
|
80
84
|
- lib/lucid_works/collection/index.rb
|
81
85
|
- lib/lucid_works/collection/info.rb
|
82
86
|
- lib/lucid_works/collection/settings.rb
|
87
|
+
- lib/lucid_works/crawler.rb
|
83
88
|
- lib/lucid_works/datasource.rb
|
89
|
+
- lib/lucid_works/datasource/crawldata.rb
|
84
90
|
- lib/lucid_works/datasource/history.rb
|
85
91
|
- lib/lucid_works/datasource/index.rb
|
86
92
|
- lib/lucid_works/datasource/schedule.rb
|
87
93
|
- lib/lucid_works/datasource/status.rb
|
88
94
|
- lib/lucid_works/exceptions.rb
|
95
|
+
- lib/lucid_works/field.rb
|
89
96
|
- lib/lucid_works/logs.rb
|
90
97
|
- lib/lucid_works/logs/index.rb
|
91
98
|
- lib/lucid_works/logs/index/summary.rb
|
92
99
|
- lib/lucid_works/logs/query.rb
|
93
100
|
- lib/lucid_works/logs/query/summary.rb
|
94
101
|
- lib/lucid_works/patch_restclient.rb
|
102
|
+
- lib/lucid_works/schema.rb
|
95
103
|
- lib/lucid_works/server.rb
|
96
104
|
- lib/lucid_works/version.rb
|
97
105
|
- lucid_works.gemspec
|
98
106
|
- spec/lib/lucid_works/associations_spec.rb
|
99
107
|
- spec/lib/lucid_works/base_spec.rb
|
100
108
|
- spec/lib/lucid_works/collection_spec.rb
|
109
|
+
- spec/lib/lucid_works/datasource/history_spec.rb
|
110
|
+
- spec/lib/lucid_works/datasource/status_spec.rb
|
101
111
|
- spec/lib/lucid_works/datasource_spec.rb
|
112
|
+
- spec/lib/lucid_works/field_spec.rb
|
113
|
+
- spec/lib/lucid_works/schema_spec.rb
|
102
114
|
- spec/lib/lucid_works/server_spec.rb
|
103
115
|
- spec/spec_helper.rb
|
104
116
|
has_rdoc: true
|
@@ -133,6 +145,10 @@ test_files:
|
|
133
145
|
- spec/lib/lucid_works/associations_spec.rb
|
134
146
|
- spec/lib/lucid_works/base_spec.rb
|
135
147
|
- spec/lib/lucid_works/collection_spec.rb
|
148
|
+
- spec/lib/lucid_works/datasource/history_spec.rb
|
149
|
+
- spec/lib/lucid_works/datasource/status_spec.rb
|
136
150
|
- spec/lib/lucid_works/datasource_spec.rb
|
151
|
+
- spec/lib/lucid_works/field_spec.rb
|
152
|
+
- spec/lib/lucid_works/schema_spec.rb
|
137
153
|
- spec/lib/lucid_works/server_spec.rb
|
138
154
|
- spec/spec_helper.rb
|