Class: Activecube::Processor::Index

Inherits:
Object
  • Object
show all
Defined in:
lib/activecube/processor/index.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, *args) ⇒ Index

Returns a new instance of Index.



6
7
8
9
10
# File 'lib/activecube/processor/index.rb', line 6

def initialize name, *args
  @fields = [name].flatten
  @cardinality = args.first && args.first[:cardinality]
  @required = args.first && args.first[:required]
end

Instance Attribute Details

#cardinalityObject (readonly)

Returns the value of attribute cardinality.



5
6
7
# File 'lib/activecube/processor/index.rb', line 5

def cardinality
  @cardinality
end

#fieldsObject (readonly)

Returns the value of attribute fields.



5
6
7
# File 'lib/activecube/processor/index.rb', line 5

def fields
  @fields
end

#requiredObject (readonly)

Returns the value of attribute required.



5
6
7
# File 'lib/activecube/processor/index.rb', line 5

def required
  @required
end

Instance Method Details

#indexes?(query, measures) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/activecube/processor/index.rb', line 12

def indexes? query, measures
  (fields - query.selector_column_names(measures)).empty?
end

#matches?(query, measures) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/activecube/processor/index.rb', line 16

def matches? query, measures
  !required ||   (fields -  query.column_names_required(measures)).empty?
end