This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module AccountJoinCondition | |
def join_with_account(table, constraint) | |
s_r = reflection.source_reflection | |
# source reflection can be polymorphic | |
s_r = reflection if s_r && s_r.options[:polymorphic] | |
t_r = reflection.through_reflection | |
if s_r && t_r && has_account?(s_r) && has_account?(t_r) | |
sr_account_column = account_col(s_r) | |
tr_account_column = account_col(t_r) | |
constraint = constraint.and(sr_account_column.eq(tr_account_column)) if direct_through_join?(sr_account_column, tr_account_column, constraint) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# memoize db/memcache results in instance variable dynamically | |
def memoize_results(key) | |
return instance_variable_get(key) if instance_variable_defined?(key) | |
instance_variable_set key, yield | |
end | |
# usage | |
MY_CONSTANT = [:active, :inactive] | |
MY_CONSTANT.each { |key| | |
define_method("#{key}_users") do |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Enumerable | |
def deep_freeze | |
obj = self | |
obj.each do |iterator| | |
case iterator | |
when Enumerable | |
iterator.deep_freeze | |
when Symbol, Fixnum, NilClass | |
iterator | |
else |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module BelongsToTenant | |
extend ActiveSupport::Concern | |
included do | |
belongs_to :tenant | |
default_scope { | |
Tenant.current ? where(tenant_id: Tenant.current.id) : where(nil) | |
} | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ActsAsCurrent | |
extend ActiveSupport::Concern | |
included do | |
self._current_human_name = self.name.underscore.to_sym | |
end | |
def make_current | |
Thread.current[self.class._current_human_name] = self | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Creator | |
extend ActiveSupport::Concern | |
included do | |
before_validation -> { | |
self.creator_id = User.current.id if User.current | |
}, on: :create | |
belongs_to :creator, class_name: 'User', foreign_key: :creator_id | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module MemoizeExtensions | |
def memoize_methods(method_name, *params) | |
@@hash ||= {} | |
return @@hash[params] if @@hash[params] | |
@@hash[params] = send(method_name, *params) | |
end | |
end | |
class User < ActiveRecord::Base | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const redis = require('redis'); | |
const redis_client = redis.createClient(); | |
const MemoizeUntil = require('memoize_until').MemoizeUntil | |
MemoizeUntil.init({ | |
min: ['api_key'] | |
}) | |
MemoizeUntil.fetch('min', 'api_key', () => { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
default: &default | |
adapter: mysql2 | |
encoding: utf8mb4 | |
pool: 5 | |
development: | |
<<: *default | |
database: development | |
test: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ActiveRecord::Base.logger = nil | |
subject = "Benchmarking" | |
description = "Benchmarking " * 1000 | |
type = "Incident" | |
email = "[email protected]" | |
status = 2 | |
source = 2 | |
priority = 1 | |
OlderNewer