CSC/ECE 517 Fall 2009/wiki1b team1: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
CSC/ECE 517 Fall 2009
CSC/ECE 517 Fall 2009


Resources / Tools for Ruby on Rails (other than IDEs)
Resources / Tools for Rails (other than IDEs)


Ruby on Rails (or 'Rails') is an open source web application framework for the Ruby programming
IDEs are a valuable resource for Rails development, however there are many other resources and tools
language. Although IDEs are a valuable resource for Rails development, there are many other  
that can either replace or supplement IDEs.
resources and tools that can either replace or supplement IDEs.


Resources for Rails other than IDEs
Resources for Rails other than IDEs


Rails API  
Rails API - http://api.rubyonrails.org/
http://api.rubyonrails.org/
This site documents Rails files, classes and methods that can be used to build a Rails application.
This site documents Rails files, classes and methods that can be used to build a Rails  
Rails Forum - http://railsforum.com/
application.
A discussion forum covering all aspects of Rails for beginners and experts including planning,  
Rails Forum  
programming, extensions and production.
http://railsforum.com/
Introducing Ruby on Rails Part 1 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-042507/
A discussion forum covering all aspects of Rails for beginners and experts including  
                          Part 2 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-part-two-043007/
planning, programming, extensions and production.
    An excellent introduction to Rails for novices
Introducing Ruby on Rails  
Part 1 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-042507/
    Part 2 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-part-two-043007/
    An excellent introduction to Rails for novices.
Installers
Installers
Windows: InstantRails - http://instantrails.rubyforge.org/wiki/wiki.pl
Windows: InstantRails - http://instantrails.rubyforge.org/wiki/wiki.pl
An all in one, single click installer for Windows that includes a Rails server.
An all in one, single click installer for Windows that includes a Rails server.
Mac: Locomotive - http://locomotive.raaum.org/
Mac: Locomotive - http://locomotive.raaum.org/
Rails Projects
http://www.workingwithrails.com/
http://www.workingwithrails.com/
A Database of Rails projects, programmers and websites
A Database of Rails projects, programmers and websites.
Rails plugins: http://agilewebdevelopment.com/
Rails plugins
A collection of Rails open source plugins, searchable by category or keyword.
http://agilewebdevelopment.com/
Sample Rails - http://snippets.dzone.com/tag/rails
A collection of Rails open source plugins, searchable by category or keyword.
A collection of Rails code snippets
http://nubyonrails.com/articles/2006/05/04/the-complete-guide-to-rails-plugins-part-i
Agile Rails book - http://www.amazon.com/gp/product/097669400X/002-0481267-8083260?v=glance&n=283155
A complete guide to authoring your own Rails plugins.
An excellent resource for learning how to apply Agile programming concepts to Rails
Sample Rails
Rails cheatsheet - http://www.blainekendall.com/uploads/RubyOnRails-Cheatsheet-BlaineKendall.pdf
http://snippets.dzone.com/tag/rails
One user's list of best practices, gotchas and quirks of developing with Rails
A collection of Rails code snippets.
Rails best practices - http://www.therailsway.com/
Agile Rails
An official best practices list for programming in Rails
http://www.amazon.com/gp/product/097669400X/002-0481267-8083260?v=glance&n=283155
Advanced Rails - http://webonrails.com/
An excellent resource for learning how to apply Agile programming concepts to Rails.
A resource for the advanced Rails programmer
Rails cheat sheet
Rails Blog - http://weblog.rubyonrails.org/
http://www.blainekendall.com/uploads/RubyOnRails-Cheatsheet-BlaineKendall.pdf
An online community of updates about current happenings with the Rails platform
One user's list of best practices, gotchas and quirks of developing with Rails.
Rails Guides - http://guides.rubyonrails.org/
Rails best practices  
An all in one resource for learning Rails including Howtos, security and contributing to the Rails community
http://www.therailsway.com/
Authoring Rails plugins - http://nubyonrails.com/articles/2006/05/04/the-complete-guide-to-rails-plugins-part-i
An official best practices list for programming in Rails.
A complete guide to authoring your own Rails plugins
Advanced Rails  
http://webonrails.com/
A resource for the advanced Rails programmer. For example, RailRoad, a class diagram
generator for Rails applications.
Rails Blogs
http://weblog.rubyonrails.org/
An online community of updates about current happenings with the Rails platform.
http://planetrubyonrails.com/
An enormous list of blog channels focused on Rails. A wealth of information; for
example, how to write your own programming language using Ruby on Rails.
Rails Guides  
http://guides.rubyonrails.org/
An all in one resource for learning Rails including Howtos, security and contributing  
to the Rails community.
Rails Wiki
http://wiki.rubyonrails.org/
The official Rails wiki that contains user-generated documentation on everything from
getting started to deployment stacks to user groups.




