GET /syllabi/1 Using wrapper objects
{
"type": "syllabus",
"properties": {
"id": 1,
"title": "Build a Simple Website",
"description": "Smells Like Bakin",
require 'rack' | |
module Rack | |
class ApiVersion | |
def initialize(app, options = {}) | |
@app = app | |
@options = options | |
end | |
def call(env) |
GET /syllabi/1 Using wrapper objects
{
"type": "syllabus",
"properties": {
"id": 1,
"title": "Build a Simple Website",
"description": "Smells Like Bakin",
require "ostruct" | |
# A base Service Object module. | |
# | |
# Example usage: | |
# | |
# class DoSomething | |
# include Service | |
# def call | |
# puts context.foo |
Cache Marks
An introduction of the pattern of using cache “marks” for use in building cache keys and indicating resource state uniqueness.
A cache mark is a simple value that represents a unique state of a resource or group of resources as a whole or in a particular context. A commonly used (but not referred to as) cache mark is a resource’s updated_at
timestamp. It is updated to the current time when a resource is updated allowing for cache keys that use that mark to automatically invalidate caches based on previous versions of that resource’s mark. In the case of a group of resources a mark may be used to invalidate keys whenever any member of the collection is modified or removed.
Cache marks must be stored separately from the resource itself when:
require 'redis' | |
# This example creates a master-slave setup with a sentinel, then connects to | |
# it and sends write commands in a loop. | |
# | |
# After 30 seconds, the master dies. You will be able to see how a new master | |
# is elected and things continue to work as if nothing happened. | |
# | |
# To run this example: | |
# |
Rpush::Client::Redis::Apns::Feedback.all.each do |feedback| | |
if Device.exists?(feedback.device_token) | |
puts "Device exists: #{feedback.device_token}" | |
else | |
feedback.destroy | |
end | |
end |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<array> | |
<dict> | |
<key>phrase</key> | |
<string>👎</string> | |
<key>shortcut</key> | |
<string>:-1:</string> | |
</dict> |