<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>merb-action-args/lib/merb-action-args/mri_args.rb</filename>
    </added>
    <added>
      <filename>merb-action-args/lib/merb-action-args/vm_args.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -11,7 +11,7 @@ class Merb::AbstractController
     #   The controller that is being inherited from Merb::AbstractController.
     def inherited(klass)
       klass.action_argument_list = Hash.new do |h,k|
-        args = klass.instance_method(k).get_args
+        args = klass.new({}).method(k).get_args
         arguments = args[0]
         defaults = []
         arguments.each {|a| defaults &lt;&lt; a[0] if a.size == 2} if arguments
@@ -41,4 +41,4 @@ class Merb::AbstractController
     end
     __send__(action, *args)
   end
-end
\ No newline at end of file
+end</diff>
      <filename>merb-action-args/lib/merb-action-args/abstract_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,94 +1,9 @@
-unless RUBY_PLATFORM == &quot;java&quot;
-  require 'parse_tree'
-  require 'ruby2ruby'
-
-  class ParseTreeArray &lt; Array
-    R2R = Object.const_defined?(:Ruby2Ruby) ? Ruby2Ruby : RubyToRuby
-  
-    def self.translate(*args)
-      sexp = ParseTree.translate(*args)
-      # ParseTree.translate returns [nil] if called on an inherited method, so walk
-      # up the inheritance chain to find the class that the method was defined in
-      unless sexp.first
-        klass = args.first.ancestors.detect do |klass| 
-          klass.public_instance_methods(false).include?(args.last.to_s)
-        end
-        sexp = ParseTree.translate(klass, args.last) if klass
-      end
-      sexp = Unifier.new.process(sexp)
-      self.new(sexp)
-    end
-  
-    def deep_array_node(type = nil)
-      each do |node|
-        return ParseTreeArray.new(node) if node.is_a?(Array) &amp;&amp; (!type || node[0] == type)
-        next unless node.is_a?(Array)
-        return ParseTreeArray.new(node).deep_array_node(type)
-      end
-      nil
-    end
-
-    def arg_nodes
-      self[1..-1].inject([]) do |sum,item|
-        sum &lt;&lt; [item] unless item.is_a?(Array)
-        sum
-      end
-    end
-  
-    def get_args
-      if arg_node = deep_array_node(:args)
-        # method defined with def keyword
-        args = arg_node.arg_nodes
-        default_node = arg_node.deep_array_node(:block)
-        return [args, []] unless default_node
-      else
-        # assuming method defined with Module#define_method
-        return [[],[]]
-      end
-    
-      # if it was defined with def, and we found the default_node,
-      # that should bring us back to regularly scheduled programming..
-      lasgns = default_node[1..-1]
-      lasgns.each do |asgn|
-        args.assoc(asgn[1]) &lt;&lt; eval(R2R.new.process(asgn[2]))
-      end
-      [args, (default_node[1..-1].map { |asgn| asgn[1] })]
-    end
-
-  end
-
-  # Used in mapping controller arguments to the params hash.
-  # NOTE: You must have the 'ruby2ruby' gem installed for this to work.
-  #
-  # ==== Examples
-  #   # In PostsController
-  #   def show(id)  #=&gt; id is the same as params[:id]
-  module GetArgs
-  
-    # ==== Returns
-    # Array:: Method arguments and their default values.
-    #
-    # ==== Examples
-    #   class Example
-    #     def hello(one,two=&quot;two&quot;,three)
-    #     end
-    #
-    #     def goodbye
-    #     end
-    #   end
-    #
-    #   Example.instance_method(:hello).get_args
-    #     #=&gt; [[:one], [:two, &quot;two&quot;], [:three, &quot;three&quot;]]
-    #   Example.instance_method(:goodbye).get_args  #=&gt; nil
-    def get_args
-      klass, meth = self.to_s.split(/ /).to_a[1][0..-2].split(&quot;#&quot;)
-      # Remove stupidity for #&lt;Method: Class(Object)#foo&gt;
-      klass = $` if klass =~ /\(/
-      ParseTreeArray.translate(Object.full_const_get(klass), meth).get_args
-    end
-  end
-else
+if RUBY_PLATFORM == &quot;java&quot;
   require File.dirname(__FILE__) / &quot;jruby_args&quot;
+elsif RUBY_VERSION &lt; &quot;1.9&quot;
+  require File.dirname(__FILE__) / &quot;mri_args&quot;
+else
+  require File.dirname(__FILE__) / &quot;vm_args&quot;
 end
 
 class UnboundMethod
@@ -97,4 +12,4 @@ end
 
 class Method
   include GetArgs
-end
\ No newline at end of file
+end</diff>
      <filename>merb-action-args/lib/merb-action-args/get_args.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ module Merb
         
         # Undefine as many methods as possible so that everything can be proxied
         # along to the behavior
-        instance_methods.each { |m| undef_method m unless %w[ __id__ __send__ class kind_of? respond_to? assert_kind_of should should_not instance_variable_set instance_variable_get instance_eval].include?(m) }
+        instance_methods.each { |m| undef_method m unless %w[ object_id __id__ __send__ class kind_of? respond_to? assert_kind_of should should_not instance_variable_set instance_variable_get instance_eval].include?(m.to_s) }
         
         # :api: private
         def initialize</diff>
      <filename>merb-core/lib/merb-core/dispatch/router/behavior.rb</filename>
    </modified>
    <modified>
      <diff>@@ -589,9 +589,7 @@ module Merb
             captures = &quot;&quot;
 
             if (max = capturing_parentheses_count(value)) &gt; 0
-              captures &lt;&lt; (1..max).to_a.map { |n| &quot;#{key}#{n}&quot; }.join(&quot;, &quot;)
-              captures &lt;&lt; &quot; = &quot;
-              captures &lt;&lt; (1..max).to_a.map { |n| &quot;$#{n}&quot; }.join(&quot;, &quot;)
+              captures &lt;&lt; (1..max).to_a.map { |n| &quot;#{key}#{n} = $#{n}&quot; }.join(&quot;; &quot;)
             end
 
             # Note: =~ is slightly faster than .match</diff>
      <filename>merb-core/lib/merb-core/dispatch/router/route.rb</filename>
    </modified>
    <modified>
      <diff>@@ -84,7 +84,7 @@ module Merb
           begin
             response.status = status.to_i
             headers.each { |k, vs|
-              vs.each { |v|
+              Array(vs).each { |v|
                 response.header[k] = v
               }
             }</diff>
      <filename>merb-core/lib/merb-core/rack/handler/mongrel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,7 +58,7 @@ module Merb
         modules.each_with_index do |mod, i|
           concat((&quot;  &quot; * (indent + i)) + &quot;module #{mod}\n&quot;, block.binding)
         end
-        text = text.to_a.map{ |line| (&quot;  &quot; * modules.size) + line }.join
+        text = Array(text).map{ |line| (&quot;  &quot; * modules.size) + line }.join
         concat(text, block.binding)
         modules.reverse.each_with_index do |mod, i|
           concat((&quot;  &quot; * (indent + modules.size - i - 1)) + &quot;end # #{mod}\n&quot;, block.binding)</diff>
      <filename>merb-gen/lib/merb-gen/generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 class Numeric
   module Transformer
     
@@ -385,4 +386,4 @@ class Numeric
   end
   
   
-end
\ No newline at end of file
+end</diff>
      <filename>merb-helpers/lib/merb-helpers/core_ext/numeric.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,8 +96,8 @@ if defined?(Merb::Plugins)
                 # If the key exists on the opposite method, raise exception
                 if self.send(params_method).include?(key)
                   case method
-                  when :accessible_params_args : raise &quot;Cannot make accessible a controller (#{self}) that is already protected&quot;
-                  when :protected_params_args : raise &quot;Cannot protect controller (#{self}) that is already accessible&quot;
+                  when :accessible_params_args then raise &quot;Cannot make accessible a controller (#{self}) that is already protected&quot;
+                  when :protected_params_args then raise &quot;Cannot protect controller (#{self}) that is already accessible&quot;
                   end
                 end
               end</diff>
      <filename>merb-param-protection/lib/merb-param-protection.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b5a3c222a2f0887a2f97048a0b0a8cffca17f0cc</id>
    </parent>
  </parents>
  <author>
    <name>maiha</name>
    <email>maiha@wota.jp</email>
  </author>
  <url>http://github.com/wycats/merb/commit/b771cb28549994924b1462f83f7564ca9afdcd24</url>
  <id>b771cb28549994924b1462f83f7564ca9afdcd24</id>
  <committed-date>2009-02-16T11:48:22-08:00</committed-date>
  <authored-date>2009-02-10T15:03:27-08:00</authored-date>
  <message>Initial commit to support ruby 1.9 with methopara gem

merb-action-args:
* refactor get_args.rb that split mri_args.rb and vm_args.rb
* use &quot;method&quot; rather than &quot;instance_method&quot; for getting args due to
* lack of UnboundMethod#parameters

merb-core:
* Proxy should not undefine object_id (warning reason)
* instance_methods now returns array of symbol in ruby 1.9
* fix route generates wrong code that multiassings in condition
* String#each is deprecated (mongrel handler)

merb-gen:
* String#to_a is deprecated (generator.rb)

merb-helpers:
* add magic comment to core_ext/numeric.rb that uses multibyte codes

merb-param-protection
* fixed deprecated case-when sytax</message>
  <tree>3d1d6e382b089a4fce31891302a54821469774fb</tree>
  <committer>
    <name>Matt Aimonetti</name>
    <email>mattaimonetti@gmail.com</email>
  </committer>
</commit>
