class Rabbit::ThemeConfiguration

Constants

GEM_NAME_PREFIX

Attributes

author[RW]
id[RW]
licenses[RW]
logger[RW]
tags[RW]
version[W]

Public Class Methods

new(logger=nil) click to toggle source
# File lib/rabbit/theme-configuration.rb, line 33
def initialize(logger=nil)
  @logger = logger || Logger.default
  @id = nil
  @tags = []
  @version = nil
  @licenses = []
  @author = nil
end

Public Instance Methods

gem_name() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 90
def gem_name
  "#{GEM_NAME_PREFIX}-#{@id}"
end
load() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 42
def load
  return unless File.exist?(path)
  conf = YAMLLoader.load(File.read(path))
  merge!(conf)
rescue
  format = _("Failed to read slide configuration: %s: %s")
  @logger.error(format % [path, $!.message])
end
merge!(conf) click to toggle source
# File lib/rabbit/theme-configuration.rb, line 61
def merge!(conf)
  @id                = conf["id"]
  @tags              = conf["tags"]
  @version           = conf["version"]
  @licenses          = conf["licenses"]

  @author = AuthorConfiguration.new(@logger)
  @author.merge!(conf["author"] || {})
end
path() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 94
def path
  "config.yaml"
end
save(base_dir) click to toggle source
# File lib/rabbit/theme-configuration.rb, line 51
def save(base_dir)
  config_path = File.join(base_dir, path)
  create_file(config_path) do |conf_file|
    conf_file.print(to_yaml)
  end
rescue
  format = _("Failed to write slide configuration: %s: %s")
  @logger.error(format % [config_path, $!.message])
end
to_hash() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 71
def to_hash
  config = {
    "id"                => @id,
    "tags"              => @tags,
    "version"           => version,
    "licenses"          => @licenses,
  }
  config["author"] = @author.to_hash if @author
  config
end
to_yaml() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 82
def to_yaml
  to_hash.to_yaml
end
version() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 86
def version
  @version || default_version
end

Private Instance Methods

default_version() click to toggle source
# File lib/rabbit/theme-configuration.rb, line 99
def default_version
  "1.0.0"
end