class Activecube::Field

Attributes

definition[R]
name[R]

Public Class Methods

build(name, arg) click to toggle source
# File lib/activecube/field.rb, line 6
def self.build name, arg
  if arg.kind_of? String
    Field.new name, arg
  elsif arg.kind_of? Hash
    Field.new name, arg.symbolize_keys
  elsif arg.kind_of?(Class) && arg < Field
    arg.new name
  else
    raise Activecube::InputArgumentError, "Unexpected field #{name} definition with #{arg.class.name}"
  end
end
new(name, arg = nil) click to toggle source
# File lib/activecube/field.rb, line 18
def initialize name, arg = nil
  @name = name
  @definition = arg
end

Public Instance Methods

expression(_model, _arel_table, _slice, _cube_query) click to toggle source
# File lib/activecube/field.rb, line 23
def expression _model, _arel_table, _slice, _cube_query
  raise Activecube::InputArgumentError, "String expression expected for #{name} field, instead #{definition.class.name} is found" unless definition.kind_of?(String)
  definition
end