Skip to content

Instantly share code, notes, and snippets.

View parndt's full-sized avatar
🇺🇦

Philip Arndt parndt

🇺🇦
View GitHub Profile
@parndt
parndt / create.rb
Created June 8, 2023 22:08
hanami 2 action with dry-validation
module MySlice
module Actions
module Thing
class CreateContract < Dry::Validation::Contract
params do
required(:name).filled(:str?)
optional(:email).maybe(:str?)
end
rule(:email) do
@parndt
parndt / gist:42db9d019aeb2fcef5163ae7566a5fdd
Created September 2, 2016 23:05
Make bundle work in Elixir *and* Ruby
# Making fun of "bundler for elixir"
function bundle {
if [ -e "Gemfile" ]; then
command bundle $@
elif [ -e "mix.exs" ]; then
if [[ $@ == update* ]]; then
command mix deps.$@
else
command mix deps.get
fi;
defmodule MyList do
def square([]), do: []
def square([ head | tail]), do: [ head * head | square(tail) ]
def add_1([]), do: []
def add_1([ head | tail ]), do: [ head + 1 | add_1(tail) ]
def map([], _func), do: []
def map([head | tail], func), do: [ func.(head) | map(tail, func) ]

Keybase proof

I hereby claim:

  • I am parndt on github.
  • I am parndt (https://keybase.io/parndt) on keybase.
  • I have a public key ASBedwOL9mMqpqG9Zyam-KocYI2QMx8B_8VIonrOMV0Xzgo

To claim this, I am signing this object:

@parndt
parndt / who_do_you_work_for.rb
Created November 10, 2015 21:42
WHO DOES YOUR GEM WORK FOR?!
#!/usr/bin/env ruby
# Thanks, http://www.schneems.com/blogs/2015-09-30-reverse-rubygems/
require 'net/https'
require 'json'
require 'uri'
gem_name = ENV["GEM_NAME"]
def rubygems_get(gem_name: "", endpoint: "")
@parndt
parndt / upgrade.diff
Last active August 29, 2015 14:16
Rails 4.1 -> 4.2 upgrade (important stuff) diff
diff --git a/Gemfile b/Gemfile
index 71f3511..6746bc9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ source "https://rubygems.org"
ruby "2.2.0"
# Bundle edge Rails instead: gem "rails", github: "rails/rails"
-gem "rails", "4.1.9"
+gem "rails", "~> 4.2.0"
$ brew install mongodb
==> Downloading http://downloads.mongodb.org/src/mongodb-src-r2.6.3.tar.gz
Already downloaded: /Library/Caches/Homebrew/mongodb-2.6.3.tar.gz
==> /usr/local/opt/scons/bin/scons install --prefix=/usr/local/Cellar/mongodb/2.6.3 -j8 --cc=/usr/bin/clang --cxx=/usr/bin/clang++ --osx-version-
/usr/bin/clang++ -o build/darwin/64/cc__usr_bin_clang/cxx__usr_bin_clang++/osx-version-min_10.9/third_party/s2/s2edgeindex.o -c -Wnon-virtual-dtor -Woverloaded-virtual -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -m64 -Wno-unused-function -Wno-unused-private-field -Wno-deprecated-declarations -Wno-tautological-constant-out-of-range-compare -Wno-unused-const-variable -mmacosx-version-min=10.9 -Isrc/third_party/s2 -DDEBUG_MODE=false -Wno-mismatched-tags -DBOOST_ALL_NO_LIB -D_SCONS -DMONGO_EXPOSE_MACROS -DSUPPORT_UTF8 -DMONGO_OPTIMIZED_BUILD -D_FILE_OFFSET_BITS=64 -DMONGO_HAVE___THREAD -DMONGO_HAVE_HEADER_UNISTD_H -DMONGO_HAVE_EXECINFO_BA
DEPRECATION WARNING: The following options in your Gallery.has_many :gallery_images declaration are deprecated: :order. Please use a scope block instead. For example, the following:
has_many :spam_comments, conditions: { spam: true }, class_name: 'Comment'
should be rewritten as the following:
has_many :spam_comments, -> { where spam: true }, class_name: 'Comment'
@parndt
parndt / gist:11381872
Last active May 29, 2019 11:59
Asset precompilation from an Engine's initializer
### RAILS 4.1
# Doesn't work, due to the error:
# Asset filtered out and will not be served: add
# `Rails.application.config.assets.precompile += %w( refinery/refinery.css )`
# to `config/initializers/assets.rb` and restart your server
class MyEngine < Rails::Engine
# set the manifests and assets to be precompiled
initializer "refinery.assets.precompile" do |app|
@parndt
parndt / projects
Created January 10, 2014 20:05
Run commands across several projects at once.
#!/bin/bash
echo "dir1 dir2 dir3 dir4"