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.



7
8
9
10
11
# File 'lib/microstation/configuration.rb', line 7

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

Instance Attribute Details

#capabilitiesObject (readonly)

Returns the value of attribute capabilities.



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

def capabilities
  @capabilities
end

#variableObject (readonly)

Returns the value of attribute variable.



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

def variable
  @variable
end

Instance Method Details

#disable(name) ⇒ Object



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

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



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

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

#disabled?(name) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
# File 'lib/microstation/configuration.rb', line 35

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

#enable(name) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/microstation/configuration.rb', line 49

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



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

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

#enabled?(name) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
# File 'lib/microstation/configuration.rb', line 30

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

#get_capabilitiesObject



13
14
15
# File 'lib/microstation/configuration.rb', line 13

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

#prepend(value) ⇒ Object



45
46
47
# File 'lib/microstation/configuration.rb', line 45

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

#remove_prefix(name) ⇒ Object



69
70
71
72
73
74
# File 'lib/microstation/configuration.rb', line 69

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

#search(name) ⇒ Object



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

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

#write_configurationObject



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

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