class Leafy::Schema

Public Class Methods

dump(schema) click to toggle source
# File lib/leafy/schema.rb, line 37
def self.dump(schema)
  JSON.dump(schema.serializable_hash)
end
load(data) click to toggle source
# File lib/leafy/schema.rb, line 41
def self.load(data)
  Schema.new(JSON.parse(data))
end
new(fields = []) click to toggle source
# File lib/leafy/schema.rb, line 16
def initialize(fields = [])
  @fields = fields.map { |field| Leafy::Field.new(field) }
end

Public Instance Methods

<<(field)
Alias for: push
[](identifier) click to toggle source
# File lib/leafy/schema.rb, line 24
def [](identifier)
  @fields.find { |f| f.id == identifier }
end
each() { |i| ... } click to toggle source
# File lib/leafy/schema.rb, line 8
def each
  if block_given?
    @fields.each { |i| yield i }
  else
    @fields.each
  end
end
ids() click to toggle source
# File lib/leafy/schema.rb, line 20
def ids
  @fields.map(&:id)
end
push(field) click to toggle source
# File lib/leafy/schema.rb, line 28
def push(field)
  raise(ArgumentError, "is not a field") unless field.is_a?(Leafy::Field)
  @fields << field
end
Also aliased as: <<
serializable_hash() click to toggle source
# File lib/leafy/schema.rb, line 33
def serializable_hash
  @fields.map(&:serializable_hash)
end