Title: [waffle-scm] [151] trunk/core/src/main/ruby: moved waffle.rb into org.codehaus.waffle package.
Revision
151
Author
mward
Date
2007-06-12 17:59:27 -0500 (Tue, 12 Jun 2007)

Log Message

moved waffle.rb into org.codehaus.waffle package.  Removed string.rb since it is no longer needed.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java (150 => 151)

--- trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java	2007-06-12 20:04:36 UTC (rev 150)
+++ trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java	2007-06-12 22:59:27 UTC (rev 151)
@@ -21,8 +21,7 @@
         ContextContainer contextContainer = super.buildApplicationContextContainer();
 
         Ruby runtime = Ruby.getDefaultInstance();
-        loadRubyScriptFromClassLoader("string.rb", runtime);
-        loadRubyScriptFromClassLoader("waffle.rb", runtime);
+        loadRubyScriptFromClassLoader("org/codehaus/waffle/waffle.rb", runtime);
 
         // I'd prefer to do the following:
         //      runtime.evalScript("require 'string'\nrequire 'waffle'"); // load Waffle custom scripts

Added: trunk/core/src/main/ruby/org/codehaus/waffle/waffle.rb (0 => 151)

--- trunk/core/src/main/ruby/org/codehaus/waffle/waffle.rb	                        (rev 0)
+++ trunk/core/src/main/ruby/org/codehaus/waffle/waffle.rb	2007-06-12 22:59:27 UTC (rev 151)
@@ -0,0 +1,153 @@
+require 'java'
+
+include_class 'org.codehaus.waffle.view.View'
+include_class 'org.codehaus.waffle.view.RedirectView'
+
+# TODO all of this code needs ruby tests!
+module Waffle
+
+  # load/require files
+  class ScriptLoader
+    def ScriptLoader.load_all(prefix, servlet_context)
+      @@__servlet_context = servlet_context
+
+      if (prefix.gsub!(/^dir:/, ''))
+        @@_ruby_script_path = prefix
+        ScriptLoader.load_from_file_system
+      else
+        servlet_context.getResourcePaths(prefix).each do |path| # this would be for production!!
+          require(path.gsub(Regexp.new("^#{prefix}"), 'ruby/'))
+        end
+      end
+    end
+
+    def ScriptLoader.load_from_file_system
+      path = @@__servlet_context.getRealPath('/')
+      path = "#{path}#{@@_ruby_script_path}"
+
+      Dir.new(path).each do |entry|
+        file = "#{path}#{entry}"
+        if File.file?(file) # TODO need to recursively search directories
+          load(file) if file =~ /.rb$/
+        end
+      end
+    end
+  end
+
+  ##
+  # This is a generic class for making HttpServletRequest's, HttpSession's and ServletContext's to act like Hash's
+  class WebContext < Hash
+
+    def initialize(context)
+      @__context = context
+      attribute_names = @__context.get_attribute_names
+
+      while (attribute_names.hasMoreElements)
+        name = attribute_names.nextElement
+
+        self[name.to_s] = @__context.get_attribute(name) if name.is_a? Symbol
+        self[name] = @__context.get_attribute(name) unless name.is_a? Symbol
+      end
+    end
+
+    def []=(key, value)
+      @__context.set_attribute(key.to_s, value) if key.is_a? Symbol
+      @__context.set_attribute(key, value) unless key.is_a? Symbol
+      super
+    end
+
+    def [](key)
+      return super(key.to_s) if key.is_a? Symbol
+
+      return super(key)
+    end
+
+    def method_missing(symbol, *args)
+      @__context.send(symbol, *args)
+    end
+
+    def java_delegate
+      return @__context
+    end
+  end
+
+  module Controller
+    attr_reader :parameters, :request, :response, :session, :servlet_context, :errors
+
+    def __set_all_contexts(request, response)
+      @request = WebContext.new(request)
+      @session = WebContext.new(@request.getSession(false))
+      @servlet_context = WebContext.new(@session.getServletContext());
+      @response = response
+
+      # Building up a hash to represent the params
+      @parameters = {}
+      parameter_names = @request.getParameterNames
+      while (parameter_names.hasMoreElements)
+        name = parameter_names.nextElement
+        @parameters[name] = @request.getParameter(name)
+      end
+
+      __process_request_params
+    end
+
+    def __pico_container=(pico)
+      @__pico_container = pico
+    end
+
+    def __argument_resolver=(argument_resolver)
+      @__argument_resolver = argument_resolver
+    end
+
+    def __errors=(errors)
+      @errors = errors
+    end
+
+    def locate(type)
+      return @__pico_container.getComponentInstanceOfType(type.java_class) if type.is_a? Module
+
+      return @__pico_container.getComponentInstance(type)
+    end
+
+    def method_missing(symbol, *args)
+      if symbol.to_s =~ /^find_/ # todo: I don't like "find_" for this ... sounds to model-ish
+        key = symbol.to_s
+        key = key[5..key.length]
+        component = @__pico_container.getComponentInstance(key)
+
+        return component unless component.nil?
+      else
+        value = @__argument_resolver.resolve(@request.java_delegate, "{#{symbol.to_s}}")
+
+        return value unless value.nil?
+      end
+
+      super(symbol, *args)
+    end
+
+    def render(name)
+      return View.new(name, self)
+    end
+
+    def redirect_to(name, map = {})
+      return RedirectView.new(name, self, map)
+    end
+
+    private
+
+    # This method tries to apply parameter values to the controllers instance variables (only if they exist)
+    def __process_request_params
+      @parameters.each_pair do |key, value|
+        parts = key.split('.')
+        if self.instance_variable_defined? "@#{key}".to_sym
+          begin
+            self.instance_eval("@#{key} = '#{value}'")
+          rescue Exception => e
+            p "ERROR handling request parameter #{key} with value: #{value}\n #{e}"
+          end
+        end
+      end
+    end
+
+  end
+end
\ No newline at end of file

