Sha256: 363a234aa227b2456a974ceedc899deae25b2e9cc0c78634c98f797f2a107a41
Contents?: true
Size: 857 Bytes
Versions: 4
Compression:
Stored size: 857 Bytes
Contents
# frozen_string_literal: true module ActsAsVotable module Extenders module Votable ALLOWED_CACHEABLE_STRATEGIES = %i[update update_columns] def votable? false end def acts_as_votable(args = {}) require "acts_as_votable/votable" include ActsAsVotable::Votable if args.key?(:cacheable_strategy) && !ALLOWED_CACHEABLE_STRATEGIES.include?(args[:cacheable_strategy]) raise ArgumentError, args[:cacheable_strategy] end define_method :acts_as_votable_options do self.class.instance_variable_get("@acts_as_votable_options") end class_eval do @acts_as_votable_options = { cacheable_strategy: :update }.merge(args) def self.votable? true end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems