Class: SubDiff::Differ

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/sub_diff/differ.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ Differ

Returns a new instance of Differ.



9
10
11
# File 'lib/sub_diff/differ.rb', line 9

def initialize(builder)
  @builder = builder
end

Instance Attribute Details

#builderObject (readonly)

Returns the value of attribute builder.



7
8
9
# File 'lib/sub_diff/differ.rb', line 7

def builder
  @builder
end

Instance Method Details

#each_diff(*args) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/sub_diff/differ.rb', line 13

def each_diff(*args)
  # Ruby 1.8.7 does not support additional args after * (splat)
  block = args.pop

  string.send(diff_method, args.first) do |match|
    diff = { :match => match, :prefix => $`, :suffix => $' }
    diff[:replacement] = match.sub(*args, &block)
    yield(builder, diff)
  end
end