Skip to content

Instantly share code, notes, and snippets.

View jfriedlaender's full-sized avatar

Joel Friedlaender jfriedlaender

View GitHub Profile
@jfriedlaender
jfriedlaender / hooks_controller.rb
Created April 23, 2011 04:37 — forked from ryansch/hooks_controller.rb
Rails 3 Controller for Chargify Webhooks
require 'digest/md5'
class Chargify::HooksController < ApplicationController
protect_from_forgery :except => :dispatch_handler
before_filter :verify, :only => :dispatch_handler
EVENTS = %w[ test signup_success signup_failure renewal_success renewal_failure payment_success payment_failure billing_date_change subscription_state_change subscription_product_change ].freeze
def dispatch_handler
event = params[:event]
@jfriedlaender
jfriedlaender / gist:1018597
Created June 10, 2011 10:29
Internationalize phone numbers
def self.internationalize_phone_number(number, country)
c = Country[Country.find_by_name(country)[0]]
if c
number = Phony.normalize(number)
number = "#{c.country_code}#{number}" unless number.starts_with?(c.country_code)
end
number = Phony.normalize(number)
number
end
desc "Updating birth dates from date of birth"
task :update_birth_date_fields => :environment do
puts "Updating birth dates from date of birth"
User.where('date_of_birth is not null').each do |u|
u.birth_month = u.date_of_birth.month
u.birth_day = u.date_of_birth.day
u.save
end
private
def update_birth_date_fields
if date_of_birth_changed?
self.birth_month = date_of_birth ? date_of_birth.month : nil
self.birth_day = date_of_birth ? date_of_birth.day : nil
end
end
before_save :update_birth_date_fields
private
def update_birth_date_fields
if date_of_birth_changed?
self.birth_month = date_of_birth ? date_of_birth.month : nil
self.birth_day = date_of_birth ? date_of_birth.day : nil
end
end
@jfriedlaender
jfriedlaender / gist:1120165
Created August 2, 2011 13:22
add birth_day and birth_month fields to person model
rails generate migration add_birth_date_fields_to_users birth_day:integer birth_month:integer
def subscription_state_change
begin
account = Account.find(@subscription.customer.reference)
account.subscription_state = @subscription.state
account.subscription_billing_date = @subscription.current_period_ends_at
account.save(:validate => false)
render :nothing => true, :status => 200
rescue Exception => e
notify_hoptoad(e) #If you use hoptoad...
render :nothing => true, :status => 422 and return
@jfriedlaender
jfriedlaender / gist:1273620
Created October 9, 2011 12:21
Get contrasting color
def contrasting_text_color(hex_color)
color = hex_color.gsub('#','')
convert_to_brightness_value(color) > 382.5 ? darken_color(color) : lighten_color(color)
end
def convert_to_brightness_value(hex_color)
(hex_color.scan(/../).map {|color| color.hex}).sum
end
@jfriedlaender
jfriedlaender / init-postgresql-boxen
Last active October 1, 2015 16:53
Start Postgresql for Boxen
/opt/boxen/homebrew/bin/postgres -p 15432 -D /opt/boxen/data/postgresql -r /opt/boxen/log/postgresql/server.log
@jfriedlaender
jfriedlaender / gist:2879834
Created June 6, 2012 04:00
Chargify migrate preview
def plan_change_preview(new_plan_id)
api_url = "https://#{Chargify.subdomain}.chargify.com/subscriptions/#{subscription_id}/migrations/preview.json"
data = {:migration => {:product_handle => p_handle} }
response = HTTParty.post(api_url, :body => data.as_json, :basic_auth => {:username => Chargify.api_key, :password => 'X'})
response.parsed_response.first[1]
end