Module: Graphable::ClassMethods

Defined in:
lib/graphable.rb

Instance Method Summary collapse

Instance Method Details

#has_edge(hash = {}, &block) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/graphable.rb', line 74

def has_edge(hash = {}, &block)
  source_klass = self
  target_klass = hash[:to]
  hash[:block] = block
  if hash.has_key?(:through)
    Graphable.register EdgeCreator.through(source_klass, target_klass, hash.delete(:through), hash)
  elsif hash.has_key?(:via)
    Graphable.register EdgeCreator.via(source_klass, target_klass, hash.delete(:via), hash)
  else
    raise "Invalid Edge type, must be :through or :via"
  end
end

#index_nameObject



64
65
66
# File 'lib/graphable.rb', line 64

def index_name
  "#{name.downcase.pluralize}_index"
end

#indexes(*methods) ⇒ Object



68
69
70
71
72
# File 'lib/graphable.rb', line 68

def indexes(*methods)
   methods.each do |method|
     Graphable.register IndexCreator.new(self, method) 
   end
end