Module: EffectiveResources

Includes:
EffectiveGem
Defined in:
lib/effective_resources.rb,
lib/effective_resources/engine.rb,
lib/effective_resources/version.rb,
lib/generators/effective_resources/install_generator.rb

Defined Under Namespace

Modules: Generators Classes: Engine

Constant Summary collapse

VERSION =
'1.8.9'.freeze

Class Method Summary collapse

Class Method Details

.authorize!(controller, action, resource) ⇒ Object



26
27
28
# File 'lib/effective_resources.rb', line 26

def self.authorize!(controller, action, resource)
  raise Effective::AccessDenied.new('Access Denied', action, resource) unless authorized?(controller, action, resource)
end

.authorized?(controller, action, resource) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/effective_resources.rb', line 13

def self.authorized?(controller, action, resource)
  @exceptions ||= [Effective::AccessDenied, (CanCan::AccessDenied if defined?(CanCan)), (Pundit::NotAuthorizedError if defined?(Pundit))].compact

  return !!authorization_method unless authorization_method.respond_to?(:call)
  controller = controller.controller if controller.respond_to?(:controller)

  begin
    !!(controller || self).instance_exec((controller || self), action, resource, &authorization_method)
  rescue *@exceptions
    false
  end
end

.config_keysObject



7
8
9
# File 'lib/effective_resources.rb', line 7

def self.config_keys
  [:authorization_method, :default_submits]
end

.default_submitsObject



30
31
32
# File 'lib/effective_resources.rb', line 30

def self.default_submits
  (['Save', 'Continue', 'Add New'] & Array(config.default_submits)).inject({}) { |h, v| h[v] = true; h }
end

.deliver_methodObject



44
45
46
47
# File 'lib/effective_resources.rb', line 44

def self.deliver_method
  config = Rails.application.config
  (config.respond_to?(:active_job) && config.active_job.queue_adapter) ? :deliver_later : :deliver_now
end

.truthy?(value) ⇒ Boolean

Utilities

Returns:

  • (Boolean)


36
37
38
39
40
41
42
# File 'lib/effective_resources.rb', line 36

def self.truthy?(value)
  if defined?(::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES)  # Rails <5
    ::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(value)
  else
    ::ActiveRecord::Type::Boolean.new.cast(value)
  end
end