repertoire-faceting 0.5.5 → 0.6.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.
- checksums.yaml +4 -4
- data/FAQ +23 -17
- data/INSTALL +52 -84
- data/LICENSE +1 -1
- data/README +213 -34
- data/TODO +20 -7
- data/ext/Makefile +24 -14
- data/ext/README.faceting +51 -0
- data/ext/bytea/bytea.sql +173 -0
- data/ext/bytea/faceting_bytea.control +6 -0
- data/ext/common/util.sql +35 -0
- data/ext/faceting--0.6.0.sql +251 -0
- data/ext/faceting_bytea--0.6.0.sql +207 -0
- data/ext/faceting_varbit--0.6.0.sql +198 -0
- data/ext/signature/faceting.control +6 -0
- data/ext/signature/signature.c +740 -0
- data/ext/{signature.o → signature/signature.o} +0 -0
- data/ext/{signature.so → signature/signature.so} +0 -0
- data/ext/signature/signature.sql +217 -0
- data/ext/varbit/faceting_varbit.control +7 -0
- data/ext/varbit/varbit.sql +164 -0
- data/{public → lib/assets}/images/repertoire-faceting/proportional_symbol.png +0 -0
- data/{public → lib/assets}/images/repertoire-faceting/spinner_sm.gif +0 -0
- data/{public → lib/assets}/javascripts/rep.faceting/context.js +2 -2
- data/{public → lib/assets}/javascripts/rep.faceting/ext/earth_facet.js +2 -4
- data/{public → lib/assets}/javascripts/rep.faceting/facet.js +1 -1
- data/{public → lib/assets}/javascripts/rep.faceting/facet_widget.js +3 -8
- data/{public → lib/assets}/javascripts/rep.faceting/nested_facet.js +1 -1
- data/{public → lib/assets}/javascripts/rep.faceting/results.js +1 -1
- data/{public → lib/assets}/javascripts/rep.faceting.js +5 -1
- data/{public → lib/assets}/javascripts/rep.protovis-facets.js +3 -3
- data/lib/assets/javascripts/rep.widgets/events.js +51 -0
- data/lib/assets/javascripts/rep.widgets/global.js +50 -0
- data/lib/assets/javascripts/rep.widgets/model.js +159 -0
- data/lib/assets/javascripts/rep.widgets/widget.js +213 -0
- data/lib/assets/javascripts/rep.widgets.js +14 -0
- data/{public → lib/assets}/stylesheets/rep.faceting.css +1 -1
- data/lib/repertoire-faceting/adapters/postgresql_adapter.rb +107 -48
- data/lib/repertoire-faceting/facets/abstract_facet.rb +43 -27
- data/lib/repertoire-faceting/facets/basic_facet.rb +23 -22
- data/lib/repertoire-faceting/facets/nested_facet.rb +50 -27
- data/lib/repertoire-faceting/model.rb +101 -65
- data/lib/repertoire-faceting/rails/engine.rb +8 -0
- data/lib/repertoire-faceting/rails/postgresql_adapter.rb +0 -1
- data/lib/repertoire-faceting/rails/relation.rb +0 -1
- data/lib/repertoire-faceting/railtie.rb +0 -1
- data/lib/repertoire-faceting/relation/calculations.rb +7 -2
- data/lib/repertoire-faceting/relation/query_methods.rb +17 -4
- data/lib/repertoire-faceting/routing.rb +2 -5
- data/lib/repertoire-faceting/tasks/all.rake +5 -4
- data/lib/repertoire-faceting/tasks/client.rake +2 -5
- data/lib/repertoire-faceting/version.rb +1 -1
- data/lib/repertoire-faceting.rb +2 -4
- data/{public → vendor/assets}/javascripts/google-earth-extensions.js +0 -0
- data/{public → vendor/assets}/javascripts/protovis.js +0 -0
- metadata +78 -78
- data/ext/README.signature +0 -33
- data/ext/signature.c +0 -740
- data/ext/signature.sql +0 -342
- data/ext/signature.sql.IN +0 -342
- data/ext/uninstall_signature.sql +0 -4
- data/ext/uninstall_signature.sql.IN +0 -4
- data/lib/repertoire-faceting/adapters/abstract_adapter.rb +0 -18
- data/lib/repertoire-faceting/relation/spawn_methods.rb +0 -26
@@ -2,6 +2,7 @@ module Repertoire
|
|
2
2
|
module Faceting
|
3
3
|
module Relation # :nodoc: all
|
4
4
|
module QueryMethods
|
5
|
+
extend ActiveSupport::Concern
|
5
6
|
|
6
7
|
# N.B. These methods augment those defined in active_record/relation/query_methods
|
7
8
|
|
@@ -27,18 +28,30 @@ module Repertoire
|
|
27
28
|
clone.tap { |f| f.minimum_value = count }
|
28
29
|
end
|
29
30
|
|
30
|
-
def nils(
|
31
|
-
clone.tap { |f| f.nils_value =
|
31
|
+
def nils(include_nils=true)
|
32
|
+
clone.tap { |f| f.nils_value = (if include_nils then :include else :exclude end) }
|
32
33
|
end
|
33
34
|
|
34
35
|
def reorder(*args)
|
35
36
|
clone.tap { |f| f.order_values = args.flatten }
|
36
37
|
end
|
37
|
-
|
38
|
+
|
38
39
|
def refined_facets?
|
39
40
|
!refine_value.empty?
|
40
41
|
end
|
41
|
-
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def merge_hashes(h1={}, h2={})
|
46
|
+
h2.inject(h1.clone) do |hsh, (key, values)|
|
47
|
+
key = key.to_sym
|
48
|
+
values = [values].flatten
|
49
|
+
hsh[key] ||= []
|
50
|
+
hsh[key] |= values
|
51
|
+
hsh
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
42
55
|
end
|
43
56
|
end
|
44
57
|
end
|
@@ -15,13 +15,10 @@ module Repertoire
|
|
15
15
|
# Add routes for the faceting webservices provided by the Controller mixin.
|
16
16
|
#
|
17
17
|
def faceting_for(*controllers)
|
18
|
-
options = controllers.extract_options!
|
19
|
-
|
20
18
|
controllers.map!(&:to_sym)
|
21
|
-
|
22
19
|
controllers.each do |ctlr|
|
23
|
-
|
24
|
-
|
20
|
+
get "/#{ctlr}/counts/:facet", :controller => ctlr, :action => 'counts'
|
21
|
+
get "/#{ctlr}/results", :controller => ctlr, :action => 'results'
|
25
22
|
end
|
26
23
|
end
|
27
24
|
|
@@ -2,11 +2,12 @@ require 'pathname'
|
|
2
2
|
|
3
3
|
namespace :db do
|
4
4
|
namespace :faceting do
|
5
|
+
namespace :extensions do
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
desc "Install PostgreSQL faceting extensions in the database"
|
8
|
+
task :install do
|
9
|
+
system "cd #{Repertoire::Faceting::MODULE_PATH}/ext; make; sudo make install"
|
10
|
+
end
|
9
11
|
end
|
10
|
-
|
11
12
|
end
|
12
13
|
end
|
@@ -2,11 +2,8 @@ require 'pathname'
|
|
2
2
|
|
3
3
|
namespace :db do
|
4
4
|
namespace :faceting do
|
5
|
-
|
6
|
-
desc "Load PostgreSQL native bitset type into current database"
|
7
|
-
task :load => :environment do
|
8
|
-
ActiveRecord::Base.connection.load_faceting
|
9
|
-
end
|
10
5
|
|
6
|
+
# Any client-side tasks should go here; none at current
|
7
|
+
|
11
8
|
end
|
12
9
|
end
|
data/lib/repertoire-faceting.rb
CHANGED
@@ -1,14 +1,11 @@
|
|
1
1
|
require 'active_support/dependencies'
|
2
2
|
|
3
|
-
require 'repertoire-assets'
|
4
|
-
|
5
3
|
module Repertoire
|
6
4
|
module Faceting
|
7
5
|
|
8
6
|
MODULE_PATH = File.expand_path('../../', __FILE__)
|
9
7
|
|
10
8
|
module Relation
|
11
|
-
autoload :SpawnMethods, 'repertoire-faceting/relation/spawn_methods'
|
12
9
|
autoload :QueryMethods, 'repertoire-faceting/relation/query_methods'
|
13
10
|
autoload :Calculations, 'repertoire-faceting/relation/calculations'
|
14
11
|
end
|
@@ -22,15 +19,16 @@ module Repertoire
|
|
22
19
|
autoload :Routing, 'repertoire-faceting/routing'
|
23
20
|
autoload :Version, 'repertoire-faceting/version'
|
24
21
|
|
25
|
-
autoload :AbstractAdapter, 'repertoire-faceting/adapters/abstract_adapter'
|
26
22
|
autoload :PostgreSQLColumn, 'repertoire-faceting/adapters/postgresql_adapter'
|
27
23
|
autoload :PostgreSQLAdapter, 'repertoire-faceting/adapters/postgresql_adapter'
|
24
|
+
|
28
25
|
end
|
29
26
|
end
|
30
27
|
|
31
28
|
# rails hook-in code
|
32
29
|
|
33
30
|
require 'repertoire-faceting/errors'
|
31
|
+
require 'repertoire-faceting/rails/engine'
|
34
32
|
require 'repertoire-faceting/rails/relation'
|
35
33
|
require 'repertoire-faceting/rails/routes'
|
36
34
|
require 'repertoire-faceting/rails/postgresql_adapter'
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,104 +1,115 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: repertoire-faceting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher York
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.2
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ~>
|
17
|
+
- - '>='
|
25
18
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
-
|
28
|
-
name: rep.jquery
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ~>
|
19
|
+
version: 3.2.11
|
20
|
+
- - <
|
32
21
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
22
|
+
version: '4.1'
|
34
23
|
type: :runtime
|
35
24
|
prerelease: false
|
36
25
|
version_requirements: !ruby/object:Gem::Requirement
|
37
26
|
requirements:
|
38
|
-
- -
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.4.3
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rep.ajax.toolkit
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
27
|
+
- - '>='
|
46
28
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
29
|
+
version: 3.2.11
|
30
|
+
- - <
|
53
31
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
32
|
+
version: '4.1'
|
55
33
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: rails
|
34
|
+
name: jquery-rails
|
57
35
|
requirement: !ruby/object:Gem::Requirement
|
58
36
|
requirements:
|
59
|
-
- -
|
37
|
+
- - '>='
|
60
38
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
39
|
+
version: '0'
|
62
40
|
type: :runtime
|
63
41
|
prerelease: false
|
64
42
|
version_requirements: !ruby/object:Gem::Requirement
|
65
43
|
requirements:
|
66
|
-
- -
|
44
|
+
- - '>='
|
67
45
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
46
|
+
version: '0'
|
69
47
|
- !ruby/object:Gem::Dependency
|
70
48
|
name: pg
|
71
49
|
requirement: !ruby/object:Gem::Requirement
|
72
50
|
requirements:
|
73
|
-
- -
|
51
|
+
- - '>='
|
74
52
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
53
|
+
version: '0.11'
|
54
|
+
- - <
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.18'
|
76
57
|
type: :runtime
|
77
58
|
prerelease: false
|
78
59
|
version_requirements: !ruby/object:Gem::Requirement
|
79
60
|
requirements:
|
80
|
-
- -
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.11'
|
64
|
+
- - <
|
81
65
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
66
|
+
version: '0.18'
|
83
67
|
description: Repertoire-faceting adds scalable facet indexing, ajax facet widgets,
|
84
|
-
and extras like GIS facets to Rails 3
|
68
|
+
and extras like GIS facets to Rails 3 & 4
|
85
69
|
email:
|
86
70
|
- yorkc@mit.edu
|
87
71
|
executables: []
|
88
72
|
extensions: []
|
89
73
|
extra_rdoc_files: []
|
90
74
|
files:
|
75
|
+
- FAQ
|
76
|
+
- INSTALL
|
77
|
+
- LICENSE
|
78
|
+
- README
|
79
|
+
- TODO
|
91
80
|
- ext/Makefile
|
92
|
-
- ext/README.
|
81
|
+
- ext/README.faceting
|
82
|
+
- ext/bytea/bytea.sql
|
83
|
+
- ext/bytea/faceting_bytea.control
|
84
|
+
- ext/common/util.sql
|
93
85
|
- ext/extconf.rb
|
94
|
-
- ext/
|
95
|
-
- ext/
|
96
|
-
- ext/
|
97
|
-
- ext/signature.
|
98
|
-
- ext/signature.
|
99
|
-
- ext/
|
100
|
-
- ext/
|
101
|
-
-
|
86
|
+
- ext/faceting--0.6.0.sql
|
87
|
+
- ext/faceting_bytea--0.6.0.sql
|
88
|
+
- ext/faceting_varbit--0.6.0.sql
|
89
|
+
- ext/signature/faceting.control
|
90
|
+
- ext/signature/signature.c
|
91
|
+
- ext/signature/signature.o
|
92
|
+
- ext/signature/signature.so
|
93
|
+
- ext/signature/signature.sql
|
94
|
+
- ext/varbit/faceting_varbit.control
|
95
|
+
- ext/varbit/varbit.sql
|
96
|
+
- lib/assets/images/repertoire-faceting/proportional_symbol.png
|
97
|
+
- lib/assets/images/repertoire-faceting/spinner_sm.gif
|
98
|
+
- lib/assets/javascripts/rep.faceting.js
|
99
|
+
- lib/assets/javascripts/rep.faceting/context.js
|
100
|
+
- lib/assets/javascripts/rep.faceting/ext/earth_facet.js
|
101
|
+
- lib/assets/javascripts/rep.faceting/facet.js
|
102
|
+
- lib/assets/javascripts/rep.faceting/facet_widget.js
|
103
|
+
- lib/assets/javascripts/rep.faceting/nested_facet.js
|
104
|
+
- lib/assets/javascripts/rep.faceting/results.js
|
105
|
+
- lib/assets/javascripts/rep.protovis-facets.js
|
106
|
+
- lib/assets/javascripts/rep.widgets.js
|
107
|
+
- lib/assets/javascripts/rep.widgets/events.js
|
108
|
+
- lib/assets/javascripts/rep.widgets/global.js
|
109
|
+
- lib/assets/javascripts/rep.widgets/model.js
|
110
|
+
- lib/assets/javascripts/rep.widgets/widget.js
|
111
|
+
- lib/assets/stylesheets/rep.faceting.css
|
112
|
+
- lib/repertoire-faceting.rb
|
102
113
|
- lib/repertoire-faceting/adapters/postgresql_adapter.rb
|
103
114
|
- lib/repertoire-faceting/controller.rb
|
104
115
|
- lib/repertoire-faceting/errors.rb
|
@@ -106,43 +117,32 @@ files:
|
|
106
117
|
- lib/repertoire-faceting/facets/basic_facet.rb
|
107
118
|
- lib/repertoire-faceting/facets/nested_facet.rb
|
108
119
|
- lib/repertoire-faceting/model.rb
|
120
|
+
- lib/repertoire-faceting/rails/engine.rb
|
109
121
|
- lib/repertoire-faceting/rails/postgresql_adapter.rb
|
110
122
|
- lib/repertoire-faceting/rails/relation.rb
|
111
123
|
- lib/repertoire-faceting/rails/routes.rb
|
112
124
|
- lib/repertoire-faceting/railtie.rb
|
113
125
|
- lib/repertoire-faceting/relation/calculations.rb
|
114
126
|
- lib/repertoire-faceting/relation/query_methods.rb
|
115
|
-
- lib/repertoire-faceting/relation/spawn_methods.rb
|
116
127
|
- lib/repertoire-faceting/routing.rb
|
117
128
|
- lib/repertoire-faceting/tasks/all.rake
|
118
129
|
- lib/repertoire-faceting/tasks/client.rake
|
119
130
|
- lib/repertoire-faceting/version.rb
|
120
|
-
-
|
121
|
-
-
|
122
|
-
- public/images/repertoire-faceting/spinner_sm.gif
|
123
|
-
- public/javascripts/google-earth-extensions.js
|
124
|
-
- public/javascripts/protovis.js
|
125
|
-
- public/javascripts/rep.faceting/context.js
|
126
|
-
- public/javascripts/rep.faceting/ext/earth_facet.js
|
127
|
-
- public/javascripts/rep.faceting/facet.js
|
128
|
-
- public/javascripts/rep.faceting/facet_widget.js
|
129
|
-
- public/javascripts/rep.faceting/nested_facet.js
|
130
|
-
- public/javascripts/rep.faceting/results.js
|
131
|
-
- public/javascripts/rep.faceting.js
|
132
|
-
- public/javascripts/rep.protovis-facets.js
|
133
|
-
- public/stylesheets/rep.faceting.css
|
134
|
-
- FAQ
|
135
|
-
- INSTALL
|
136
|
-
- LICENSE
|
137
|
-
- README
|
138
|
-
- TODO
|
131
|
+
- vendor/assets/javascripts/google-earth-extensions.js
|
132
|
+
- vendor/assets/javascripts/protovis.js
|
139
133
|
homepage: http://github.com/repertoire/repertoire-faceting
|
140
134
|
licenses: []
|
141
135
|
metadata: {}
|
142
|
-
post_install_message:
|
143
|
-
|
144
|
-
|
145
|
-
|
136
|
+
post_install_message: |2
|
137
|
+
********************************************************************************
|
138
|
+
If this is the first time you have installed Repertoire faceting, you need
|
139
|
+
to build and install the native PostgreSQL extension:
|
140
|
+
|
141
|
+
cd <my-rails-app>
|
142
|
+
rake db:faceting:extensions:install
|
143
|
+
|
144
|
+
See the repertoire-faceting README for details.
|
145
|
+
********************************************************************************
|
146
146
|
rdoc_options: []
|
147
147
|
require_paths:
|
148
148
|
- lib
|
@@ -150,7 +150,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
151
151
|
- - '>='
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
153
|
+
version: 2.0.0
|
154
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - '>='
|
@@ -158,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
158
|
version: 1.3.7
|
159
159
|
requirements: []
|
160
160
|
rubyforge_project: repertoire-faceting
|
161
|
-
rubygems_version: 2.
|
161
|
+
rubygems_version: 2.2.2
|
162
162
|
signing_key:
|
163
163
|
specification_version: 4
|
164
164
|
summary: Rails/Postgresql plugin for faceted indexing and browsing
|
data/ext/README.signature
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
--
|
2
|
-
--
|
3
|
-
-- In-database support for Repertoire faceting module.
|
4
|
-
--
|
5
|
-
-- This library adds scalable faceted indexing to the PostgreSQL database.
|
6
|
-
-- Basic approach is similar to other faceted browsers (Solr, Exhibit): an inverted bitmap index
|
7
|
-
-- allows fast computation of facet value counts, given a base context and prior facet refinements.
|
8
|
-
--
|
9
|
-
-- Bitsets can also be used to compute the result set of items.
|
10
|
-
--
|
11
|
-
--
|
12
|
-
-- The library consists of:
|
13
|
-
--
|
14
|
-
-- (a) a user defined bitset datatype ('signature') for storing inverted indices
|
15
|
-
-- from facet values to items, and doing refinements and counts on items with a given
|
16
|
-
-- facet value (see signature.sql, signature.c)
|
17
|
-
--
|
18
|
-
-- (b) facilities for adding a packed (continuous) id sequence to the main item table. packed ids
|
19
|
-
-- are used in the facet value signatures
|
20
|
-
--
|
21
|
-
-- (c) utility functions for creating/updating packed ids and facet value index tables, esp. for
|
22
|
-
-- use with Repertoire crontab support
|
23
|
-
--
|
24
|
-
--
|
25
|
-
-- Installation
|
26
|
-
--
|
27
|
-
-- (1) gem install repertoire-faceting
|
28
|
-
-- (2) rake db:faceting:install
|
29
|
-
-- (3) rake db:faceting:load
|
30
|
-
--
|
31
|
-
-- The bitset PostgreSQL extension follows standards for C-language extensions:
|
32
|
-
-- http://www.postgresql.org/docs/current/static/xfunc-c.html
|
33
|
-
--
|