Module: Plunk

Defined in:
lib/plunk.rb,
lib/plunk/utils.rb,
lib/plunk/helper.rb,
lib/plunk/parser.rb,
lib/plunk/version.rb,
lib/plunk/result_set.rb,
lib/plunk/transformer.rb

Defined Under Namespace

Classes: Helper, Parser, ResultSet, Transformer, Utils

Constant Summary collapse

VERSION =
"0.3.12"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.elasticsearch_clientObject

Returns the value of attribute elasticsearch_client.



11
12
13
# File 'lib/plunk.rb', line 11

def elasticsearch_client
  @elasticsearch_client
end

.elasticsearch_optionsObject

Returns the value of attribute elasticsearch_options.



11
12
13
# File 'lib/plunk.rb', line 11

def elasticsearch_options
  @elasticsearch_options
end

.loggerObject

Returns the value of attribute logger.



11
12
13
# File 'lib/plunk.rb', line 11

def logger
  @logger
end

.max_number_of_hitsObject

Returns the value of attribute max_number_of_hits.



11
12
13
# File 'lib/plunk.rb', line 11

def max_number_of_hits
  @max_number_of_hits
end

.parse_onlyObject

Returns the value of attribute parse_only.



11
12
13
# File 'lib/plunk.rb', line 11

def parse_only
  @parse_only
end

.parserObject

Returns the value of attribute parser.



11
12
13
# File 'lib/plunk.rb', line 11

def parser
  @parser
end

.timestamp_fieldObject

Returns the value of attribute timestamp_field.



11
12
13
# File 'lib/plunk.rb', line 11

def timestamp_field
  @timestamp_field
end

.transformerObject

Returns the value of attribute transformer.



11
12
13
# File 'lib/plunk.rb', line 11

def transformer
  @transformer
end

Class Method Details

.configure(&block) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/plunk.rb', line 16

def self.configure(&block)
  class_eval(&block)
  self.timestamp_field ||= :timestamp
  initialize_parser
  initialize_transformer
  initialize_elasticsearch unless self.parse_only
end

.initialize_elasticsearchObject



24
25
26
# File 'lib/plunk.rb', line 24

def self.initialize_elasticsearch
  self.elasticsearch_client ||= Elasticsearch::Client.new(elasticsearch_options)
end

.initialize_parserObject



28
29
30
# File 'lib/plunk.rb', line 28

def self.initialize_parser
  self.parser ||= Parser.new
end

.initialize_transformerObject



32
33
34
# File 'lib/plunk.rb', line 32

def self.initialize_transformer
  self.transformer ||= Transformer.new
end

.search(query_string) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/plunk.rb', line 36

def self.search(query_string)
  parsed = parser.parse query_string
  transformed = transformer.apply parsed

  if self.logger
    self.logger.debug "Query String: #{query_string}"
    self.logger.debug "Parsed Output: #{transformed}" 
  end

  result_set = ResultSet.new(transformed)

  if self.parse_only
    result_set.query
  else
    result_set.eval
  end
end