github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

jschementi / ironrubymvc

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 33
    • 4
  • Source
  • Commits
  • Network (4)
  • Issues (0)
  • Downloads (0)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (1)
    • master ✓
  • Tags (0)
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

Write ASP.NET MVC application in Ruby — Read more

  cancel

http://codeplex.com/aspnet

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

Updated IronRuby, fixed C# specs, fixed errors that came out of using 
System.Linq for list operations when possible 
casualjim (author)
Sat May 02 01:06:21 -0700 2009
commit  939319febe205a43d6837e50fe3fe4740708fd58
tree    fcf17f357055f64f4f9b5ff5fc21c784887cdb2c
parent  39143f05182d7eebdeeb5c8c22532c5663ad3ece
ironrubymvc /
name age
history
message
file .gitignore Fri May 01 11:34:15 -0700 2009 Started writing bacon specs before going any fu... [casualjim]
directory IronMvcSpecs/ Fri May 01 11:34:15 -0700 2009 Started writing bacon specs before going any fu... [casualjim]
directory IronRubyMvc.Tests/ Sat May 02 01:06:21 -0700 2009 Updated IronRuby, fixed C# specs, fixed errors ... [casualjim]
file IronRubyMvc.sln Fri May 01 11:34:15 -0700 2009 Started writing bacon specs before going any fu... [casualjim]
directory IronRubyMvc/ Sat May 02 01:06:21 -0700 2009 Updated IronRuby, fixed C# specs, fixed errors ... [casualjim]
file IronRubyMvcKey.public Sat Feb 14 05:45:15 -0800 2009 Added some more tests and moved ruby engine to ... [casualjim]
file IronRubyMvcKey.snk Sat Feb 14 05:45:15 -0800 2009 Added some more tests and moved ruby engine to ... [casualjim]
directory IronRubyMvcWeb/ Fri May 01 11:34:15 -0700 2009 Started writing bacon specs before going any fu... [casualjim]
file README.markdown Thu Mar 19 16:34:48 -0700 2009 Fix code formatting in README [jschementi]
directory VS Templates/ Thu Mar 26 13:57:01 -0700 2009 Fixed a bug with the validation helper. Added a... [casualjim]
directory dependencies/ Sat May 02 01:06:21 -0700 2009 Updated IronRuby, fixed C# specs, fixed errors ... [casualjim]
README.markdown

IronRubyMvc - an extension to ASP.NET MVC to support IronRuby

Getting started

  1. Install ASP.NET MVC (link?)
  2. Create a new ASP.NET MVC project in Visual Studio
  3. Add a reference to System.Web.Mvc.IronRuby.dll
  4. Open Global.asax.cs and ...

    // add this to your usings using System.Web.Mvc;

    // make the subclass of "MvcApplication" be "RubyMvcApplication" namespace MyIronRubyMvcApp {

    public class MvcApplication : RubyMvcApplication {
    
    }
    
    }
  5. Create Routes.rb and define a default route:

    $routes.ignore_route "{resource}.axd/{*pathInfo}" $routes.map_route "default", "{controller}/{action}/{id}", :controller => 'Home', :action => 'index', :id => ''

Controllers

Ruby Controllers live in the same directory as normal MVC controllers: the "Controllers" directory.

# Controllers\HomeController.rb class HomeController < Controller

def index
  "Hello, World"
end

end

Run the application from Visual Studio, and it will display "Hello, World"

Filters

You can create filters in a number of ways.

class YourController < Controller

 # before_action, after_action, around_action, before_result, after_result, authorized_action, exception_action all work
 before_action :index do |context|
   # do some filtering stuff here
 end

 around_result :index do |context|
   # do some result filtering stuff here
 end

 before_action :index, :method_filter

 authorized_action :some_other_action do |context|
   # do some authorization checking work here
 end

 filter :index, YourFilter
 filter :some_other_action, DifferentYourFilter

 # executes for each action
 filter YourControllerFilter 

 def index
   # index action
 end

 def some_other_action
   # index action
 end

 def method_filter
  # do some filter stuff here
 end

end

You can define the following types of filters: ActionFilter, ResultFilter, AuthorizationFilter, ExceptionFilter

class YourFilter < ActionFilter

def on_action_executing(context)
  # Do some filter work here
end

def on_action_executed(context)
  # Do some filter work here
end

end

Views

Ruby views exist in the Views directory, in a sub-folder with the same name as the Controller the View is intended to be used in. To use ERb views, the file should have the ".html.erb" extension. Shared views, such as layouts, are in the "Views/Shared" directory.

For example, an "index" view for the HomeController would be in Views/Home/index.html.erb.

# Controllers/HomeController class HomeController < Controller

def index
  data = "Hello, World"
  view 'index', 'layout', data
end

end

<!-- Views/Home/index.html.erb --> MVC says: <%= model %>

<!-- Views/Shared/layout.html.erb -->

<% yield %>

Samples

IronRubyMvc.Test - Tests Library. IronRubyMvcWeb - "Hello, World" test website. You need to change the connection string and attach the database or use sql express. Pictures - "Real" Demo application

Running IronRubyMvcWeb: 1. Start cassini against the website

Running Pictures: 1. Start cassini against Pictures 2. ruby Pictures\server\app.rb

Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server