Skip to content

Instantly share code, notes, and snippets.

@3dd13
3dd13 / application.html.erb
Created February 27, 2011 15:21
Sample string interpolation in en.yml with ruby I18n.t method
<html>
...
<body>
...
<div id="footer">
<%= I18n.t("layout.copyright_statement", :current_year => Date.today.year) %>
</div>
...
</body>
</html>
@3dd13
3dd13 / workless_delayed_job_initializer_mongoid.rb
Created March 13, 2011 15:00
use workless with Delayed Job Mongoid https://github.com/collectiveidea/delayed_job_mongoid https://github.com/lostboy/workless To use: after setting up delayed_job_mongoid and workless, put this file under initialzers directory
Delayed::Worker.max_attempts = 3
Delayed::Backend::Mongoid::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::Mongoid::Job)
@3dd13
3dd13 / ruby_core_source.rb
Created August 31, 2011 08:01
the reason of ruby_core_source.rb:57 'initilize': not in gzip format (Zlib::GzipFile::Error)
#
# the problem was
# this file was TAR compressed but not TAR.GZ
#
uri_path = "http://ftp.ruby-lang.org/pub/ruby/1.9/" + ruby_dir + ".tar.gz"
Tempfile.open("ruby-src") { |temp|
temp.binmode
@3dd13
3dd13 / apple_green_address.rb
Created September 18, 2011 10:03
Scraping the address of "Apple Green" from openrice.com
#
# loading the mechanize library for scraping
# install it if you haven't done it:
# sudo gem install mechanize
#
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://www.openrice.com/english/restaurant/sr2.htm?shopid=32108")
@3dd13
3dd13 / updateClearboxTop.js
Created September 20, 2011 18:21
Javascript to update the "top" css style after every scroll event, to solve the mobile browser position:fixed; issue. The function is called only if the client browser (by checking user-agent) is one of the mobile browsers.
var deviceIphone = "iphone";
var deviceIpod = "ipod";
var deviceIpad = "ipad";
var deviceAndroid = "android";
//Initialize our user agent string to lower case.
var uagent = navigator.userAgent.toLowerCase();
function detectUserAgent(deviceName)
{
@3dd13
3dd13 / ruby_ftp_example.rb
Created November 5, 2011 17:08
Sample code of using Ruby Net::FTP library. Login to FTP server, list out files, check directory existence, upload files
require 'net/ftp'
CONTENT_SERVER_DOMAIN_NAME = "one-of-the-ftp-server.thought-sauce.com.hk"
CONTENT_SERVER_FTP_LOGIN = "saucy-ftp-server-login"
CONTENT_SERVER_FTP_PASSWORD = "saucy-ftp-server-password"
# LOGIN and LIST available files at default home directory
Net::FTP.open(CONTENT_SERVER_DOMAIN_NAME, CONTENT_SERVER_FTP_LOGIN, CONTENT_SERVER_FTP_PASSWORD) do |ftp|
files = ftp.list
@3dd13
3dd13 / Gemfile
Created November 27, 2012 08:38
Runing single ruby file on heroku
source 'https://rubygems.org'
@3dd13
3dd13 / ormat_apn_token.rb
Created December 19, 2012 10:15
Convert the apn token collected from iOS to the format apn_on_rails is expecting
# the apn push token you collected from mobile is in this format:
# 00ea74e76a873e8e9c14c2dd2afe3b42abb35148e94042811e2b6985072641f2
#
# but actually, apn_on_rails is expecting this:
# 00ea74e7 6a873e8e 9c14c2dd 2afe3b42 abb35148 e9404281 1e2b6985 072641f2
def format_apn_token(text)
text && text.gsub(/(.{8})(?=.)/, '\1 \2')
end
@3dd13
3dd13 / guest_user.rb
Last active June 22, 2022 09:16
some helper methods for handling guest user in Rails (with devise) ecommerce website
#
# User Stories:
# To start shopping easily,
# guest user wants to add items to shopping cart without signing up
#
#
# Code Explanation:
# - a guest_user is created when new user arrives to your website, so that he could have his own shopping cart, and adding items to shopping cart.
# - when the guest_user sign up, all items in the shopping cart should be transferred to the new signed up user account
#
@3dd13
3dd13 / Gulpfile.js
Last active March 12, 2016 20:33 — forked from webdesserts/Gulpfile.js
Adapt the gulp hot reload file and apply to partial.js directory structure. (ignored public folder at the moment)
// NOTE: I previously suggested doing this through Grunt, but had plenty of problems with
// my set up. Grunt did some weird things with scope, and I ended up using nodemon. This
// setup is now using Gulp. It works exactly how I expect it to and is WAY more concise.
var gulp = require('gulp'),
spawn = require('child_process').spawn,
node;
/**
* $ gulp server
* description: launch the server. If there's a server already running, kill it.