Module: CubaApi::Utils
- Defined in:
- lib/cuba_api/utils.rb
Instance Method Summary collapse
- #browser_only_cache ⇒ Object
- #browser_only_cache_no_store ⇒ Object
- #content_type(mime) ⇒ Object
- #expires_in(minutes) ⇒ Object
-
#head ⇒ Object
matcher.
- #last_modified(last) ⇒ Object
- #modified_since ⇒ Object
-
#no_body(status) ⇒ Object
convenient method for status only responses.
- #no_cache ⇒ Object
- #no_cache_no_store ⇒ Object
-
#no_path ⇒ Object
matcher.
- #offset_n_limit(method, set) ⇒ Object
- #option ⇒ Object
- #rfc2616(time = DateTime.now) ⇒ Object
- #to_boolean(name, default = nil) ⇒ Object
-
#to_float(name, default = nil) ⇒ Object
params.
- #to_int(name, default = nil) ⇒ Object
Instance Method Details
#browser_only_cache ⇒ Object
77 78 79 80 81 |
# File 'lib/cuba_api/utils.rb', line 77 def browser_only_cache res[ 'Date' ] = rfc2616 res[ 'Expires' ] = "Fri, 01 Jan 1990 00:00:00 GMT" res[ 'Cache-Control' ] = "private, max-age=0, must-revalidate" end |
#browser_only_cache_no_store ⇒ Object
83 84 85 86 |
# File 'lib/cuba_api/utils.rb', line 83 def browser_only_cache_no_store browser_only_cache res[ 'Cache-Control' ] += ", no-store" end |
#content_type(mime) ⇒ Object
100 101 102 |
# File 'lib/cuba_api/utils.rb', line 100 def content_type( mime ) res[ 'Content-Type' ] = mime if mime end |
#expires_in(minutes) ⇒ Object
71 72 73 74 75 |
# File 'lib/cuba_api/utils.rb', line 71 def expires_in( minutes ) now = DateTime.now res[ 'Date' ] = rfc2616( now ) res[ 'Expires' ] = rfc2616( now + minutes / 1440.0 ) end |
#head ⇒ Object
matcher
10 11 12 |
# File 'lib/cuba_api/utils.rb', line 10 def head req.head? end |
#last_modified(last) ⇒ Object
60 61 62 |
# File 'lib/cuba_api/utils.rb', line 60 def last_modified( last ) res[ 'Last-Modified' ] = rfc2616( last ) if last end |
#modified_since ⇒ Object
64 65 66 67 68 69 |
# File 'lib/cuba_api/utils.rb', line 64 def modified_since @modified_since ||= if date = env[ 'HTTP_IF_MODIFIED_SINCE' ] DateTime.parse( date ) end end |
#no_body(status) ⇒ Object
convenient method for status only responses
19 20 21 22 23 |
# File 'lib/cuba_api/utils.rb', line 19 def no_body( status ) res.status = Rack::Utils.status_code( status ) res.write Rack::Utils::HTTP_STATUS_CODES[ res.status ] res['Content-Type' ] = 'text/plain' end |
#no_cache ⇒ Object
93 94 95 96 97 98 |
# File 'lib/cuba_api/utils.rb', line 93 def no_cache res["Date"] = rfc2616 res["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT" res["Pragma"] = "no-cache" res["Cache-Control"] = "no-cache, must-revalidate" end |
#no_cache_no_store ⇒ Object
88 89 90 91 |
# File 'lib/cuba_api/utils.rb', line 88 def no_cache_no_store no_cache res["Cache-Control"] += ", no-store" end |
#no_path ⇒ Object
matcher
5 6 7 |
# File 'lib/cuba_api/utils.rb', line 5 def no_path Proc.new { env[ 'PATH_INFO' ].empty? } end |
#offset_n_limit(method, set) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/cuba_api/utils.rb', line 53 def offset_n_limit( method, set ) count = set.count offset = to_int( 'offset' ).to_i limit = ( to_int( 'count' ) || count ) - 1 + offset { method => set[ offset..limit ], :offset => offset, :total_count => count } end |
#option ⇒ Object
14 15 16 |
# File 'lib/cuba_api/utils.rb', line 14 def option req. end |
#rfc2616(time = DateTime.now) ⇒ Object
104 105 106 |
# File 'lib/cuba_api/utils.rb', line 104 def rfc2616( time = DateTime.now ) time.to_time.utc.rfc2822.sub( /.....$/, 'GMT') end |
#to_boolean(name, default = nil) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/cuba_api/utils.rb', line 44 def to_boolean( name, default = nil ) v = req[ name ] if v v == 'true' else default end end |
#to_float(name, default = nil) ⇒ Object
params
26 27 28 29 30 31 32 33 |
# File 'lib/cuba_api/utils.rb', line 26 def to_float( name, default = nil ) v = req[ name ] if v v.to_f else default end end |
#to_int(name, default = nil) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/cuba_api/utils.rb', line 35 def to_int( name, default = nil ) v = req[ name ] if v v.to_i else default end end |