Class: Csquery::Expression

Inherits:
Object
  • Object
show all
Defined in:
lib/csquery/expression.rb

Instance Method Summary collapse

Constructor Details

#initialize(operator, *args, options: {}, **kwargs) ⇒ Expression

Returns a new instance of Expression.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/csquery/expression.rb', line 3

def initialize(operator, *args, options: {}, **kwargs)
  @operator = operator
  @options = options
  @fields = []

  args.each do |arg|
    if arg.is_a? FieldValue
      @fields << arg
    else
      @fields << FieldValue.new(value: arg)
    end
  end

  kwargs.sort_by {|k, _| k }.each do |k, v|
    @fields << FieldValue.new(name: k, value: v)
  end
end

Instance Method Details

#queryObject



21
22
23
# File 'lib/csquery/expression.rb', line 21

def query
  "(#{@operator}#{Structured::format_options(@options)} #{@fields.map(&:to_s).join(' ')})".gsub(/\s+/, ' ')
end

#to_sObject



25
26
27
# File 'lib/csquery/expression.rb', line 25

def to_s
  query
end