Class: Dap::Factory
- Inherits:
-
Object
- Object
- Dap::Factory
- Defined in:
- lib/dap.rb
Constant Summary collapse
- @@inputs =
{}
- @@outputs =
{}
- @@filters =
{}
Class Method Summary collapse
- .create_filter(args) ⇒ Object
- .create_input(args) ⇒ Object
- .create_output(args) ⇒ Object
- .filters ⇒ Object
- .inputs ⇒ Object
-
.load_filters ⇒ Object
Load filters.
-
.load_inputs ⇒ Object
Load input formats.
- .load_modules ⇒ Object
-
.load_outputs ⇒ Object
Load output formats.
-
.name_from_class(name) ⇒ Object
Create nice-looking filter names from classes Ex: FilterHTTPDecode => http_decode Ex: FilterLimitLen => limit_len.
- .outputs ⇒ Object
Class Method Details
.create_filter(args) ⇒ Object
28 29 30 31 32 |
# File 'lib/dap.rb', line 28 def self.create_filter(args) name = args.shift raise RuntimeError, "Invalid filter plugin: #{name}" unless @@filters[name] @@filters[name].new(args) end |
.create_input(args) ⇒ Object
16 17 18 19 20 |
# File 'lib/dap.rb', line 16 def self.create_input(args) name = args.shift raise RuntimeError, "Invalid input plugin: #{name}" unless @@inputs[name] @@inputs[name].new(args) end |
.create_output(args) ⇒ Object
22 23 24 25 26 |
# File 'lib/dap.rb', line 22 def self.create_output(args) name = args.shift raise RuntimeError, "Invalid output plugin: #{name}" unless @@outputs[name] @@outputs[name].new(args) end |
.filters ⇒ Object
88 89 90 |
# File 'lib/dap.rb', line 88 def self.filters @@filters end |
.inputs ⇒ Object
80 81 82 |
# File 'lib/dap.rb', line 80 def self.inputs @@inputs end |
.load_filters ⇒ Object
Load filters
72 73 74 75 76 77 78 |
# File 'lib/dap.rb', line 72 def self.load_filters Dap::Filter.constants.each do |c| o = Dap::Filter.const_get(c) next unless c.to_s =~ /^Filter/ @@filters[ name_from_class(c) ] = o end end |
.load_inputs ⇒ Object
Load input formats
50 51 52 53 54 55 56 |
# File 'lib/dap.rb', line 50 def self.load_inputs Dap::Input.constants.each do |c| next unless c.to_s =~ /^Input/ o = Dap::Input.const_get(c) @@inputs[ name_from_class(c) ] = o end end |
.load_modules ⇒ Object
92 93 94 95 96 |
# File 'lib/dap.rb', line 92 def self.load_modules self.load_inputs self.load_outputs self.load_filters end |
.load_outputs ⇒ Object
Load output formats
61 62 63 64 65 66 67 |
# File 'lib/dap.rb', line 61 def self.load_outputs Dap::Output.constants.each do |c| o = Dap::Output.const_get(c) next unless c.to_s =~ /^Output/ @@outputs[ name_from_class(c) ] = o end end |
.name_from_class(name) ⇒ Object
Create nice-looking filter names from classes Ex: FilterHTTPDecode => http_decode Ex: FilterLimitLen => limit_len
39 40 41 42 43 44 45 |
# File 'lib/dap.rb', line 39 def self.name_from_class(name) name.to_s.split('::').last. gsub(/([A-Z][a-z])/) { |c| "_#{c[0,1].downcase}#{c[1,1]}" }. gsub(/([a-z][A-Z])/) { |c| "#{c[0,1]}_#{c[1,1].downcase}" }. gsub(/_+/, '_'). sub(/^_(input|filter|output)_/, '').downcase end |
.outputs ⇒ Object
84 85 86 |
# File 'lib/dap.rb', line 84 def self.outputs @@outputs end |