Sha256: 0161fb9486b8c717ec926b0029d762a28a49a02d2f4eb6663a9bad7ca94234eb

Contents?: true

Size: 736 Bytes

Versions: 14

Compression:

Stored size: 736 Bytes

Contents

require "goon_model_gen"

require "goon_model_gen/golang/type"
require "goon_model_gen/golang/field"

module GoonModelGen
  module Golang
    class Struct < Type
      attr_accessor :ref_name

      def fields
        @fields ||= []
      end

      # @param name [String]
      # @param t [String]
      # @param tags [Hash<String,Array<String>>]
      def new_field(name, t, tags, options = {})
        Field.new(name, t, tags, options).tap do |f|
          f.struct = self
          fields.push(f)
        end
      end

      def id_field
        fields.detect(&:goon_id)
      end

      # @param pkgs [Packages]
      def resolve(pkgs)
        fields.each do |f|
          f.resolve(pkgs)
        end
      end

    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
goon_model_gen-0.4.3 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.4.2 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.4.1 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.4.0 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.3.1 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.3.0 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.5 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.4 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.3 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.2 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.1 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.2.0 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.1.3 lib/goon_model_gen/golang/struct.rb
goon_model_gen-0.1.2 lib/goon_model_gen/golang/struct.rb