diff --git a/tracks/README b/tracks/README deleted file mode 100644 index ca5f3737..00000000 --- a/tracks/README +++ /dev/null @@ -1,189 +0,0 @@ -== Welcome to Rails - -Rails is a web-application and persistance framework that includes everything -needed to create database-backed web-applications according to the -Model-View-Control pattern of separation. This pattern splits the view (also -called the presentation) into "dumb" templates that are primarily responsible -for inserting pre-build data in between HTML tags. The model contains the -"smart" domain objects (such as Account, Product, Person, Post) that holds all -the business logic and knows how to persist themselves to a database. The -controller handles the incoming requests (such as Save New Account, Update -Product, Show Post) by manipulating the model and directing data to the view. - -In Rails, the model is handled by what's called a object-relational mapping -layer entitled Active Record. This layer allows you to present the data from -database rows as objects and embellish these data objects with business logic -methods. You can read more about Active Record in -link:files/vendor/activerecord/README.html. - -The controller and view is handled by the Action Pack, which handles both -layers by its two parts: Action View and Action Controller. These two layers -are bundled in a single package due to their heavy interdependence. This is -unlike the relationship between the Active Record and Action Pack that is much -more separate. Each of these packages can be used independently outside of -Rails. You can read more about Action Pack in -link:files/vendor/actionpack/README.html. - - -== Requirements - -* Database and driver (MySQL, PostgreSQL, or SQLite) -* Rake[http://rake.rubyforge.org] for running tests and the generating documentation - -== Optionals - -* Apache 1.3.x or 2.x or lighttpd 1.3.11+ (or any FastCGI-capable webserver with a - mod_rewrite-like module) -* FastCGI (or mod_ruby) for better performance on Apache - -== Getting started - -1. Run the WEBrick servlet: ruby script/server - (run with --help for options) -2. Go to http://localhost:3000/ and get "Congratulations, you've put Ruby on Rails!" -3. Follow the guidelines on the "Congratulations, you've put Ruby on Rails!" screen - - -== Example for Apache conf - - - ServerName rails - DocumentRoot /path/application/public/ - ErrorLog /path/application/log/server.log - - - Options ExecCGI FollowSymLinks - AllowOverride all - Allow from all - Order allow,deny - - - -NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI -should be on and ".cgi" should respond. All requests from 127.0.0.1 goes -through CGI, so no Apache restart is necessary for changes. All other requests -goes through FCGI (or mod_ruby) that requires restart to show changes. - - -== Example for lighttpd conf (with FastCGI) - -server.port = 8080 -server.bind = "127.0.0.1" -# server.event-handler = "freebsd-kqueue" # needed on OS X - -server.modules = ( "mod_rewrite", "mod_fastcgi" ) - -url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) -server.error-handler-404 = "/dispatch.fcgi" - -server.document-root = "/path/application/public" -server.errorlog = "/path/application/log/server.log" - -fastcgi.server = ( ".fcgi" => - ( "localhost" => - ( - "min-procs" => 1, - "max-procs" => 5, - "socket" => "/tmp/application.fcgi.socket", - "bin-path" => "/path/application/public/dispatch.fcgi", - "bin-environment" => ( "RAILS_ENV" => "development" ) - ) - ) -) - - -== Debugging Rails - -Have "tail -f" commands running on both the server.log, production.log, and -test.log files. Rails will automatically display debugging and runtime -information to these files. Debugging info will also be shown in the browser -on requests from 127.0.0.1. - - -== Breakpoints - -Breakpoint support is available through the script/breakpointer client. This -means that you can break out of execution at any point in the code, investigate -and change the model, AND then resume execution! Example: - - class WeblogController < ActionController::Base - def index - @posts = Post.find_all - breakpoint "Breaking out from the list" - end - end - -So the controller will accept the action, run the first line, then present you -with a IRB prompt in the breakpointer window. Here you can do things like: - -Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' - - >> @posts.inspect - => "[#nil, \"body\"=>nil, \"id\"=>\"1\"}>, - #\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" - >> @posts.first.title = "hello from a breakpoint" - => "hello from a breakpoint" - -...and even better is that you can examine how your runtime objects actually work: - - >> f = @posts.first - => #nil, "body"=>nil, "id"=>"1"}> - >> f. - Display all 152 possibilities? (y or n) - -Finally, when you're ready to resume execution, you press CTRL-D - - -== Console - -You can interact with the domain model by starting the console through script/console. -Here you'll have all parts of the application configured, just like it is when the -application is running. You can inspect domain models, change values, and save to the -database. Start the script without arguments to see the options. - - -== Description of contents - -app - Holds all the code that's specific to this particular application. - -app/controllers - Holds controllers that should be named like weblog_controller.rb for - automated URL mapping. All controllers should descend from - ActionController::Base. - -app/models - Holds models that should be named like post.rb. - Most models will descent from ActiveRecord::Base. - -app/views - Holds the template files for the view that should be named like - weblog/index.rhtml for the WeblogController#index action. All views uses eRuby - syntax. This directory can also be used to keep stylesheets, images, and so on - that can be symlinked to public. - -app/helpers - Holds view helpers that should be named like weblog_helper.rb. - -config - Configuration files for the Rails environment, the routing map, the database, and other dependencies. - -components - Self-contained mini-applications that can bundle controllers, models, and views together. - -lib - Application specific libraries. Basically, any kind of custom code that doesn't - belong controllers, models, or helpers. This directory is in the load path. - -public - The directory available for the web server. Contains sub-directories for images, stylesheets, - and javascripts. Also contains the dispatchers and the default HTML files. - -script - Helper scripts for automation and generation. - -test - Unit and functional tests along with fixtures. - -vendor - External libraries that the application depend on. This directory is in the load path. diff --git a/tracks/app/controllers/application.rb b/tracks/app/controllers/application.rb index 5239b4e4..1972ffd0 100644 --- a/tracks/app/controllers/application.rb +++ b/tracks/app/controllers/application.rb @@ -2,7 +2,6 @@ # Likewise will all the methods added be available for all controllers. require_dependency "login_system" -require_dependency "math/statistics" require 'date' @@ -31,17 +30,4 @@ class ApplicationController < ActionController::Base error_messages_for( obj ) unless instance_eval("@#{obj}").nil? end - def av_completed - completed = Todo.find(:all, :conditions => "done=1") - days = [] - completed.each do |i| - days << (i.completed - i.created).to_f - end - return days.average, days.max - end - -end - -class Array - include Math::Statistics end \ No newline at end of file diff --git a/tracks/app/controllers/project_controller.rb b/tracks/app/controllers/project_controller.rb index 99f5bb4e..29960fc1 100644 --- a/tracks/app/controllers/project_controller.rb +++ b/tracks/app/controllers/project_controller.rb @@ -17,7 +17,7 @@ class ProjectController < ApplicationController # def list @page_title = "TRACKS::List Projects" - @projects = Project.find(:all, :conditions => nil, :order => "done ASC, position ASC") + @projects = Project.find(:all, :conditions => nil, :order => "position ASC") end # Filter the projects to show just the one passed in the URL diff --git a/tracks/app/views/context/_context_form.rhtml b/tracks/app/views/context/_context_form.rhtml index 5b21481f..20c22733 100644 --- a/tracks/app/views/context/_context_form.rhtml +++ b/tracks/app/views/context/_context_form.rhtml @@ -1,7 +1,7 @@ <% @context = context_form %> - +<%= error_messages_for 'context' %>
<%= @context.position %>
diff --git a/tracks/app/views/project/_project_form.rhtml b/tracks/app/views/project/_project_form.rhtml index 18822e59..e9f818d0 100644 --- a/tracks/app/views/project/_project_form.rhtml +++ b/tracks/app/views/project/_project_form.rhtml @@ -1,7 +1,7 @@ <% @project = project_form %> - +<%= error_messages_for 'project' %>
<%= @project.position %>
diff --git a/tracks/lib/math/statistics.rb b/tracks/lib/math/statistics.rb deleted file mode 100644 index f63b2c47..00000000 --- a/tracks/lib/math/statistics.rb +++ /dev/null @@ -1,253 +0,0 @@ -=begin -= module Math::Statistics - -== SYNOPSIS - - ---- - require "math/statistics" - - class Array - include Math::Statistics - end - - a = [-2,-1,1,2] - p a.sum - p a.avg - p a.var - p a.std - p a.Min - p a.Max - ---- - -produces - - ---- - 0.0 - 0.0 - 2.5 - 1.58113883 - -2 - 2 - ---- - -For hashes, - - ---- - require "math/statistics" - - class Hash - include Math::Statistics - Hash::default_block = lambda{|i,j| j} - end - - h = {'alice'=>-2, 'bob'=>-1, 'cris'=>1, 'diana'=>2} - p h.sum - p h.avg - p h.var - p h.std - p h.Min - p h.Max - ---- - -produces - - ---- - 0.0 - 0.0 - 2.5 - 1.58113883 - -2 - 2 - ---- - -== DESCRIPTION - -(({Math::Statistics})) provides basic statistical methods, i.e., -sum, average, variance, standard deviation, min and max. -This module can be used after including to the target class. -The target class must be Enumerable, more precisely, this module -uses each, size, min, and max. - -== CLASS METHOD - -: default_block= aProc - - Sets default block of the class. This block will be used by the methods. - -: default_block - - Returns default block for class if defined. Otherwise nil will be returnd. - -== METHOD - -: default_block= aProc - - Sets default block of the object. This block will be used by the methods. - Priority of the blocks is in the other: in-place given block, - object's default then class's default. - -: default_block - - Returns default block if defined. Otherwise nil will be returnd. - -: sum -: sum{...} - - Returns sum. When a block is given, summation is taken over the - each result of block evaluation. The role of blocks in the below - are same to this one. - -: average -: average{...} -: avg -: avg{...} - - Returns average. - -: variance -: variance{...} -: var -: var{...} - - Returns variance. - -: standard_deviation -: standard_deviation{...} -: std -: std{...} - - Returns standard deviation. - -: Min -: Min{...} - - Returns minimum. - -: Max -: Max{...} - - Returns maximam. - -== AUTHORS - -Gotoken - -== HISTORY - - 2001-02-28 created (gotoken#notwork.org) - -=end - -module Math - module Statistics - VERSION = "2001_02_18" - - def self.append_features(mod) - unless mod < Enumerable - raise TypeError, - "`#{self}' can't be included non Enumerable (#{mod})" - end - - def mod.default_block= (blk) - self.const_set("STAT_BLOCK", blk) - end - - def mod.default_block - defined?(self::STAT_BLOCK) && self::STAT_BLOCK - end - - super - end - - def default_block - @stat_block || type.default_block - end - - def default_block=(blk) - @stat_block = blk - end - - def sum - sum = 0.0 - if block_given? - each{|i| sum += yield(i)} - elsif default_block - each{|i| sum += default_block[*i]} - else - each{|i| sum += i} - end - sum - end - - def average(&blk) - sum(&blk)/size - end - - def variance(&blk) - sum2 = if block_given? - sum{|i| j=yield(i); j*j} - elsif default_block - sum{|i| j=default_block[*i]; j*j} - else - sum{|i| i**2} - end - sum2/size - average(&blk)**2 - end - - def standard_deviation(&blk) - Math::sqrt(variance(&blk)) - end - - def Min(&blk) - if block_given? - if min = find{|i| i} - min = yield(min) - each{|i| - j = yield(i) - min = j if min > j - } - min - end - elsif default_block - if min = find{|i| i} - min = default_block[*min] - each{|i| - j = default_block[*i] - min = j if min > j - } - min - end - else - min() - end - end - - def Max(&blk) - if block_given? - if max = find{|i| i} - max = yield(max) - each{|i| - j = yield(i) - max = j if max < j - } - max - end - elsif default_block - if max = find{|i| i} - max = default_block[*max] - each{|i| - j = default_block[*i] - max = j if max > j - } - max - end - else - max() - end - end - - alias avg average - alias std standard_deviation - alias var variance - end -end