Sha256: 4a289cbffce582e41b3b2741145e1754f690622fcb75892575424aeec7c79d90

Contents?: true

Size: 793 Bytes

Versions: 23

Compression:

Stored size: 793 Bytes

Contents

module RailsConnector
  module Authenticable
    def self.included(mod)
      %w(logged_in? admin? current_user).each do |method_name|
        unless instance_method_defined?(mod, method_name)
          mod.class_eval do
            private
            define_method(method_name, InstanceMethods.method(method_name).to_proc)
          end
        end

        mod.send(:helper_method, method_name)
      end
    end

    module InstanceMethods
      def self.logged_in?; false; end
      def self.admin?; false; end
      def self.current_user; nil; end
    end

    private

    def self.instance_method_defined?(mod, method_name)
      (
        mod.instance_methods + mod.protected_instance_methods + mod.private_instance_methods
      ).map(&:to_s).include?(method_name)
    end
  end
end

Version data entries

23 entries across 23 versions & 3 rubygems

Version Path
infopark_fiona_connector-7.0.1.5.2.3.rc4 lib/rails_connector/authenticable.rb
infopark_fiona_connector-7.0.1 lib/rails_connector/authenticable.rb
infopark_fiona_connector-7.0.1.beta2 lib/rails_connector/authenticable.rb
infopark_fiona_connector-7.0.0 lib/rails_connector/authenticable.rb
infopark_fiona_connector-6.10.0.beta1 lib/rails_connector/authenticable.rb
infopark_cloud_connector-7.0.1 lib/rails_connector/authenticable.rb
infopark_cloud_connector-7.0.0 lib/rails_connector/authenticable.rb
infopark_cloud_connector-6.9.5 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.9.4 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.9.3.1.36404185 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.9.2.1.125136549 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.9.1.3.22208381 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.9.0.3.197272233 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.174.51542603 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.115.227021242 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.73.75172665 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.2.153416031 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.67.110847540 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.3.1.23895778 lib/rails_connector/authenticable.rb
infopark_rails_connector-6.8.2.36.82613853 lib/rails_connector/authenticable.rb