module ADSL::Extract::Rails::RailsSpecialGemInstrumentation
Public Class Methods
find(*args)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 86 def self.find(*args) ADSL::Extract::Rails::PartiallyUnknownHash.new( :record => User.find ) end
Public Instance Methods
instrument_gem_authlogic(controller_class, action)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 79 def instrument_gem_authlogic(controller_class, action) return unless Object.lookup_const('Authlogic') # only instrument this if there is a class called User; assume that a user is the logged in entity return unless Object.lookup_const('User') Object.lookup_const('Authlogic::Session::Base').class_exec do def self.find(*args) ADSL::Extract::Rails::PartiallyUnknownHash.new( :record => User.find ) end end end
instrument_gem_cancan(controller_class, action)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 8 def instrument_gem_cancan(controller_class, action) return unless klass = Object.lookup_const('CanCan::ControllerResource') model_class_name = controller_class.controller_name.singularize.camelize klass.class_eval <<-ruby, __FILE__, __LINE__ def name_from_controller "#{ model_class_name.underscore.singularize }" end def namespace [#{ model_class_name.split('::')[0..-2].map{ |a| "'#{a}'" }.join(', ') }] end def authorize_resource; end def find_resource #{ model_class_name }.find end def build_resource #{ model_class_name }.new end def load_collection #{ model_class_name }.where end def load_resource unless skip?(:load) var_name, objset = if load_instance? [instance_name.to_s, load_resource_instance] else [instance_name.to_s.pluralize, load_collection] end ins_explore_all 'load_resource' do ins_stmt(ADSL::Parser::ASTAssignment.new( :var_name => ADSL::Parser::ASTIdent.new(:text => "at__\#{var_name}"), :objset => objset.adsl_ast )) nil end @controller.instance_variable_set( "@\#{ var_name }", #{ model_class_name }.new(:adsl_ast => ADSL::Parser::ASTVariable.new( :var_name => ADSL::Parser::ASTIdent.new(:text => "at__\#{var_name}") )) ) end end ruby controller_class.class_exec do def authorize!(*args); end end end
instrument_gem_devise(controller_class, action)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 94 def instrument_gem_devise(controller_class, action) return unless Object.lookup_const('Devise') Devise.mappings.values.each do |mapping| role = mapping.singular role_class = mapping.class_name controller_class.class_eval <<-ruby def authenticate_#{role}!(*args); end def #{role}_signed_in?(*args); true; end def current_#{role}(*args); #{role_class}.find(-1); end def #{role}_session(*args); ::ADSL::Extract::MetaUnknown.new; end def only_render_implemented_actions(*args); end ruby end end
instrument_gem_ransack(controller_class, action)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 65 def instrument_gem_ransack(controller_class, action) if Object.lookup_const('RansackUI') Object.lookup_const('RansackUI::ControllerHelpers').class_exec do def load_ransack_search(*args); end end end if Object.lookup_const('Ransack') ActiveRecord::Base.class_exec do def search(*args); where; end end end end
instrument_gems(controller_class, action)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 110 def instrument_gems(controller_class, action) instrument_gem_cancan controller_class, action instrument_gem_ransack controller_class, action instrument_gem_authlogic controller_class, action instrument_gem_devise controller_class, action end
load_ransack_search(*args)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 68 def load_ransack_search(*args); end
search(*args)
click to toggle source
# File lib/adsl/extract/rails/rails_special_gem_instrumentation.rb, line 74 def search(*args); where; end