Sha256: a498f224a090639e958bfd79daa06e46d1e3b3d61df05ce429a7a7ae7acb8abe

Contents?: true

Size: 918 Bytes

Versions: 7

Compression:

Stored size: 918 Bytes

Contents

# -*- coding: utf-8 -*-


require_relative 'helper'


class TestUniversalAccessor < Test::Unit::TestCase

  class Accessor

    attr_accessor :val

    attr_reader :args

    def args= (*args)
      @args = args
    end

    universal_accessor :val, :args

  end# Accessor

  def accessor (*args)
    Accessor.new *args
  end

  def test_accessor ()
    a = accessor
    assert_equal nil, a.val

    a.val 1
    assert_equal 1, a.val
    assert_equal 2, a.val(2)

    a.val = 3
    assert_equal 3, a.val
  end

  def test_accessor_splat_args ()
    a = accessor

    a.args =   1, 2, 3;  assert_equal [[1, 2, 3]], a.args
    a.args =  [1, 2, 3]; assert_equal [[1, 2, 3]], a.args
    a.args = *[1, 2, 3]; assert_equal [[1, 2, 3]], a.args

    assert_equal  [1, 2, 3],  a.args(  1, 2, 3)
    assert_equal [[1, 2, 3]], a.args( [1, 2, 3])
    assert_equal  [1, 2, 3],  a.args(*[1, 2, 3])
  end

end# TestUniversalAccessor

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
xot-0.1.21 test/test_universal_accessor.rb
xot-0.1.20 test/test_universal_accessor.rb
xot-0.1.19 test/test_universal_accessor.rb
xot-0.1.16 test/test_universal_accessor.rb
xot-0.1.15 test/test_universal_accessor.rb
xot-0.1.14 test/test_universal_accessor.rb
xot-0.1.13 test/test_universal_accessor.rb