class LMDocstache::Condition

Constants

ALLOWED_OPERATORS
ENDING_QUOTES
InvalidOperator
STARTING_QUOTES

Attributes

left_term[R]
negation[R]
operator[R]
original_match[R]
right_term[R]

Public Class Methods

new(left_term:, right_term:, operator:, negation: false, original_match: nil) click to toggle source
# File lib/lm_docstache/condition.rb, line 11
def initialize(left_term:, right_term:, operator:, negation: false, original_match: nil)
  @left_term = left_term
  @right_term = remove_quotes(right_term)
  @operator = operator
  @negation = negation
  @original_match = original_match

  unless ALLOWED_OPERATORS.include?(operator)
    raise InvalidOperator, "Operator '#{operator}' is invalid"
  end
end

Public Instance Methods

truthy?(value) click to toggle source
# File lib/lm_docstache/condition.rb, line 23
def truthy?(value)
  result = value.to_s.send(operator, right_term)
  negation ? !result : result
end

Private Instance Methods

remove_quotes(value) click to toggle source
# File lib/lm_docstache/condition.rb, line 30
def remove_quotes(value)
  start_position = STARTING_QUOTES.include?(value[0]) ? 1 : 0
  end_position = ENDING_QUOTES.include?(value[-1]) ? -2 : -1

  value[start_position..end_position]
end