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