Class: StandardConfig::Schema::ScopeBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/standard_config/schema.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ ScopeBuilder

Returns a new instance of ScopeBuilder.



74
75
76
77
# File 'lib/standard_config/schema.rb', line 74

def initialize(name)
  @name = name.to_sym
  @fields = {}
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



72
73
74
# File 'lib/standard_config/schema.rb', line 72

def fields
  @fields
end

#nameObject (readonly)

Returns the value of attribute name.



72
73
74
# File 'lib/standard_config/schema.rb', line 72

def name
  @name
end

Instance Method Details

#field(name, type: :string, default: nil, readonly: false) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/standard_config/schema.rb', line 79

def field(name, type: :string, default: nil, readonly: false)
  key = name.to_sym
  if @fields.key?(key)
    Kernel.warn("[StandardId::Configuration] Redefining field '#{key}' in scope '#{@name}'. Last definition wins.")
  end
  @fields[key] = FieldDefinition.new(name, type: type, default: default, readonly: readonly)
end