Sha256: 4bb2de0eab15d32054390b90e7cf67169beb05a1815e9843f469b1d1ed2bfa46

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

module Synvert
  class Rewriter
    autoload :Action, 'synvert/rewriter/action'
    autoload :AppendAction, 'synvert/rewriter/action'
    autoload :InsertAction, 'synvert/rewriter/action'
    autoload :InsertAfterAction, 'synvert/rewriter/action'
    autoload :ReplaceWithAction, 'synvert/rewriter/action'
    autoload :RemoveAction, 'synvert/rewriter/action'

    autoload :Instance, 'synvert/rewriter/instance'

    autoload :Scope, 'synvert/rewriter/scope'

    autoload :Condition, 'synvert/rewriter/condition'
    autoload :UnlessExistCondition, 'synvert/rewriter/condition'
    autoload :IfOnlyExistCondition, 'synvert/rewriter/condition'

    autoload :GemSpec, 'synvert/rewriter/gem_spec'

    attr_reader :description

    def initialize(description, &block)
      @description = description
      @block = block
      @assignments = {}
    end

    def set(name, key, value)
      @assignments[name] ||= {}
      @assignments[name][key] = value
    end

    def get(name, key)
      @assignments[name] and @assignments[name][key]
    end

    def process
      self.instance_eval &@block
    end

    def gem_spec(name, version)
      @gem_spec = Rewriter::GemSpec.new(name, version)
    end

    def within_file(file_pattern, &block)
      if @gem_spec.match?
        Rewriter::Instance.new(self, file_pattern, &block).process
      end
    end

    alias within_files within_file
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
synvert-0.0.4 lib/synvert/rewriter.rb