Class: Drawbridge::Mapper
- Inherits:
-
Object
- Object
- Drawbridge::Mapper
show all
- Defined in:
- lib/drawbridge/mapper.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Mapper
Returns a new instance of Mapper.
12
13
|
# File 'lib/drawbridge/mapper.rb', line 12
def initialize
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth) ⇒ Object
145
146
147
|
# File 'lib/drawbridge/mapper.rb', line 145
def method_missing(meth)
nil
end
|
Class Method Details
.where(params) ⇒ Object
7
8
9
|
# File 'lib/drawbridge/mapper.rb', line 7
def where(params)
self.new.where(params)
end
|
Instance Method Details
#aggregate_offset ⇒ Object
100
101
102
|
# File 'lib/drawbridge/mapper.rb', line 100
def aggregate_offset
page_param.to_i * limit_param.to_i
end
|
#all ⇒ Object
38
39
40
41
42
43
|
# File 'lib/drawbridge/mapper.rb', line 38
def all
adapter = Drawbridge::Adapter.new(self)
query = adapter.build_all_query
result_params = Request.perform adapter.search_path, query
Result.new(result_params)
end
|
#base_sort ⇒ Object
121
122
123
|
# File 'lib/drawbridge/mapper.rb', line 121
def base_sort
[]
end
|
#combined_sort ⇒ Object
117
118
119
|
# File 'lib/drawbridge/mapper.rb', line 117
def combined_sort
(base_sort + sort_args).flatten.uniq
end
|
#default_refinements ⇒ Object
50
51
52
|
# File 'lib/drawbridge/mapper.rb', line 50
def default_refinements
[]
end
|
#dimensions ⇒ Object
129
130
131
|
# File 'lib/drawbridge/mapper.rb', line 129
def dimensions
[]
end
|
#dimensions=(dimension_list) ⇒ Object
133
134
135
|
# File 'lib/drawbridge/mapper.rb', line 133
def dimensions=(dimension_list)
dimension_list
end
|
#exposed_refinements ⇒ Object
Ne - placeholder, might make more sense to hard-code in the adapter
60
61
62
|
# File 'lib/drawbridge/mapper.rb', line 60
def exposed_refinements
dimensions
end
|
#fields ⇒ Object
137
138
139
|
# File 'lib/drawbridge/mapper.rb', line 137
def fields
[]
end
|
#fields=(field_list) ⇒ Object
141
142
143
|
# File 'lib/drawbridge/mapper.rb', line 141
def fields=(field_list)
field_list
end
|
#first ⇒ Object
45
46
47
48
|
# File 'lib/drawbridge/mapper.rb', line 45
def first
results = all
results.records.empty? ? nil : results.records.first
end
|
#geo_filters ⇒ Object
85
86
87
|
# File 'lib/drawbridge/mapper.rb', line 85
def geo_filters
{}
end
|
#limit_param ⇒ Object
108
109
110
111
|
# File 'lib/drawbridge/mapper.rb', line 108
def limit_param
@limit ||= 20
@limit.to_i
end
|
#mode ⇒ Object
153
154
155
|
# File 'lib/drawbridge/mapper.rb', line 153
def mode
[]
end
|
#name ⇒ Object
149
150
151
|
# File 'lib/drawbridge/mapper.rb', line 149
def name
""
end
|
#navigation ⇒ Object
55
56
57
|
# File 'lib/drawbridge/mapper.rb', line 55
def navigation
(process_refinements(endeca_refinements) + default_refinements).flatten
end
|
#offset ⇒ Object
95
96
97
|
# File 'lib/drawbridge/mapper.rb', line 95
def offset
page_param.to_i * limit_param.to_i
end
|
#order_by(sort_string) ⇒ Object
26
27
28
29
|
# File 'lib/drawbridge/mapper.rb', line 26
def order_by(sort_string)
@sort_string = sort_string
self
end
|
#page_param ⇒ Object
104
105
106
|
# File 'lib/drawbridge/mapper.rb', line 104
def page_param
@page ? @page.to_i - 1 : 0
end
|
#parse_refinements(refinements) ⇒ Object
168
169
170
171
172
|
# File 'lib/drawbridge/mapper.rb', line 168
def parse_refinements(refinements)
refinements.collect! do |ref|
ref.to_s[/^\d+$/] ? ref.to_s : ref.to_i(36).to_s
end
end
|
#process_refinements(refinements) ⇒ Object
converts refinements to int ids if they were base(36) encoded before
- “4j7”
-
> [‘5875’]
160
161
162
163
164
165
166
|
# File 'lib/drawbridge/mapper.rb', line 160
def process_refinements(refinements)
return [] if refinements.blank?
refinements.collect! do |ref|
ref.to_i(36).to_s
end
end
|
#radius_param ⇒ Object
113
114
115
|
# File 'lib/drawbridge/mapper.rb', line 113
def radius_param
@radius ||= @rad
end
|
#range_filter ⇒ Object
80
81
82
|
# File 'lib/drawbridge/mapper.rb', line 80
def range_filter
[]
end
|
#record_filters ⇒ Object
75
76
77
|
# File 'lib/drawbridge/mapper.rb', line 75
def record_filters
[]
end
|
#record_key_values ⇒ Object
125
126
127
|
# File 'lib/drawbridge/mapper.rb', line 125
def record_key_values
{}
end
|
#record_search ⇒ Object
65
66
67
|
# File 'lib/drawbridge/mapper.rb', line 65
def record_search
record_key_values
end
|
#rollup_key ⇒ Object
90
91
92
|
# File 'lib/drawbridge/mapper.rb', line 90
def rollup_key
""
end
|
#sort_args ⇒ Object
31
32
33
34
35
36
|
# File 'lib/drawbridge/mapper.rb', line 31
def sort_args
return [] unless @sort_string
sort_string = @sort_string.split(',').join('^+^')
sort_array = parse_sort(sort_string.gsub('-', '^'))
sort_array
end
|
#sort_key ⇒ Object
70
71
72
|
# File 'lib/drawbridge/mapper.rb', line 70
def sort_key
combined_sort
end
|
#where(params) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/drawbridge/mapper.rb', line 15
def where(params)
params.each do |k, v|
unless k[/\W|^\h+$/]
Mapper.send(:attr_accessor, k)
instance_variable_set("@#{k}", v)
end
end
self
end
|