Class: Safrano::Filter::Literal

Inherits:
Leave show all
Defined in:
lib/odata/filter/base.rb,
lib/odata/filter/tree.rb,
lib/odata/filter/sequel.rb

Overview

Literals are unquoted words

Direct Known Subclasses

NullLiteral, Qualit

Instance Attribute Summary

Attributes inherited from Leave

#parent

Attributes inherited from Node

#value

Instance Method Summary collapse

Methods inherited from Leave

#check_types

Methods inherited from Node

#==, #initialize, #success

Constructor Details

This class inherits a constructor from Safrano::Filter::Node

Instance Method Details

#accept?(tok, typ) ⇒ Boolean

Returns:

  • (Boolean)


423
424
425
426
427
428
429
430
# File 'lib/odata/filter/tree.rb', line 423

def accept?(tok, typ)
  case typ
  when :Delimiter, :Separator, :BinopBool, :BinopArithm
    nil
  else
    Parser::ErrorInvalidToken.new(tok, typ, self)
  end
end

#as_stringObject



270
271
272
# File 'lib/odata/filter/sequel.rb', line 270

def as_string
  @value
end

#attach(child) ⇒ Object

error, Literal are leaves when the child is a IdentityFuncTree then this looks like an attempt to use a unknown function, eg. ceil(Total) instead of ceiling(Total)



440
441
442
443
444
445
446
# File 'lib/odata/filter/tree.rb', line 440

def attach(child)
  if child.is_a? Safrano::Filter::IdentityFuncTree
    Safrano::FilterUnknownFunctionError.new(value)
  else
    super
  end
end

#edm_typeObject



432
433
434
# File 'lib/odata/filter/tree.rb', line 432

def edm_type
  :any
end

#leuqes(jh) ⇒ Object



250
251
252
253
254
# File 'lib/odata/filter/sequel.rb', line 250

def leuqes(jh)
  return Safrano::FilterParseErrorWrongColumnName unless jh.start_model.db_schema.key?(@value.to_sym)

  success Sequel[jh.start_model.table_name][@value.to_sym]
end

#leuqes_ends_like(_jh) ⇒ Object



262
263
264
# File 'lib/odata/filter/sequel.rb', line 262

def leuqes_ends_like(_jh)
  success "%#{@value}"
end

#leuqes_starts_like(_jh) ⇒ Object

non stantard extensions to support things like substringof(Rhum, name) ????



258
259
260
# File 'lib/odata/filter/sequel.rb', line 258

def leuqes_starts_like(_jh)
  success "#{@value}%"
end

#leuqes_substringof_sig1(_jh) ⇒ Object



266
267
268
# File 'lib/odata/filter/sequel.rb', line 266

def leuqes_substringof_sig1(_jh)
  success "%#{@value}%"
end