Sha256: 56b853e214d73ebbd7a0a237820013d51cfadad7ca95a834f48b257a3cb376cf
Contents?: true
Size: 818 Bytes
Versions: 3
Compression:
Stored size: 818 Bytes
Contents
require "enumerize" require "enja/railtie" require "enja/version" module Enja def self.included(klass) klass.extend ClassMethods end module ClassMethods def define_role_field(attribute_name = :role, options = {}) enumerize_options = enja_default_options.merge!(options) extend ::Enumerize enumerize(attribute_name.to_sym, enumerize_options) enumerize_options[:in].each do |role| scope(role, -> { where(attribute_name => role) }) define_method(:"#{role}!") { update!(attribute_name => role ) } end validates(attribute_name, presence: true) end private def enja_default_options { in: %i(guest staff admin), default: :guest, predicates: true, scope: true, } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
enja-0.1.2 | lib/enja.rb |
enja-0.1.1 | lib/enja.rb |
enja-0.1.0 | lib/enja.rb |