class Hasta::Filters
Defines filters for different S3 path prefixes
Attributes
filters[R]
Public Class Methods
from_file(file)
click to toggle source
# File lib/hasta/filters.rb, line 10 def self.from_file(file) Hasta.logger.debug "Loading data filter file: #{File.expand_path(file)}" new(YAML.load_file(file)) rescue => ex raise ConfigurationError.new, "Failed to load filter configuration file: #{file} - #{ex.message}" end
new(filters)
click to toggle source
# 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
Public Instance Methods
for_s3_uri(target_s3_uri)
click to toggle source
# 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