Sha256: e2eff6a70224d265b9e3541210e004a7684b0a7ff489397462fe87a1d8fbe006

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module RubySlides
  module Util

    def pixel_to_pt(px)
      px * 12700
    end

    def render_view(template_name, path, variables = {})
      view_contents = read_template(template_name)
      renderer = ERB.new(view_contents)
      b = merge_variables(binding, variables)
      data = renderer.result(b)

      File.open(path, 'w') { |f| f << data }
    end

    def read_template(filename)
      File.read("#{RubySlides::VIEW_PATH}/#{filename}")
    end

    def require_arguments(required_arguments, arguments)
      raise ArgumentError unless required_arguments.all? {|required_key| arguments.keys.include? required_key}
    end

    def copy_media(extract_path, image_path)
      image_name = File.basename(image_path)
      dest_path = "#{extract_path}/ppt/media/#{image_name}"
      FileUtils.copy_file(image_path, dest_path) unless File.exist?(dest_path)
    end

    def merge_variables(b, variables)
      return b if variables.empty?
      variables.each do |k,v|
        b.local_variable_set(k, v)
      end
      b
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby_slides-1.2.1 lib/ruby_slides/util.rb
ruby_slides-1.2.0 lib/ruby_slides/util.rb