Sha256: 5af2bde94464af15cd1183bfd6a0d0d3f878f6f3c00c177937977e63440ab023

Contents?: true

Size: 646 Bytes

Versions: 1

Compression:

Stored size: 646 Bytes

Contents

module SwaggerYard
  class Type
    def self.from_type_list(types)
      parts = types.first.split(/[<>]/)
      new(parts.last, parts.grep(/array/i).any?)
    end

    attr_reader :name, :array

    def initialize(name, array=false)
      @name, @array = name, array
    end

    # TODO: have this look at resource listing?
    def ref?
      /[[:upper:]]/.match(name)
    end

    def model_name
      ref? ? name : nil
    end

    alias :array? :array

    def to_h
      type_tag = ref? ? "$ref" : "type"
      if array?
        {"type"=>"array", "items"=> { type_tag => name }}
      else
        {"type"=>name}
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
swagger_yard-0.1.0 lib/swagger_yard/type.rb