picky 4.1.0 → 4.2.0
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/lib/picky/category.rb +1 -1
- data/lib/picky/category_indexed.rb +1 -1
- data/lib/picky/extensions/object.rb +5 -3
- data/lib/picky/helpers/indexing.rb +3 -5
- data/lib/picky/indexers/base.rb +1 -1
- data/lib/picky/indexes_indexing.rb +1 -1
- data/lib/picky/loader.rb +7 -0
- data/lib/picky/loggers/concise.rb +49 -0
- data/lib/picky/loggers/default.rb +10 -0
- data/lib/picky/loggers/silent.rb +41 -0
- data/lib/picky/loggers/verbose.rb +37 -0
- data/lib/picky.rb +2 -0
- data/spec/lib/loggers/concise_spec.rb +27 -0
- data/spec/lib/loggers/silent_spec.rb +27 -0
- data/spec/lib/loggers/verbose_spec.rb +33 -0
- metadata +27 -17
data/lib/picky/category.rb
CHANGED
@@ -7,7 +7,7 @@ module Picky
|
|
7
7
|
# Loads the index from cache.
|
8
8
|
#
|
9
9
|
def load
|
10
|
-
|
10
|
+
Picky.logger.load self
|
11
11
|
clear_realtime # THINK Should we really explicitly clear the realtime? Or should it just be loaded?
|
12
12
|
exact.load
|
13
13
|
partial.load
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Object # :nodoc:all
|
2
|
-
|
2
|
+
|
3
|
+
# TODO Remove.
|
4
|
+
|
3
5
|
# Puts a text in the form:
|
4
6
|
# 12:34:56: text here
|
5
7
|
#
|
@@ -10,8 +12,8 @@ class Object # :nodoc:all
|
|
10
12
|
# Just puts the given text.
|
11
13
|
#
|
12
14
|
def exclaim text
|
13
|
-
|
14
|
-
|
15
|
+
Picky.logger.info text
|
16
|
+
Picky.logger.flush
|
15
17
|
end
|
16
18
|
|
17
19
|
# Puts a text that informs the user of a missing gem.
|
@@ -6,12 +6,10 @@ module Picky
|
|
6
6
|
module Indexing
|
7
7
|
|
8
8
|
include Measuring
|
9
|
-
|
10
|
-
# Returns a duration in seconds.
|
11
|
-
#
|
9
|
+
|
12
10
|
def timed_indexing scheduler, &block
|
13
|
-
|
14
|
-
|
11
|
+
Picky.logger.info "Picky is indexing using #{scheduler.fork? ? 'multiple processes' : 'a single process'}: "
|
12
|
+
Picky.logger.info " Done in #{timed(&block).round}s.\n"
|
15
13
|
end
|
16
14
|
|
17
15
|
end
|
data/lib/picky/indexers/base.rb
CHANGED
@@ -26,7 +26,7 @@ module Picky
|
|
26
26
|
indexes.each { |index| index.prepare scheduler }
|
27
27
|
scheduler.finish
|
28
28
|
|
29
|
-
timed_exclaim "Tokenizing finished, generating data for indexes from tokenized data."
|
29
|
+
# timed_exclaim "Tokenizing finished, generating data for indexes from tokenized data."
|
30
30
|
|
31
31
|
indexes.each { |index| index.cache scheduler }
|
32
32
|
scheduler.finish
|
data/lib/picky/loader.rb
CHANGED
@@ -192,6 +192,13 @@ module Picky
|
|
192
192
|
load_relative 'api/category/partial'
|
193
193
|
load_relative 'api/category/similarity'
|
194
194
|
load_relative 'api/search/boost'
|
195
|
+
|
196
|
+
# Loggers.
|
197
|
+
#
|
198
|
+
load_relative 'loggers/silent'
|
199
|
+
load_relative 'loggers/concise'
|
200
|
+
load_relative 'loggers/verbose'
|
201
|
+
load_relative 'loggers/default'
|
195
202
|
|
196
203
|
# Tokenizer.
|
197
204
|
#
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Picky
|
2
|
+
|
3
|
+
module Loggers
|
4
|
+
|
5
|
+
# The verbose logger outputs little information.
|
6
|
+
#
|
7
|
+
class Concise < Silent
|
8
|
+
|
9
|
+
attr_reader :tokenized,
|
10
|
+
:dumped,
|
11
|
+
:loaded
|
12
|
+
|
13
|
+
def initialize *args
|
14
|
+
super *args
|
15
|
+
|
16
|
+
reset
|
17
|
+
end
|
18
|
+
|
19
|
+
def reset
|
20
|
+
@tokenized = false
|
21
|
+
@dumped = false
|
22
|
+
@loaded = false
|
23
|
+
end
|
24
|
+
|
25
|
+
def info text
|
26
|
+
io.write text
|
27
|
+
end
|
28
|
+
|
29
|
+
def tokenize(*)
|
30
|
+
progress 'T'
|
31
|
+
end
|
32
|
+
|
33
|
+
def dump(*)
|
34
|
+
progress 'D'
|
35
|
+
end
|
36
|
+
|
37
|
+
def load(*)
|
38
|
+
progress
|
39
|
+
end
|
40
|
+
|
41
|
+
def progress type = '.'
|
42
|
+
io.write type
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Picky
|
2
|
+
|
3
|
+
module Loggers
|
4
|
+
|
5
|
+
# The silent logger just gobbles up all information.
|
6
|
+
#
|
7
|
+
class Silent
|
8
|
+
|
9
|
+
attr_reader :io
|
10
|
+
|
11
|
+
def initialize io = STDOUT
|
12
|
+
@io = io
|
13
|
+
end
|
14
|
+
|
15
|
+
def info(*)
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def tokenize(*)
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def dump(*)
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def load(*)
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
# Flush this logger.
|
32
|
+
#
|
33
|
+
def flush
|
34
|
+
io.flush
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Picky
|
2
|
+
|
3
|
+
module Loggers
|
4
|
+
|
5
|
+
# The verbose logger outputs all information.
|
6
|
+
#
|
7
|
+
class Verbose < Silent
|
8
|
+
|
9
|
+
def info text
|
10
|
+
timed_exclaim text
|
11
|
+
end
|
12
|
+
|
13
|
+
def tokenize index_or_category, prepared_file
|
14
|
+
timed_exclaim %Q{ "#{index_or_category.identifier}": Tokenized -> #{prepared_file.path.gsub("#{PICKY_ROOT}/", '')}.}
|
15
|
+
end
|
16
|
+
|
17
|
+
def dump category
|
18
|
+
timed_exclaim %Q{ "#{category.identifier}": Dumped -> #{category.index_directory.gsub("#{PICKY_ROOT}/", '')}/#{category.name}_*.}
|
19
|
+
end
|
20
|
+
|
21
|
+
def load category
|
22
|
+
timed_exclaim %Q{ "#{category.identifier}": Loading index from cache.}
|
23
|
+
end
|
24
|
+
|
25
|
+
# Puts a text in the form:
|
26
|
+
# 12:34:56: text here
|
27
|
+
#
|
28
|
+
def timed_exclaim text
|
29
|
+
io.puts "#{Time.now.strftime("%H:%M:%S")}: #{text}"
|
30
|
+
flush
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/lib/picky.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Loggers::Concise do
|
4
|
+
|
5
|
+
let(:io) { StringIO.new }
|
6
|
+
let(:logger) { described_class.new io }
|
7
|
+
|
8
|
+
describe 'more complicated test case' do
|
9
|
+
it 'is correct' do
|
10
|
+
logger.info 'Tokenizing '
|
11
|
+
logger.tokenize :some_category
|
12
|
+
logger.tokenize :some_category
|
13
|
+
logger.tokenize :some_category
|
14
|
+
logger.info ' Dumping '
|
15
|
+
logger.dump :some_category
|
16
|
+
logger.dump :some_category
|
17
|
+
logger.info ' Loading '
|
18
|
+
logger.load :some_category
|
19
|
+
logger.load :some_category
|
20
|
+
logger.load :some_category
|
21
|
+
logger.load :some_category
|
22
|
+
|
23
|
+
io.string.should == 'Tokenizing TTT Dumping DD Loading ....'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Loggers::Silent do
|
4
|
+
|
5
|
+
let(:io) { StringIO.new }
|
6
|
+
let(:logger) { described_class.new io }
|
7
|
+
|
8
|
+
describe 'more complicated test case' do
|
9
|
+
it 'is correct' do
|
10
|
+
logger.info 'Tokenizing '
|
11
|
+
logger.tokenize :some_category
|
12
|
+
logger.tokenize :some_category
|
13
|
+
logger.tokenize :some_category
|
14
|
+
logger.info ' Dumping '
|
15
|
+
logger.dump :some_category
|
16
|
+
logger.dump :some_category
|
17
|
+
logger.info ' Loading '
|
18
|
+
logger.load :some_category
|
19
|
+
logger.load :some_category
|
20
|
+
logger.load :some_category
|
21
|
+
logger.load :some_category
|
22
|
+
|
23
|
+
io.string.should == ''
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Loggers::Verbose do
|
4
|
+
|
5
|
+
let(:io) { StringIO.new }
|
6
|
+
let(:logger) { described_class.new io }
|
7
|
+
|
8
|
+
describe 'more complicated test case' do
|
9
|
+
it 'is correct' do
|
10
|
+
index = Picky::Index.new :some_index
|
11
|
+
category = Picky::Category.new :some_category, index
|
12
|
+
file = stub :file, :path => 'some/path'
|
13
|
+
|
14
|
+
Time.stub! :now => Time.new('zeros')
|
15
|
+
|
16
|
+
logger.info 'Tokenizing '
|
17
|
+
logger.tokenize category, file
|
18
|
+
logger.tokenize category, file
|
19
|
+
logger.tokenize category, file
|
20
|
+
logger.info ' Dumping '
|
21
|
+
logger.dump category
|
22
|
+
logger.dump category
|
23
|
+
logger.info ' Loading '
|
24
|
+
logger.load category
|
25
|
+
logger.load category
|
26
|
+
logger.load category
|
27
|
+
logger.load category
|
28
|
+
|
29
|
+
io.string.should == "00:00:00: Tokenizing \n00:00:00: \"some_index:some_category\": Tokenized -> some/path.\n00:00:00: \"some_index:some_category\": Tokenized -> some/path.\n00:00:00: \"some_index:some_category\": Tokenized -> some/path.\n00:00:00: Dumping \n00:00:00: \"some_index:some_category\": Dumped -> index/test/some_index/some_category_*.\n00:00:00: \"some_index:some_category\": Dumped -> index/test/some_index/some_category_*.\n00:00:00: Loading \n00:00:00: \"some_index:some_category\": Loading index from cache.\n00:00:00: \"some_index:some_category\": Loading index from cache.\n00:00:00: \"some_index:some_category\": Loading index from cache.\n00:00:00: \"some_index:some_category\": Loading index from cache.\n"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: picky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70345542373860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,21 +21,21 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70345542373860
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: picky-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &70345542373360 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 4.
|
32
|
+
version: 4.2.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70345542373360
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: text
|
38
|
-
requirement: &
|
38
|
+
requirement: &70345542372920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70345542372920
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yajl-ruby
|
49
|
-
requirement: &
|
49
|
+
requirement: &70345542372440 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70345542372440
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: activesupport
|
60
|
-
requirement: &
|
60
|
+
requirement: &70345542371940 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '3.0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70345542371940
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: procrastinate
|
71
|
-
requirement: &
|
71
|
+
requirement: &70345542371440 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0.4'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70345542371440
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rack_fast_escape
|
82
|
-
requirement: &
|
82
|
+
requirement: &70345542371000 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70345542371000
|
91
91
|
description: Fast Ruby semantic text search engine with comfortable single field interface.
|
92
92
|
email: florian.hanke+picky@gmail.com
|
93
93
|
executables:
|
@@ -197,6 +197,10 @@ files:
|
|
197
197
|
- lib/picky/interfaces/live_parameters/master_child.rb
|
198
198
|
- lib/picky/interfaces/live_parameters/unicorn.rb
|
199
199
|
- lib/picky/loader.rb
|
200
|
+
- lib/picky/loggers/concise.rb
|
201
|
+
- lib/picky/loggers/default.rb
|
202
|
+
- lib/picky/loggers/silent.rb
|
203
|
+
- lib/picky/loggers/verbose.rb
|
200
204
|
- lib/picky/migrations/from_30_to_31.rb
|
201
205
|
- lib/picky/performant.rb
|
202
206
|
- lib/picky/query/allocation.rb
|
@@ -333,6 +337,9 @@ files:
|
|
333
337
|
- spec/lib/interfaces/live_parameters/master_child_spec.rb
|
334
338
|
- spec/lib/interfaces/live_parameters/unicorn_spec.rb
|
335
339
|
- spec/lib/loader_spec.rb
|
340
|
+
- spec/lib/loggers/concise_spec.rb
|
341
|
+
- spec/lib/loggers/silent_spec.rb
|
342
|
+
- spec/lib/loggers/verbose_spec.rb
|
336
343
|
- spec/lib/query/allocation_spec.rb
|
337
344
|
- spec/lib/query/allocations_spec.rb
|
338
345
|
- spec/lib/query/boosts_spec.rb
|
@@ -479,6 +486,9 @@ test_files:
|
|
479
486
|
- spec/lib/interfaces/live_parameters/master_child_spec.rb
|
480
487
|
- spec/lib/interfaces/live_parameters/unicorn_spec.rb
|
481
488
|
- spec/lib/loader_spec.rb
|
489
|
+
- spec/lib/loggers/concise_spec.rb
|
490
|
+
- spec/lib/loggers/silent_spec.rb
|
491
|
+
- spec/lib/loggers/verbose_spec.rb
|
482
492
|
- spec/lib/query/allocation_spec.rb
|
483
493
|
- spec/lib/query/allocations_spec.rb
|
484
494
|
- spec/lib/query/boosts_spec.rb
|