Sha256: 2e24f89fc41df103289f096b6fcb1125d63c9b8cc12fa91b95302550f3bc2f82

Contents?: true

Size: 921 Bytes

Versions: 3

Compression:

Stored size: 921 Bytes

Contents

require 'forwardable'

module Support::V2
  super_module :Bar do
    include Foo
    include Comparable
    validates 'bar', {:presence => true}
    attr_reader :created_at

    # Defines singleton methods via class << self to provide as a test case for SuperModule
    class << self
      include Forwardable

      def barrable
        @barrable
      end

      def barrable=(value)
        @barrable = value
      end

      def make_barrable
        self.barrable = true
      end
    end

    make_barrable
    def_delegators :@bar, :length

    def initialize
      @bar = bar
      @created_at = Time.now.to_f
    end

    def bar
      'bar'
    end

    # Defines singleton method via a form of eval (class_eval) to provide as a test case for SuperModule
    class_eval do
      def self.bar
        'self.bar'
      end
    end
    
    def <=>(other)
      created_at <=> other.created_at
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
super_module-1.2.2 spec/support/v2/bar.rb
super_module-1.2.1 spec/support/v2/bar.rb
super_module-1.2.0 spec/support/v2/bar.rb