Class: RBoss::MBean
- Inherits:
-
Object
- Object
- RBoss::MBean
- Defined in:
- lib/rboss/twiddle/mbean.rb
Constant Summary collapse
- @@__detail__resourced__ =
proc do |resources, &block| resouces = parse_resource resources details = {} resouces.each do |resource| with resource do details[resource] = {} @properties.each do |property| details[resource][property] = self[property].value end end end details.each &block if block details end
- @@__detail__ =
proc do |&block| details = {} @properties.each do |property| details[property] = self[property].value end details.each &block if block details end
Instance Attribute Summary collapse
-
#description ⇒ Object
Returns the value of attribute description.
-
#pattern ⇒ Object
readonly
Returns the value of attribute pattern.
-
#resource ⇒ Object
Returns the value of attribute resource.
-
#twiddle ⇒ Object
Returns the value of attribute twiddle.
Instance Method Summary collapse
- #[](property) ⇒ Object
- #[]=(property, value) ⇒ Object
-
#initialize(params) ⇒ MBean
constructor
A new instance of MBean.
- #invoke(method, *args, &block) ⇒ Object
- #name ⇒ Object
- #parse_resource(resources) ⇒ Object
- #query(query, &block) ⇒ Object
- #with(resource) ⇒ Object
Constructor Details
#initialize(params) ⇒ MBean
Returns a new instance of MBean.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/rboss/twiddle/mbean.rb', line 55 def initialize params @pattern = params[:pattern] @twiddle = params[:twiddle] @properties = params[:properties] @description = params[:description] if params[:scan] ( class << self self end).send :define_method, :scan, ¶ms[:scan] ( class << self self end).send :define_method, :each do |&block| scan.each &block end end if params[:properties] ( class << self self end).send :define_method, :detail, &(params[:scan] ? @@__detail__resourced__ : @@__detail__) end end |
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
29 30 31 |
# File 'lib/rboss/twiddle/mbean.rb', line 29 def description @description end |
#pattern ⇒ Object (readonly)
Returns the value of attribute pattern.
28 29 30 |
# File 'lib/rboss/twiddle/mbean.rb', line 28 def pattern @pattern end |
#resource ⇒ Object
Returns the value of attribute resource.
29 30 31 |
# File 'lib/rboss/twiddle/mbean.rb', line 29 def resource @resource end |
#twiddle ⇒ Object
Returns the value of attribute twiddle.
29 30 31 |
# File 'lib/rboss/twiddle/mbean.rb', line 29 def twiddle @twiddle end |
Instance Method Details
#[](property) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/rboss/twiddle/mbean.rb', line 104 def [] property resource = @resource query = eval("\"#{pattern}\"") result = @twiddle.execute(:get, query, property) def result.value self.split( /=/, 2)[1] end result end |
#[]=(property, value) ⇒ Object
116 117 118 119 120 |
# File 'lib/rboss/twiddle/mbean.rb', line 116 def []= property, value resource = @resource query = eval("\"#{pattern}\"") @twiddle.execute :set, query, property, value end |
#invoke(method, *args, &block) ⇒ Object
122 123 124 125 126 127 128 129 130 |
# File 'lib/rboss/twiddle/mbean.rb', line 122 def invoke method, *args, &block resource = @resource query = eval("\"#{pattern} #{method}\"") return_value = @twiddle.execute :invoke, query, args if block_given? block.call return_value end return_value end |
#name ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/rboss/twiddle/mbean.rb', line 92 def name if pattern['#{resource}'] and not @resource domain, name = pattern.split ':' name.gsub! /[^,]+\{resource\}/, '' name << "," if name.empty? name << "*" return "#{domain}:#{name}" end resource = @resource eval("\"#{pattern}\"") end |
#parse_resource(resources) ⇒ Object
139 140 141 142 143 |
# File 'lib/rboss/twiddle/mbean.rb', line 139 def parse_resource resources return scan if resources == :all return [resources] unless resources.respond_to? :each resources end |
#query(query, &block) ⇒ Object
132 133 134 135 136 137 |
# File 'lib/rboss/twiddle/mbean.rb', line 132 def query query, &block result = @twiddle.execute(:query, query) return [] unless result result = result.split /\s+/ block ? result.collect(&block) : result end |
#with(resource) ⇒ Object
83 84 85 86 87 88 89 90 |
# File 'lib/rboss/twiddle/mbean.rb', line 83 def with resource @resource = resource if block_given? yield @resource = nil end self end |