Class: Graphite::TargetGrammer::Target

Inherits:
SyntaxNode
  • Object
show all
Defined in:
lib/graphite/target_grammer.rb

Instance Method Summary collapse

Methods inherited from SyntaxNode

#text

Instance Method Details

#aliasObject



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/graphite/target_grammer.rb', line 35

def alias
  unless @alias
    e = self.expressions.detect {|e| e.identifier.try(:text) == "alias" }
    if e && e.args && e.args.elements
      alias_val = e.args.elements.last.detect { |e| e.kind_of?(Graphite::TargetGrammer::StringLiteral) }
      unless alias_val.nil?
        @alias = alias_val.text
      end
    end
  end
  @alias
end

#colorObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/graphite/target_grammer.rb', line 23

def color
  unless @color
    e = self.expressions.detect {|e| e.identifier.try(:text) == "color" }
    if e && e.args && e.args.elements
      color_val = e.args.elements.last.detect { |e| e.kind_of?(Graphite::TargetGrammer::StringLiteral)  }
      unless color_val.nil?
        @color = color_val.text
      end
    end
  end
  @color
end

#comment?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/graphite/target_grammer.rb', line 17

def comment?
  elements[0].kind_of?(Graphite::TargetGrammer::Comment)
end

#expression?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/graphite/target_grammer.rb', line 14

def expression?
  elements[0].kind_of?(Graphite::TargetGrammer::Expression)
end

#expressionsObject



66
67
68
69
70
71
# File 'lib/graphite/target_grammer.rb', line 66

def expressions
  unless @expressions
    @expressions = self.find_all { |e| e.kind_of?(Graphite::TargetGrammer::Expression) }
  end
  @expressions
end

#functionsObject



60
61
62
63
64
65
# File 'lib/graphite/target_grammer.rb', line 60

def functions
  unless @functions
    @functions = self.expressions.map { |e| e.identifier.text }
  end
  @functions
end

#metricObject



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/graphite/target_grammer.rb', line 47

def metric
  unless @metric
    @metric = if path?
      self.elements[0].text
    else
      path = self.detect { |e| e.kind_of?(Graphite::TargetGrammer::Path) }
      unless path.nil?
        path.text
      end
    end
  end
  @metric
end

#path?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/graphite/target_grammer.rb', line 11

def path?
  elements[0].kind_of?(Graphite::TargetGrammer::Path)
end

#to_modelObject



72
73
74
75
76
77
78
79
# File 'lib/graphite/target_grammer.rb', line 72

def to_model
  Graphite::Target.new do |model|
    model.alias = self.alias
    model.color = self.color
    model.metric = self.metric
    model.functions = self.functions
  end
end

#unknown?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/graphite/target_grammer.rb', line 20

def unknown?
  !path? && !expression?
end