Class: MundaneSearch::Stack

Inherits:
Object
  • Object
show all
Defined in:
lib/mundane-search/stack.rb

Direct Known Subclasses

InitialStack

Instance Method Summary collapse

Constructor Details

#initialize(previous_result, filter_canister) ⇒ Stack

Returns a new instance of Stack.



12
13
14
# File 'lib/mundane-search/stack.rb', line 12

def initialize(previous_result, filter_canister)
  @previous_result, @filter_canister = previous_result, filter_canister
end

Instance Method Details

#add(filter_canister) ⇒ Object



25
26
27
# File 'lib/mundane-search/stack.rb', line 25

def add(filter_canister)
  Stack.new(self,filter_canister)
end

#all_filtersObject



3
4
5
6
# File 'lib/mundane-search/stack.rb', line 3

def all_filters
  return @all_filters if @all_filters
  @all_filters = all_results.collect(&:filter)
end

#all_resultsObject



8
9
10
# File 'lib/mundane-search/stack.rb', line 8

def all_results
  [self] + previous_result.all_results
end

#collectionObject



16
17
18
# File 'lib/mundane-search/stack.rb', line 16

def collection
  filter.call.first
end

#filterObject



29
30
31
# File 'lib/mundane-search/stack.rb', line 29

def filter
  @filter ||= filter_canister.build(previous_result.collection, previous_result.params)
end

#paramsObject

necessary?



21
22
23
# File 'lib/mundane-search/stack.rb', line 21

def params
  filter.call.last
end