Class: Arachni::UI::Web::AddonManager
- Includes:
- Utilities
- Defined in:
- lib/arachni/ui/web/addon_manager.rb
Overview
Add-on manager.
Defined Under Namespace
Classes: Addon, RestrictedComponentManager
Instance Method Summary collapse
-
#available ⇒ Array
Gets all available add-ons.
-
#by_name(name) ⇒ Hash
Gets add-on info by name.
-
#enable!(addons) ⇒ Object
Enables and runs add-ons.
-
#enabled ⇒ Array
Gets all enabled add-ons.
-
#initialize(opts, settings) ⇒ AddonManager
constructor
A new instance of AddonManager.
-
#run(addons) ⇒ Object
Runs addons.
- #running ⇒ Object
Methods included from Utilities
#escape, #escape_hash, #parse_datetime, #remove_proto, #unescape, #unescape_hash
Constructor Details
#initialize(opts, settings) ⇒ AddonManager
Returns a new instance of AddonManager.
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 179 def initialize( opts, settings ) @opts = opts @settings = settings lib = @opts.dir['lib'] + 'ui/web/addons/' @@manager ||= RestrictedComponentManager.new( lib, Addons ) @@running ||= {} DataMapper::setup( :default, "sqlite3://#{@settings.db}/default.db" ) DataMapper.finalize Addon.auto_upgrade! run( enabled ) end |
Instance Method Details
#available ⇒ Array
Gets all available add-ons.
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 237 def available @@available ||= populate_available @@available.each { |addon| if @@running[addon['filename']] && !@@running[addon['filename']].title.empty? addon['title'] = @@running[addon['filename']].title else addon['title'] = addon['name'] end } return @@available end |
#by_name(name) ⇒ Hash
Gets add-on info by name.
227 228 229 230 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 227 def by_name( name ) available.each { |addon| return addon if addon['filename'] == name } return nil end |
#enable!(addons) ⇒ Object
Enables and runs add-ons.
258 259 260 261 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 258 def enable!( addons ) Addon.all.destroy addons.each { |addon| Addon.create( :name => addon ); run( [addon] ) } end |
#enabled ⇒ Array
Gets all enabled add-ons.
268 269 270 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 268 def enabled Addon.all.map { |addon| addon.name } end |
#run(addons) ⇒ Object
Runs addons.
201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 201 def run( addons ) begin addons.each { |name| @@running[name] = @@manager[name].new( @settings, name ) @@running[name].run } rescue ::Exception => e # ap e.to_s # ap e.backtrace end end |
#running ⇒ Object
216 217 218 |
# File 'lib/arachni/ui/web/addon_manager.rb', line 216 def running @@running end |