Sha256: 9df02d68581a948b8fd34152671e6467435e5c6f3ecb7a4a9eb52a8232ee8d5c
Contents?: true
Size: 1.3 KB
Versions: 4
Compression:
Stored size: 1.3 KB
Contents
require "goon_model_gen" require "goon_model_gen/source/contextual" require "goon_model_gen/source/struct" require "goon_model_gen/source/enum" require "goon_model_gen/source/named_slice" module GoonModelGen module Source class File include Contextual attr_reader :path attr_reader :types # @param path [string] def initialize(path) @path = path @types = [] end def basename ::File.basename(path, '.*') end # @param name [string] # @return [Struct] def new_struct(name) Struct.new(name).tap do |s| s.context = self.context s.file = self types.push(s) end end # @param name [string] # @param base_type [String] # @param map [Hash<Object,Hash>] elements of enum from YAML # @return [Enum] def new_enum(name, base_type, map) Enum.new(name, base_type, map).tap do |t| t.context = self.context types.push(t) end end # @param name [string] # @param base_type_name [string] # @return [Slice] def new_named_slice(name, base_type_name) NamedSlice.new(name, base_type_name).tap do |s| s.context = self.context types.push(s) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems