Skip to content

Instantly share code, notes, and snippets.

View retgoat's full-sized avatar
💭
😣

Roman retgoat

💭
😣
View GitHub Profile
{%comment%}
#############################################
# Mohamed El-Ghorfi Discount Code on Cart #
# [UPDATED] #
#############################################
# Paypal Me: https://paypal.me/elghorfimed #
# Buy Me A Coffee: #
# https://www.buymeacoffee.com/elghorfi #
#############################################
# elghorfi.med@gmail.com #
2. Given the file with random chars, draw a histogram of chars count.
For example for file with content
===
123456789012345678909999991234569999
===
Output should be the following:
1 ***
@retgoat
retgoat / 1-uses_tracker.ex
Created December 18, 2017 04:49 — forked from christhekeele/1-uses_tracker.ex
A way to know what modules a module has used in Elixir.
# For more elaborate use cases, see the IndirectUsesTracker instead:
# https://gist.github.com/christhekeele/fc4e058ee7d117016b9b041b83c6546a
###
# A way to know, at runtime, what modules a module has used at compile time.
# In this case, you include `UsesTracker` into a module. When that module gets
# used in some other module, it registers itself with the other module.
##
defmodule UsesTracker do
@retgoat
retgoat / 1-indirect_uses_tracker.ex
Created December 18, 2017 04:49 — forked from christhekeele/1-indirect_uses_tracker.ex
A way to track when modules are used in Elixir, and an example adapter/plugin architecture built on top.
# For simpler use cases, see the UsesTracker instead:
# https://gist.github.com/christhekeele/e858881d0ca2053295c6e10d8692e6ea
###
# A way to know, at runtime, what modules a module has used at compile time.
# In this case, you include `IndirectUsesTracker` into a module. When that module gets
# used in some other module, it makes that module registerable under a namespace of your choosing.
# When the registerable module is used into a third module, that third module will know at runtime which
# registerables were `use`d in it at compile time, via a function titled after the namespace.
@retgoat
retgoat / plain.ex
Last active August 12, 2017 04:51
postgrex
def get_specific_version(id, version, scope) do
datetime = Timex.parse!(version, "%FT%T.%fZ", :strftime)
|> Timex.shift(seconds: -1)
|> Timex.to_datetime
q = """
SELECT #{version_fields()} FROM #{table()}
WHERE id = $1::integer AND sys_period @> $2::timestamptz AND scope @> $3::ltree
UNION ALL
SELECT #{version_fields()} from #{history_table()}
WHERE id = $1::integer AND sys_period @> $2::timestamptz AND scope @> $3::ltree;

Pry Cheat Sheet

Command Line

  • pry -r ./config/app_init_file.rb - load your app into a pry session (look at the file loaded by config.ru)
  • pry -r ./config/environment.rb - load your rails into a pry session

Debugger

Flat an array without using Array#flatten method

Ruby

ary = [[1, 2, [3], []], 4]

Recursion

ary.flat_map{|element| element.kind_of?(Array) ? element.flat_map{|i| i} : element }
@retgoat
retgoat / time_travel_trigger.sql
Created May 29, 2017 08:28 — forked from myitcv/time_travel_trigger.sql
Trigger-based equivalent of old PostgreSQL time travel module - see http://blog.myitcv.org.uk/2014/02/25/row-level-version-control-with-postgresql.html for more details
/*
Copyright (c) 2015 Paul Jolly <paul@myitcv.org.uk)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
@retgoat
retgoat / gist:de7fa6601df61993002490fb72a25003
Created November 29, 2016 07:50
Rails : skip all before filters
skip_filter *_process_action_callbacks.map(&:filter), :only => [:action_goes_here]