Skip to content

Instantly share code, notes, and snippets.

View Kameshwaran's full-sized avatar

Kameshwaran Sachithanantham Kameshwaran

View GitHub Profile
@Kameshwaran
Kameshwaran / slim-redux.js
Created May 20, 2020 10:10 — forked from gaearon/slim-redux.js
Redux without the sanity checks in a single file. Don't use this, use normal Redux. :-)
function mapValues(obj, fn) {
return Object.keys(obj).reduce((result, key) => {
result[key] = fn(obj[key], key);
return result;
}, {});
}
function pick(obj, fn) {
return Object.keys(obj).reduce((result, key) => {
if (fn(obj[key])) {
/**
* @license
* Video.js 7.6.6 <http://videojs.com/>
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
* Available under Apache License Version 2.0
* <https://github.com/videojs/video.js/blob/master/LICENSE>
*
* Includes vtt.js <https://github.com/mozilla/vtt.js>
* Available under Apache License Version 2.0
* <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
@Kameshwaran
Kameshwaran / heroku-database-url-to-config.sh
Created February 7, 2019 06:39
Shell script to extract details from DATABASE URL
# Sample DATABASE_URL = dbms://username:password@hostname:port/dbname
DB_PROTOCOL=$(echo $DATABASE_URL | cut -d':' -f1)
DB_DETAILS=$(echo $DATABASE_URL | cut -d'/' -f3)
DB_NAME=$(echo $DATABASE_URL | cut -d'/' -f4)
HOST_NAME=$(echo $DB_DETAILS | cut -d'@' -f2 | cut -d':' -f1)
PORT=$(echo $DB_DETAILS | cut -d'@' -f2 | cut -d':' -f2)
USER_NAME=$(echo $DB_DETAILS | cut -d'@' -f1 | cut -d':' -f1)
PASSWORD=$(echo $DB_DETAILS | cut -d'@' -f1 | cut -d':' -f2)
@Kameshwaran
Kameshwaran / update_param_and_reload.js
Last active January 22, 2019 10:08
Add/Update URL param and reload page
window.updateParamAndReload = function(paramName, value) {
var url = new URL(window.location.toString())
url.searchParams.set(paramName, value)
window.location = url
}
const { Builder, By, until } = require('selenium-webdriver');
const driver = new Builder()
.forBrowser('chrome')
.build();
const waitForTitle = () => {
return driver.getTitle().then((title) => title.includes('JSFiddle'));
}
const runTests = () => {
@Kameshwaran
Kameshwaran / mailman.rb
Last active May 4, 2017 11:39
Command line tool to read emails through Mailman
# frozen_string_literal: true
# This file defines the configuration for mail reading through pop3 protocol
# using 'Mailman' library. Place this file inside `config/initializers` if you are on Rails.
# Poll interval must be specified seconds, it defaults to 10 seconds
Mailman.config.poll_interval = (ENV['MAILBOX_POLL_INTERVAL'] || 10).to_i
# POP3 settings
Mailman.config.pop3 = {
server: ENV['POP3_SERVER'],
@Kameshwaran
Kameshwaran / copy_heroku_config.rb
Last active September 6, 2016 07:37
Copy heroku config from one APP to another APP
SOURCE_APP = ARGV[0]
DESTINATION_APP = ARGV[1]
if SOURCE_APP.nil? || DESTINATION_APP.nil?
puts 'USAGE: ruby copy_heroku_config.rb SOURCE_APP_NAME DESTINATION_APP_NAME'
end
# Parsing heroku configs
configs = `heroku config --app #{SOURCE_APP}`
configs = configs.split('\n')
@Kameshwaran
Kameshwaran / list_file.rb
Created February 4, 2015 06:03
Listing all the files recursively in a folder
def files(file)
return file unless ( file = Pathname.new(file) and File.directory?(file) )
file.children.map { |f| files(f) }
end
# files(".") => [#<Pathname:hello.rb>, #<Pathname:spec/hello.rb>, #<Pathname:spec/hai.rb>, ...]
@Kameshwaran
Kameshwaran / string_matcher.rb
Last active August 29, 2015 14:14
A simple string matcher in Ruby
class String
def method_missing(method, *args, &block)
method_name = method.to_s
if method_name.include?("is_") && method_name.include?("?")
method_name = method_name.gsub("is_", "")[0..-2]
(method_name == self) || (method_name.camelize == self) || (method_name.titleize == self) || (method_name.gsub(" ", "") == self)
else
super(method, *args, &block)
end
end
@Kameshwaran
Kameshwaran / titleize.rb
Last active March 22, 2020 20:52
Titleize in ruby
class String
def titleize
u_split = split("_")
s_split = u_split.map { |s| s.split(" ") }.flatten
if s.split.empty?
capitalize
else
s_split.map(&:capitalize).join(" ")
end