Class: Embargoed::MaintenancePage::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/embargoed/maintenance_page/base.rb

Direct Known Subclasses

HTML, JSON

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reason = nil, options = {}) ⇒ Base



6
7
8
9
# File 'lib/embargoed/maintenance_page/base.rb', line 6

def initialize(reason = nil, options = {})
  @options = options.is_a?(Hash) ? options : {}
  @reason = reason
end

Instance Attribute Details

#reasonObject (readonly)

Returns the value of attribute reason.



4
5
6
# File 'lib/embargoed/maintenance_page/base.rb', line 4

def reason
  @reason
end

Class Method Details

.extensionObject

Override with a file extension value like ‘html’ or ‘json’

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/embargoed/maintenance_page/base.rb', line 23

def self.extension
  raise NotImplementedError, '.extension must be overridden in subclasses'
end

.media_typesObject

Override with an array of media type strings. i.e. text/html

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/embargoed/maintenance_page/base.rb', line 17

def self.media_types
  raise NotImplementedError, '.media_types must be overridden in subclasses'
end

Instance Method Details

#custom_pathObject



28
29
30
# File 'lib/embargoed/maintenance_page/base.rb', line 28

def custom_path
  Pathname.new(Embargoed.config.maintenance_pages_path).join(filename)
end

#extensionObject



26
# File 'lib/embargoed/maintenance_page/base.rb', line 26

def extension() self.class.extension end

#media_typesObject



20
# File 'lib/embargoed/maintenance_page/base.rb', line 20

def media_types() self.class.media_types end

#rack_response(code = nil, retry_after = nil) ⇒ Object



11
12
13
14
# File 'lib/embargoed/maintenance_page/base.rb', line 11

def rack_response(code = nil, retry_after = nil)
  code ||= Embargoed.config.default_response_code
  [code, headers(retry_after), body]
end