Class: Hyphy::Filters::DurationFilter
- Inherits:
-
AbstractFilter
- Object
- AbstractFilter
- Hyphy::Filters::DurationFilter
- Defined in:
- lib/hyphy/filters/duration_filter.rb
Instance Attribute Summary collapse
-
#duration_max ⇒ Object
readonly
Returns the value of attribute duration_max.
-
#duration_min ⇒ Object
readonly
Returns the value of attribute duration_min.
Attributes inherited from AbstractFilter
Instance Method Summary collapse
- #filter ⇒ Object
-
#initialize(data, opts) ⇒ DurationFilter
constructor
A new instance of DurationFilter.
Constructor Details
#initialize(data, opts) ⇒ DurationFilter
Returns a new instance of DurationFilter.
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/hyphy/filters/duration_filter.rb', line 5 def initialize(data, opts) @duration_min = opts[:duration_min] || 0.0 @duration_max = opts[:duration_max] || Float::INFINITY @benchmark = opts[:benchmark] || false if @benchmark @duration = lambda { |sql_statement| sql_statement.benchmark_time } else @duration = lambda { |sql_statement| sql_statement.duration } end super end |
Instance Attribute Details
#duration_max ⇒ Object (readonly)
Returns the value of attribute duration_max.
3 4 5 |
# File 'lib/hyphy/filters/duration_filter.rb', line 3 def duration_max @duration_max end |
#duration_min ⇒ Object (readonly)
Returns the value of attribute duration_min.
3 4 5 |
# File 'lib/hyphy/filters/duration_filter.rb', line 3 def duration_min @duration_min end |
Instance Method Details
#filter ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/hyphy/filters/duration_filter.rb', line 19 def filter @data.select! do |sql_statement| next unless @duration.call(sql_statement) (@duration_min <= @duration.call(sql_statement)) and (@duration.call(sql_statement) <= @duration_max) end @data.sort_by! { |sql_statement| -sql_statement.duration } end |