Class: ServerlessRedirector::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/serverless_redirector/manifest.rb

Defined Under Namespace

Classes: Redirect

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(contents) ⇒ Manifest

Returns a new instance of Manifest.



25
26
27
# File 'lib/serverless_redirector/manifest.rb', line 25

def initialize(contents)
  @redirects = contents.to_a.map { |item| Redirect.new item }.freeze
end

Instance Attribute Details

#redirectsObject (readonly)

Conditions:

  1. Everything has a valid path.

  2. All URLs are valid



23
24
25
# File 'lib/serverless_redirector/manifest.rb', line 23

def redirects
  @redirects
end

Class Method Details

.dump_file!(path) ⇒ Object



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

def self.dump_file!(path)
  File.open path, 'w+' do |out|
    @redirects.each do |redirect|
      out.puts JSON.dump(redirect.serializable_hash)
    end
  end
end

.load_file!(path) ⇒ Object



42
43
44
45
# File 'lib/serverless_redirector/manifest.rb', line 42

def self.load_file!(path)
  contents = File.readlines(path).lazy.map { |line| JSON.parse(line) }
  new contents
end

Instance Method Details

#validateObject



29
30
31
32
# File 'lib/serverless_redirector/manifest.rb', line 29

def validate
  @redirects.each do |item|
  end
end