class Graphlyte::Field

Attributes

alias[R]
fieldset[R]
inputs[R]
name[R]

Public Class Methods

new(name, fieldset, hargs, inputs: Arguments::Set.new(hargs)) click to toggle source
# File lib/graphlyte/field.rb, line 9
def initialize(name, fieldset, hargs, inputs: Arguments::Set.new(hargs))
  @name = name.to_s.to_camel_case
  @fieldset = fieldset
  @inputs = inputs
  @alias = nil
end

Public Instance Methods

atomic?() click to toggle source
# File lib/graphlyte/field.rb, line 16
def atomic?
  fieldset.empty?
end
to_s(indent=0) click to toggle source
# File lib/graphlyte/field.rb, line 25
def to_s(indent=0)
  str = ""
  actual_indent = ("\s" * indent) * 2
  if @alias
    str += "#{actual_indent}#{@alias}: #{name}"
    str += inputs.to_s.empty? ? "()" : inputs.to_s 
  else
    str += "#{actual_indent}#{name}#{inputs.to_s}"
  end
  str += " {\n#{fieldset.to_s(indent + 1)}\n#{actual_indent}}" unless atomic?
  str
end