Class: Jekyll::S3::ConfigLoader
- Inherits:
-
Object
- Object
- Jekyll::S3::ConfigLoader
- 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
- .check_jekyll_project(site_dir) ⇒ Object
-
.check_s3_configuration(site_dir) ⇒ Object
Raise NoConfigurationFileError if the configuration file does not exists.
- .create_template_configuration_file(site_dir) ⇒ Object
- .get_configuration_file(site_dir) ⇒ Object
-
.load_configuration(site_dir) ⇒ Object
Load configuration from _jekyll_s3.yml Raise MalformedConfigurationFileError if the configuration file does not contain the keys we expect.
- .load_yaml_file_and_validate(site_dir) ⇒ Object
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_id', 's3_secret', 's3_bucket'].any? { |key| mandatory_config_value = config[key] mandatory_config_value.nil? || mandatory_config_value == '' } config end |