Class: Mondrian::OLAP::Schema::UserDefinedFunction

Inherits:
Mondrian::OLAP::SchemaElement show all
Includes:
ScriptElements
Defined in:
lib/mondrian/olap/schema_udf.rb

Defined Under Namespace

Classes: RubyUdfBase

Instance Attribute Summary

Attributes inherited from Mondrian::OLAP::SchemaElement

#xml_fragments

Instance Method Summary collapse

Methods inherited from Mondrian::OLAP::SchemaElement

attributes, content, data_dictionary_names, elements, #initialize, #to_xml, #xml

Constructor Details

This class inherits a constructor from Mondrian::OLAP::SchemaElement

Instance Method Details

#ruby(*options, &block) ⇒ Object



194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/mondrian/olap/schema_udf.rb', line 194

def ruby(*options, &block)
  udf_class_name = if options.include?(:shared)
    "#{name.capitalize}Udf"
  end
  if udf_class_name && self.class.const_defined?(udf_class_name)
    udf_class = self.class.const_get(udf_class_name)
  else
    udf_class = Class.new(RubyUdfBase)
    self.class.const_set(udf_class_name, udf_class) if udf_class_name
  end
  udf_class.function_name = name
  udf_class.class_eval(&block)
  udf_java_class = udf_class.become_java!(false)

  class_name udf_java_class.getName
end