Title: [679] trunk/rails-integration/plugins: Spring plugin .1

Diff

Added: trunk/rails-integration/plugins/spring/README (0 => 679)


--- trunk/rails-integration/plugins/spring/README	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/README	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,5 @@
+Spring
+======
+
+This plugin allows you to access Spring beans easily from within your JRuby on Rails application.
+See http://mysterycoder.blogspot.com/
\ No newline at end of file

Added: trunk/rails-integration/plugins/spring/Rakefile (0 => 679)


--- trunk/rails-integration/plugins/spring/Rakefile	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/Rakefile	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,22 @@
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Default: run unit tests.'
+task :default => :test
+
+desc 'Test the spring plugin.'
+Rake::TestTask.new(:test) do |t|
+  t.libs << 'lib'
+  t.pattern = 'test/**/*_test.rb'
+  t.verbose = true
+end
+
+desc 'Generate documentation for the spring plugin.'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+  rdoc.rdoc_dir = 'rdoc'
+  rdoc.title    = 'Spring'
+  rdoc.options << '--line-numbers' << '--inline-source'
+  rdoc.rdoc_files.include('README')
+  rdoc.rdoc_files.include('lib/**/*.rb')
+end

Added: trunk/rails-integration/plugins/spring/init.rb (0 => 679)


--- trunk/rails-integration/plugins/spring/init.rb	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/init.rb	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+#require 'spring'

Added: trunk/rails-integration/plugins/spring/install.rb (0 => 679)


--- trunk/rails-integration/plugins/spring/install.rb	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/install.rb	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+# Install hook code here

Added: trunk/rails-integration/plugins/spring/lib/spring.rb (0 => 679)


--- trunk/rails-integration/plugins/spring/lib/spring.rb	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/lib/spring.rb	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,28 @@
+# spring.rb
+# June 20, 2007
+#
+
+
+module Spring
+  include Java
+  import javax.servlet.ServletContext
+  import org.springframework.web.context.WebApplicationContext
+  import org.springframework.web.context.support.WebApplicationContextUtils
+  
+  def spring_bean (bean)
+    class_eval "def #{bean.to_s}; application_context.get_bean(\"#{bean.to_s}\"); end;" 
+  end
+  
+  # dunno if there is a better way to do this.  I need the spring_bean method
+  # to become a class method on the includee, but application_context needs to be
+  # a normal instance method
+  def self.included(includee)
+    includee.extend(Spring)
+    includee.class_eval do
+      def application_context
+        WebApplicationContextUtils.getWebApplicationContext($servlet_context)
+      end      
+    end
+  end
+end
+

Added: trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake (0 => 679)


--- trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,4 @@
+# desc "Explaining what the task does"
+# task :spring do
+#   # Task goes here
+# end
\ No newline at end of file

Added: trunk/rails-integration/plugins/spring/test/servlet-api.jar


(Binary files differ)
Property changes on: trunk/rails-integration/plugins/spring/test/servlet-api.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream

Added: trunk/rails-integration/plugins/spring/test/spring-1.2.7.jar


(Binary files differ)
Property changes on: trunk/rails-integration/plugins/spring/test/spring-1.2.7.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream

Added: trunk/rails-integration/plugins/spring/test/spring_test.rb (0 => 679)


--- trunk/rails-integration/plugins/spring/test/spring_test.rb	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/test/spring_test.rb	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,37 @@
+require 'test/unit'
+
+require File.dirname(__FILE__ ) + '/spring-1.2.7.jar'
+require File.dirname(__FILE__ ) + '/servlet-api.jar'
+require 'spring'
+
+
+class MockContext
+  attr_accessor :app_context
+  include javax.servlet.ServletContext
+  def getAttribute(attribute)
+    @app_context
+  end
+end
+
+class MockWebContext 
+  include org.springframework.web.context.WebApplicationContext
+  def getBean(bean)
+    "bar" if bean == "foo"
+  end
+end
+
+class SpringTest < Test::Unit::TestCase
+  include Spring
+  
+  spring_bean :foo
+  
+  def test_spring_bean
+    
+    app_context = MockWebContext.new
+    mock_context = MockContext.new
+    mock_context.app_context= app_context
+    $servlet_context = mock_context
+    assert_equal "bar", foo
+  end
+  
+end

Added: trunk/rails-integration/plugins/spring/uninstall.rb (0 => 679)


--- trunk/rails-integration/plugins/spring/uninstall.rb	                        (rev 0)
+++ trunk/rails-integration/plugins/spring/uninstall.rb	2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+# Uninstall hook code here
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to