class ConceptQL::Nodifier
Attributes
scope[RW]
Public Class Methods
new(opts={})
click to toggle source
# File lib/conceptql/nodifier.rb, line 7 def initialize(opts={}) @scope = opts[:scope] || Scope.new(opts) @data_model = opts[:data_model] || :omopv4 @database_type = opts[:database_type] || :impala @algorithm_fetcher = opts[:algorithm_fetcher] || (proc do |alg| nil end) end
Public Instance Methods
create(operator, *values)
click to toggle source
# File lib/conceptql/nodifier.rb, line 16 def create(operator, *values) if operator.to_s == 'algorithm' statement, desc = algorithm_fetcher.call(values.first) if statement create(*statement) else invalid_op(operator, values, "invalid algorithm", values.first) end elsif klass = operators[operator.to_s] klass.new(self, *values) else invalid_op(operator, values, "invalid operator", operator) end end
to_metadata(opts = {})
click to toggle source
# File lib/conceptql/nodifier.rb, line 31 def to_metadata(opts = {}) Hash[operators.map { |k, v| [k, v.to_metadata(k, opts)]}.select { |k, v| !v[:categories].empty? }.sort_by { |k, v| v[:name] }] end
Private Instance Methods
invalid_op(operator, values, *error_args)
click to toggle source
# File lib/conceptql/nodifier.rb, line 41 def invalid_op(operator, values, *error_args) options = values.extract_options!.merge(errors: [error_args]) values << options Operators::Invalid.new(self, operator, *values) end
operators()
click to toggle source
# File lib/conceptql/nodifier.rb, line 37 def operators @operators ||= Operators.operators[@data_model] end