Class: MacroObject
- Inherits:
-
Object
- Object
- MacroObject
- Defined in:
- lib/ruby-macrodroid/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
-
#siguid ⇒ Object
readonly
Returns the value of attribute siguid.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#initialize(h = {}) ⇒ MacroObject
constructor
A new instance of MacroObject.
- #to_h ⇒ Object
- #to_s(colour: false, indent: 0) ⇒ Object (also: #to_summary)
Constructor Details
#initialize(h = {}) ⇒ MacroObject
Returns a new instance of MacroObject.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ruby-macrodroid/base.rb', line 18 def initialize(h={}) $env ||= {} @attributes = %i(constraint_list is_or_condition is_disabled siguid) @h = {constraint_list: [], is_or_condition: false, is_disabled: false, siguid: nil}.merge(h) @list = [] # fetch the class name and convert from camelCase to snake_eyes @type = self.class.to_s.sub(/Trigger|Action$/,'')\ .gsub(/\B[A-Z][a-z]/){|x| '_' + x.downcase}\ .gsub(/[a-z][A-Z]/){|x| x[0] + '_' + x[1].downcase}\ .downcase.to_sym @constraints = [] end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
16 17 18 |
# File 'lib/ruby-macrodroid/base.rb', line 16 def @options end |
#siguid ⇒ Object (readonly)
Returns the value of attribute siguid.
15 16 17 |
# File 'lib/ruby-macrodroid/base.rb', line 15 def siguid @siguid end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
15 16 17 |
# File 'lib/ruby-macrodroid/base.rb', line 15 def type @type end |
Instance Method Details
#to_h ⇒ Object
35 36 37 38 39 |
# File 'lib/ruby-macrodroid/base.rb', line 35 def to_h() hashify(@h) end |
#to_s(colour: false, indent: 0) ⇒ Object Also known as: to_summary
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ruby-macrodroid/base.rb', line 45 def to_s(colour: false, indent: 0) h = @h.clone h.delete :macro @s ||= "#<%s %s>" % [self.class, h.inspect] operator = @h[:is_or_condition] ? 'OR' : 'AND' constraints = @constraints.map \ {|x| 'c: ' + x.to_summary(colour: colour)} out = [] out << "; %s" % @h[:comment] if @h[:comment] and @h[:comment].length > 1 #s = @s.lines.map {|x| 'x' + x}.join lines = @s.lines if lines.length > 1 then s = lines[0] + lines[1..-1].map {|x| x.prepend (' ' * (indent+1)) }.join else s = @s end out << s out += constraints out.join("\n") end |