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
Class Method Summary collapse
- .banner ⇒ Object
-
.define(super_class = Base, &block) ⇒ Object
alternative class (record) builder.
- .root ⇒ Object
- .version ⇒ Object
Class Method Details
.banner ⇒ Object
20 21 22 |
# File 'lib/record/version.rb', line 20 def self. "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 |
.root ⇒ Object
24 25 26 |
# File 'lib/record/version.rb', line 24 def self.root File.( File.dirname(File.dirname(File.dirname(__FILE__))) ) end |
.version ⇒ Object
16 17 18 |
# File 'lib/record/version.rb', line 16 def self.version VERSION end |