Sha256: 6d23faa741316c09d867b23b9409f3ded7cfde1e1a4a0a79c56d3f7511322d30

Contents?: true

Size: 557 Bytes

Versions: 1

Compression:

Stored size: 557 Bytes

Contents

module Pickle
  module Injector
    def self.inject(session, options = {})
      target = options[:into] || ActionController::Integration::Session
      session_name = session.name.underscore.gsub('/','_')
      
      target.class_eval <<-end_eval, __FILE__, __LINE__
        def #{session_name}
          @#{session_name} ||= #{session.name}.new
        end
      end_eval

      delegate_methods = session.instance_methods - Object.instance_methods
      delegate_methods << {:to => session_name}
      target.delegate *delegate_methods
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ianwhite-pickle-0.1.1 lib/pickle/injector.rb