Class: Qiita::Elasticsearch::Token

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita/elasticsearch/token.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(downcased: nil, field_name: nil, negative: nil, quoted: nil, term: nil, token_string: nil) ⇒ Token

Returns a new instance of Token.

Parameters:

  • downcased (true, false) (defaults to: nil)

    True if given term must be downcased on query representation

  • field_name (String, nil) (defaults to: nil)

    Field name part

  • negative (true, fales) (defaults to: nil)

    True if this term represents negative token (e.g. “-Perl”)

  • quoted (true, false) (defaults to: nil)

    Given term is quoted or note

  • term (String) (defaults to: nil)

    Term part

  • token_string (String) (defaults to: nil)

    Original entire string



22
23
24
25
26
27
28
29
# File 'lib/qiita/elasticsearch/token.rb', line 22

def initialize(downcased: nil, field_name: nil, negative: nil, quoted: nil, term: nil, token_string: nil)
  @downcased = downcased
  @field_name = field_name
  @negative = negative
  @quoted = quoted
  @term = term
  @token_string = token_string
end

Instance Attribute Details

#field_nameString? (readonly)

Note:

‘xxxxxxxxxxxx:yyyyyyyyyyy` ^^^^^^^^^^^^

field_name

Returns:

  • (String, nil)


8
9
10
# File 'lib/qiita/elasticsearch/token.rb', line 8

def field_name
  @field_name
end

#termString (readonly)

Note:

‘xxxxxxxxxxxx:yyyyyyyyyyy` ^^^^^^^^^^^

term

Returns:

  • (String)


14
15
16
# File 'lib/qiita/elasticsearch/token.rb', line 14

def term
  @term
end

Instance Method Details

#downcased?true, false

Returns True if its term must be treated with downcased.

Returns:

  • (true, false)

    True if its term must be treated with downcased



32
33
34
# File 'lib/qiita/elasticsearch/token.rb', line 32

def downcased?
  !!@downcased
end

#downcased_termObject



36
37
38
# File 'lib/qiita/elasticsearch/token.rb', line 36

def downcased_term
  @downcased_term ||= term.downcase
end

#filter?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/qiita/elasticsearch/token.rb', line 40

def filter?
  !field_name.nil? || negative?
end

#must?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/qiita/elasticsearch/token.rb', line 49

def must?
  !field_name.nil? && positive?
end

#must_not?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/qiita/elasticsearch/token.rb', line 53

def must_not?
  negative?
end

#negative?true, false

Note:

‘Ruby -Perl` ^^^^^ This

Returns True if this token is for negative filter.

Returns:

  • (true, false)

    True if this token is for negative filter



61
62
63
# File 'lib/qiita/elasticsearch/token.rb', line 61

def negative?
  !!@negative
end

#or?true, false

Note:

‘Ruby OR Perl` ^^

This

Returns:

  • (true, false)

    True if this token is for OR filter



69
70
71
# File 'lib/qiita/elasticsearch/token.rb', line 69

def or?
  @token_string.downcase == "or"
end

#positive?true, false

Returns Opposite of #negative?.

Returns:

  • (true, false)

    Opposite of #negative?



74
75
76
# File 'lib/qiita/elasticsearch/token.rb', line 74

def positive?
  !negative?
end

#proper_cased_termString

Returns Downcased or not-downcased term.

Returns:

  • (String)

    Downcased or not-downcased term



79
80
81
82
83
84
85
# File 'lib/qiita/elasticsearch/token.rb', line 79

def proper_cased_term
  if downcased?
    downcased_term
  else
    term
  end
end

#query?true, false

Returns True if this token is for query.

Returns:

  • (true, false)

    True if this token is for query



45
46
47
# File 'lib/qiita/elasticsearch/token.rb', line 45

def query?
  !sort? && !ignorable?
end

#quoted?true, false

Note:

‘Express OR “Ruby on Rails”` ^^^^^^^^^^^^^^^

This

Returns True if this token is for phrase matching.

Returns:

  • (true, false)

    True if this token is for phrase matching



91
92
93
# File 'lib/qiita/elasticsearch/token.rb', line 91

def quoted?
  !!@quoted
end

#sort?true, false

Note:

Override me

Returns True if this token is for sort order (e.g. “sort:created-asc”).

Returns:

  • (true, false)

    True if this token is for sort order (e.g. “sort:created-asc”)



97
98
99
# File 'lib/qiita/elasticsearch/token.rb', line 97

def sort?
  field_name == "sort"
end

#to_hashObject

Note:

Override me



102
103
104
# File 'lib/qiita/elasticsearch/token.rb', line 102

def to_hash
  fail NotImplementedError
end

#to_sString

Note:

Override

Returns:

  • (String)


108
109
110
# File 'lib/qiita/elasticsearch/token.rb', line 108

def to_s
  @token_string.to_s
end

#type?true, false

Note:

Override me if needed

Returns:

  • (true, false)


114
115
116
# File 'lib/qiita/elasticsearch/token.rb', line 114

def type?
  false
end