Class: AgentX::Response::Headers::CacheControl

Inherits:
Object
  • Object
show all
Defined in:
lib/agentx/response.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(directives) ⇒ CacheControl

Returns a new instance of CacheControl.



205
206
207
# File 'lib/agentx/response.rb', line 205

def initialize(directives)
  @directives = directives
end

Instance Attribute Details

#directivesObject (readonly)

Returns the value of attribute directives.



203
204
205
# File 'lib/agentx/response.rb', line 203

def directives
  @directives
end

Class Method Details

.parse(s) ⇒ Object



245
246
247
248
249
250
251
252
253
254
255
# File 'lib/agentx/response.rb', line 245

def self.parse(s)
  h = {}

  Array(s).join(',').gsub(' ', '').split(',').each do |p|
    k, v = p.split('=')

    h[k.downcase] = (v || true)
  end

  new(h)
end

Instance Method Details

#inspectObject



241
242
243
# File 'lib/agentx/response.rb', line 241

def inspect
  "(CacheControl #{directives})"
end

#max_ageObject



229
230
231
# File 'lib/agentx/response.rb', line 229

def max_age
  @directives['max-age'] && @directives['max-age'].to_i
end

#must_revalidate?Boolean

Returns:

  • (Boolean)


225
226
227
# File 'lib/agentx/response.rb', line 225

def must_revalidate?
  @directives['must-revalidate']
end

#no_cache?Boolean

Returns:

  • (Boolean)


221
222
223
# File 'lib/agentx/response.rb', line 221

def no_cache?
  @directives['no-cache']
end

#no_store?Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/agentx/response.rb', line 217

def no_store?
  @directives['no-store']
end

#private?Boolean

Returns:

  • (Boolean)


213
214
215
# File 'lib/agentx/response.rb', line 213

def private?
  @directives['private']
end

#public?Boolean

Returns:

  • (Boolean)


209
210
211
# File 'lib/agentx/response.rb', line 209

def public?
  @directives['public']
end

#shared_max_ageObject



233
234
235
# File 'lib/agentx/response.rb', line 233

def shared_max_age
  @directives['s-max-age'] && @directives['s-max-age'].to_i
end

#to_sObject



237
238
239
# File 'lib/agentx/response.rb', line 237

def to_s
  directives.map { |k,v| v == true ? k : "#{k}=#{v}" }.join(', ')
end