Skip to content

Instantly share code, notes, and snippets.

View zorab47's full-sized avatar
⌨️

Charles Maresh zorab47

⌨️
View GitHub Profile
@zorab47
zorab47 / cache_arbre.rb
Last active May 13, 2023 14:17
Arbre content caching for ActiveAdmin
# Caches Arbre elements in the `Rails.cache`.
#
# Yielding the first time adds to the output buffer regardless of the
# returned value. A cache miss must be handled separately from a hit
# to avoid double rendering.
#
# Returns yielded Arbre on cache miss OR an HTML string wrapped in
# an text node on cache hit.
def cache_arbre(context, *args, &block)
if controller.perform_caching
@zorab47
zorab47 / active_admin_actions.rake
Last active October 12, 2022 15:34
Rake task to list ActiveAdmin resource and page actions
task :active_admin_actions => :environment do
skip_resources = [ 'Dashboard' ]
namespace = ActiveAdmin.application.namespace(:admin)
pages = namespace.resources.select { |r| r.is_a? ActiveAdmin::Page }
resources = namespace.resources.select { |r| r.respond_to? :resource_class }
resource_actions =
resources.each_with_object({}) do |resource, actions|
@zorab47
zorab47 / offline_template.rb
Created November 22, 2011 16:18
Offline Template for Rails 2.3.x
# Public: Template to render views outside the context of a controller.
#
# Useful for rendering Rails 2.3.x views in rake tasks or background jobs when a
# controller is unavailable.
#
# Examples
#
# template = OfflineTemplate.new(:users)
# template.render("users/index", :layout => false, :locals => { :users => users })
#
@zorab47
zorab47 / postgres_copy_csv.rb
Created December 6, 2017 01:09
Postgres CSV
module PostgresCopyCsv
extend ActiveSupport::Concern
module ClassMethods
# Performs a database query to copy results as CSV to an IO object.
#
# CSV is created directly in PostgreSQL with less overhead then written to
# the provided IO object.
#
# Example
@zorab47
zorab47 / active_record_eager_loading_issue_from_same_source.rb
Last active October 5, 2016 20:23
Reprodusable issue when eager loading relations from the same source
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
@zorab47
zorab47 / resource_collection_spec.rb
Created August 29, 2013 15:40
Failing spec for ActiveAdmin::ResourceCollection
require 'spec_helper'
describe ActiveAdmin::ResourceCollection do
let(:application) { ActiveAdmin::Application.new }
let(:namespace) { ActiveAdmin::Namespace.new(application, :admin) }
context ".add" do
let(:resource) { ActiveAdmin::Resource.new(namespace, AdminUser) }
let(:resource_renamed) { ActiveAdmin::Resource.new(namespace, AdminUser, as: "SuperAdminUser") }
@zorab47
zorab47 / deploy.rb
Created October 10, 2012 18:24
Capistrano task to precomile assets locally, if necessary
namespace :deploy do
namespace :assets do
task :precompile, :roles => :web, :except => { :no_release => true } do
assets_path = File.join(release_path, "public/assets")
assets_empty = capture("ls -x #{assets_path}").length == 0
has_current_release = capture("if [ -d #{current_path} ]; then echo -n \"yes\"; fi") == "yes"
compile_assets = false
@zorab47
zorab47 / rails.watchr
Created November 16, 2010 14:00
Rails Watchr
def run_all_tests
# see Rakefile for the definition of the test:all task
system( "rake -s test" )
end
def run(cmd)
puts(cmd)
system(cmd)
end
@zorab47
zorab47 / rubygem installer
Created August 2, 2010 19:05
Install Rubygems
!/bin/bash
cd /tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
tar xzf rubygems-1.3.7.tgz
cd rubygems-1.3.7
sudo ruby ./setup.rb