module Mondrian::OLAP::Schema::ScriptElements
Private Instance Methods
ruby(*options, &block)
click to toggle source
# File lib/mondrian/olap/schema_udf.rb, line 14 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
ruby_formatter(options, interface_class, method, signature, &block)
click to toggle source
# File lib/mondrian/olap/schema_udf.rb, line 31 def ruby_formatter(options, interface_class, method, signature, &block) formatter_class_name = if options.include?(:shared) && @attributes[:name] ruby_formatter_name_to_class_name(@attributes[:name]) end if formatter_class_name && self.class.const_defined?(formatter_class_name) formatter_class = self.class.const_get(formatter_class_name) else formatter_class = Class.new self.class.const_set(formatter_class_name, formatter_class) if formatter_class_name end formatter_class.class_eval do include interface_class define_method method, &block add_method_signature(method, signature) end formatter_java_class = formatter_class.become_java!(false) class_name formatter_java_class.getName end
ruby_formatter_java_class_name(name)
click to toggle source
# File lib/mondrian/olap/schema_udf.rb, line 56 def ruby_formatter_java_class_name(name) "rubyobj.#{self.class.name.gsub('::', '.')}.#{ruby_formatter_name_to_class_name(name)}" end
ruby_formatter_name_to_class_name(name)
click to toggle source
# File lib/mondrian/olap/schema_udf.rb, line 51 def ruby_formatter_name_to_class_name(name) # upcase just first character "#{name.sub(/\A./){|m| m.upcase}}Udf" end