Class: Sqlyzer::Associate::Link

Inherits:
Object
  • Object
show all
Includes:
Serializer
Defined in:
lib/sqlyzer/associate.rb

Constant Summary

Constants included from Parameter::Types::Alias

Parameter::Types::Alias::SQL_BOOL, Parameter::Types::Alias::SQL_DATE, Parameter::Types::Alias::SQL_DATETIME, Parameter::Types::Alias::SQL_FLOAT, Parameter::Types::Alias::SQL_FLOAT4, Parameter::Types::Alias::SQL_FLOAT8, Parameter::Types::Alias::SQL_INT, Parameter::Types::Alias::SQL_INT2, Parameter::Types::Alias::SQL_INT4, Parameter::Types::Alias::SQL_INT8, Parameter::Types::Alias::SQL_TEXT, Parameter::Types::Alias::SQL_TIME, Parameter::Types::Alias::SQL_VARCHAR

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Serializer

included, #sql_dispose, #sql_load, #sql_new, #sql_save, #sql_serialize

Methods included from Sql::Create

#sql_alter_table, #sql_alter_table_fk, #sql_alter_table_pk, #sql_create_table, #sql_create_table_index, #sql_create_table_unique_index, #sql_drop_table

Methods included from Container

#sql_container_keys, #sql_container_table, #sql_container_values, sql_has_keys, sql_has_values, sql_set_table

Constructor Details

#initialize(owner, key) ⇒ Link

Returns a new instance of Link.



32
33
34
35
36
# File 'lib/sqlyzer/associate.rb', line 32

def     initialize(owner, key)
  @source = owner.method key
  @updated = {}
  @current_var = get_current_var
end

Class Method Details

.make(from, to, owner, key) ⇒ Object



101
102
103
104
# File 'lib/sqlyzer/associate.rb', line 101

def     Link.make(from, to, owner, key)
  idx = "#{from}_to_#{to}"
  return @@klasses[idx] if @@klasses.include?(idx)
end

Instance Method Details

#flushObject



95
96
97
# File 'lib/sqlyzer/associate.rb', line 95

def     flush
  update_to_new_var unless @updated.empty?
end

#pop(*items) ⇒ Object



87
88
89
90
91
# File 'lib/sqlyzer/associate.rb', line 87

def     pop(*items)
  for item in items
    @updated[item] = :link_del if @current.include?(item)
  end
end

#push(*items) ⇒ Object



81
82
83
84
85
# File 'lib/sqlyzer/associate.rb', line 81

def     push(*items)
  for item in items
    @updated[item] = :link_add unless @current.include?(item)
  end
end