Class: Microstation::Capabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/microstation/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, variable) ⇒ Capabilities

Returns a new instance of Capabilities.



5
6
7
8
9
# File 'lib/microstation/configuration.rb', line 5

def initialize(config, variable)
  @config = config
  @variable = variable
  @capabilities = get_capabilities
end

Instance Attribute Details

#capabilitiesObject (readonly)

Returns the value of attribute capabilities.



3
4
5
# File 'lib/microstation/configuration.rb', line 3

def capabilities
  @capabilities
end

#variableObject (readonly)

Returns the value of attribute variable.



3
4
5
# File 'lib/microstation/configuration.rb', line 3

def variable
  @variable
end

Instance Method Details

#disable(name) ⇒ Object



57
58
59
60
61
62
63
64
65
66
# File 'lib/microstation/configuration.rb', line 57

def disable(name)
  return if disabled?(name) && !enabled?(name)

  capa = remove_prefix(name)
  capabilities.delete("+#{name}")
  @capabilities.unshift("-#{capa}")
  write_configuration
  get_capabilities
  self
end

#disabledObject



23
24
25
# File 'lib/microstation/configuration.rb', line 23

def disabled
  @capabilities.select { |c| c.start_with?("-") }
end

#disabled?(name) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
# File 'lib/microstation/configuration.rb', line 32

def disabled?(name)
  capa = remove_prefix(name)
  @capabilities.any? { |c| c == "-#{capa}" }
end

#enable(name) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/microstation/configuration.rb', line 46

def enable(name)
  return if enabled?(name) && !disabled?(name)

  capa = remove_prefix(name)
  @capabilities.delete("-#{capa}")
  @capabilities.unshift("+#{capa}")
  write_configuration
  get_capabilities
  self
end

#enabledObject



19
20
21
# File 'lib/microstation/configuration.rb', line 19

def enabled
  @capabilities.select { |c| c.start_with?("+") }
end

#enabled?(name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/microstation/configuration.rb', line 27

def enabled?(name)
  capa = remove_prefix(name)
  @capabilities.any? { |c| c == "+#{capa}" }
end

#get_capabilitiesObject



11
12
13
# File 'lib/microstation/configuration.rb', line 11

def get_capabilities
  @capabilities = @config[variable].split(";")
end

#prepend(value) ⇒ Object



42
43
44
# File 'lib/microstation/configuration.rb', line 42

def prepend(value)
  @config.prepend(variable, value)
end

#remove_prefix(name) ⇒ Object



68
69
70
71
# File 'lib/microstation/configuration.rb', line 68

def remove_prefix(name)
  name = Regexp.last_match(1) if name =~ /[+-](.+)/
  name
end

#search(name) ⇒ Object



15
16
17
# File 'lib/microstation/configuration.rb', line 15

def search(name)
  @capabilities.select { |c| c =~ Regexp.new(Regexp.escape(name), Regexp::IGNORECASE) }
end

#write_configurationObject



37
38
39
40
# File 'lib/microstation/configuration.rb', line 37

def write_configuration
  caps = @capabilities.uniq.join(";")
  @config.set!(variable, caps)
end