Tools for Rails other than IDEs:


1. Rails Garden - http://www.railsgarden.com/category/rails-tools/
 
2. Rails Analyzer (performance) - http://rails-analyzer.rubyforge.org/
 
3. ActiveScaffold - http://activescaffold.com/
 
 
 
 
 
 
 
Test Unit
By default, the Rails stack uses Test::Unit, known as the default Ruby unit testing framework shipping with Ruby. There are various plugins and extension that could be used with Rails built-in Test::Unit to extend its functionality for support of TDD and BDD testing practices.
 
http://wiki.rubyonrails.org/addons/testing
The link provides additional information in the form of supporting resources, whitepapers, examples, and plug-in documentation
 
Example
- http://wiki.rubyonrails.org/testing/test-unitrequire 'test/unit'
 
class CalculatorTest < Test::Unit::TestCase
  def test_add_two_numbers_for_the_sum
    calculator = Calculator.new
    assert_equal 4, calculator.sum(2, 2)
  end
end
 
 
//****************************************************************
 
TDD: Test Driven Development 
Test Driven Development is a combination of refactoring and test first development, a form of development where the test is
 
written prior to completed production code.  The goal of TDD is the specification of requirements and not the validation of
 
requirements.  There are a few testing frameworks that are used to implement the TDD programming technique. 
 
http://ruby.about.com/b/2009/01/28/test-driven-development-with-rails.htm
This link provides a comprehensive overview of test driven development practices and available resources for implementation.
 
 
RSpec
RSpec is a testing framework for Behavior Driven Development, complete with its own expectations, matchers and mocking and
 
stubbing facilities. It goes along hand in hand with Cucumber, though it plays nicely with many other testing frameworks as well.
 
Model Examples
These are the equivalent of unit tests in Rails’ built in testing. Ironically
(for the traditional TDD’er) these are the only specs that we feel should actually interact
with the database. Learn more ….
 
Controller Examples
These align somewhat with functional tests in rails, except
that they do not actually render views (though you can force rendering of views
if you prefer). Instead of setting expectations about what goes on a page, you
set expectations about what templates get rendered. Learn more….
 
View Examples
This is the other half of Rails’ functional testing. View specs allow
you to set up assigns (thanks to ZenTest). Learn more ….
 
Helper Examples
let you specify directly methods that live in your helpers. Learn more ….
 
 
http://www.ibm.com/developerworks/web/library/wa-rspec/
The link provides a brief overview of RSpec with a comprehensive series of examples and a conceptual view of Rpecs step by step
 
implementation process
 
 
Cucumber
Cucumber is used with TDD and BDD within other testing frameworks such as RSpec by letting software development teams describe how
 
software should behave in plain text. The text is written in a business-readable domain-specific language and serves as
 
documentation, automated tests and development-aid - all rolled into one format.
 
http://cukes.info/
The link provides a detail decription, definition, and examples of Cucumber implementation best practices and supported
 
frameworks.
 
