Class: KeywordSearch::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/keyword_search/definition.rb

Defined Under Namespace

Classes: Keyword

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Definition

Returns a new instance of Definition.

Yields:

  • (_self)

Yield Parameters:



25
26
27
28
# File 'lib/keyword_search/definition.rb', line 25

def initialize
  @default_keyword = nil
  yield self if block_given?
end

Instance Method Details

#default_keyword(name) ⇒ Object



38
39
40
# File 'lib/keyword_search/definition.rb', line 38

def default_keyword(name)
  @default_keyword = name
end

#handle(key, values) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/keyword_search/definition.rb', line 42

def handle(key, values)
  key = @default_keyword if key == :default
  return false unless key
  true_values, false_values = *values.partition { |v| v[1] }

  # Get just the values
  true_values.collect! { |v| v[0] }
  false_values.collect! { |v| v[0] }

  if k = keywords.detect { |kw| kw.name == key.to_sym}
    k.handle(true_values, true)   unless true_values.empty?
    k.handle(false_values, false) unless false_values.empty?
  end
end

#keyword(name, description = nil, &block) ⇒ Object



34
35
36
# File 'lib/keyword_search/definition.rb', line 34

def keyword(name, description=nil, &block)
  keywords << Keyword.new(name, description, &block)
end

#keywordsObject



30
31
32
# File 'lib/keyword_search/definition.rb', line 30

def keywords
  @keywords ||= []
end