Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/git_stats/core_extensions/hash.rb
Instance Method Summary collapse
- #fill_empty_days!(params = {:aggregated => true}) ⇒ Object
- #to_key_indexed_array(params = {}) ⇒ Object
Instance Method Details
#fill_empty_days!(params = {: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!(params = {:aggregated => true}) return self if self.empty? self_with_date_keys = Hash[self.map { |k, v| [k.to_date, v] }] 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] = params[:aggregated] ? prev : 0 end end self end |
#to_key_indexed_array(params = {}) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/git_stats/core_extensions/hash.rb', line 3 def to_key_indexed_array(params = {}) raise ArgumentError.new('all the keys must be numbers to convert to key indexed array') unless all? { |k, v| k.is_a? Numeric } min_size = params[:min_size] || 0 default = params[:default] inject(Array.new(min_size, default)) { |acc, (k, v)| acc[k] = v; acc }.map { |e| e || default } end |