Skip to content

Instantly share code, notes, and snippets.

@tomasc
tomasc / custom_active_record_adapter.rb
Created December 30, 2020 09:00
CanCan custom ActiveRecord Adapter
# frozen_string_literal: true
module CanCan
module ModelAdapters
class CustomActiveRecordAdapter < AbstractAdapter
def self.inherited(subclass)
@subclasses ||= []
@subclasses.insert(0, subclass)
end
```
Run options: --seed 25431
# Running:
Capybara starting Puma...
* Version 4.3.5 , codename: Mysterious Traveller
* Min threads: 0, max threads: 4
* Listening on tcp://0.0.0.0:40303
module Modulor
module ResourceSelect
class BaseController < ApplicationController
def index
authorize! :read, resource_class
respond_to do |format|
format.json do
render json: collection_query,
serializer: ActiveModel::Serializer::CollectionSerializer,
@tomasc
tomasc / link__nested_fields.coffee
Last active September 18, 2018 10:24
nested_fields
@tomasc
tomasc / dependent_fields.coffee
Created September 18, 2018 10:18
dependent_fields
import _ from 'lodash'
export default class DependentFields extends Modulor.Plugin
@defaults =
debug: false
name: 'Modulor__DependentFields'
# add the <%= Bem.bems :modulor_dependent_fields, :scope %> class on parent element
# in order to prevent dependent fields influencing for example nested fields
scope_selector: "bems(modulor_dependent_fields, scope), bems(modulor_nested_fields, item), form"
@tomasc
tomasc / create_view.rb
Last active August 18, 2018 18:54
mongoid_recurring_views
require 'mongoid'
module Mongoid
class CreateView < Struct.new(:collection_name, :view_on, :pipeline)
def self.call(*args)
new(*args).call
end
def call
Mongoid.clients.each do |name, _|
@tomasc
tomasc / localized_patch.rb
Created July 11, 2018 17:20
Localized patch
# makes sure that
# • we fallback on all :blank? values
# • an only on :present? values
module Mongoid
module Fields
module LocalizedPatch
def lookup(object)
locale = ::I18n.locale
@tomasc
tomasc / localized_presence_validator.rb
Last active August 17, 2018 09:22
localized_presence_validator
# adds following new options to presence validator:
#
# • presence: :cs
# • presence: %i[cs en]
# • presence: :default_locale
module LocalizedPresenceValidator
def validate_each(document, attribute, value)
field = document.fields[document.database_field_name(attribute)]
return super(document, attribute, value) unless field.try(:localized?)
export default class IsSortable extends Modulor.Plugin
@defaults =
debug: false
name: 'Modulor__NestedFields__IsSortable'
@selector: "bems(modulor_nested_fields, is_sortable)"
on_init: ->
return if @sortable
@tomasc
tomasc / dependent_fields.coffee
Created April 29, 2018 15:24
dependent fields
import _ from 'lodash'
export default class DependentFields extends Modulor.Plugin
@defaults =
debug: false
name: 'Modulor__DependentFields'
# add the <%= Bem.bems :modulor_dependent_fields, :scope %> class on parent element
# in order to prevent dependent fields influencing for example nested fields
scope_selector: "bems(modulor_dependent_fields, scope), bems(modulor_nested_fields, item), form"