Class: KeywordSearch::Definition
- Inherits:
-
Object
- Object
- KeywordSearch::Definition
- Defined in:
- lib/keyword_search/definition.rb
Defined Under Namespace
Classes: Keyword
Instance Method Summary collapse
- #default_keyword(name) ⇒ Object
- #handle(key, values) ⇒ Object
-
#initialize {|_self| ... } ⇒ Definition
constructor
A new instance of Definition.
- #keyword(name, description = nil, &block) ⇒ Object
- #keywords ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ Definition
Returns a new instance of Definition.
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 |
#keywords ⇒ Object
30 31 32 |
# File 'lib/keyword_search/definition.rb', line 30 def keywords @keywords ||= [] end |