Class: CGI

Inherits:
Object
  • Object
show all
Includes:
TDiary::RequestExtension
Defined in:
lib/tdiary/core_ext.rb,
lib/tdiary/compatible.rb,
lib/tdiary/application.rb

Overview

FIXME too dirty hack :-<

Direct Known Subclasses

RackCGI, TDiary::DiaryContainer::FakeCGI

Constant Summary collapse

ENV =
::ENV.to_hash

Instance Method Summary collapse

Methods included from TDiary::RequestExtension

#mobile_agent?, #smartphone?

Instance Method Details

#base_urlObject



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/tdiary/core_ext.rb', line 90

def base_url
	return '' unless script_name
	begin
		script_dirname = script_name.empty? ? '' : File::dirname(script_name)
		if https?
			port = (server_port == 443) ? '' : ':' + server_port.to_s
			"https://#{server_name}#{port}#{script_dirname}/"
		else
			port = (server_port == 80) ? '' : ':' + server_port.to_s
			"http://#{server_name}#{port}#{script_dirname}/"
		end.sub(%r|/+$|, '/')
	rescue SecurityError
		''
	end
end

#env_table_rackObject Also known as: env_table



8
9
10
# File 'lib/tdiary/application.rb', line 8

def env_table_rack
	$RACK_ENV || ENV
end

#https?Boolean

Returns:

  • (Boolean)


65
66
67
68
69
# File 'lib/tdiary/core_ext.rb', line 65

def https?
	return true if env_table['HTTP_X_FORWARDED_PROTO'] == 'https'
	return false if env_table['HTTPS'].nil? or /off/i =~ env_table['HTTPS'] or env_table['HTTPS'] == ''
	true
end

#redirect_urlObject



86
87
88
# File 'lib/tdiary/core_ext.rb', line 86

def redirect_url
	env_table['REDIRECT_URL']
end

#request_uriObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/tdiary/core_ext.rb', line 71

def request_uri
	_request_uri = env_table['REQUEST_URI']
	_script_name = env_table['SCRIPT_NAME']
	if !_request_uri || _request_uri == '' || _request_uri == _script_name then
		_path_info    = env_table['PATH_INFO'] || ''
		_query_string = env_table['QUERY_STRING'] || ''
		# Workaround for IIS-style PATH_INFO ('/dir/script.cgi/path', not '/path')
		# See http://support.microsoft.com/kb/184320/
		_request_uri = _path_info.include?(_script_name) ? '' : _script_name.dup
		_request_uri << _path_info
		_request_uri << '?' + _query_string if _query_string != ''
	end
	_request_uri
end

#valid?(param, idx = 0) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/tdiary/core_ext.rb', line 61

def valid?( param, idx = 0 )
	self.params[param] and self.params[param][idx] and self.params[param][idx].length > 0
end