Class: GlueEnv

Inherits:
Object
  • Object
show all
Defined in:
lib/tinkit_base_node.rb

Overview

TODO: Have Persistent Layer GlueEnv inherit from this GlueEnv Or better see if it can follow the FilesMgr interface move into its own file Also, put common code across glue envs here (can still be overwritten)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(glue_interface) ⇒ GlueEnv

Returns a new instance of GlueEnv.



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/tinkit_base_node.rb', line 66

def initialize(glue_interface)
  #glue interface is the GlueEnv object for the persistence layer
  @glue_interface = glue_interface
  common_accessors = [ :user_id, :user_datastore_location, :metadata_keys, :required_instance_keys, :required_save_keys,
                                  :node_key, :model_key, :version_key, :namespace_key, :_files_mgr_class,
                                  :views, :model_save_params, :moab_data ]
  common_accessors.each do |acc_sym|
    accessor = "@#{acc_sym.to_s}".to_sym
    accessor_value = @glue_interface.__send__(acc_sym)
    self.instance_variable_set(accessor, accessor_value)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object

Raises:

  • (NameError)


59
60
61
62
63
64
# File 'lib/tinkit_base_node.rb', line 59

def method_missing(name)
  #resp = @glue_interface.__send__(name)
  raise NameError,"Method #{name} was not found in #{self.class.name}. Has it been"\
                  " built into the persistent model interface yet?"
  #resp
end

Instance Attribute Details

#_files_mgr_classObject

Returns the value of attribute _files_mgr_class.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def _files_mgr_class
  @_files_mgr_class
end

#glue_interfaceObject

Returns the value of attribute glue_interface.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def glue_interface
  @glue_interface
end

#metadata_keysObject

Returns the value of attribute metadata_keys.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def 
  @metadata_keys
end

#moab_dataObject

Returns the value of attribute moab_data.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def moab_data
  @moab_data
end

#model_keyObject

Returns the value of attribute model_key.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def model_key
  @model_key
end

#model_save_paramsObject

Returns the value of attribute model_save_params.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def model_save_params
  @model_save_params
end

#namespace_keyObject

Returns the value of attribute namespace_key.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def namespace_key
  @namespace_key
end

#node_keyObject

Returns the value of attribute node_key.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def node_key
  @node_key
end

#required_instance_keysObject

Returns the value of attribute required_instance_keys.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def required_instance_keys
  @required_instance_keys
end

#required_save_keysObject

Returns the value of attribute required_save_keys.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def required_save_keys
  @required_save_keys
end

#user_datastore_locationObject

Returns the value of attribute user_datastore_location.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def user_datastore_location
  @user_datastore_location
end

#user_idObject

Returns the value of attribute user_id.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def user_id
  @user_id
end

#version_keyObject

Returns the value of attribute version_key.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def version_key
  @version_key
end

#viewsObject

Returns the value of attribute views.



42
43
44
# File 'lib/tinkit_base_node.rb', line 42

def views
  @views
end

Instance Method Details

#destroy_bulk(list_of_native_records) ⇒ Object

common methods



80
81
82
# File 'lib/tinkit_base_node.rb', line 80

def destroy_bulk(list_of_native_records)
  @glue_interface.destroy_bulk(list_of_native_records)
end

#destroy_node(model_metadata) ⇒ Object



84
85
86
# File 'lib/tinkit_base_node.rb', line 84

def destroy_node()
  @glue_interface.destroy_node()
end

#generate_model_key(namespace, node_key) ⇒ Object



88
89
90
91
# File 'lib/tinkit_base_node.rb', line 88

def generate_model_key(namespace, node_key)
  #so far the model key is "#{namespace}::#{node_key}" in all persitence models
  @glue_interface.generate_model_key(namespace, node_key)
end

#get(id) ⇒ Object



93
94
95
# File 'lib/tinkit_base_node.rb', line 93

def get(id)
  @glue_interface.get(id)
end

#query_allObject



97
98
99
# File 'lib/tinkit_base_node.rb', line 97

def query_all
  @glue_interface.query_all
end

#raw_allObject



101
102
103
# File 'lib/tinkit_base_node.rb', line 101

def raw_all
  @glue_interface.raw_all
end

#save(new_data) ⇒ Object



105
106
107
# File 'lib/tinkit_base_node.rb', line 105

def save(new_data)
  @glue_interface.save(new_data)
end