Sha256: 52357bd7a3f042363bb6d71416770950ea525b95bfc9f31c2d940bea93ca6eed

Contents?: true

Size: 948 Bytes

Versions: 6

Compression:

Stored size: 948 Bytes

Contents

class Project
  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

  attr_accessor :directories
  def initialize(directories)
    self.directories = Array(directories)
  end

  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

  def to_json
    as_json.to_json
  end

  def as_json
    {
      specs: specs.map(&:as_json)
    }
  end

  private
  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
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
motion-juxtapose-0.3.2 lib/juxtapose/application/lib/project.rb
motion-juxtapose-0.3.1 lib/juxtapose/application/lib/project.rb
motion-juxtapose-0.3.0 lib/juxtapose/application/lib/project.rb
motion-juxtapose-0.2.0 lib/juxtapose/application/lib/project.rb
motion-juxtapose-0.1.1 lib/juxtapose/application/lib/project.rb
motion-juxtapose-0.1.0 lib/juxtapose/application/lib/project.rb