Deleted: trunk/core/src/main/ruby/string.rb (150 => 151)

--- trunk/core/src/main/ruby/string.rb	2007-06-12 20:04:36 UTC (rev 150)
+++ trunk/core/src/main/ruby/string.rb	2007-06-12 22:59:27 UTC (rev 151)
@@ -1,8 +0,0 @@
-# Following was copied from RoR (Inflector module)...
-def String.camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true)
-  if first_letter_in_uppercase
-    lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
-  else
-    lower_case_and_underscored_word.first + camelize(lower_case_and_underscored_word)[1..-1]
-  end
-end
\ No newline at end of file

Deleted: trunk/core/src/main/ruby/waffle.rb (150 => 151)

--- trunk/core/src/main/ruby/waffle.rb	2007-06-12 20:04:36 UTC (rev 150)
+++ trunk/core/src/main/ruby/waffle.rb	2007-06-12 22:59:27 UTC (rev 151)
@@ -1,153 +0,0 @@
-require 'java'
-
-include_class 'org.codehaus.waffle.view.View'
-include_class 'org.codehaus.waffle.view.RedirectView'
-
-# TODO all of this code needs ruby tests!
-module Waffle
-
-  # load/require files
-  class ScriptLoader
-    def ScriptLoader.load_all(prefix, servlet_context)
-      @@__servlet_context = servlet_context
-
-      if (prefix.gsub!(/^dir:/, ''))
-        @@_ruby_script_path = prefix
-        ScriptLoader.load_from_file_system
-      else
-        servlet_context.getResourcePaths(prefix).each do |path| # this would be for production!!
-          require(path.gsub(Regexp.new("^#{prefix}"), 'ruby/'))
-        end
-      end
-    end
-
-    def ScriptLoader.load_from_file_system
-      path = @@__servlet_context.getRealPath('/')
-      path = "#{path}#{@@_ruby_script_path}"
-
-      Dir.new(path).each do |entry|
-        file = "#{path}#{entry}"
-        if File.file?(file) # TODO need to recursively search directories
-          load(file) if file =~ /.rb$/
-        end
-      end
-    end
-  end
-
-  ##
-  # This is a generic class for making HttpServletRequest's, HttpSession's and ServletContext's to act like Hash's
-  class WebContext < Hash
-
-    def initialize(context)
-      @__context = context
-      attribute_names = @__context.get_attribute_names
-
-      while (attribute_names.hasMoreElements)
-        name = attribute_names.nextElement
-
-        self[name.to_s] = @__context.get_attribute(name) if name.is_a? Symbol
-        self[name] = @__context.get_attribute(name) unless name.is_a? Symbol
-      end
-    end
-
-    def []=(key, value)
-      @__context.set_attribute(key.to_s, value) if key.is_a? Symbol
-      @__context.set_attribute(key, value) unless key.is_a? Symbol
-      super
-    end
-
-    def [](key)
-      return super(key.to_s) if key.is_a? Symbol
-
-      return super(key)
-    end
-
-    def method_missing(symbol, *args)
-      @__context.send(symbol, *args)
-    end
-
-    def java_delegate
-      return @__context
-    end
-  end
-
-  module Controller
-    attr_reader :parameters, :request, :response, :session, :servlet_context, :errors
-
-    def __set_all_contexts(request, response)
-      @request = WebContext.new(request)
-      @session = WebContext.new(@request.getSession(false))
-      @servlet_context = WebContext.new(@session.getServletContext());
-      @response = response
-
-      # Building up a hash to represent the params
-      @parameters = {}
-      parameter_names = @request.getParameterNames
-      while (parameter_names.hasMoreElements)
-        name = parameter_names.nextElement
-        @parameters[name] = @request.getParameter(name)
-      end
-
-      __process_request_params
-    end
-
-    def __pico_container=(pico)
-      @__pico_container = pico
-    end
-
-    def __argument_resolver=(argument_resolver)
-      @__argument_resolver = argument_resolver
-    end
-
-    def __errors=(errors)
-      @errors = errors
-    end
-
-    def locate(type)
-      return @__pico_container.getComponentInstanceOfType(type.java_class) if type.is_a? Module
-
-      return @__pico_container.getComponentInstance(type)
-    end
-
-    def method_missing(symbol, *args)
-      if symbol.to_s =~ /^find_/ # todo: I don't like "find_" for this ... sounds to model-ish
-        key = symbol.to_s
-        key = key[5..key.length]
-        component = @__pico_container.getComponentInstance(key)
-
-        return component unless component.nil?
-      else
-        value = @__argument_resolver.resolve(@request.java_delegate, "{#{symbol.to_s}}")
-
-        return value unless value.nil?
-      end
-
-      super(symbol, *args)
-    end
-
-    def render(name)
-      return View.new(name, self)
-    end
-
-    def redirect_to(name, map = {})
-      return RedirectView.new(name, self, map)
-    end
-
-    private
-
-    # This method tries to apply parameter values to the controllers instance variables (only if they exist)
-    def __process_request_params
-      @parameters.each_pair do |key, value|
-        parts = key.split('.')
-        if self.instance_variable_defined? "@#{key}".to_sym
-          begin
-            self.instance_eval("@#{key} = '#{value}'")
-          rescue Exception => e
-            p "ERROR handling request parameter #{key} with value: #{value}\n #{e}"
-          end
-        end
-      end
-    end
-
-  end
-end
\ No newline at end of file

Modified: trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java (150 => 151)

--- trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java	2007-06-12 20:04:36 UTC (rev 150)
+++ trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java	2007-06-12 22:59:27 UTC (rev 151)
@@ -20,8 +20,8 @@
         assertNotNull(picoContainer.getComponentAdapter(RubyScriptLoader.class));
 
         // ensure mixin occurred
-        RubyBoolean rubyBoolean = (RubyBoolean) runtime.evalScript("String.respond_to? :camelize");
-        assertTrue((Boolean)JavaEmbedUtils.rubyToJava(runtime, rubyBoolean, Boolean.class));
+        RubyBoolean rubyBoolean = (RubyBoolean) runtime.evalScript("Waffle::Controller.is_a? Module");
+        assertTrue((Boolean) JavaEmbedUtils.rubyToJava(runtime, rubyBoolean, Boolean.class));
     }
 
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to