class Project

Attributes

directories[RW]

Public Class Methods

accept!(filename) click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 2
def self.accept!(filename)
  dir, name = File.split(filename)
  new_name = File.join(dir, name.sub(/current/, 'accepted'))
  FileUtils.mv(filename, new_name)

  diff_file = File.join(dir, name.sub(/current/, 'diff'))
  if File.exists? diff_file
    FileUtils.rm(diff_file)
  end
  new_name
end
new(directories) click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 15
def initialize(directories)
  self.directories = Array(directories)
end

Public Instance Methods

as_json() click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 32
def as_json
  {
    specs: specs.map(&:as_json)
  }
end
specs() click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 19
def specs
  spec_dirs.map do |root, dirs|
    next if dirs.empty?
    dirs.map do |dir|
      Spec.new root, dir
    end
  end.compact.flatten
end
to_json() click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 28
def to_json
  as_json.to_json
end

Private Instance Methods

spec_dirs() click to toggle source
# File lib/juxtapose/application/lib/project.rb, line 39
def spec_dirs
  dirs = {}
  directories.each do |directory|
    dirs[directory] = Dir.glob(File.join(directory, '**/*.png')).map do |file|
      Dir[File.dirname(file)]
    end.flatten.uniq
  end
  dirs
end