dslkit 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +3 -0
 - data/Rakefile +6 -1
 - data/VERSION +1 -1
 - data/lib/dslkit/polite.rb +43 -0
 - data/lib/dslkit/rude.rb +1 -0
 - data/tests/test_common.rb +8 -0
 - data/tests/test_polite.rb +14 -0
 - data/tests/test_rude.rb +12 -0
 - metadata +4 -3
 
    
        data/CHANGES
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -22,9 +22,14 @@ task :test  do 
     | 
|
| 
       22 
22 
     | 
    
         
             
              ruby '-Ilib tests/runner.rb'
         
     | 
| 
       23 
23 
     | 
    
         
             
            end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
            desc "Testing library with coverage"
         
     | 
| 
      
 26 
     | 
    
         
            +
            task :coverage  do
         
     | 
| 
      
 27 
     | 
    
         
            +
              system 'rcov -Ilib tests/test_rude.rb'
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       25 
30 
     | 
    
         
             
            desc "Clean created files"
         
     | 
| 
       26 
31 
     | 
    
         
             
            task :clean do
         
     | 
| 
       27 
     | 
    
         
            -
              %w[doc coverage] 
     | 
| 
      
 32 
     | 
    
         
            +
              rm_rf %w[doc coverage]
         
     | 
| 
       28 
33 
     | 
    
         
             
            end
         
     | 
| 
       29 
34 
     | 
    
         | 
| 
       30 
35 
     | 
    
         
             
            desc "Prepare a release"
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.2. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.2.1
         
     | 
    
        data/lib/dslkit/polite.rb
    CHANGED
    
    | 
         @@ -535,4 +535,47 @@ module DSLKit 
     | 
|
| 
       535 
535 
     | 
    
         
             
                  Thread.critical = old
         
     | 
| 
       536 
536 
     | 
    
         
             
                end
         
     | 
| 
       537 
537 
     | 
    
         
             
              end
         
     | 
| 
      
 538 
     | 
    
         
            +
             
     | 
| 
      
 539 
     | 
    
         
            +
              # This module can be included into modules/classes to make the delegate
         
     | 
| 
      
 540 
     | 
    
         
            +
              # method available.
         
     | 
| 
      
 541 
     | 
    
         
            +
              module Delegate
         
     | 
| 
      
 542 
     | 
    
         
            +
                # A method to easily delegate methods to an object, stored in an
         
     | 
| 
      
 543 
     | 
    
         
            +
                # instance variable or returned by a method call.
         
     | 
| 
      
 544 
     | 
    
         
            +
                #
         
     | 
| 
      
 545 
     | 
    
         
            +
                # It's used like this:
         
     | 
| 
      
 546 
     | 
    
         
            +
                #   class A
         
     | 
| 
      
 547 
     | 
    
         
            +
                #     delegate :method_here, :@obj, :method_there
         
     | 
| 
      
 548 
     | 
    
         
            +
                #   end
         
     | 
| 
      
 549 
     | 
    
         
            +
                # or:
         
     | 
| 
      
 550 
     | 
    
         
            +
                #   class A
         
     | 
| 
      
 551 
     | 
    
         
            +
                #     delegate :method_here, :method_call, :method_there
         
     | 
| 
      
 552 
     | 
    
         
            +
                #   end
         
     | 
| 
      
 553 
     | 
    
         
            +
                #
         
     | 
| 
      
 554 
     | 
    
         
            +
                # _other_method_name_ defaults to method_name, if it wasn't given.
         
     | 
| 
      
 555 
     | 
    
         
            +
                def delegate(method_name, obj, other_method_name = method_name)
         
     | 
| 
      
 556 
     | 
    
         
            +
                  raise ArgumentError, "obj wasn't defined" unless obj
         
     | 
| 
      
 557 
     | 
    
         
            +
            =begin
         
     | 
| 
      
 558 
     | 
    
         
            +
            1.9 only:
         
     | 
| 
      
 559 
     | 
    
         
            +
                  define_method(method_name) do |*args, &block|
         
     | 
| 
      
 560 
     | 
    
         
            +
                    instance_variable_get(obj).__send__(other_method_name, *args, &block)
         
     | 
| 
      
 561 
     | 
    
         
            +
                  end
         
     | 
| 
      
 562 
     | 
    
         
            +
            =end
         
     | 
| 
      
 563 
     | 
    
         
            +
                  obj = obj.to_s
         
     | 
| 
      
 564 
     | 
    
         
            +
                  if obj[0] == ?@
         
     | 
| 
      
 565 
     | 
    
         
            +
                    class_eval <<-EOS
         
     | 
| 
      
 566 
     | 
    
         
            +
                      def #{method_name}(*args, &block)
         
     | 
| 
      
 567 
     | 
    
         
            +
                        instance_variable_get('#{obj}').__send__(
         
     | 
| 
      
 568 
     | 
    
         
            +
                          '#{other_method_name}', *args, &block)
         
     | 
| 
      
 569 
     | 
    
         
            +
                      end
         
     | 
| 
      
 570 
     | 
    
         
            +
                    EOS
         
     | 
| 
      
 571 
     | 
    
         
            +
                  else
         
     | 
