Sha256: 591e8567122dd4c0167948db1223c72bc53fe04225a0e5ad533a7bd8b56a92a6

Contents?: true

Size: 538 Bytes

Versions: 1

Compression:

Stored size: 538 Bytes

Contents

require 'forwardable'
require 'sub_diff/collection'
require 'sub_diff/differ'
require 'sub_diff/gsub'

module SubDiff
  class Builder < 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
      Collection.new(string)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sub_diff-1.0.1 lib/sub_diff/builder.rb