Skip to content

Instantly share code, notes, and snippets.

nhm tanveer hossain khan (hasan) we4tech

Block or report user

Report or block we4tech

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@we4tech
we4tech / chain_middelware_call.rb
Created Aug 7, 2018
How to chain middleware call in Ruby?
View chain_middelware_call.rb
# Create a middleware class
class Middleware
def call(*args)
puts "Args: #{args}"
yield
end
end
def call_in_chain(chain)
traverse_chain = lambda do
@we4tech
we4tech / Benchmark.txt
Last active Aug 2, 2018
Shows how to make a threaded call
View Benchmark.txt
## FYI: Not literally accurate. Because the API is coming from a non-constant setup. (A public API from httpbin)
user system total real
Sequential 10 calls
req:0: 200
req:1: 200
req:2: 200
req:3: 200
req:4: 200
req:5: 200
@we4tech
we4tech / host_application_routes.rb
Created Aug 2, 2018
Create a test mountable rails engine and mount through a parent rails routes
View host_application_routes.rb
mount RailsEngineTest::Engine => 'api/v3/'
@we4tech
we4tech / broadcaster.rb
Last active Aug 1, 2018
Rabbit Fanout Exchange Example
View broadcaster.rb
require 'bunny'
require 'irb'
STDOUT.sync = true
conn = Bunny.new("amqp://guest:guest@localhost:5672")
conn.start
ch = conn.create_channel
$x = ch.fanout('msgs')
View patch_active_record_search_path_to_not_set_already_set_search_path.rb
module ActiveRecord
module ConnectionAdapters
module PostgreSQL
module SchemaStatements
alias_method :old_schema_search_path=, :schema_search_path=
alias_method :old_schema_search_path, :schema_search_path
def schema_search_path=(schema_csv)
unless schema_search_path == schema_csv
self.old_schema_search_path = schema_csv
View method_with_metadata_and_advice.rb
require 'byebug'
module MethodMetadata
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def method_advice(data = {})
lineno = caller_locations(1, 1).first.lineno
@we4tech
we4tech / data_leak_detector.rb
Created May 30, 2018
Find out data leak from the rspec example
View data_leak_detector.rb
RSpec.configure do |config|
def count_rows_from_all_tables
Hash[
ActiveRecord::Base.connection.tables.map do |tbl|
[tbl, ActiveRecord::Base.connection.execute("select count(*) from #{tbl}").values.last.first.to_i]
end
]
end
config.around :example do |example|
@we4tech
we4tech / rebase-reminder-circleci-job.yml
Created May 18, 2018
Git rebase reminder for CircleCI
View rebase-reminder-circleci-job.yml
rebase-reminder:
docker:
# specify the version you desire here
- image: circleci/ruby:2.4.1-node-browsers
environment:
RAILS_ENV: test
PGHOST: 127.0.0.1
PGUSER: root
PUBLIC_HOST: https://example.org
@we4tech
we4tech / profile_string_generation.rb
Created Mar 13, 2018
Find out ruby string generation
View profile_string_generation.rb
require 'pp'
def profile
old_strs = ObjectSpace.count_objects[:T_STRING]
old_objs = GC.stat[:total_allocated_objects]
yield.tap do
new_strs = ObjectSpace.count_objects[:T_STRING]
new_objs = GC.stat[:total_allocated_objects]
@we4tech
we4tech / boot.rb
Created Feb 7, 2018
Add TracePoint to find certain classes from the rails environment
View boot.rb
# Add ruby tracepoint
EXCLUDED_CLASSES = %w(Sidekiq::Worker Delayed::Worker Unicorn::Worker Sidekiq::Worker Parallel::DeadWorker
Parallel::Worker Concurrent::RubyThreadPoolExecutor::Worker Twilio::REST::TaskRouter::Worker)
$__TRACE_WORKERS = []
trace = TracePoint.new(:class) do |tp|
class_name = tp.self.name
next if class_name.nil?
You can’t perform that action at this time.