Skip to content

Instantly share code, notes, and snippets.

View jagira's full-sized avatar
🙃

Jigar Patel jagira

🙃
View GitHub Profile
@jagira
jagira / turn_left.rb
Created October 4, 2011 18:10
Mars Rover Example
class MarsRover
def initialize(current_direction)
@direction = current_direction
end
def turn_left
end
@jagira
jagira / mysql_connection_cleaner.rb
Created June 15, 2011 08:03
MySQL Connection Cleaner
require 'mysql2'
# Change the host and password
client = Mysql::Client.new(:host => "localhost", :username => "root")
# Fetch running processes
processes = client.query("SHOW FULL PROCESSLIST")
processes.each do |process|
@jagira
jagira / twitter_gist.rb
Created May 22, 2011 07:16
Testing gists in Twitter
puts "Testing gists in Twitter"
@jagira
jagira / template.rb
Created February 23, 2011 19:58
Template model class for having configurable messages stored in database.
class Template < ActiveRecord::Base
validates_uniqueness_of :name
# Set default values in this hash
DEFAULT_VALUES = {:community => "Ruby on Rails"}
# Find template by its name
# @template = Template.where(:name => "welcome_message").first
# Template has the following message attribute
@jagira
jagira / BSE_scraper.rb
Created January 22, 2011 16:03
Scrap BSE stocks list along with their codes
require 'rubygems'
require 'nokogiri'
require 'open-uri'
# Add/Remove required letters - some letters might not be the starting letter for any company name
# alphabet = ["A","B","C","D","E","F","G","H","J","I","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
# To choose all letters
alphabet = ('A'..'Z').to_a
categories = alphabet << "[0-9]"
["A","B","S","T","TS","Z"].each do |letter1|
require 'uri'
require 'json'
require 'net/http'
uri = URI.parse("http://services.digg.com/2.0/story.getTopNews.json")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
request.initialize_http_header({"User-Agent" => "Agent/1.0"})
response = http.request(request)
data = JSON.parse(response.body)
def attribute_present?(attribute)
value = read_attribute(attribute)
!value.blank?
end
def dup
obj = super
obj.instance_variable_set('@attributes', @attributes.dup)
obj
end
# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
def add_association_callbacks(association_name, options)
callbacks = %w(before_add after_add before_remove after_remove)
callbacks.each do |callback_name|
full_callback_name = "#{callback_name}_for_#{association_name}"
defined_callbacks = options[callback_name.to_sym]
if options.has_key?(callback_name.to_sym)
class_inheritable_reader full_callback_name.to_sym
write_inheritable_attribute(full_callback_name.to_sym, [defined_callbacks].flatten)
else
write_inheritable_attribute(full_callback_name.to_sym, [])