Class: Threatinator::Feed
- Inherits:
-
Object
- Object
- Threatinator::Feed
- Defined in:
- lib/threatinator/feed.rb
Instance Method Summary collapse
- #decoder_builders ⇒ Object
- #fetcher_builder ⇒ Object
- #filter_builders ⇒ Object
-
#initialize(opts = {}) ⇒ Feed
constructor
A new instance of Feed.
- #name ⇒ Object
- #parser_block ⇒ Object
- #parser_builder ⇒ Object
- #provider ⇒ Object
- #validate! ⇒ Object
- #validate_attribute!(name, val, &block) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Feed
Returns a new instance of Feed.
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/threatinator/feed.rb', line 19 def initialize(opts = {}) @provider = opts.delete(:provider) @name = opts.delete(:name) @parser_block = opts.delete(:parser_block) @parser_builder = opts.delete(:parser_builder) @fetcher_builder = opts.delete(:fetcher_builder) @filter_builders = opts.delete(:filter_builders) || [] @decoder_builders = opts.delete(:decoder_builders) || [] validate! end |
Instance Method Details
#decoder_builders ⇒ Object
55 56 57 |
# File 'lib/threatinator/feed.rb', line 55 def decoder_builders @decoder_builders.dup end |
#fetcher_builder ⇒ Object
43 44 45 |
# File 'lib/threatinator/feed.rb', line 43 def fetcher_builder @fetcher_builder end |
#filter_builders ⇒ Object
51 52 53 |
# File 'lib/threatinator/feed.rb', line 51 def filter_builders @filter_builders.dup end |
#name ⇒ Object
35 36 37 |
# File 'lib/threatinator/feed.rb', line 35 def name @name.dup end |
#parser_block ⇒ Object
39 40 41 |
# File 'lib/threatinator/feed.rb', line 39 def parser_block @parser_block end |
#parser_builder ⇒ Object
47 48 49 |
# File 'lib/threatinator/feed.rb', line 47 def parser_builder @parser_builder end |
#provider ⇒ Object
31 32 33 |
# File 'lib/threatinator/feed.rb', line 31 def provider @provider.dup end |
#validate! ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/threatinator/feed.rb', line 59 def validate! validate_attribute!(:provider, @provider) { |x| x.kind_of?(::String) } validate_attribute!(:name, @name) { |x| x.kind_of?(::String) } validate_attribute!(:parser_block, @parser_block) { |x| x.kind_of?(::Proc) } validate_attribute!(:fetcher_builder, @fetcher_builder) { |x| x.kind_of?(::Proc) } validate_attribute!(:parser_builder, @parser_builder) { |x| x.kind_of?(::Proc) } validate_attribute!(:filter_builders, @filter_builders) do |x| x.kind_of?(::Array) && x.all? { |e| e.kind_of?(::Proc) } end validate_attribute!(:decoder_builders, @decoder_builders) do |x| x.kind_of?(::Array) && x.all? { |e| e.kind_of?(::Proc) } end end |
#validate_attribute!(name, val, &block) ⇒ Object
76 77 78 79 80 |
# File 'lib/threatinator/feed.rb', line 76 def validate_attribute!(name, val, &block) unless block.call(val) == true raise Threatinator::Exceptions::InvalidAttributeError.new(name, val) end end |