Class: Kiba::Extend::Registry::RegisteredLookup

Inherits:
RegisteredFile show all
Includes:
Ancestorable, RequirableFile
Defined in:
lib/kiba/extend/registry/registered_lookup.rb

Overview

Value object representing a file registered in a FileRegistry that is being called into another job as a lookup table

Assumes this file will be used to build a Lookup

Since:

  • 2.2.0

Instance Attribute Summary

Attributes inherited from RegisteredFile

#data, #desc, #dest_class, #dest_opt, #dest_special_opts, #dynamic_source, #key, #lookup_on, #path, #src_opt, #supplied

Instance Method Summary collapse

Methods included from RequirableFile

#required

Methods included from Ancestorable

#edge, #edge_label, #edge_source_id, #edge_target_id, #node, #node_id, #source?

Methods included from NodeLabelable

#node_label, #node_qualification

Methods inherited from RegisteredFile

#src_class

Constructor Details

#initialize(key:, for_job:, data: nil) ⇒ RegisteredLookup

Returns a new instance of RegisteredLookup.

Parameters:

  • key (Symbol, Hash) —

    file key from FileRegistry data hash. Alternately, a Hash containing jobkey: jobkey symbol, and additional key-value pairs may be passed.

  • for_job (Symbol) —

    registry entry job key of the job for which this registered file is being prepared

  • data (NilValue, FileRegistryEntry) (defaults to: nil) —

    file data from FileRegistry

Since:

  • 2.2.0



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/kiba/extend/registry/registered_lookup.rb', line 22

def initialize(key:, for_job:, data: nil)
  super
  if key.is_a?(Hash)
    @key = key[:jobkey]
    @lookup_on = key[:lookup_on] if key.key?(:lookup_on)
    @instance_variable_name = key[:name] if key.key?(:name)
  end

  if dynamic_source
    fail Kiba::Extend::DynamicSourceUseError.new(
      key, self.class.name, for_job
    )
  end

  unless src_class.respond_to?(:is_lookupable?)
    fail Kiba::Extend::JobCannotBeUsedAsLookupError.new(
      key, src_class, for_job
    )
  end
  unless lookup_on
    fail Kiba::Extend::NoLookupOnError.new(key, for_job)
  end
  unless lookup_on.is_a?(Symbol)
    fail Kiba::Extend::NonSymbolLookupOnError.new(key, for_job)
  end
end

Instance Method Details

#args ⇒ Hash

Arguments for calling Lookup with this file

Returns:

  • (Hash)

Since:

  • 2.2.0



51
52
53
# File 'lib/kiba/extend/registry/registered_lookup.rb', line 51

def args
  {file: path, keycolumn: lookup_on}.merge(options)
end

#klass ⇒ Object

Since:

  • 2.2.0



55
56
57
# File 'lib/kiba/extend/registry/registered_lookup.rb', line 55

def klass
  src_class
end