Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/git_stats/core_extensions/hash.rb
Instance Method Summary collapse
- #fill_empty_days!(aggregated: true) ⇒ Object
- #to_key_indexed_array(min_size: 0, default: nil) ⇒ Object
Instance Method Details
#fill_empty_days!(aggregated: true) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/git_stats/core_extensions/hash.rb', line 10 def fill_empty_days!(aggregated: true) return self if empty? self_with_date_keys = transform_keys(&:to_date) days_with_data = self_with_date_keys.keys.sort.uniq prev = 0 days_with_data.first.upto(days_with_data.last) do |day| if days_with_data.include?(day) prev = self_with_date_keys[day] else self[day] = aggregated ? prev : 0 end end self end |
#to_key_indexed_array(min_size: 0, default: nil) ⇒ Object
4 5 6 7 8 |
# File 'lib/git_stats/core_extensions/hash.rb', line 4 def to_key_indexed_array(min_size: 0, default: nil) raise ArgumentError, 'all the keys must be numbers to convert to key indexed array' unless all? { |k, _v| k.is_a? Numeric } each_with_object(Array.new(min_size, default)) { |(k, v), acc| acc[k] = v }.map { |e| e || default } end |