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