Class: Record::Builder

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

Overview

check: rename to RecordDefinition or RecordDsl or similar - why? why not?

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(super_class = Base) ⇒ Builder

Returns a new instance of Builder.



26
27
28
# File 'lib/record/builder.rb', line 26

def initialize( super_class=Base )
  @clazz = Class.new( super_class )
end

Class Method Details

.build_loggerObject

add simple logger with debug flag/switch

use Parser.debug = true   # to turn on

todo/fix: use logutils instead of std logger - why? why not?


16
17
18
19
20
# File 'lib/record/builder.rb', line 16

def self.build_logger()
  l = Logger.new( STDOUT )
  l.level = :info    ## set to :info on start; note: is 0 (debug) by default
  l
end

.loggerObject



21
# File 'lib/record/builder.rb', line 21

def self.logger() @@logger ||= build_logger; end

Instance Method Details

#field(name, type = :string) ⇒ Object

note: type defaults to string



30
31
32
33
# File 'lib/record/builder.rb', line 30

def field( name, type=:string )   ## note: type defaults to string
  logger.debug "  adding field >#{name}< with type >#{type}<"
  @clazz.field( name, type )  ## auto-add getter and setter
end

#float(name) ⇒ Object



45
46
47
48
# File 'lib/record/builder.rb', line 45

def float( name )
  logger.debug "  adding float number field >#{name}<"
  field( name, :float )
end

#integer(name) ⇒ Object

use number for alias for integer - why? why not???



40
41
42
43
# File 'lib/record/builder.rb', line 40

def integer( name )  ## use number for alias for integer - why? why not???
  logger.debug "  adding integer number field >#{name}<"
  field( name, :integer )
end

#loggerObject



22
# File 'lib/record/builder.rb', line 22

def logger()  self.class.logger; end

#string(name) ⇒ Object



35
36
37
38
# File 'lib/record/builder.rb', line 35

def string( name )
  logger.debug "  adding string field >#{name}<"
  field( name, :string )
end

#to_recordObject

check: rename to just record or obj or finish or end something?



51
52
53
# File 'lib/record/builder.rb', line 51

def to_record   ## check: rename to just record or obj or finish or end something?
  @clazz
end