Skip to content

Instantly share code, notes, and snippets.

View shamil614's full-sized avatar

scott hamilton shamil614

View GitHub Profile
@shamil614
shamil614 / scopes_on_joins.rb
Created April 28, 2014 16:15
Using Scopes on Arel Join Queries
# Let's say you have a join between Address and Job
# You want to use a scope on Job to limit the jobs that have to be joined otherwise you would join all jobs.
# So you try this
Address.joins('INNER JOIN jobs ON jobs.id = addresses.addressable_id AND addresses.addressable_type = "Job" AND ' \
'addresses.address_type = "physical"').where(Job.in_the_future)
# What you get is an error like so
# Job Load (1.1ms) SELECT `jobs`.* FROM `jobs` WHERE (start_datetime > '2014-04-28 16:06:12')
# (pry) output error: #<TypeError: Cannot visit ActiveRecord::Relation::ActiveRecord_Relation_Job>
// job quote make the following assumptions:
// 1 hr job during the week (normal/standard rate)
// travel costs are included
// includes interp minimum job hours (some interps have a requirement for two hours)
// does not include tax
{ "job_quote": { "min_cost": "$20", "max_cost": "$65" }
"interpreters":
[
{ "cityState": "Austin, TX 78758", "latitude": 123.456, "longitude": 123.456, "hourlyRate": "$45" },
{ "cityState": "San Antonio, TX 77577", "latitude": 456.789, "longitude": 456.789, "hourlyRate": "$65" },
@shamil614
shamil614 / redis.conf
Created October 16, 2014 23:48
Basic Redis Config (development)
loglevel notice
logfile ""
dir vendor/redis/db/
@shamil614
shamil614 / en.yml
Created November 18, 2014 21:06
Demo how to use localize ActiveRecord errors
en:
helpers:
submit:
offer:
create: "Make Offer"
bid:
create: "Place Bid"
activerecord:
errors:
models:
@shamil614
shamil614 / twitter_links.rb
Created July 11, 2011 20:44
Twitter Link Helper
@shamil614
shamil614 / active_link_helper.rb
Created July 26, 2011 17:12
Set active or selected links based on request path and link path
@shamil614
shamil614 / time_ago_helper.rb
Created July 26, 2011 17:15
Twitter like relatvie time stamps (2 seconds ago, 2 minutes ago, etc) *** requires time_diff gem
#requires time_diff gem
def time_ago(time)
parsed_time = Time.parse(time)
time_diff = Time.diff(parsed_time, Time.now)
formated_time = ""
if time_diff[:day] > 0 || time_diff[:month] > 0 || time_diff[:year] > 0
formated_time += "#{parsed_time.day}" if time_diff[:day] > 0
formated_time += " #{parsed_time.strftime("%b")}" if time_diff[:month] > 0
formated_time += " #{parsed_time.strftime("%y")}" if time_diff[:year] > 0
else
@shamil614
shamil614 / imagemagick-resize-crop.sh
Created October 20, 2011 21:16
Imagemagick - Resize and crop
convert original.jpg -resize 200x200^ -gravity Center -crop 200x100+0+0 +repage thumbs.jpg
@shamil614
shamil614 / array_chunk.rb
Created November 3, 2011 21:36
Method to split up / divide an array into other arrays.
class Array
def chunk(pieces=2)
len = self.length;
mid = (len/pieces)
chunks = []
start = 0
1.upto(pieces) do |i|
last = start+mid
last = last-1 unless len%pieces >= i
chunks << self[start..last] || []
@shamil614
shamil614 / split_paragraphs.rb
Created November 22, 2011 19:54
Split paragraph helper
def split_paragraphs(text,limit,wrapper_id_short=nil,wrapper_id_long=nil)
results = text.scan(/<p>.*?<\/p>/)
i = 0
length = 0
short_p = ""
while length < limit && i <= results.count - 1
short_p << results[i]
length += results[i].length - 7
i+= 1
end