This file contains 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 CustomUtils | |
# This should look for hash keys, or ActiveModel::Base attributes within the string | |
# while also safeguarding from typing errors. | |
# Interpolation symbols not provided in the hash should be left unchanged. | |
# This does NOT support "deep interpolation" eg. "my %{%{nested_key}} string" | |
#@param String with %{key} interpolation fields | |
#@param Hash with symbolic keys OR Object with 'attributes' method eg. ActiveModel | |
#@returns String original with any keys replaced if they are in the hash, others ignored | |
def self.interpolate str, obj | |
#For the hash, we need to re-key the hash to be sure, and add default to skip missing interpolations |
This file contains 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
class User < ApplicationRecord | |
rolify :strict => true, :before_add => :before_add_role | |
#Helper method to remove any existing role this user has for a resource | |
def remove_all_roles resource | |
# README: This syntax relies on changes on the following PR | |
# https://github.com/RolifyCommunity/rolify/pull/427 | |
# Or include the source of this directly: | |
# gem 'rolify', :git => "git://github.com/Genkilabs/rolify.git" | |
remove_role nil, resource |
This file contains 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
//app/assets/js/any_es6_module.js | |
//Use globally in any es6 module you are requiring through application.js | |
var render_pdf_thumbnail = function(pdfData, $canvas) { | |
//This is the sauce. We instantiate a new Worker from our globally scoped worker-loader f() | |
pdfjsLib.GlobalWorkerOptions.workerPort = new pdfjsWorker(); | |
// In my case, using DocumentInitParameters object to load binary data. | |
var loadingTask = pdfjsLib.getDocument({data: pdfData}); | |
loadingTask.promise.then(function(doc) { |
This file contains 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
#This is how it might be used. Create your instance which could be polymorphic or just a class. | |
#Search using the predicate 'in' because the subquery find_term will return an ID of every record that matches. | |
@profile_instance = either a PetProfile or an OwnerProfile | |
@profile_instance.search( { :find_term_in => "has fleas", :other_ransack_term_eq => "foobar" } ).results() |
This file contains 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
// Your main application js. We will include jQuery first, then everything else | |
//= require jquery | |
// | |
//= require_tree . | |
// You can choose to DRY common selectors perhaps used system wide. | |
const SELECTORS = { | |
RESULTS: () => $("#results-box") | |
} |
This file contains 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
#An overly complex example of dynamically micro-managing which templates are shown.. | |
class ApplicationController < ActionController::Base | |
# In this example we assume a using Devise so user_signed_in? and current_user are provided. | |
# Note: the value returned here could very well be a user's uuid if you needed to provide | |
# one specific different view for a single or small collection of specific users. | |
# @returns String || nil | |
def get_custom_view_name | |
#This doesn't need to be lazy, but it can be. | |
@custom_view_name ||= begin |
This file contains 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
#/config/initializers/inflections.rb | |
# This is a nice-to-have so API doesn't keep showing up as Api | |
ActiveSupport::Inflector.inflections(:en) do |inflect| | |
inflect.acronym 'API' | |
end |
This file contains 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
#turn on our autocompletes if there are any | |
jQuery -> | |
if $('#user_autocomplete').length | |
index = 1 | |
$('#user_autocomplete').autocomplete | |
source: (request, response) -> | |
#add our custom index parameter to the call | |
request["index"] = index++ | |
#make our request and handle the response as normal | |
$.ajax( |
This file contains 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
//= require jquery | |
//= require jquery_ujs | |
//= require_tree . | |
// ^ I am assuming that bootstrap3-dialog is in the tree | |
//GLOBAL JQuery Functaionality | |
$(function(){ | |
/*** CONFIRM MODAL OVERRIDE ***/ | |
//override the use of js alert on confirms |
This file contains 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
// Debounced autosave for Ember.js | |
// Original code by Mitch Lloyd http://gaslight.co/blog/?author=mitchlloyd | |
// updated from http://gaslight.co/blog/an-autosave-pattern-for-ember-and-ember-data | |
// repo at https://github.com/gaslight/ember-autosaving | |
// Changed to work with latest Ember Data as of 2013-12-16 by Genkilabs | |
// Includes hooks for pacifier from http://ricostacruz.com/nprogress | |
// NOTE: This requires a 2 part install in which the controller and any models it loads have the corresponding mixin | |
// This is how long we will wait on a form before saving. I like to put this in App.AUTOSAVE_DELAY | |
var AUTOSAVE_DELAY = 1500 |
NewerOlder