class Praxis::FileGroup
Attributes
base[R]
groups[R]
Public Class Methods
new(base, &block)
click to toggle source
# File lib/praxis/file_group.rb, line 7 def initialize(base, &block) if base.nil? raise ArgumentError, 'base must not be nil.' \ 'Are you missing a call Praxis::Application.instance.setup?' end @groups = {} @base = Pathname.new(base) instance_eval(&block) if block_given? end
Public Instance Methods
[](*names)
click to toggle source
# File lib/praxis/file_group.rb, line 36 def [](*names) names.inject(@groups) { |group, name| group[name] || [] } end
layout(&block)
click to toggle source
# File lib/praxis/file_group.rb, line 19 def layout(&block) instance_eval(&block) end
map(name, pattern, &block)
click to toggle source
# File lib/praxis/file_group.rb, line 23 def map(name, pattern, &block) return unless base.exist? if block_given? @groups[name] = FileGroup.new(base + pattern, &block) else @groups[name] ||= [] files = Pathname.glob(base + pattern).select(&:file?) files.sort_by! { |file| [file.to_s.split('/').size, file.to_s] } files.each { |file| @groups[name] << file } end end