Advertisement
robert_

AddInTest.rb

Mar 9th, 2012
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.80 KB | None | 0 0
  1. class VersionBlock
  2.     def initialize parent
  3.         @parent = parent
  4.     end
  5.    
  6.     def version_major= number
  7.         @version_major = number
  8.     end
  9.    
  10.     def version_minor= number
  11.         @version_minor = number
  12.     end
  13.    
  14.     def revision_num= number
  15.         @Revision_mum = number
  16.     end
  17.    
  18.     def author_info= *object
  19.         @author_info = object
  20.     end
  21.    
  22.     def website_address= address
  23.         @website_address = address
  24.     end
  25.    
  26. #    def method_missing method, *args, &block
  27. #        @parent.send method, *args, &block
  28. #    end
  29.    
  30.     attr_writer :version_major,
  31.                 :version_minor,
  32.                 :revision_num,
  33.                 :author_info,
  34.                 :website_loc
  35.    
  36.     attr_reader :version_major,
  37.                 :version_minor,
  38.                 :revision_num,
  39.                 :author_info,
  40.                 :website_loc
  41. end
  42.  
  43. class AddIn
  44. private
  45.     def VersionBlock
  46.         VersionBlock.new self
  47.     end
  48.    
  49. public 
  50.     def initialize name, *version, &block
  51.        
  52.         if block_given?
  53.                 @parent = eval "self", block.binding
  54.                 @VersionInfo = VersionBlock.new @parent
  55.                
  56.                 instance_eval &block
  57.                 puts VersionBlock.VersionMajor
  58.         end
  59.     end
  60.    
  61. #    def method_missing method, &block
  62. #        @components.each_with_index do |object, i|
  63. #           begin
  64. #               return object if object.class.to_s == method.to_s
  65. #           rescue NoMethodError => err
  66. #               raise NoMethodError, err.message if i == @components.size
  67. #           end
  68. #       end
  69. #      
  70. #       nil
  71. #   end
  72.  
  73. private
  74.     @parent = nil
  75.     @VersionInfo = {}
  76. end
  77.  
  78. AddIn.new "Microsoft OLE helper for Windows", :X, :Y do
  79.    
  80.     def Proc
  81.         puts "Hi, there!"
  82.     end
  83.    
  84.     VersionBlock do
  85.         version_major 1
  86.         version_minor 0
  87.         revision_num 0
  88.        
  89.         author_info "", ""
  90.         website     ""
  91.     end
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement