Sha256: cf3c4ff3c6baedb3ce5c0ef6e9ef5c46af62f11c3e5b35b83fe8979ce8ccf35a

Contents?: true

Size: 581 Bytes

Versions: 5

Compression:

Stored size: 581 Bytes

Contents

module Numerals

  class FormattingAspect

    def [](*args)
      set *args
    end

    def self.[](*args)
      new *args
    end

    def set(*args)
      dup.set! *args
    end

    def self.aspect(aspect, &blk)
      define_method :"set_#{aspect}!" do |*args|
        instance_exec(*args, &blk)
        self
      end
      define_method :"set_#{aspect}" do |*args|
        dup.send(:"set_#{aspect}!", *args)
      end
    end

    def self.set(*args, &blk)
      define_method :"set!" do |*args|
        instance_exec(*args, &blk)
        self
      end
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
numerals-0.3.1 lib/numerals/formatting_aspect.rb
numerals-0.3.0 lib/numerals/formatting_aspect.rb
numerals-0.2.1 lib/numerals/formatting_aspect.rb
numerals-0.2.0 lib/numerals/formatting_aspect.rb
numerals-0.1.0 lib/numerals/formatting_aspect.rb