class SubDiff::Builder

Performs a {Sub} or {Gsub} replacement and returns the resulting {Collection} of {Diff} objects.

Used internally by {CoreExt::String#sub_diff} and {CoreExt::String#gsub_diff}.

@api private

Attributes

diff_method[R]
string[R]

Public Class Methods

new(string, diff_method) click to toggle source
   # File lib/sub_diff/builder.rb
11 def initialize(string, diff_method)
12   @string = string
13   @diff_method = diff_method
14 end

Public Instance Methods

<<(*args)
Alias for: push
diff(*args, &block) click to toggle source
   # File lib/sub_diff/builder.rb
16 def diff(*args, &block)
17   build_diff_collection do
18     adapter.diff(*args, &block)
19   end
20 end
push(*args) click to toggle source
   # File lib/sub_diff/builder.rb
22 def push(*args)
23   if args.compact.any?
24     diff = Diff.new(*args)
25     collection.push(diff)
26   end
27 end
Also aliased as: <<

Private Instance Methods

adapter() click to toggle source
   # File lib/sub_diff/builder.rb
40 def adapter
41   @adapter ||= Adapter.new(self)
42 end
build_diff_collection(&block) click to toggle source
   # File lib/sub_diff/builder.rb
32 def build_diff_collection(&block)
33   collection.reset(&block).dup
34 end
collection() click to toggle source
   # File lib/sub_diff/builder.rb
36 def collection
37   @collection ||= Collection.new(string)
38 end
differ() click to toggle source
   # File lib/sub_diff/builder.rb
44 def differ
45   @differ ||= Differ.new(self)
46 end