2. Что такое джемс?
RubyGems (rubygems.org) — пакетный
менеджер для руби
Единый формат распространения отдельных
программ и библиотек
Программа для установки библиотек (джемс)
Сервер для распространения джемс
6. authlogic (binarylogic)
class UserSession < Authlogic::Session::Base
# specify configuration here, such as:
# logout_on_timeout true
# ...many more options in the documentation
end
UserSession.create(:login => "john",
:password => "my password",
:remember_me => true)
session.destroy
9. cucumber (aslakhellesoy)
Feature: Addition
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
Scenario: Add two numbers
Given I visit the calculator page
And I fill in '50' for 'first'
And I fill in '70' for 'second'
When I press 'Add'
Then I should see 'Answer: 120'
10. cucumber (cont’d)
Given /^I visit the calculator page$/ do
visit '/add'
end
Given /^I fill in '(.*)' for '(.*)'$/ do |value, field|
fill_in(field, :with => value)
end
When /^I press '(.*)'$/ do |name|
click_button(name)
end
Then /^I should see '(.*)'$/ do |text|
response_body.should contain(/#{text}/m)
end
13. bort (fudgestudios)
default css
rm rails.png/index.html
page title helper
application layout
filtering password /password_confirmation
database for sessions
capistrano for git/passenger
plugins (RESTful authentication, role requirement, Open ID authentication,
will_paginate, rspec/rspec-rails, exception notifier, asset packager)
14. whenever (javan)
wheneverize .
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
end
every 1.day, :at => '4:30 am' do
command "/usr/bin/my_great_command"
end
whenever --update-crontab
15. formtastic (justinfrench)
<% semantic_form_for @article do |form| %>
<% form.inputs :name => "Basic" do %>
<%= form.input :title %>
<%= form.input :publication_state, :as => :radio %>
<%= form.input :allow_comments, :label => "Allow commenting on this article" %>
<% end %>`
<% form.inputs :name => "Advanced" do %>
<%= form.input :keywords, :required => false, :hint => "Example: ruby, rails, forms"
%>
<% end %>
<% form.inputs :name => "Author", :for => :author do |author_form| %>
<%= author_form.input :first_name %>
<%= author_form.input :last_name %>
<% end %>
<% form.buttons do %>
<%= form.commit_button %>
<% end %>
<% end %>
16. delayed_job (tobi)
create_table :delayed_jobs, :force => true do |table|
table.integer :priority, :default => 0 #Allows some jobs to jump to the front of the queue
table.integer :attempts, :default => 0 #Provides for retries, but still fail eventually.
table.text :handler #YAML-encoded string of the object that will do work
table.string :last_error #reason for last failure (See Note below)
table.datetime :run_at #When to run. Could be Time.now for immediately, or sometime in the future.
table.datetime :locked_at #Set when a client is working on this object
table.datetime :failed_at #Set when all retries have failed (actually, by default, the record is
deleted instead)
table.string :locked_by #Who is working on this object (if locked)
table.timestamps
end
MyJob#perform
17. haml (Hampton Caitlin)
%ul
%li Salt
%li Pepper
%p
Date/Time:
- now = DateTime.now
%strong= now
- if now > DateTime.parse("December 31, 2006")
= "Happy new " + "year!"
!main_bg= #46ar12
!main_width= 40em
#main
background-color = !main_bg
width = !main_width
.sidebar
background-color = !main_bg + #333333
width = !main_width - 25em
19. searchlogic (cont’d)
User.username_eq(10) # equals
User.id_lt(10) # less than
User.id_lte(10) # less than or equal to
User.id_gt(10) # greater than
User.id_gte(10) # greater than or equal to
User.orders_total_greater_than(20)
User.orders_line_items_price_greater_than(20)
User.ascend_by_order_total
User.descend_by_orders_line_items_price
User.username_like_all("bjohnson", "thunt") #will return any users that have all of the strings in their username
User.username_like_any(["bjohnson", "thunt"]) #also accepts an array
User.username_or_first_name_like("ben")
User.id_or_age_lt_or_username_or_first_name_begins_with(10)
search = User.search(:username_like => "bjohnson", :age_less_than => 20)
User.named_scope :four_year_olds, :conditions => {:age => 4}
User.search(:four_year_olds => true, :username_like => "bjohnson")
User.username_like("bjohnson").age_less_than(20).paginate(:page => params[:page])
User.search(:username_like => "bjohnson", :age_less_than => 20).paginate(:page =>
params[:page])
User.searchlogic