class Rabbit::SlideConfiguration
Constants
- GEM_NAME_PREFIX
Attributes
base_name[RW]
height[RW]
id[RW]
licenses[RW]
logger[RW]
presentation_date[R]
presentation_end_time[R]
presentation_start_time[R]
source_code_uri[RW]
speaker_deck_id[RW]
version[W]
vimeo_id[RW]
width[RW]
youtube_id[RW]
Public Class Methods
new(logger=nil)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 50 def initialize(logger=nil) @logger = logger || Logger.default clear end
Public Instance Methods
clear()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 87 def clear @id = nil @base_name = nil @tags = [] @presentation_date = nil @presentation_start_time = nil @presentation_end_time = nil @version = nil @licenses = [] @slideshare_id = nil @speaker_deck_id = nil @vimeo_id = nil @youtube_id = nil @author = nil @width = 800 @height = 600 @source_code_uri = nil end
gem_name()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 172 def gem_name "#{GEM_NAME_PREFIX}-#{@author.rubygems_user}-#{@id}" end
load()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 67 def load return unless File.exist?(path) conf = YAMLLoader.load(File.read(path)) clear 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/slide-configuration.rb, line 107 def merge!(conf) @id = conf["id"] || @id @base_name = conf["base_name"] || @base_name self.presentation_date = conf["presentation_date"] || @presentation_date self.presentation_start_time = conf["presentation_start_time"] || @presentation_start_time self.presentation_end_time = conf["presentation_end_time"] || @presentation_end_time @version = conf["version"] || @version @slideshare_id = conf["slideshare_id"] || @slideshare_id @speaker_deck_id = conf["speaker_deck_id"] || @speaker_deck_id @vimeo_id = conf["vimeo_id"] || @vimeo_id @youtube_id = conf["youtube_id"] || @youtube_id @tags |= (conf["tags"] || []) @licenses |= (conf["licenses"] || []) @author ||= AuthorConfiguration.new(@logger) @author.merge!(conf["author"] || {}) @width = conf["width"] || @width @height = conf["height"] || @height @source_code_uri = conf["source_code_uri"] || @source_code_uri end
path()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 176 def path "config.yaml" end
presentation_date=(value)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 55 def presentation_date=(value) @presentation_date = ensure_date(value) end
presentation_end_time=(value)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 63 def presentation_end_time=(value) @presentation_end_time = ensure_time(value) end
presentation_start_time=(value)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 59 def presentation_start_time=(value) @presentation_start_time = ensure_time(value) end
save(base_dir)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 77 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/slide-configuration.rb, line 133 def to_hash config = { "id" => @id, "base_name" => @base_name, "tags" => @tags, "presentation_date" => @presentation_date, "presentation_start_time" => @presentation_start_time, "presentation_end_time" => @presentation_end_time, "version" => version, "licenses" => @licenses, "slideshare_id" => @slideshare_id, "speaker_deck_id" => @speaker_deck_id, "vimeo_id" => @vimeo_id, "youtube_id" => @youtube_id, "width" => @width, "height" => @height, "source_code_uri" => @source_code_uri, } config["author"] = @author.to_hash if @author config end
to_yaml()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 155 def to_yaml hash = to_hash hash.each do |key, value| case value when Date hash[key] = value.strftime("%Y-%m-%d") when Time hash[key] = value.iso8601 end end hash.to_yaml end
version()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 168 def version @version || default_version end
Private Instance Methods
default_version()
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 197 def default_version date = presentation_date if date "#{date.year}.#{date.month}.#{date.day}.0" else "1.0.0" end end
ensure_date(value)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 181 def ensure_date(value) if value.is_a?(String) Date.parse(value) else value end end
ensure_time(value)
click to toggle source
# File lib/rabbit/slide-configuration.rb, line 189 def ensure_time(value) if value.is_a?(String) Time.parse(value) else value end end