Module: Record

Defined in:
lib/record/builder.rb,
lib/record/base.rb,
lib/record/field.rb,
lib/record/version.rb

Overview

(record) builder mini language / domain-specific language (dsl)

Defined Under Namespace

Modules: Version Classes: Base, Builder, Field, Type

Constant Summary collapse

VERSION =
[Version::MAJOR,
Version::MINOR,
Version::PATCH].join('.')

Class Method Summary collapse

Class Method Details



20
21
22
# File 'lib/record/version.rb', line 20

def self.banner
  "record/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end

.define(super_class = Base, &block) ⇒ Object

alternative class (record) builder



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/record/base.rb', line 151

def self.define( super_class=Base, &block )   ## check: rename super_class to base - why? why not?
  builder = Builder.new( super_class )
  if block.arity == 1
    block.call( builder )
    ## e.g. allows "yield" dsl style e.g.
    ##  Record.define do |rec|
    ##     rec.string :team1
    ##     rec.string :team2
    ##  end
    ##
  else
    builder.instance_eval( &block )
    ## e.g. shorter "instance eval" dsl style e.g.
    ##  Record.define do
    ##     string :team1
    ##     string :team2
    ##  end
  end
  builder.to_record
end

.rootObject



24
25
26
# File 'lib/record/version.rb', line 24

def self.root
  File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
end

.versionObject



16
17
18
# File 'lib/record/version.rb', line 16

def self.version
  VERSION
end