Class: Jscon::Session

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/jscon/session.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSession

Returns a new instance of Session.



13
14
15
16
17
# File 'lib/jscon/session.rb', line 13

def initialize()
  load_rails_app
  configure_integration
  @session = ActionDispatch::Integration::Session.new(Rails.application)
end

Class Method Details

.is_available?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/jscon/session.rb', line 9

def self.is_available?
  File.exists? rails_app_path
end

.rails_app_pathObject



5
6
7
# File 'lib/jscon/session.rb', line 5

def self.rails_app_path
  File.join(::Dir.pwd, '/config/environment.rb')
end

Instance Method Details

#configure_integrationObject



23
24
25
26
27
28
29
30
31
32
# File 'lib/jscon/session.rb', line 23

def configure_integration
  #deliver stack trace instead of html error message
  Rails.application.config.action_dispatch.show_exceptions = false
  #allow posts without session authentication tokens
  ActionController::Base.instance_eval do
    define_method :protect_against_forgery? do
      false
    end
  end
end

#get(url) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/jscon/session.rb', line 34

def get(url)
  url = ::URI.encode(url) unless url.include? ?%
  @session.get(url)
rescue Object => error
  puts error.message, stack(error)
  exit 1
end

#load_rails_appObject



19
20
21
# File 'lib/jscon/session.rb', line 19

def load_rails_app
  require Jscon::Session.rails_app_path
end

#stack(error) ⇒ Object



42
43
44
# File 'lib/jscon/session.rb', line 42

def stack(error)
  return error.backtrace[0..10]
end