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
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