Cucumber Example:
Scenario: See all vendors
    Given I am logged in as a user in the administrator role
    And There are 3 vendors
    When I go to the manage vendors page
    Then I should see the first 3 vendor names
 
 
Shoulda
An extension to Test::Unit with additional helpers, macros, and assertions.
http://www.thoughtbot.com/projects/shoulda
The link provides a more conclusive definition of Shoulda along with installation facts and working examples of the Shoulda
 
testing framework within Ruby's built in Test::Unit
 
//****************************************************************
 
BDD: Behavior Driven Development (http://eggsonbread.com/2009/07/22/behavior-driven-development-in-a-nutshell/)
Behavior driven development was born from the concepts behind the implementation of TDD.  It brings together strands from
 
TestDrivenDevelopment and DomainDrivenDesign into an integrated whole, making the relationship between these two powerful
 
approaches to software development more evident.  Most test driven development testing frameworks such as RSpec and Cucumber also support behavior driven development testing.
 
http://behaviour-driven.org/
The link supports BDDs definition with additional links to more viable behavior driven development resources.
 
 
//****************************************************************
 
Other Testing Resources
Watir
Watir is an open-source library for automating web browsers. It allows you to write tests that are easy to read and maintain. It
 
is simple and flexible.
 
http://wtr.rubyforge.org/
 
 
NullDB - http://avdi.org/projects/nulldb/
a way to speed up testing by avoiding database use.
 
Bleakhouse: memory leak detection
 
ruby-debug
Other than the extensive use of breakpoints, ruby-debug provides Rails with a plug-in extending the functionality of Rails built in debugger.
 
http://rubyforge.org/softwaremap/trove_list.php?form_cat=47
the link provides twenty debug resources
//****************************************************************

Revision as of 19:36, 20 September 2009

CSC/ECE 517 Fall 2009

Resources / Tools for Rails (other than IDEs)

IDEs are a valuable resource for Rails development, however there are many other resources and tools that can either replace or supplement IDEs.

Resources for Rails other than IDEs

Rails API - http://api.rubyonrails.org/ This site documents Rails files, classes and methods that can be used to build a Rails application. Rails Forum - http://railsforum.com/ A discussion forum covering all aspects of Rails for beginners and experts including planning, programming, extensions and production. Introducing Ruby on Rails Part 1 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-042507/

                         Part 2 - http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-part-two-043007/
   An excellent introduction to Rails for novices

Installers Windows: InstantRails - http://instantrails.rubyforge.org/wiki/wiki.pl An all in one, single click installer for Windows that includes a Rails server. Mac: Locomotive - http://locomotive.raaum.org/ http://www.workingwithrails.com/ A Database of Rails projects, programmers and websites Rails plugins: http://agilewebdevelopment.com/ A collection of Rails open source plugins, searchable by category or keyword. Sample Rails - http://snippets.dzone.com/tag/rails A collection of Rails code snippets Agile Rails book - http://www.amazon.com/gp/product/097669400X/002-0481267-8083260?v=glance&n=283155 An excellent resource for learning how to apply Agile programming concepts to Rails Rails cheatsheet - http://www.blainekendall.com/uploads/RubyOnRails-Cheatsheet-BlaineKendall.pdf One user's list of best practices, gotchas and quirks of developing with Rails Rails best practices - http://www.therailsway.com/ An official best practices list for programming in Rails Advanced Rails - http://webonrails.com/ A resource for the advanced Rails programmer Rails Blog - http://weblog.rubyonrails.org/ An online community of updates about current happenings with the Rails platform Rails Guides - http://guides.rubyonrails.org/ An all in one resource for learning Rails including Howtos, security and contributing to the Rails community Authoring Rails plugins - http://nubyonrails.com/articles/2006/05/04/the-complete-guide-to-rails-plugins-part-i A complete guide to authoring your own Rails plugins







Test Unit By default, the Rails stack uses Test::Unit, known as the default Ruby unit testing framework shipping with Ruby. There are various plugins and extension that could be used with Rails built-in Test::Unit to extend its functionality for support of TDD and BDD testing practices.

http://wiki.rubyonrails.org/addons/testing The link provides additional information in the form of supporting resources, whitepapers, examples, and plug-in documentation

Example

- http://wiki.rubyonrails.org/testing/test-unitrequire 'test/unit' 

class CalculatorTest < Test::Unit::TestCase

 def test_add_two_numbers_for_the_sum 
   calculator = Calculator.new 
   assert_equal 4, calculator.sum(2, 2)
 end 

end


//****************************************************************

TDD: Test Driven Development Test Driven Development is a combination of refactoring and test first development, a form of development where the test is

written prior to completed production code. The goal of TDD is the specification of requirements and not the validation of

requirements. There are a few testing frameworks that are used to implement the TDD programming technique.

http://ruby.about.com/b/2009/01/28/test-driven-development-with-rails.htm This link provides a comprehensive overview of test driven development practices and available resources for implementation.


RSpec RSpec is a testing framework for Behavior Driven Development, complete with its own expectations, matchers and mocking and

stubbing facilities. It goes along hand in hand with Cucumber, though it plays nicely with many other testing frameworks as well.

Model Examples These are the equivalent of unit tests in Rails’ built in testing. Ironically (for the traditional TDD’er) these are the only specs that we feel should actually interact with the database. Learn more ….

Controller Examples These align somewhat with functional tests in rails, except that they do not actually render views (though you can force rendering of views if you prefer). Instead of setting expectations about what goes on a page, you set expectations about what templates get rendered. Learn more….

View Examples This is the other half of Rails’ functional testing. View specs allow you to set up assigns (thanks to ZenTest). Learn more ….

Helper Examples let you specify directly methods that live in your helpers. Learn more ….


http://www.ibm.com/developerworks/web/library/wa-rspec/ The link provides a brief overview of RSpec with a comprehensive series of examples and a conceptual view of Rpecs step by step

implementation process


Cucumber Cucumber is used with TDD and BDD within other testing frameworks such as RSpec by letting software development teams describe how

software should behave in plain text. The text is written in a business-readable domain-specific language and serves as

documentation, automated tests and development-aid - all rolled into one format.

http://cukes.info/ The link provides a detail decription, definition, and examples of Cucumber implementation best practices and supported

frameworks.

Cucumber Example: Scenario: See all vendors

   Given I am logged in as a user in the administrator role
   And There are 3 vendors
   When I go to the manage vendors page
   Then I should see the first 3 vendor names


Shoulda An extension to Test::Unit with additional helpers, macros, and assertions.

http://www.thoughtbot.com/projects/shoulda The link provides a more conclusive definition of Shoulda along with installation facts and working examples of the Shoulda

testing framework within Ruby's built in Test::Unit

//****************************************************************

BDD: Behavior Driven Development (http://eggsonbread.com/2009/07/22/behavior-driven-development-in-a-nutshell/) Behavior driven development was born from the concepts behind the implementation of TDD. It brings together strands from

TestDrivenDevelopment and DomainDrivenDesign into an integrated whole, making the relationship between these two powerful

approaches to software development more evident. Most test driven development testing frameworks such as RSpec and Cucumber also support behavior driven development testing.

http://behaviour-driven.org/ The link supports BDDs definition with additional links to more viable behavior driven development resources.


//****************************************************************

Other Testing Resources Watir Watir is an open-source library for automating web browsers. It allows you to write tests that are easy to read and maintain. It

is simple and flexible.

http://wtr.rubyforge.org/


NullDB - http://avdi.org/projects/nulldb/ a way to speed up testing by avoiding database use.

Bleakhouse: memory leak detection

ruby-debug Other than the extensive use of breakpoints, ruby-debug provides Rails with a plug-in extending the functionality of Rails built in debugger.

http://rubyforge.org/softwaremap/trove_list.php?form_cat=47 the link provides twenty debug resources //****************************************************************