Sha256: df6f56aaa731feb288ace869d542ff3686bf4ad59e637d6a6b2c027364c2e336

Contents?: true

Size: 701 Bytes

Versions: 9

Compression:

Stored size: 701 Bytes

Contents

require "metamorpher/builders/ast"

module Metamorpher
  module Builders
    module Ruby
      class UppercaseRewriter
        include Metamorpher::Rewriter
        include Metamorpher::Builders::AST

        def pattern
          builder.VARIABLE_TO_BE { |v| v.name && v.name.to_s[/^[A-Z_]*$/] }
        end

        def replacement
          builder.derivation!(:variable_to_be) do |variable_to_be, builder|
            name = variable_to_be.name.to_s

            if name.end_with?("_")
              builder.greedy_variable! name.chomp("_").downcase.to_sym
            else
              builder.variable! name.downcase.to_sym
            end
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
metamorpher-0.2.6 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.5 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.4 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.3 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.2 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.1 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.2.0 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.1.1 lib/metamorpher/builders/ruby/uppercase_rewriter.rb
metamorpher-0.1.0 lib/metamorpher/builders/ruby/uppercase_rewriter.rb