Class: FLACsmith::Metadata::Tagger

Inherits:
Object
  • Object
show all
Defined in:
lib/flacsmith/metadata/tagger.rb

Overview

Provides metadata tag management.

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Tagger

Returns a new instance of Tagger.



7
8
9
# File 'lib/flacsmith/metadata/tagger.rb', line 7

def initialize path
  @path = path
end

Instance Method Details

#add(tags = []) ⇒ Object



16
17
18
19
# File 'lib/flacsmith/metadata/tagger.rb', line 16

def add tags = []
  options = Array(tags).map { |tag| "--set-tag=#{tag}" }
  Formatter.new(`metaflac #{options.join " "} "#{path}" 2> /dev/null`).to_h
end

#read(tags = Tag.defaults) ⇒ Object



11
12
13
14
# File 'lib/flacsmith/metadata/tagger.rb', line 11

def read tags = Tag.defaults
  options = Array(tags).map { |tag| "--show-tag=#{tag.key}" }
  Formatter.new(`metaflac #{options.join " "} "#{path}" 2> /dev/null`).to_h
end

#remove(tags = []) ⇒ Object



21
22
23
24
# File 'lib/flacsmith/metadata/tagger.rb', line 21

def remove tags = []
  options = Array(tags).map { |tag| "--remove-tag=#{tag.key}" }
  Formatter.new(`metaflac #{options.join " "} "#{path}" 2> /dev/null`).to_h
end

#update(tags = []) ⇒ Object



26
27
28
29
# File 'lib/flacsmith/metadata/tagger.rb', line 26

def update tags = []
  remove tags
  add tags
end