Class: Hasta::Filters
- Inherits:
-
Object
- Object
- Hasta::Filters
- Defined in:
- lib/hasta/filters.rb
Overview
Defines filters for different S3 path prefixes
Class Method Summary collapse
Instance Method Summary collapse
- #for_s3_uri(target_s3_uri) ⇒ Object
-
#initialize(filters) ⇒ Filters
constructor
A new instance of Filters.
Constructor Details
#initialize(filters) ⇒ Filters
Returns a new instance of Filters.
18 19 20 21 22 |
# File 'lib/hasta/filters.rb', line 18 def initialize(filters) @filters = filters.map { |s3_uri, regexes| [S3URI.parse(s3_uri), Filter.new(*regexes.map { |regex| Regexp.new(regex) }) ] }.sort_by { |s3_uri, regexes| s3_uri.depth }.reverse end |
Class Method Details
.from_file(file) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/hasta/filters.rb', line 10 def self.from_file(file) Hasta.logger.debug "Loading data filter file: #{File.(file)}" new(YAML.load_file(file)) rescue => ex raise ConfigurationError.new, "Failed to load filter configuration file: #{file} - #{ex.}" end |
Instance Method Details
#for_s3_uri(target_s3_uri) ⇒ Object
24 25 26 27 28 |
# File 'lib/hasta/filters.rb', line 24 def for_s3_uri(target_s3_uri) if match = filters.find { |s3_uri, filter| target_s3_uri.start_with?(s3_uri) } match[1] end end |