Class: Plt::Group

Inherits:
Object
  • Object
show all
Defined in:
lib/plt/group.rb

Constant Summary collapse

REGEXP =
%r{//BEGIN_GROUP "(?<name>[^"]+)" ?(?<status>DISABLED|ENABLED)?(?: COLOR=(?<color>\d+))?}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, color, enabled = true) ⇒ Group

Returns a new instance of Group.



5
6
7
8
9
10
# File 'lib/plt/group.rb', line 5

def initialize(name, color, enabled=true)
  @name    = name
  @color   = color
  @enabled = enabled
  @signals = []
end

Instance Attribute Details

#colorObject (readonly)

Returns the value of attribute color.



3
4
5
# File 'lib/plt/group.rb', line 3

def color
  @color
end

#enabledObject (readonly)

Returns the value of attribute enabled.



3
4
5
# File 'lib/plt/group.rb', line 3

def enabled
  @enabled
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/plt/group.rb', line 3

def name
  @name
end

#signalsObject

Returns the value of attribute signals.



3
4
5
# File 'lib/plt/group.rb', line 3

def signals
  @signals
end

Class Method Details

.from_line(line) ⇒ Object



16
17
18
19
20
# File 'lib/plt/group.rb', line 16

def self.from_line(line)
  fail "Cannot parse line #{line}" unless match = line.match(REGEXP)

  new(match[:name], match[:color], match[:status] != "DISABLED")
end

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


14
# File 'lib/plt/group.rb', line 14

def enabled? = enabled

#to_pltObject



30
31
32
33
34
# File 'lib/plt/group.rb', line 30

def to_plt
  "//BEGIN_GROUP \"#{name}\" #{enabled? ? "ENABLED" : "DISABLED"}#{color ? " COLOR=#{color}" : ""}\n" +
  signals.map { "#{_1.to_plt(enabled?)}\n" }.join +
  "//END_GROUP"
end

#to_sObject



22
23
24
25
26
27
28
# File 'lib/plt/group.rb', line 22

def to_s
  "Group \"#{name}\"" +
    (enabled? ? "" : " (disabled)") +
    "\n" +
    signals.map { "  #{_1}" }.join("\n") +
    "\n"
end