Class Ohcount::LocDeltaList
In: lib/ohcount/loc_delta_list.rb
Parent: Object

Tracks changes to lines of code, comments, and blanks for multiple languages

Methods

Attributes

loc_deltas  [RW] 

Public Class methods

[Source]

# File lib/ohcount/loc_delta_list.rb, line 6
                def initialize(loc_deltas=[])
                        @loc_deltas = loc_deltas
                end

Public Instance methods

[Source]

# File lib/ohcount/loc_delta_list.rb, line 18
                def +(addend)
                        case addend
                        when LocDelta
                                add_loc_delta(addend)
                        else
                                raise ArgumentError.new
                        end
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 82
                def ==(b)
                        return false unless b
                        return false unless languages == b.languages

                        self.languages.each do |l|
                                return false unless self.loc_delta(l) == b.loc_delta(l)
                        end
                        true
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 27
                def add_loc_delta(addend)
                        existing = loc_delta(addend.language)
                        if existing
                                existing += addend
                        else
                                @loc_deltas << addend
                        end
                        self
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 53
                def blanks_added
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.blanks_added }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 57
                def blanks_removed
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.blanks_removed }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 37
                def code_added
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.code_added }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 41
                def code_removed
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.code_removed }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 45
                def comments_added
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.comments_added }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 49
                def comments_removed
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.comments_removed }
                end

Returns a new LocDeltaList excluding all languages that have no changes

[Source]

# File lib/ohcount/loc_delta_list.rb, line 78
                def compact
                        LocDeltaList.new(@loc_deltas.reject { |delta| !delta.changed? })
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 14
                def languages
                        @loc_deltas.collect { |loc_delta| loc_delta.language }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 10
                def loc_delta(language)
                        @loc_deltas.find { |loc_delta| loc_delta.language == language }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 69
                def net_blanks
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.net_blanks }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 61
                def net_code
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.net_code }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 65
                def net_comments
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.net_comments }
                end

[Source]

# File lib/ohcount/loc_delta_list.rb, line 73
                def net_total
                        @loc_deltas.inject(0) { |sum, delta| sum + delta.net_total }
                end

[Validate]