Sha256: 3236c54809fd08dbe5c721c6a65bb324f34a6b0bc85fc67563cde1b081aeec94

Contents?: true

Size: 551 Bytes

Versions: 1

Compression:

Stored size: 551 Bytes

Contents

require 'forwardable'
require 'sub_diff/diff_collection'
require 'sub_diff/differ'
require 'sub_diff/gsub'

module SubDiff
  class DiffBuilder < Struct.new(:string, :type)
    extend Forwardable

    def_delegators :instance, :diff

    private

    def instance
      builder.new(differ)
    end

    def builder
      Module.nesting.last.const_get(constant)
    end

    def constant
      type.to_s.capitalize
    end

    def differ
      Differ.new(collection, type)
    end

    def collection
      DiffCollection.new(string)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sub_diff-1.0.0 lib/sub_diff/diff_builder.rb