Class: Microstation::Capabilities
- Inherits:
-
Object
- Object
- Microstation::Capabilities
- Defined in:
- lib/microstation/configuration.rb
Instance Attribute Summary collapse
-
#capabilities ⇒ Object
readonly
Returns the value of attribute capabilities.
-
#variable ⇒ Object
readonly
Returns the value of attribute variable.
Instance Method Summary collapse
- #disable(name) ⇒ Object
- #disabled ⇒ Object
- #disabled?(name) ⇒ Boolean
- #enable(name) ⇒ Object
- #enabled ⇒ Object
- #enabled?(name) ⇒ Boolean
- #get_capabilities ⇒ Object
-
#initialize(config, variable) ⇒ Capabilities
constructor
A new instance of Capabilities.
- #prepend(value) ⇒ Object
- #remove_prefix(name) ⇒ Object
- #search(name) ⇒ Object
- #write_configuration ⇒ Object
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
#capabilities ⇒ Object (readonly)
Returns the value of attribute capabilities.
3 4 5 |
# File 'lib/microstation/configuration.rb', line 3 def capabilities @capabilities end |
#variable ⇒ Object (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 |
#disabled ⇒ Object
23 24 25 |
# File 'lib/microstation/configuration.rb', line 23 def disabled @capabilities.select { |c| c.start_with?("-") } end |
#disabled?(name) ⇒ 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 |
#enabled ⇒ Object
19 20 21 |
# File 'lib/microstation/configuration.rb', line 19 def enabled @capabilities.select { |c| c.start_with?("+") } end |
#enabled?(name) ⇒ 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_capabilities ⇒ Object
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_configuration ⇒ Object
37 38 39 40 |
# File 'lib/microstation/configuration.rb', line 37 def write_configuration caps = @capabilities.uniq.join(";") @config.set!(variable, caps) end |