Sha256: 0b37d1aef4b50108e3378adfad2aaa0fedd68acfdf86174d1989cc9a15d02b90
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
require "goon_model_gen" module GoonModelGen module Golang class Field attr_reader :name, :type_name attr_reader :tags # Hash<string,Array[string]> ex. for datastore, validate, json, etc... attr_reader :goon_id # true/false attr_reader :type attr_accessor :struct attr_accessor :prepare_method attr_accessor :unique def initialize(name, type_name, tags, goon_id: false) @name, @type_name = name, type_name @tags = tags || {} @goon_id = goon_id end # @param pkgs [Packages] def resolve(pkgs) @type = pkgs.type_for(type_name) || raise("#{type_name.inspect} not found for #{struct.qualified_name}.#{name}") end def tags_string tags.keys.sort.map do |key| val = tags[key] vals = val.is_a?(Array) ? val.join(',') : val.to_s vals.empty? ? nil : "#{key}:\"#{vals}\"" end.compact.join(' ') end # @param pkg [Package] # @return [string] def definition_in(pkg) type_exp = (type.package.path == pkg.path) ? type.name : type.qualified_name "#{ name } #{ type_exp } `#{ tags_string }`" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
goon_model_gen-0.1.3 | lib/goon_model_gen/golang/field.rb |
goon_model_gen-0.1.2 | lib/goon_model_gen/golang/field.rb |