module CIMI::Model::Schema::DSL

The DSL

Requires that the class into which this is included has a add_attributes! method

Public Instance Methods

array(name, opts={}, &block) click to toggle source
# File lib/cimi/models/schema.rb, line 444
def array(name, opts={}, &block)
  add_attributes!([name, opts], Array, &block)
end
collection(name, opts={}) click to toggle source
# File lib/cimi/models/schema.rb, line 464
def collection(name, opts={})
  opts[:scope] = self
  add_attributes!([name, opts], Collection)
end
hash_map(name) click to toggle source
# File lib/cimi/models/schema.rb, line 460
def hash_map(name)
  add_attributes!([name, {}], Hash)
end
href(*args) click to toggle source
# File lib/cimi/models/schema.rb, line 430
def href(*args)
  opts = args.extract_opts!
  args.each { |arg| struct(arg, opts) { scalar :href, :required => opts[:required] } }
end
ref(name, opts={}) click to toggle source
# File lib/cimi/models/schema.rb, line 452
def ref(name, opts={})
  unless opts[:class]
    s = name.to_s.camelize.gsub(/Config$/, "Configuration")
    opts[:class] = CIMI::Model::const_get(s)
  end
  add_attributes!([name, opts], Ref)
end
scalar(*args) click to toggle source
# File lib/cimi/models/schema.rb, line 440
def scalar(*args)
  add_attributes!(args, Scalar)
end
struct(name, opts={}, &block) click to toggle source
# File lib/cimi/models/schema.rb, line 448
def struct(name, opts={}, &block)
  add_attributes!([name, opts], Struct, &block)
end
text(*args) click to toggle source
# File lib/cimi/models/schema.rb, line 435
def text(*args)
  args.expand_opts!(:text => :nested)
  scalar(*args)
end