Class: PgSerializable::Visitors::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_serializable/visitors/base.rb

Direct Known Subclasses

Json, Validation

Instance Method Summary collapse

Instance Method Details

#visit(subject, **kwargs) ⇒ Object



4
5
6
# File 'lib/pg_serializable/visitors/base.rb', line 4

def visit(subject, **kwargs)
  send(visit_method_for(subject), subject, **kwargs)
end

#visit_class(subject, **kwargs) ⇒ Object

Raises:

  • (NotImplementedError)


26
27
28
# File 'lib/pg_serializable/visitors/base.rb', line 26

def visit_class(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_method_for(subject) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/pg_serializable/visitors/base.rb', line 8

def visit_method_for(subject)
  case subject
  when record? then :visit_record
  when class? then :visit_class
  when relation? then :visit_relation
  when trait_manager? then :visit_trait_manager
  when trait? then :visit_trait
  when node? then :visit_node
  else :visit_other
  end
end

#visit_node(subject, **kwargs) ⇒ Object

Raises:

  • (NotImplementedError)


44
45
46
# File 'lib/pg_serializable/visitors/base.rb', line 44

def visit_node(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_other(subject, **kwargs) ⇒ Object

everything else

Raises:

  • (NotImplementedError)


50
51
52
# File 'lib/pg_serializable/visitors/base.rb', line 50

def visit_other(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_record(subject, **kwargs) ⇒ Object

activerecord

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/pg_serializable/visitors/base.rb', line 22

def visit_record(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_scope(subject, **kwargs) ⇒ Object

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/pg_serializable/visitors/base.rb', line 30

def visit_scope(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_trait(subject, **kwargs) ⇒ Object

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/pg_serializable/visitors/base.rb', line 40

def visit_trait(subject, **kwargs)
  raise NotImplementedError.new
end

#visit_trait_manager(subject, **kwargs) ⇒ Object

pg_serializable

Raises:

  • (NotImplementedError)


36
37
38
# File 'lib/pg_serializable/visitors/base.rb', line 36

def visit_trait_manager(subject, **kwargs)
  raise NotImplementedError.new
end