skala 0.3.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -4
- data/Gemfile +10 -1
- data/LICENSE.txt +17 -18
- data/README.md +1 -34
- data/README.primo_adapter.md +42 -0
- data/bin/console +11 -0
- data/config/initializers/skala.rb +5 -0
- data/config/skala.yml +65 -0
- data/db/migrate/20141006133522_create_skala_users.rb +13 -0
- data/db/migrate/20141006133649_create_skala_user_watch_lists.rb +14 -0
- data/db/migrate/20141006135644_create_skala_user_watch_list_entries.rb +13 -0
- data/db/migrate/20141006140435_create_skala_user_notes.rb +16 -0
- data/lib/skala.rb +36 -3
- data/lib/skala/adapter.rb +122 -4
- data/lib/skala/adapter/authenticate_user.rb +4 -0
- data/lib/skala/adapter/create_user_hold_request.rb +7 -0
- data/lib/skala/adapter/create_user_hold_request/result.rb +10 -0
- data/lib/skala/adapter/delete_user_hold_request.rb +7 -0
- data/lib/skala/adapter/get_record_holdable_items.rb +5 -0
- data/lib/skala/adapter/get_record_holdable_items/result.rb +14 -0
- data/lib/skala/adapter/get_record_items.rb +5 -0
- data/lib/skala/adapter/get_record_items/result.rb +14 -0
- data/lib/skala/adapter/get_records.rb +5 -0
- data/lib/skala/adapter/get_records/result.rb +28 -0
- data/lib/skala/adapter/get_user.rb +4 -0
- data/lib/skala/adapter/get_user_former_loans.rb +5 -0
- data/lib/skala/adapter/get_user_former_loans/result.rb +14 -0
- data/lib/skala/adapter/get_user_hold_requests.rb +5 -0
- data/lib/skala/adapter/get_user_hold_requests/result.rb +14 -0
- data/lib/skala/adapter/get_user_inter_library_loans.rb +5 -0
- data/lib/skala/adapter/get_user_inter_library_loans/result.rb +14 -0
- data/lib/skala/adapter/get_user_loans.rb +5 -0
- data/lib/skala/adapter/get_user_loans/result.rb +14 -0
- data/lib/skala/adapter/get_user_transactions.rb +5 -0
- data/lib/skala/adapter/get_user_transactions/result.rb +14 -0
- data/lib/skala/adapter/operation.rb +2 -0
- data/lib/skala/adapter/operation/request.rb +6 -0
- data/lib/skala/adapter/operation/result.rb +7 -0
- data/lib/skala/adapter/renew_user_loan.rb +7 -0
- data/lib/skala/adapter/renew_user_loan/result.rb +7 -0
- data/lib/skala/adapter/renew_user_loans.rb +5 -0
- data/lib/skala/adapter/renew_user_loans/result.rb +9 -0
- data/lib/skala/adapter/search.rb +6 -0
- data/lib/skala/adapter/search/request.rb +91 -0
- data/lib/skala/adapter/search/request/date_histogram_facet.rb +5 -0
- data/lib/skala/adapter/search/request/facet.rb +29 -0
- data/lib/skala/adapter/search/request/histogram_facet.rb +8 -0
- data/lib/skala/adapter/search/request/ids_query.rb +6 -0
- data/lib/skala/adapter/search/request/match_query.rb +7 -0
- data/lib/skala/adapter/search/request/ordered_terms_query.rb +7 -0
- data/lib/skala/adapter/search/request/query.rb +18 -0
- data/lib/skala/adapter/search/request/query_string_query.rb +9 -0
- data/lib/skala/adapter/search/request/range_facet.rb +10 -0
- data/lib/skala/adapter/search/request/range_facet/range.rb +9 -0
- data/lib/skala/adapter/search/request/range_query.rb +8 -0
- data/lib/skala/adapter/search/request/simple_query_string_query.rb +8 -0
- data/lib/skala/adapter/search/request/sort_request.rb +15 -0
- data/lib/skala/adapter/search/request/terms_facet.rb +8 -0
- data/lib/skala/adapter/search/request/unscored_terms_query.rb +7 -0
- data/lib/skala/adapter/search/result.rb +22 -0
- data/lib/skala/adapter/search/result/facet.rb +15 -0
- data/lib/skala/adapter/search/result/histogram_facet.rb +12 -0
- data/lib/skala/adapter/search/result/histogram_facet/entry.rb +8 -0
- data/lib/skala/adapter/search/result/hit.rb +13 -0
- data/lib/skala/adapter/search/result/terms_facet.rb +14 -0
- data/lib/skala/adapter/search/result/terms_facet/term.rb +8 -0
- data/lib/skala/adapter/update_user.rb +4 -0
- data/lib/skala/aleph_adapter.rb +47 -0
- data/lib/skala/aleph_adapter/authenticate_user.rb +27 -0
- data/lib/skala/aleph_adapter/create_user_hold_request.rb +63 -0
- data/lib/skala/aleph_adapter/delete_user_hold_request.rb +29 -0
- data/lib/skala/aleph_adapter/get_record.rb +22 -0
- data/lib/skala/aleph_adapter/get_record_holdable_items.rb +29 -0
- data/lib/skala/aleph_adapter/get_record_items.rb +111 -0
- data/lib/skala/aleph_adapter/get_user.rb +49 -0
- data/lib/skala/aleph_adapter/get_user_former_loans.rb +21 -0
- data/lib/skala/aleph_adapter/get_user_hold_requests.rb +102 -0
- data/lib/skala/aleph_adapter/get_user_inter_library_loans.rb +66 -0
- data/lib/skala/aleph_adapter/get_user_loans.rb +93 -0
- data/lib/skala/aleph_adapter/get_user_transactions.rb +96 -0
- data/lib/skala/aleph_adapter/renew_user_loan.rb +27 -0
- data/lib/skala/aleph_adapter/renew_user_loans.rb +39 -0
- data/lib/skala/aleph_adapter/resolve_user.rb +19 -0
- data/lib/skala/aleph_adapter/update_user.rb +105 -0
- data/lib/skala/common_attributes.rb +19 -0
- data/lib/skala/elasticsearch_adapter.rb +33 -0
- data/lib/skala/elasticsearch_adapter/search.rb +20 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation.rb +20 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_aggregations.rb +50 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_from.rb +10 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_query.rb +107 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_size.rb +12 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_sort.rb +18 -0
- data/lib/skala/elasticsearch_adapter/search/request_transformation/add_version.rb +10 -0
- data/lib/skala/elasticsearch_adapter/search/result_transformation.rb +21 -0
- data/lib/skala/elasticsearch_adapter/search/result_transformation/set_facets.rb +44 -0
- data/lib/skala/elasticsearch_adapter/search/result_transformation/set_hits.rb +18 -0
- data/lib/skala/elasticsearch_adapter/search/result_transformation/set_total_hits.rb +10 -0
- data/lib/skala/engine.rb +14 -0
- data/lib/skala/get_user_result.rb +14 -0
- data/lib/skala/hold_request.rb +24 -0
- data/lib/skala/item.rb +15 -0
- data/lib/skala/loan.rb +18 -0
- data/lib/skala/primo_adapter.rb +34 -0
- data/lib/skala/primo_adapter/get_records.rb +24 -0
- data/lib/skala/primo_adapter/search.rb +13 -0
- data/lib/skala/primo_adapter/search/request_transformation.rb +40 -0
- data/lib/skala/primo_adapter/search/request_transformation/add_queries.rb +97 -0
- data/lib/skala/primo_adapter/search/request_transformation/add_sort_by_list.rb +37 -0
- data/lib/skala/primo_adapter/search/request_transformation/embed_inner_search_request.rb +13 -0
- data/lib/skala/primo_adapter/search/request_transformation/serialize_target_as_xml.rb +11 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_bulk_size.rb +12 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_institution.rb +12 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_languages.rb +15 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_locations.rb +19 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_on_campus.rb +13 -0
- data/lib/skala/primo_adapter/search/request_transformation/set_start_index.rb +12 -0
- data/lib/skala/primo_adapter/search/request_transformation/setup_inner_search_request.rb +33 -0
- data/lib/skala/primo_adapter/search/request_transformation/setup_target.rb +28 -0
- data/lib/skala/primo_adapter/search/request_transformation/toggle_bool_operator.rb +13 -0
- data/lib/skala/primo_adapter/search/result_transformation.rb +30 -0
- data/lib/skala/primo_adapter/search/result_transformation/add_hits.rb +13 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation.rb +46 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_creator.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_description.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_edition.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_fulltext_available.rb +12 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_id.rb +11 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_identifier.rb +46 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_is_part_of.rb +14 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_language.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_metadata.rb +13 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_openurl.rb +23 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_publisher.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_source.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_subject.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_title.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/doc_transformation/set_year_of_publication.rb +10 -0
- data/lib/skala/primo_adapter/search/result_transformation/fix_primo_facets_bugs.rb +108 -0
- data/lib/skala/primo_adapter/search/result_transformation/parse_search_brief_response.rb +20 -0
- data/lib/skala/primo_adapter/search/result_transformation/set_facets.rb +71 -0
- data/lib/skala/primo_adapter/search/result_transformation/set_total_hits.rb +13 -0
- data/lib/skala/primo_adapter/search/result_transformation/sort_terms_facets_terms.rb +14 -0
- data/lib/skala/primo_adapter/soap_api.rb +15 -0
- data/lib/skala/primo_adapter/soap_api/search_brief.rb +25 -0
- data/lib/skala/record.rb +85 -0
- data/lib/skala/record/identifier.rb +9 -0
- data/lib/skala/record/is_part_of.rb +11 -0
- data/lib/skala/record/link.rb +9 -0
- data/lib/skala/record/relation.rb +9 -0
- data/lib/skala/transaction.rb +13 -0
- data/lib/skala/version.rb +1 -1
- data/skala.gemspec +21 -12
- data/spec/skala/search_request/ordered_terms_query_spec.rb +6 -0
- data/spec/spec_helper.rb +7 -28
- metadata +237 -85
- data/lib/skala/i18n.rb +0 -46
- data/lib/skala/transformation.rb +0 -54
- data/lib/skala/transformation/step.rb +0 -24
- data/spec/assets/locales/de.yml +0 -14
- data/spec/assets/locales/en.yml +0 -9
- data/spec/assets/transformation/some_class.rb +0 -2
- data/spec/skala/adapter/operation_spec.rb +0 -19
- data/spec/skala/adapter_spec.rb +0 -2
- data/spec/skala/i18n_spec.rb +0 -95
- data/spec/skala/transformation/step_spec.rb +0 -36
- data/spec/skala/transformation_spec.rb +0 -89
- data/spec/skala_spec.rb +0 -2
@@ -0,0 +1,10 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/hold_request"
|
3
|
+
require_relative "../create_user_hold_request"
|
4
|
+
|
5
|
+
class Skala::Adapter::CreateUserHoldRequest::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Virtus.model
|
7
|
+
|
8
|
+
attribute :hold_request, Skala::HoldRequest
|
9
|
+
attribute :source
|
10
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/item"
|
3
|
+
require_relative "../get_record_holdable_items"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetRecordHoldableItems::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :holdable_items, Array[Skala::Item]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? holdable_items.each { |_element| yield _element } : holdable_items.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/item"
|
3
|
+
require_relative "../get_record_items"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetRecordItems::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :items, Array[Skala::Item]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? items.each { |_element| yield _element } : items.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/record"
|
3
|
+
require_relative "../get_records"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetRecords::Result < Skala::Adapter::Operation::Result
|
6
|
+
# This is the GetRecords::Result::Record, the object which holds meta informations
|
7
|
+
# and has a record property, which holds the actual Skala::Record.
|
8
|
+
class Record
|
9
|
+
include Virtus.model
|
10
|
+
|
11
|
+
attribute :found, Boolean, default: false
|
12
|
+
attribute :id, String
|
13
|
+
attribute :index, String
|
14
|
+
attribute :record, Skala::Record
|
15
|
+
attribute :type, String
|
16
|
+
attribute :version, Integer
|
17
|
+
end
|
18
|
+
|
19
|
+
include Enumerable
|
20
|
+
include Virtus.model
|
21
|
+
|
22
|
+
attribute :records, Array[Record]
|
23
|
+
attribute :source, String
|
24
|
+
|
25
|
+
def each
|
26
|
+
block_given? ? records.each { |_element| yield _element } : records.each
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/loan"
|
3
|
+
require_relative "../get_user_former_loans"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetUserFormerLoans::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :former_loans, Array[Skala::Loan]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? former_loans.each { |_element| yield _element } : former_loans.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/hold_request"
|
3
|
+
require_relative "../get_user_hold_requests"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetUserHoldRequests::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :hold_requests, Array[Skala::HoldRequest]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? hold_requests.each { |_element| yield _element } : hold_requests.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/loan"
|
3
|
+
require_relative "../get_user_inter_library_loans"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetUserInterLibraryLoans::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :inter_library_loans, Array[Skala::Loan]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? inter_library_loans.each { |_element| yield _element } : inter_library_loans.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/loan"
|
3
|
+
require_relative "../get_user_loans"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetUserLoans::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :loans, Array[Skala::Loan]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? loans.each { |_element| yield _element } : loans.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "skala/adapter/operation/result"
|
2
|
+
require "skala/transaction"
|
3
|
+
require_relative "../get_user_transactions"
|
4
|
+
|
5
|
+
class Skala::Adapter::GetUserTransactions::Result < Skala::Adapter::Operation::Result
|
6
|
+
include Enumerable
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :transactions, Array[Skala::Transaction]
|
10
|
+
|
11
|
+
def each
|
12
|
+
block_given? ? transactions.each { |_element| yield _element } : transactions.each
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require "json"
|
2
|
+
require "skala/adapter/operation/request"
|
3
|
+
require_relative "../search"
|
4
|
+
|
5
|
+
class Skala::Adapter::Search::Request < Skala::Adapter::Operation::Request
|
6
|
+
# facets
|
7
|
+
require_relative "./request/histogram_facet"
|
8
|
+
require_relative "./request/range_facet"
|
9
|
+
require_relative "./request/terms_facet"
|
10
|
+
|
11
|
+
# queries
|
12
|
+
require_relative "./request/ids_query"
|
13
|
+
require_relative "./request/match_query"
|
14
|
+
require_relative "./request/ordered_terms_query"
|
15
|
+
require_relative "./request/query_string_query"
|
16
|
+
require_relative "./request/range_query"
|
17
|
+
require_relative "./request/simple_query_string_query"
|
18
|
+
require_relative "./request/unscored_terms_query"
|
19
|
+
|
20
|
+
# sort
|
21
|
+
require_relative "./request/sort_request"
|
22
|
+
|
23
|
+
# attributes
|
24
|
+
attribute :facets, Array[Facet], lazy: true
|
25
|
+
attribute :facet_queries, Array[Query], lazy: true
|
26
|
+
attribute :from, Fixnum, default: 0
|
27
|
+
attribute :queries, Array[Query], required: true
|
28
|
+
attribute :size, Fixnum, default: 25
|
29
|
+
attribute :sort, Array[SortRequest], lazy: true
|
30
|
+
|
31
|
+
# override facet setter in order to determine facet type
|
32
|
+
def facets=(value)
|
33
|
+
if sanitized_value = [value].flatten(1).compact.presence
|
34
|
+
mapped_values = sanitized_value.map do |_element|
|
35
|
+
_element.is_a?(Hash) ? self.class.facet_factory(_element) : _element
|
36
|
+
end
|
37
|
+
|
38
|
+
super(mapped_values)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# override (facet_)queries setters in order to determine query type
|
43
|
+
def facet_queries=(value)
|
44
|
+
if sanitized_value = [value].flatten(1).compact.presence
|
45
|
+
mapped_values = sanitized_value.map do |_element|
|
46
|
+
_element.is_a?(Hash) ? self.class.query_factory(_element) : _element
|
47
|
+
end
|
48
|
+
|
49
|
+
super(mapped_values)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def queries=(value)
|
54
|
+
if sanitized_value = [value].flatten(1).compact.presence
|
55
|
+
mapped_values = sanitized_value.map do |_element|
|
56
|
+
_element.is_a?(Hash) ? self.class.query_factory(_element) : _element
|
57
|
+
end
|
58
|
+
|
59
|
+
super(mapped_values)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# helpers to implement facets/queries setters
|
65
|
+
#
|
66
|
+
def self.factory(postfix) # e.g. :facet or :query which turns to "#{type}_#{postfix}", e.g. "match_query" or "range_facet"
|
67
|
+
-> (value) do
|
68
|
+
class_name = "#{value[:type] || value["type"]}_#{postfix}".classify
|
69
|
+
|
70
|
+
if const_defined?(class_name)
|
71
|
+
const_get(class_name).new(value)
|
72
|
+
else
|
73
|
+
raise ArgumentError.new("Unknown #{postfix} type!")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.facet_factory(value)
|
79
|
+
factory(:facet).call(value)
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.query_factory(value)
|
83
|
+
factory(:query).call(value)
|
84
|
+
end
|
85
|
+
|
86
|
+
# TODO: move to frontend
|
87
|
+
def to_param(*)
|
88
|
+
# binding.pry
|
89
|
+
to_json
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative "../request"
|
2
|
+
|
3
|
+
class Skala::Adapter::Search::Request::Facet
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :type, String, default: -> (instance, _) do
|
7
|
+
class_name = instance.class.to_s.demodulize.underscore
|
8
|
+
|
9
|
+
if (splitted_class_name = class_name.split("_")).last == "facet"
|
10
|
+
splitted_class_name[0..-2].join("_")
|
11
|
+
else
|
12
|
+
class_name
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
require_relative "./histogram_facet"
|
17
|
+
require_relative "./range_facet"
|
18
|
+
require_relative "./terms_facet"
|
19
|
+
|
20
|
+
def self.factory(options)
|
21
|
+
if (options[:type] || options["type"]) == "histogram"
|
22
|
+
parent::HistogramFacet.new(options)
|
23
|
+
elsif (options[:type] || options["type"]) == "range"
|
24
|
+
parent::RangeFacet.new(options)
|
25
|
+
elsif (options[:type] || options["type"]) == "terms"
|
26
|
+
parent::TermsFacet.new(options)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require_relative "../request"
|
2
|
+
require_relative "./facet"
|
3
|
+
|
4
|
+
class Skala::Adapter::Search::Request::HistogramFacet < Skala::Adapter::Search::Request::Facet
|
5
|
+
attribute :field, String, required: true
|
6
|
+
attribute :interval, Integer, default: 1
|
7
|
+
attribute :name, String, required: true
|
8
|
+
end
|