Class: Habaki::Declaration

Inherits:
Node
  • Object
show all
Defined in:
lib/habaki/declaration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#to_s

Constructor Details

#initialize(property = nil, important = false) ⇒ Declaration

Returns a new instance of Declaration.



13
14
15
16
17
# File 'lib/habaki/declaration.rb', line 13

def initialize(property = nil, important = false)
  @property = property
  @important = important
  @values = Values.new
end

Instance Attribute Details

#importantBoolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/habaki/declaration.rb', line 8

def important
  @important
end

#positionSourcePosition

Returns:



11
12
13
# File 'lib/habaki/declaration.rb', line 11

def position
  @position
end

#propertyString

Returns:



4
5
6
# File 'lib/habaki/declaration.rb', line 4

def property
  @property
end

#valuesValues

Returns:



6
7
8
# File 'lib/habaki/declaration.rb', line 6

def values
  @values
end

Instance Method Details

#checkBoolean

check validity

Returns:

  • (Boolean)


27
28
29
# File 'lib/habaki/declaration.rb', line 27

def check
  Habaki::FormalSyntax::Matcher.new(self).match?
end

#read_from_katana(decl) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Parameters:



40
41
42
43
44
45
# File 'lib/habaki/declaration.rb', line 40

def read_from_katana(decl)
  @property = decl.property.downcase if decl.property
  @important = decl.important
  @values = Values.read_from_katana(decl.values)
  @position = SourcePosition.new(decl.position.line, decl.position.column)
end

#string(format = Formatter::Base.new) ⇒ String

Parameters:

Returns:



33
34
35
# File 'lib/habaki/declaration.rb', line 33

def string(format = Formatter::Base.new)
  "#{format.declaration_prefix}#{@property}: #{@values.string(format)}#{important_string}"
end

#valueValue

shortcut to first value

Returns:



21
22
23
# File 'lib/habaki/declaration.rb', line 21

def value
  @values.first
end