Magic words:
psql -U postgres
If run with -E
flag, it will describe the underlaying queries of the \
commands (cool for learning!).
Most \d
commands support additional param of __schema__.name__
and accept wildcards like *.*
package main | |
import ( | |
"fmt" | |
"time" | |
) | |
type guestConnection struct { | |
ip string | |
userName string |
class AccountsController < ApplicationController | |
def update | |
@account = Account.find(params[:id]) | |
respond_to do |format| | |
if @account.update_attributes(account_params) | |
format.html { redirect_to @account, notice: 'Account was successfully updated.' } | |
else | |
format.html { render action: "edit" } | |
end |
# lib/tasks/db.rake | |
namespace :db do | |
desc "Dumps the database to db/APP_NAME.dump" | |
task :dump => :environment do | |
cmd = nil | |
with_config do |app, host, db, user| | |
cmd = "pg_dump --host #{host} --username #{user} --verbose --clean --no-owner --no-acl --format=c #{db} > #{Rails.root}/db/#{app}.dump" | |
end | |
puts cmd |
This gist assumes:
Domain model is an effective tool for software development. It can be used to express really complex business logic, and to verify and validate the understanding of the domain among stakeholders. Building rich domain models in Rails is hard. Primarily, because of Active Record, which doesn't play well with the domain model approach.
One way to deal with this problem is to use an ORM implementing the data mapper pattern. Unfortunately, there is no production ready ORM doing that for Ruby. DataMapper 2 is going to be the first one.
Another way is to use Active Record just as a persistence mechanism and build a rich domain model on top of it. That's what I'm going to talk about in this article.
module Regalli | |
class Account | |
require 'json' | |
require "base64" | |
require 'net/http' | |
def initialize | |
@data = JSON.parse(response) | |
end |
# Your init script | |
# | |
# Atom will evaluate this file each time a new window is opened. It is run | |
# after packages are loaded/activated and after the previous editor state | |
# has been restored. | |
# | |
# An example hack to log to the console when each text editor is saved. | |
# | |
# atom.workspace.observeTextEditors (editor) -> | |
# editor.onDidSave -> |
class MyJob < ActiveJob::Base | |
queue_as :urgent | |
rescue_from(NoResultsError) do | |
retry_job wait: 5.minutes, queue: :default | |
end | |
def perform(*args) | |
MyService.call(*args) | |
end |
#!/usr/bin/env puma | |
app_path = '/var/www/YOUR_APP_NAME/current' | |
directory app_path | |
environment 'production' | |
daemonize true | |
pidfile "#{app_path}/tmp/pids/puma.pid" | |
state_path "#{app_path}/tmp/pids/puma.state" | |
stdout_redirect "#{app_path}/log/puma_error.log", "#{app_path}/log/puma_access.log", true | |
threads 0,16 |