Class: Diff::LCS::Block
- Defined in:
- lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb
Overview
A block is an operation removing, adding, or changing a group of items. Basically, this is just a list of changes, where each change adds or deletes a single item. Used by bin/ldiff.
Instance Attribute Summary collapse
-
#changes ⇒ Object
readonly
Returns the value of attribute changes.
-
#insert ⇒ Object
readonly
Returns the value of attribute insert.
-
#remove ⇒ Object
readonly
Returns the value of attribute remove.
Instance Method Summary collapse
- #diff_size ⇒ Object
-
#initialize(chunk) ⇒ Block
constructor
A new instance of Block.
- #op ⇒ Object
Constructor Details
#initialize(chunk) ⇒ Block
Returns a new instance of Block.
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 23 def initialize(chunk) @changes = [] @insert = [] @remove = [] chunk.each do |item| @changes << item @remove << item if item.deleting? @insert << item if item.adding? end end |
Instance Attribute Details
#changes ⇒ Object (readonly)
Returns the value of attribute changes.
21 22 23 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 21 def changes @changes end |
#insert ⇒ Object (readonly)
Returns the value of attribute insert.
21 22 23 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 21 def insert @insert end |
#remove ⇒ Object (readonly)
Returns the value of attribute remove.
21 22 23 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 21 def remove @remove end |
Instance Method Details
#diff_size ⇒ Object
35 36 37 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 35 def diff_size @insert.size - @remove.size end |
#op ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb', line 39 def op case [@remove.empty?, @insert.empty?] when [false, false] '!' when [false, true] '-' when [true, false] '+' else # [true, true] '^' end end |