Sha256: f8c606d9c9416e219bfbc4e3131b431a9d4aa804e9f1a97557a301a828b0fd88

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

module VER
  class Text
    class Range < Struct.new(:buffer, :first, :last)
      def change
        kill
        buffer.minor_mode(:control, :insert)
      end

      def copy
        buffer.with_register{|reg| reg.value = get }
      end

      def count(*options)
        buffer.count(*self, *options)
      end

      def delete(*indices)
        buffer.delete(*self, *indices)
      end

      def dump(*options)
        buffer.dump(*options, *self)
      end

      def encode_rot13!(record = buffer)
        record.replace(*self, get.tr('A-Ma-mN-Zn-z', 'N-Zn-zA-Ma-m'))
      end

      def first=(index)
        self[:first] = index.is_a?(Index) ? index : buffer.index(index)
      end

      def get
        buffer.get(*self)
      end

      def inspect
        "#<VER::Text::Range %s on %p>" % ["(#{first}..#{last})", buffer]
      end

      def kill
        copy
        delete
      end

      def last=(index)
        self[:last] = index.is_a?(Index) ? index : buffer.index(index)
      end

      def lower_case!(record = buffer)
        record.replace(*self, get.downcase)
      end
      alias downcase! lower_case!

      def replace(*args)
        buffer.replace(first, last, *args)
      end

      def to_a
        [first, last]
      end

      def toggle_case!(record = buffer)
        record.replace(*self, get.tr('a-zA-Z', 'A-Za-z'))
      end
      # alias needed?

      def upper_case!(record = buffer)
        record.replace(*self, get.upcase)
      end
      alias upcase! upper_case!
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ver-2010.08 lib/ver/text/range.rb