51. class Collect < Base
end
class ShippingAddress < Base
end
class BillingAddress < Base
end
class LineItem < Base
end
class ShippingLine < Base
end
class NoteAttribute < Base
end
53. class Collect < Base
end
class ShippingAddress < Base
end
class BillingAddress < Base
end
class LineItem < Base
end
class ShippingLine < Base
end
class NoteAttribute < Base
end
62. class Person
include ActiveModel::Dirty
define_attribute_methods [:name]
def name
@name
end
def name=(val)
name_will_change!
@name = val
end
def save
@previously_changed = changes
end
end
63. # A newly instantiated object is unchanged:
person = Person.find_by_name('Uncle Bob')
person.changed? # => false
70. class User
def errors
@errors ||= ActiveModel::Errors.new(self)
end
def validate!
errors.add(:name, "can not be nil")
end
end
user.errors[:name] #=> ["can not be nil"]
74. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_acceptance_of :terms_of_service
end
user = User.new
puts user.valid?
75. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_confirmation_of :password
end
user = User.new
puts user.valid?
76. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_presence_of :name
end
user = User.new
puts user.valid?
77. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_exclusion_of :name,
:in => ["admin"]
end
user = User.new
puts user.valid?
78. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_inclusion_of :role,
:in => ["user", "admin"]
end
user = User.new
puts user.valid?
79. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_format_of :email,
:with => /A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i
end
user = User.new
puts user.valid?
80. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_length_of :password, :minimum => 6
end
user = User.new
puts user.valid?
81. class User
include ActiveModel::Validations
attr_reader :name, :email, :age,
:terms_of_service, :password,
:password_confirmation, :role
validates_numericality_of :age
end
user = User.new
puts user.valid?
85. require 'rubygems'
require 'active_model'
require 'test/unit'
require 'user'
class LintTest < ActiveModel::TestCase
include ActiveModel::Lint::Tests
def setup
@model = User.new
end
end
86. class User
include ActiveModel::Conversion
extend ActiveModel::Naming
def valid?() true end
def errors
@errors ||= ActiveModel::Errors.new(self)
end
def persisted?
true
end
end
93. PauldixReadingList::ReadingList.for_user(
"paul",
:include => [:entry, :rating_total]) do |list|
reading_list = list
end
HYDRA.run
# now we can access the reading list
reading_list.entries.each do |entry|
puts entry.id
puts entry.title
puts entry.body
puts "up: #{entry.rating_total.up_count} |
down: #{entry.rating_total.down_count}nn"
end
94. def self.for_user(user_id, options = {}, &block)
includes = options[:include] || []
request =
Typhoeus::Request.new(get_by_id_uri(user_id))
request.on_complete do |response|
list = new(response.body, options)
list.request_entries if includes.include?(:entry)
list.request_rating_totals if
includes.include?(:rating_total)
block.call(list)
end
PauldixReadingList::Config.hydra.queue(request)
end
95. def self.get_ids(ids, &block)
request = Typhoeus::Request.new(get_ids_uri(ids))
request.on_complete do |response|
json = Yajl::Parser.parse(response.body)
entries = ids.map do |id|
new(json[id].merge("id" => id))
end
block.call(entries)
end
PauldixEntries::Config.hydra.queue(request)
end
96. def self.get_ids(ids, &block)
request = Typhoeus::Request.new(get_ids_uri(ids))
request.on_complete do |response|
json = Yajl::Parser.parse(response.body)
ratings = ids.map do |id|
new(json[id])
end
block.call(ratings)
end
PauldixRatings::Config.hydra.queue(request)
end
99. require 'net/http'
include Java
import 'java.util.concurrent.Executors'
class Request
include java.util.concurrent.Callable
def initialize(url)
@url = url
end
def call
Net::HTTP.get(URI.parse(@url))
end
end
100. thread_pool = Executors.new_fixed_thread_pool(50)
futures = []
100.times do |i|
request =
Request.new("http://localhost:3000/entries/#{i}")
futures << thread_pool.submit(request)
end
results = futures.map {|f| f.get}
# do something with results
thread_pool.shutdown