class MagicReveal::Creator
Creates the world!
Attributes
directory[R]
reveal_js_fetcher[W]
template_config_ru[W]
template_slides[W]
Public Class Methods
new(directory)
click to toggle source
# File lib/magic_reveal/creator.rb, line 14 def initialize(directory) @directory = Pathname.new directory end
Public Instance Methods
create_project(project)
click to toggle source
# File lib/magic_reveal/creator.rb, line 36 def create_project(project) # rubocop:disable MethodLength top_dir = directory + project gemfile = top_dir + 'Gemfile' top_dir.mkdir reveal_js_fetcher.save_important_parts_to(top_dir) FileUtils.copy_file template_slides.to_s, (top_dir + 'slides.md').to_s FileUtils.copy_file template_config_ru.to_s, (top_dir + 'config.ru').to_s FileUtils.copy_file ProjectConfig::DEFAULT_TEMPLATE.to_s, (top_dir + 'config.json').to_s gemfile.open('w') do |f| f.puts "source 'https://rubygems.org'" f.puts f.puts "gem 'magic_reveal', '~> #{VERSION}'" end Dir.chdir(top_dir.to_s) do system 'bundle install' end end
reveal_js_fetcher()
click to toggle source
# File lib/magic_reveal/creator.rb, line 18 def reveal_js_fetcher @reveal_js_fetcher ||= RevealJsFetcher.new end
template_config_ru()
click to toggle source
# File lib/magic_reveal/creator.rb, line 26 def template_config_ru @template_config_ru ||= Pathname.new(__FILE__).dirname + 'template-config.ru' end
template_slides()
click to toggle source
# File lib/magic_reveal/creator.rb, line 22 def template_slides @template_slides ||= Pathname.new(__FILE__).dirname.dirname.dirname + 'README.md' end
update_project(directory)
click to toggle source
# File lib/magic_reveal/creator.rb, line 30 def update_project(directory) top_dir = Pathname.new(directory) reveal_js_fetcher.save_important_parts_to(top_dir) end