Skip to content

Instantly share code, notes, and snippets.

@bayendor
bayendor / session_example.rb
Last active August 29, 2015 14:10
Rails Session Use Examples
class Counter
def self.counter(session)
session[:hit_counter] ||= 0
session[:hit_counter] += 1
end
end
# access with
class ItemsController < ApplicationController
before_action :load_counter
@bayendor
bayendor / gist:bd055224d757e64c2663
Last active August 29, 2015 14:10
Storing State in Sessions
  1. What's the difference between a cookie and a session? A session lasts until the browser is closed, a cookie is persistent state stored in a small text file.
  2. What's serialization and how does it come into play with cookies? The cookies stores serialized data about the session.
  3. Can a cookie be shared by more than one user? How/why? Probably.
  4. What would it mean to store a shopping cart in a cookie? The shopping cart would persist from session to session.
  5. What advantages/disadvantages are there between cookie-stored carts and database-stored carts?
@bayendor
bayendor / user_stories.rb
Created November 3, 2014 20:29
Intro to Capybara
describe "the idea creation process", :type => :feature do
it "goes to the home page" do
visit '/'
within("#session") do
fill_in 'Title', :with => 'great idea'
fill_in 'Description', :with => 'so awesome all the things'
end
click_button 'submit'
expect(page).to have_content 'Great Idea'
end
@bayendor
bayendor / into_to_sql.md
Last active August 29, 2015 14:08
Intro to SQL Notes

#What are database tables, column, and rows? What's the purpose of each?

Table is a collection of columns and rows

Column is a particular datatype, named with lowercase_separated_with_underscores

Row is a collection of data elements in a table each represented by a column, synonym for record

#How's a database similar and different from a spreadsheet?

@bayendor
bayendor / cleaner.rb
Last active August 29, 2015 14:07
Turing RegEx Cleaner
class Cleaner
def domain_from_email(email)
email.match(/([\w+\-.]+)@([a-z\d\-.]+\.[a-z]{2,4}+)/)[2]
end
def area_code_only(phone_number)
phone_number.match(/(\+*\d{1,})*([ |\(])*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4})/)[3]
end
def get_secret_message(string)
@bayendor
bayendor / unused_index.sql
Last active August 29, 2015 14:01 — forked from jberkus/gist:6b1bcaf7724dfc2a54f3
Finding Unused Indexes Query
WITH table_scans as (
SELECT relid,
tables.idx_scan + tables.seq_scan as all_scans,
( tables.n_tup_ins + tables.n_tup_upd + tables.n_tup_del ) as writes,
pg_relation_size(relid) as table_size
FROM pg_stat_user_tables as tables
),
all_writes as (
SELECT sum(writes) as total_writes
FROM table_scans
@bayendor
bayendor / audit_info.rb
Created March 14, 2014 15:32
Migration Results Import & Update Code
class AuditInfo < ActiveRecord::Base
belongs_to :arc_info
def self.import(file)
begin
if file.path
CSV.foreach(file.path, headers: true, col_sep: "\t") do |row|
audit_info = AuditInfo.create! row.to_hash
arc_info = audit_info.arc_info
arc_info.update_attribute(:status, audit_info.computed_status)
@bayendor
bayendor / gist:7999530
Created December 17, 2013 03:24
Always use :inverse_of to connect two models in a belongs_to/has_many relationship. When you have two models in a belongs_to/has_many relationship, you should always use the :inverse_of option to tell ActiveRecord that they're two sides of the same association. By setting this option, Rails can optimize object loading so forum and forum.posts[0]…
class Forum < ActiveRecord::Base
has_many :posts, :inverse_of => :forum
end
class Post < ActiveRecord::Base
belongs_to :forum, :inverse_of => :posts
end
@bayendor
bayendor / gist:7385660
Created November 9, 2013 13:55
Ransack multiple selects
f.collection_select :some_id_in, Model.all, :id, :name, {}, {:multiple => true}
# I have to do the following to get the select field I want:
search_form_for @search do |f|
f.collection_select :level_in, Log.levels, :to_s, :to_s, {}, { size: Log.levels.length, multiple: true }
@bayendor
bayendor / gist:7385546
Last active December 27, 2015 20:39
Checkbox in ransack search
# model CLINIC has many TREATMENTS
<%= check_box_tag "q[treatments_id_eq_ALL][]", treatment.id, {} %>
= f.input :category_name_eq, :collection=>Estate::Category.all.map(&:name), :as=>:check_boxes