Class: Jekyll::S3::ConfigLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-s3/config_loader.rb

Constant Summary collapse

CONFIGURATION_FILE =
'_jekyll_s3.yml'
CONFIGURATION_FILE_TEMPLATE =
<<-EOF
s3_id: YOUR_AWS_S3_ACCESS_KEY_ID
s3_secret: YOUR_AWS_S3_SECRET_ACCESS_KEY
s3_bucket: your.blog.bucket.com
EOF

Class Method Summary collapse

Class Method Details

.check_jekyll_project(site_dir) ⇒ Object



11
12
13
# File 'lib/jekyll-s3/config_loader.rb', line 11

def self.check_jekyll_project(site_dir)
  raise NotAJekyllProjectError unless File.directory?(site_dir)
end

.check_s3_configuration(site_dir) ⇒ Object

Raise NoConfigurationFileError if the configuration file does not exists



16
17
18
19
20
21
# File 'lib/jekyll-s3/config_loader.rb', line 16

def self.check_s3_configuration(site_dir)
  unless File.exists?(get_configuration_file(site_dir))
    create_template_configuration_file site_dir
    raise NoConfigurationFileError
  end
end

.create_template_configuration_file(site_dir) ⇒ Object



30
31
32
33
34
# File 'lib/jekyll-s3/config_loader.rb', line 30

def self.create_template_configuration_file(site_dir)
  File.open(get_configuration_file(site_dir), 'w') { |f|
    f.write(CONFIGURATION_FILE_TEMPLATE)
  }
end

.get_configuration_file(site_dir) ⇒ Object



51
52
53
# File 'lib/jekyll-s3/config_loader.rb', line 51

def self.get_configuration_file(site_dir)
  "#{site_dir}/../#{CONFIGURATION_FILE}"
end

.load_configuration(site_dir) ⇒ Object

Load configuration from _jekyll_s3.yml Raise MalformedConfigurationFileError if the configuration file does not contain the keys we expect



25
26
27
28
# File 'lib/jekyll-s3/config_loader.rb', line 25

def self.load_configuration(site_dir)
  config = load_yaml_file_and_validate site_dir
  return config
end

.load_yaml_file_and_validate(site_dir) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/jekyll-s3/config_loader.rb', line 36

def self.load_yaml_file_and_validate(site_dir)
  begin
    config = YAML.load(Erubis::Eruby.new(File.read(get_configuration_file(site_dir))).result)
  rescue Exception
    raise MalformedConfigurationFileError
  end
  raise MalformedConfigurationFileError unless config
  raise MalformedConfigurationFileError if
    ['s3_bucket'].any? { |key|
      mandatory_config_value = config[key]
      mandatory_config_value.nil? || mandatory_config_value == ''
    }
  config
end