class GDstruct::Creator

create a Ruby Hash/Array structure out of possibly several separated GDS definition strings

# file: data.gdstruct
&persons persons, @schema person        /*
    firstname   lastname    yearOfBirth */
  : John      | McArthur  | 1987
  : Berry     | Miller    | 1976

@example

require 'gdstruct'

creator = GDstruct::Creator.new

creator.include( <<-EOS )
@schema person( firstname, lastname, yearOfBirth )
EOS

creator.include_file( 'data.gdstruct' )

creator.include( <<-EOS )
all
  mypersons *persons
EOS

res = creator.create

# => res = {:persons=>[{:firstname=>"John", :lastname=>"McArthur", :yearOfBirth=>1987}, {:firstname=>"Berry", :lastname=>"Miller", :yearOfBirth=>1976}],
#           :all=>{:mypersons=>{:persons=>[{:firstname=>"John", :lastname=>"McArthur", :yearOfBirth=>1987}, {:firstname=>"Berry", :lastname=>"Miller", :yearOfBirth=>1976}]}}}

Public Class Methods

new() click to toggle source
# File lib/gdstruct.rb, line 78
def initialize
  @gdsDefinition = ""
end

Public Instance Methods

create( config = {} ) click to toggle source
# File lib/gdstruct.rb, line 94
def create( config = {} )
  LDLgeneratedLanguage::Gds.parse( @gdsDefinition, config )
end
include( gds_definition ) click to toggle source
# File lib/gdstruct.rb, line 86
def include( gds_definition )
  @gdsDefinition << gds_definition << "\n"
end
include_file( file_name ) click to toggle source
# File lib/gdstruct.rb, line 90
def include_file( file_name )
  @gdsDefinition << File.read( file_name ) << "\n"
end
reset() click to toggle source
# File lib/gdstruct.rb, line 82
def reset
  @gdsDefinition = ""
end