Class: Schema::AttributeRegistry

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

Instance Method Summary collapse

Instance Method Details

#[](index) ⇒ Object



117
118
119
# File 'lib/schema/schema.rb', line 117

def [](index)
  entries[index]
end

#add(name, type, strict = nil) ⇒ Object



133
134
135
136
137
138
# File 'lib/schema/schema.rb', line 133

def add(name, type, strict=nil)
  strict ||= false
  attribute = Schema::Attribute.new(name, type, strict)
  entries << attribute
  attribute
end

#attribute(name) ⇒ Object



149
150
151
# File 'lib/schema/schema.rb', line 149

def attribute(name)
  entries.find { |entry| entry.name == name }
end

#attribute?(name) ⇒ Boolean

Returns:



153
154
155
# File 'lib/schema/schema.rb', line 153

def attribute?(name)
  !attribute(name).nil?
end

#each(&action) ⇒ Object



125
126
127
# File 'lib/schema/schema.rb', line 125

def each(&action)
  entries.each(&action)
end

#each_with_object(obj, &action) ⇒ Object



129
130
131
# File 'lib/schema/schema.rb', line 129

def each_with_object(obj, &action)
  entries.each_with_object(obj, &action)
end

#entriesObject



108
109
110
# File 'lib/schema/schema.rb', line 108

def entries
  @entries ||= []
end

#lengthObject Also known as: count



112
113
114
# File 'lib/schema/schema.rb', line 112

def length
  entries.length
end

#map(&action) ⇒ Object



121
122
123
# File 'lib/schema/schema.rb', line 121

def map(&action)
  entries.map(&action)
end

#register(name, type, strict = nil) ⇒ Object



140
141
142
143
# File 'lib/schema/schema.rb', line 140

def register(name, type, strict=nil)
  remove(name)
  add(name, type, strict)
end

#remove(name) ⇒ Object



145
146
147
# File 'lib/schema/schema.rb', line 145

def remove(name)
  entries.delete_if { |entry| entry.name == name }
end