Sha256: f9954c09d3ae7d25abd039ea57486c8c8bc22c3e3cad40f3333e4b00bd25a78b

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

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

    autoload :Instances, 'synvert/rewriter/instances'

    autoload :Scopes, 'synvert/rewriter/scopes'
    autoload :Scope, 'synvert/rewriter/scopes'

    autoload :Conditions, 'synvert/rewriter/conditions'
    autoload :Condition, 'synvert/rewriter/conditions'
    autoload :UnlessExistCondition, 'synvert/rewriter/conditions'

    attr_reader :description, :version, :instances

    def initialize(description, &block)
      @description = description
      @instances = Instances.new
      instance_eval &block if block_given?
    end

    def process
      @instances.process
    end

    def from_version(version)
      @version = Version.from_string(version)
    end

    def within_file(file, &block)
      @instances.add(file, &block)
    end

    def within_files(files, &block)
      @instances.add(files, &block)
    end

    class Version
      def self.from_string(version)
        self.new *version.split('.')
      end

      def initialize(major, minor, patch)
        @major = major
        @minor = minor
        @patch = patch
      end

      def to_s
        [@major, @minor, @patch].join('.')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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