| 
      
 572 
     | 
    
         
            +
                    class_eval <<-EOS
         
     | 
| 
      
 573 
     | 
    
         
            +
                      def #{method_name}(*args, &block)
         
     | 
| 
      
 574 
     | 
    
         
            +
                        __send__('#{obj}').__send__(
         
     | 
| 
      
 575 
     | 
    
         
            +
                          '#{other_method_name}', *args, &block)
         
     | 
| 
      
 576 
     | 
    
         
            +
                      end
         
     | 
| 
      
 577 
     | 
    
         
            +
                    EOS
         
     | 
| 
      
 578 
     | 
    
         
            +
                  end
         
     | 
| 
      
 579 
     | 
    
         
            +
                end
         
     | 
| 
      
 580 
     | 
    
         
            +
              end
         
     | 
| 
       538 
581 
     | 
    
         
             
            end
         
     | 
    
        data/lib/dslkit/rude.rb
    CHANGED
    
    
    
        data/tests/test_common.rb
    CHANGED
    
    | 
         @@ -177,4 +177,12 @@ class TC_DSLKit < Test::Unit::TestCase 
     | 
|
| 
       177 
177 
     | 
    
         
             
                assert !D.deflect?(Integer, :method_missing)
         
     | 
| 
       178 
178 
     | 
    
         
             
                assert_raises(NoMethodError) { 1.foo }
         
     | 
| 
       179 
179 
     | 
    
         
             
              end
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
              def test_delegate
         
     | 
| 
      
 182 
     | 
    
         
            +
                d = D2.new
         
     | 
| 
      
 183 
     | 
    
         
            +
                assert_equal 3, d.my_size1
         
     | 
| 
      
 184 
     | 
    
         
            +
                assert_equal 3, d.my_size2
         
     | 
| 
      
 185 
     | 
    
         
            +
                assert_equal 3, d.size
         
     | 
| 
      
 186 
     | 
    
         
            +
                assert_equal 3, d.length
         
     | 
| 
      
 187 
     | 
    
         
            +
              end
         
     | 
| 
       180 
188 
     | 
    
         
             
            end
         
     | 
    
        data/tests/test_polite.rb
    CHANGED
    
    | 
         @@ -88,4 +88,18 @@ module D 
     | 
|
| 
       88 
88 
     | 
    
         
             
              extend DSLKit::Deflect
         
     | 
| 
       89 
89 
     | 
    
         
             
            end
         
     | 
| 
       90 
90 
     | 
    
         | 
| 
      
 91 
     | 
    
         
            +
            class D2
         
     | 
| 
      
 92 
     | 
    
         
            +
              extend DSLKit::Delegate
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
              def initialize
         
     | 
| 
      
 95 
     | 
    
         
            +
                @ary = [ 1, 2, 3 ]
         
     | 
| 
      
 96 
     | 
    
         
            +
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
              attr_reader :ary
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
              delegate :my_size1, :@ary, :size
         
     | 
| 
      
 100 
     | 
    
         
            +
              delegate :my_size2, :ary, :size
         
     | 
| 
      
 101 
     | 
    
         
            +
              delegate :size, :ary
         
     | 
| 
      
 102 
     | 
    
         
            +
              delegate :length, :ary
         
     | 
| 
      
 103 
     | 
    
         
            +
            end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
       91 
105 
     | 
    
         
             
            require 'test_common'
         
     | 
    
        data/tests/test_rude.rb
    CHANGED
    
    | 
         @@ -67,4 +67,16 @@ end 
     | 
|
| 
       67 
67 
     | 
    
         
             
            module D
         
     | 
| 
       68 
68 
     | 
    
         
             
            end
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
      
 70 
     | 
    
         
            +
            class D2
         
     | 
| 
      
 71 
     | 
    
         
            +
              def initialize
         
     | 
| 
      
 72 
     | 
    
         
            +
                @ary = [ 1, 2, 3 ]
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
              attr_reader :ary
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
              delegate :my_size1, :@ary, :size
         
     | 
| 
      
 77 
     | 
    
         
            +
              delegate :my_size2, :ary, :size
         
     | 
| 
      
 78 
     | 
    
         
            +
              delegate :size, :@ary
         
     | 
| 
      
 79 
     | 
    
         
            +
              delegate :length, :ary
         
     | 
| 
      
 80 
     | 
    
         
            +
            end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       70 
82 
     | 
    
         
             
            require 'test_common'
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
     | 
    
         
            -
            rubygems_version: 0. 
     | 
| 
      
 2 
     | 
    
         
            +
            rubygems_version: 0.9.2
         
     | 
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: dslkit
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
       7 
     | 
    
         
            -
            date:  
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.2.1
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2007-02-22 00:00:00 +01:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: Kit for building DSLs in Ruby
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement 
     | 
|
| 
       25 
25 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       26 
26 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       27 
27 
     | 
    
         
             
            cert_chain: 
         
     | 
| 
      
 28 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
       28 
29 
     | 
    
         
             
            authors: 
         
     | 
| 
       29 
30 
     | 
    
         
             
            - Florian Frank
         
     | 
| 
       30 
31 
     | 
    
         
             
            files: 
         
     |