Sha256: 9f79a9f8915e2e40b40bead5994a4a94e2e43b6fbf69c3c5a1884e906905e85a

Contents?: true

Size: 1005 Bytes

Versions: 2

Compression:

Stored size: 1005 Bytes

Contents

require 'yaml'

module Columbus3
  class Sidecar
    def initialize filename
      @metadata = Hash.new
      @metadata[:filename] = filename
    end

    def metadata= metadata
      filename = @metadata[:filename]
      @metadata = metadata
      @metadata[:filename] = filename
    end

    def metadata
      @metadata
    end

    def keys
      @metadata.keys
    end

    def load
      @metadata = YAML.load(File.read(@metadata[:filename] + ".yaml"))
    end

    def save
      File.open(@metadata[:filename] + ".yaml", "w") do |file|
        file << @metadata.to_yaml
      end
    end

    def exists?
      File.exist?(@metadata[:filename] + ".yaml")
    end

    # an alias
    def exist? 
      exists?
    end
  end

  class SidecarSearch
    def initialize
      @metadata = Array.new
    end

    def load array
      @metadata = array.each.map { |x| YAML.load(File.read(x)).merge({ :path => x }) }
    end

    def search term
      @metadata.select { |x| eval(term) }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
columbus3-0.5.1 lib/columbus3/metadata/sidecar.rb
columbus3-0.5.0 lib/columbus3/metadata/sidecar.rb