class Copypasta::Contents
Attributes
entries[R]
force_create[RW]
target_directory[R]
Public Class Methods
from_tree(root)
click to toggle source
# File lib/copypasta/contents.rb, line 33 def self.from_tree(root) require "copypasta/contents_dsl" raise "#{root} doesn't exist." unless Dir.exist?(root) root = File.expand_path(root) items = [] Dir["#{root}/**/_contents.rb"].each do |f| f = File.expand_path(f) content_dir = File.dirname(f) target_directory = content_dir.sub(root, "").sub(%r!^/!, "") contents = Copypasta::Contents.new(target_directory) dsl = Copypasta::ContentsDSL.new(contents, content_dir) dsl.instance_eval File.read(f), f items << contents unless contents.entries.empty? end items end
new(target_directory)
click to toggle source
# File lib/copypasta/contents.rb, line 11 def initialize(target_directory) @target_directory = target_directory.dup.freeze @force_create = false @entries = [] end
Public Instance Methods
apply(root, parameters)
click to toggle source
# File lib/copypasta/contents.rb, line 17 def apply(root, parameters) content_dir = "#{root}/#{target_directory}" if should_create? FileUtils.mkdir_p content_dir end entries.each do |entry| entry.apply(content_dir, parameters) end end
should_create?()
click to toggle source
# File lib/copypasta/contents.rb, line 29 def should_create? force_create || !entries.empty? end