Class: Brujula::Scheme

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, options = {}, block = nil) ⇒ Scheme

Returns a new instance of Scheme.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/brujula/scheme.rb', line 8

def initialize(klass, options = {}, block = nil)
  @klass               = klass
  @options             = options
  @keys                = {}
  @typed               = !!options[:typed]
  @default_type        = options[:default_type] || :string
  @allow_any           = !!options[:allow_any]

  if options[:as]
    block = Brujula::Raml::V1_0.const_get(
      Inflecto.camelize(options[:as])
    ).block
  end

  instance_exec(&block)
end

Instance Attribute Details

#allow_anyObject (readonly) Also known as: allow_any?

Returns the value of attribute allow_any.



3
4
5
# File 'lib/brujula/scheme.rb', line 3

def allow_any
  @allow_any
end

#default_typeObject (readonly)

Returns the value of attribute default_type.



3
4
5
# File 'lib/brujula/scheme.rb', line 3

def default_type
  @default_type
end

#keysObject (readonly)

Returns the value of attribute keys.



3
4
5
# File 'lib/brujula/scheme.rb', line 3

def keys
  @keys
end

#referenceObject (readonly)

Returns the value of attribute reference.



3
4
5
# File 'lib/brujula/scheme.rb', line 3

def reference
  @reference
end

#typedObject (readonly) Also known as: typed?

Returns the value of attribute typed.



3
4
5
# File 'lib/brujula/scheme.rb', line 3

def typed
  @typed
end

Instance Method Details

#key_collectionObject



25
26
27
# File 'lib/brujula/scheme.rb', line 25

def key_collection
  @keys.values
end

#typed_keys(type) ⇒ Object

TODO



33
34
35
36
37
# File 'lib/brujula/scheme.rb', line 33

def typed_keys(type) # TODO
  keys.values.select do |brujula_key|
    brujula_key.valid_for_type?(type)
  end
end

#validate_data!(data) ⇒ Object



29
30
31
# File 'lib/brujula/scheme.rb', line 29

def validate_data!(data)
  valid_keys?(data) || raise(Brujula::Raml::RequiredProperty) # && enough_data?(data))
end