Class: Brujula::Key

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(expression, options) ⇒ Key

Returns a new instance of Key.



9
10
11
12
13
14
15
16
17
# File 'lib/brujula/key.rb', line 9

def initialize(expression, options)
  @expression       = expression
  @name             = expression.to_s
  @options          = options
  @required         = !!options[:required]
  @referrable       = !!options[:referrable]
  @for_types        = options[:for_types] || []
  @data_transformer = options[:data_transformer]
end

Instance Attribute Details

#data_transformerObject (readonly)

Returns the value of attribute data_transformer.



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

def data_transformer
  @data_transformer
end

#expressionObject (readonly)

Returns the value of attribute expression.



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

def expression
  @expression
end

#for_typesObject (readonly)

Returns the value of attribute for_types.



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

def for_types
  @for_types
end

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



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

def options
  @options
end

#referrableObject (readonly) Also known as: referrable?

Returns the value of attribute referrable.



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

def referrable
  @referrable
end

#requiredObject (readonly) Also known as: required?

Returns the value of attribute required.



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

def required
  @required
end

Instance Method Details

#accessor_nameObject



19
20
21
# File 'lib/brujula/key.rb', line 19

def accessor_name
  options[:accessor] || expression
end

#basic_type?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/brujula/key.rb', line 37

def basic_type?
  basic_types.include?(options[:as])
end

#basic_typesObject



41
42
43
# File 'lib/brujula/key.rb', line 41

def basic_types
  %i( any array boolean markdown media_type number string uri_template )
end

#fixed?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/brujula/key.rb', line 23

def fixed?
  expression.is_a?(Symbol)
end

#matches?(key_name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/brujula/key.rb', line 27

def matches?(key_name)
  !(expression =~ key_name).nil?
end

#valid_for_type?(type) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
# File 'lib/brujula/key.rb', line 31

def valid_for_type?(type)
  return true if for_types.empty?

  for_types.include?(type)
end