Skip to content

Instantly share code, notes, and snippets.

View goshacmd's full-sized avatar

Gosha Spark goshacmd

View GitHub Profile
@goshacmd
goshacmd / bm.rb
Last active December 10, 2015 12:38
Array() vs #flatten
require 'benchmark'
n = 1_000_000
Benchmark.bm do |x|
x.report('[[1]]') { n.times { [[1]].flatten } }
x.report('Array([1])') { n.times { Array([1]) } }
x.report('[1]') { n.times { [1].flatten } }
x.report('Array(1)') { n.times { Array(1) } }
end
require 'benchmark'
# Benchmarking Array#compact & Array#join
n = 1_000_000
Benchmark.bm do |x|
x.report('3 elements + nil') { n.times { ['a', 'b', 'c', nil].compact.join('::') } }
x.report('3 elements') { n.times { ['a', 'b', 'c'].compact.join('::') } }
end
# user system total real
@goshacmd
goshacmd / rake.log
Created December 29, 2012 10:05
active_admin specs failing on 1.9.3-p362, OS X ML
This file has been truncated, but you can view the full file.
4 processes for 77 specs, ~ 19 specs per process
.....DEPRECATION WARNING: Active Admin: ActiveAdmin.default_namespace is deprecated. Please use ActiveAdmin.application.default_namespace. (called from block (3 levels) in <top (required)> at /Users/goshakkk/Projects/active_admin/spec/unit/active_admin_spec.rb:8)
.............................................................................Running JSLint:
......................*****
No JS errors found.
..............................DEPRECATION WARNING: ActiveAdmin::Dashboard is deprecated and will be removed in the next version
...........................................................................................................................F*.....................................................*.........................................................................................*..*.......*............................................................*.........
Pending:
@goshacmd
goshacmd / demo.rb
Created December 28, 2012 17:12
Injecting method arguments
i = Injector.new first: 'First Name', last: 'Last Name', power: 2
def full_name(first, last)
"#{first} #{last}"
end
def random_to_power(power)
4 ** power
end
@goshacmd
goshacmd / blocks.rb
Last active December 10, 2015 05:48
`proc` instead of named block param
# Doing this
def a(&block)
block.call if block_given?
end
a { p 1 }
# is equivalent to doing this
def b
proc.call if block_given?
@goshacmd
goshacmd / filesortd_config.rb
Created December 16, 2012 19:06
myfreeweb/filesortd better matching DSL idea
# with current DSL
folder '~/Downloads' do
kind 'Movie' do
downloaded_from %r{destroyallsoftware} do
# do stuff
end
end
end
# with better matching DSL & label matcher
@goshacmd
goshacmd / elixir.rb
Created August 24, 2012 00:01
HEAD elixir homebrew formula
require 'formula'
class ErlangInstalled < Requirement
def message; <<-EOS.undent
Erlang is required to install.
You can install this with:
brew install erlang
Or you can use an official installer from:
@goshacmd
goshacmd / build_info.txt
Created August 22, 2012 14:54
Elixir System.build_info
dynamo_demo(master)$ mix iex
Interactive Elixir (0.7.0.dev) - press Ctrl+C to exit
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
iex(1)> System.build_info
{"0.7.0.dev","fatal: Not a git repository (or any of the parent directories): .git","Tue, 21 Aug 2012 21:29:41 GMT"}
iex(2)>
@goshacmd
goshacmd / gist:3420139
Created August 21, 2012 22:57
Dynamo fails :(
dynamo_demo(master)$ mix do clean, iex
Compiled lib/dynamo_demo.ex
Compiled lib/dynamo_demo/app.ex
Generated dynamo_demo.app
Interactive Elixir (0.7.0.dev) - press Ctrl+C to exit
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
iex(1)> DynamoDemo.start
Running DynamoDemo.App on port 3000 with Cowboy
:ok
@goshacmd
goshacmd / config.coffee
Created July 25, 2012 20:17
Brunch config compiler proposal
# When compiled with `NODE_ENV=production PUSHER_APP_KEY=123abc API_ENDPOINT_HOST=api.app.com brunch build`
# the following is produced and included into build.
config = {api: {}}
config.env = "production"
config.pusher_app_key = "123abc"
config.api.endpoint = "api.app.com"
module.exports = config