Skip to content

Instantly share code, notes, and snippets.

@selvan
selvan / gist:599347dbe7b418b83f0b
Last active August 29, 2015 14:10
Session Encryption Rails
module MyAppEncryptor
app = Rails.application
config = app.config
# PBKDF2 with SHA-1
key_generator = ActiveSupport::KeyGenerator.new(app.secrets[:secret_key_base], iterations: 1000)
secret = key_generator.generate_key(config.action_dispatch.encrypted_cookie_salt)
sign_secret = key_generator.generate_key(config.action_dispatch.encrypted_signed_cookie_salt)
@selvan
selvan / sequence_gen
Last active August 29, 2015 14:10
Rails DB Sequence Generation
class CreateMerchantUniqIdGens < ActiveRecord::Migration
def change
create_table :merchant_uniq_id_gens do |t|
t.integer :count, :null => false
end
# Set initial count to 100
single_row = MerchantUniqIdGen.new
single_row.count = 100
single_row.save!
@selvan
selvan / gist:fdb1b349fbee034351d2
Created October 25, 2014 08:58
Website Mirror wget
wget --mirror -p --convert-links -P ./ <<site>>
@selvan
selvan / oauth2-google-refresh-token
Created January 23, 2013 08:42
Geting new access token using refresh token - Google oauth2
### Method 1
gem install oauth2
require 'oauth2'
client = OAuth2::Client.new(GOOGLE_KEY, GOOGLE_SECRET, {:site => 'https://accounts.google.com', :authorize_url => "/o/oauth2/auth", :token_url => "/o/oauth2/token"})
response = OAuth2::AccessToken.from_hash(client, :refresh_token => REFRESH_TOKEN).refresh!
@selvan
selvan / chrome-bookmarks
Created December 16, 2012 15:26
Chrome extension to export all bookmarks
//manifest.json
{
"name": "bookmark-search-export",
"version": "1.0",
"manifest_version": 2,
"description": "This extention will dump all bookmarks",
"browser_action": {
"default_icon": "icon.png"
},
"background": {
@selvan
selvan / rvm_ruby_rails
Created July 20, 2012 04:17
Rvm, Ruby and Rails
# change shell to bash
export SHELL=/bin/bash
# install mysql lib
sudo apt-get install libmysqlclient-dev
# install openssl & dev files
sudo apt-get install libssl-dev openssl
# install smb client libs
@selvan
selvan / timezone_rails
Created July 20, 2012 04:12
Timezone & Rails
How to configure timezone in Rails
====================================
Database table didn't care about timezone's. It just preserves datetime data.
Hence it is up to (Rails) applications to manage timezone's.
Rails application needs to manage timezone in two ways via configuration - config/application.rb
(See http://guides.rubyonrails.org/configuring.html for more details),
1. While storing data in DB, which TZ to use
> Allows us to use only :local or :utc TZ's
@selvan
selvan / apt-get
Created June 20, 2012 09:47
Local / LAN based apt-get
####### Machine A ###########
# create package index file
cd /var/cache/apt/archives/
dpkg-scanpackages . /dev/null | gzip -c -9 > Packages.gz
# start mongoose (code.google.com/p/mongoose) / any webserver with document root as "/var/cache/apt/archives/"
mongoose -r /var/cache/apt/archives/
####### Machine B ###########
# edit " /etc/apt/sources.list"
@selvan
selvan / application.rb
Created June 15, 2012 10:18
Custom Log Formatting - Rails 3
logger = Logger.new(File.join( Rails.root, "log", "my_#{ Rails.env}.log"), 'daily')
logger.level = Logger::INFO
logger.formatter = proc do |severity, datetime, progname, msg|
"#{datetime.strftime("%B %d %H:%M:%S")} #{Socket.gethostname}, [#{$$}]:, #{severity} MY_WEBAPP, #{msg}\n"
end
tag_log = ActiveSupport::TaggedLogging.new(logger)
config.logger = tag_log
# above code will produce log in format as shown below,
@selvan
selvan / dict
Created May 3, 2011 03:40
Offline English Dictionary Ubuntu
apt-get install dictd
apt-get install dict-gcide
apt-get install dict-moby-thesaurus
"Application -> Office -> Dictionary -> Edit –> Preference -> Add"
Description : <<Your description>>
Transport : Dictionary Server
Hostname : 127.0.0.1
Port : 2628