class JsonWorld::LinkDefinition
Constants
- DEFAULT_HTTP_METHOD
Attributes
link_name[R]
@return [Symbol]
Public Class Methods
new(link_name: nil, **options)
click to toggle source
@param [Symbol] link_name
@param [Hash{Symbol => Object}] options
# File lib/json_world/link_definition.rb, line 10 def initialize(link_name: nil, **options) @options = options @link_name = link_name end
Public Instance Methods
as_json_schema()
click to toggle source
@todo @return [Hash]
# File lib/json_world/link_definition.rb, line 17 def as_json_schema { description: description, href: path, mediaType: media_type, method: http_method, rel: rel, schema: schema, targetSchema: target_schema, title: title, }.reject do |_key, value| value.nil? || value.empty? end end
Private Instance Methods
description()
click to toggle source
@return [String, nil]
# File lib/json_world/link_definition.rb, line 35 def description @options[:description] end
http_method()
click to toggle source
@note method is reserved by Kernel.#method ;( @return [String]
# File lib/json_world/link_definition.rb, line 41 def http_method @options[:method] || DEFAULT_HTTP_METHOD end
media_type()
click to toggle source
@return [String, nil]
# File lib/json_world/link_definition.rb, line 46 def media_type @options[:media_type] end
path()
click to toggle source
@return [String]
# File lib/json_world/link_definition.rb, line 51 def path @options[:path] end
rel()
click to toggle source
@return [String, nil]
# File lib/json_world/link_definition.rb, line 56 def rel @options[:rel] end
schema()
click to toggle source
@return [Hash{Symbol => Object}, nil]
# File lib/json_world/link_definition.rb, line 61 def schema if @options[:parameters] JsonWorld::PropertyDefinition.new( properties: @options[:parameters], property_name: :schema, ).as_json_schema end end
target_schema()
click to toggle source
@return [Hash{Symbol => Object}, nil]
# File lib/json_world/link_definition.rb, line 71 def target_schema if @options[:target_schema] JsonWorld::PropertyDefinition.new( properties: @options[:target_schema], property_name: :targetSchema, ).as_json_schema end end
title()
click to toggle source
@return [String]
# File lib/json_world/link_definition.rb, line 81 def title @options[:title] || @link_name.to_s end