Skip to content

Instantly share code, notes, and snippets.

View chris-roerig's full-sized avatar
😎
💯

Chris Roerig chris-roerig

😎
💯
View GitHub Profile
@chris-roerig
chris-roerig / log_to.rb
Created February 13, 2017 17:13
Log to a specific file in Rails
# Logs to the specified file in the Rails log folder
#
# Usage:
# LogTo.file("tracking-numbers").info "log some data"
# or
# logger = LogTo.file("tracking-numbers")
# logger.info "this is saved in my tracking-numbers log"
class LogTo
def self.file(name)
return Rails.logger if Rails.env.test?
@chris-roerig
chris-roerig / ruby_macro_methds.rb
Last active July 14, 2020 20:59
How to add macro style methods to a rails model
# Rails Concern
# models/concerns/nicknameable.rb
module Nicknameable
extend ActiveSupport::Concern
included do
def self.nicknames(*args)
define_method("nicknames") { args }
end
nicknames
@chris-roerig
chris-roerig / timezone_from_coordinates.rb
Created April 25, 2016 14:19
Returns the time zone id for a given set of coordinates
def timezone_from_coordinates(lat, long)
conn = Faraday.new(url: "https://maps.googleapis.com/maps/api/")
res = conn.get("timezone/json") do |req|
req.params["location"] = "#{lat},#{long}"
req.params["timestamp"] = Time.now.to_i
req.params["sensor"] = false
end
data = JSON.parse res.body
data["timeZoneId"]
@chris-roerig
chris-roerig / info.rb
Created February 8, 2016 14:46
Simple puts-er logger
# prints a message in the console.
# ##################
# this is my message
# ##################
def info(message, char = "#" )
len = `tput cols`.to_i
bar = -> { (len/ char.length).times { print char }; print "\n" }
(message.length / len).times { |n| message.insert(((n +1 ) * len), "\n") }
bar.call
@chris-roerig
chris-roerig / file_utility.rb
Last active January 25, 2016 02:04
A little file path utility
# usage:
# safe_path "app/controllers"
def safe_path(path = "")
File.join(*path.split("/"))
end
"devDependencies": {
"broccoli-asset-rev": "^2.2.0",
"ember-cli": "1.13.13",
"ember-cli-app-version": "^1.0.0",
"ember-cli-babel": "^5.1.5",
"ember-cli-bootswatch": "1.13.0",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "^1.1.0",
"ember-cli-emblem": "0.3.1",
###
class ExpectedDeliveryDateRow
include Helper::Date
include KioskDashboardCard::ViewHelpers
def initialize(is_deliverd, delivery_date)
@is_deliverd = is_deliverd
@delivery_date = delivery_date
end
@chris-roerig
chris-roerig / muter.rb
Created August 12, 2015 16:38
mac osx audio mute toggler
class Muter
def mute_for(minutes = 5)
return restore if minutes == 0
Thread.new do
mute
sleep (minutes * 60)
restore
end
end
@chris-roerig
chris-roerig / gist:c62ad21384c56aad1ea7
Created March 4, 2015 15:44
Javascript date.toString()
//Extracted from https://code.google.com/p/datejs/source/browse/trunk/src/core.js#761
/**
* Converts the value of the current Date object to its equivalent string representation.
* Format Specifiers
<pre>
CUSTOM DATE AND TIME FORMAT STRINGS
Format Description Example
------ --------------------------------------------------------------------------- -----------------------
s The seconds of the minute between 0-59. "0" to "59"
@chris-roerig
chris-roerig / gist:b6d57be82657d17c6c67
Created March 2, 2015 17:31
A rake task for creating hamlbars templates
require 'fileutils'
namespace :hamlbars do
desc "Creates a hamlbars template in app/assets/javascripts/templates"
task :template do
template = ARGV.last
dir = template.rpartition("/").first
file = template.rpartition("/").last
begin