musk 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df87916c30e6fcf75b145d540bf7c337040cc7c4
4
- data.tar.gz: b7d8741df91d111578a923447378c0ff81552537
3
+ metadata.gz: 813d2fc5466547c772986b8bdeb64971e74c247a
4
+ data.tar.gz: 2fbe6fe8aeeb901933615f154f2da15111321b31
5
5
  SHA512:
6
- metadata.gz: 08eefa33efe915736f2ecc9328f59239f6a42ccb9ea2a7c9546d70dad8c225aa2a104d8109cca0eef1699d74706003906e80309da940148b1cc8af60d2d38c20
7
- data.tar.gz: 24a3b257af512d5f3a75fb52a2b721a6acf4a86a9a648a550692b5495b353da7988971910d474316feece99fcb1ba53413c9fb4f3c24385e02f19a722bd57082
6
+ metadata.gz: 6621d503cc6ef86046c449c6555c7fc098893507bff5b35b6454cf37d1f723244ae30579906e0c879ef6dfd34f83d1a5c2167cac6142a8b4f4b1579b17956b0f
7
+ data.tar.gz: 1057bf6d031e4cb183cbdd3c1116a3421e7ffc7bf3d6d531074beec261e94f0640d91d81af8038a732fc077d6073f2d3281696630e6004bed34e486fafd01d17
data/.gitignore CHANGED
@@ -1,5 +1,7 @@
1
1
  *.swp
2
+ .DS_Store
2
3
  .ruby-version
3
4
  .bundle
4
5
  .rspec
5
- .DS_Store
6
+ coverage
7
+ TODO
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
- source 'https://rubygems.org'
2
-
1
+ source "https://rubygems.org"
3
2
  gemspec
data/Gemfile.lock CHANGED
@@ -1,19 +1,30 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- musk (0.0.1)
5
- discogs-wrapper (~> 1.1.4)
6
- gli (~> 2.9.0)
7
- taglib-ruby (~> 0.6.0)
4
+ musk (0.0.2)
5
+ gli (~> 2.9)
6
+ taglib-ruby (~> 0.6)
8
7
 
9
8
  GEM
10
9
  remote: https://rubygems.org/
11
10
  specs:
11
+ activesupport (4.0.4)
12
+ i18n (~> 0.6, >= 0.6.9)
13
+ minitest (~> 4.2)
14
+ multi_json (~> 1.3)
15
+ thread_safe (~> 0.1)
16
+ tzinfo (~> 0.3.37)
17
+ atomic (1.1.16)
12
18
  coderay (1.1.0)
13
19
  diff-lcs (1.2.5)
14
- discogs-wrapper (1.1.4)
20
+ docile (1.1.3)
21
+ factory_girl (4.4.0)
22
+ activesupport (>= 3.0.0)
15
23
  gli (2.9.0)
24
+ i18n (0.6.9)
16
25
  method_source (0.8.2)
26
+ minitest (4.7.5)
27
+ multi_json (1.9.2)
17
28
  pry (0.9.12.6)
18
29
  coderay (~> 1.0)
19
30
  method_source (~> 0.8)
@@ -26,13 +37,23 @@ GEM
26
37
  rspec-expectations (2.14.5)
27
38
  diff-lcs (>= 1.1.3, < 2.0)
28
39
  rspec-mocks (2.14.6)
40
+ simplecov (0.8.2)
41
+ docile (~> 1.1.0)
42
+ multi_json
43
+ simplecov-html (~> 0.8.0)
44
+ simplecov-html (0.8.0)
29
45
  slop (3.5.0)
30
46
  taglib-ruby (0.6.0)
47
+ thread_safe (0.3.1)
48
+ atomic (>= 1.1.7, < 2)
49
+ tzinfo (0.3.39)
31
50
 
32
51
  PLATFORMS
33
52
  ruby
34
53
 
35
54
  DEPENDENCIES
55
+ factory_girl (~> 4.4)
36
56
  musk!
37
- pry (~> 0.9.12.6)
38
- rspec (~> 2.14.1)
57
+ pry (~> 0.9)
58
+ rspec (~> 2.14)
59
+ simplecov (~> 0.8)
data/bin/musk CHANGED
@@ -1,51 +1,25 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'taglib'
4
- require 'gli'
3
+ require "gli"
4
+ require "musk/track_loader"
5
+ require "musk/track_printer"
5
6
 
6
- include GLI::App
7
+ extend GLI::App
7
8
 
8
- desc 'Extract meta-data (tags) from MP3 files'
9
- arg_name 'path_to_files'
9
+ desc "Extract meta-data (tags) from MP3 files"
10
+ arg_name "path_to_file or path_to_files"
10
11
  command :extract do |command|
11
- command.action do |global_options, options, args|
12
- if args.empty?
13
- STDERR.puts 'Undefined path to an MP3 file or files'
12
+ command.arg_name "format"
13
+ command.default_value "pretty"
14
+ command.flag [:f, :format]
15
+ command.action do |global_options, options, arguments|
16
+ begin
17
+ tracks = Musk::TrackLoader.load!(arguments.first)
18
+ Musk::TrackPrinter.print!(options[:f], tracks)
19
+ rescue RuntimeError => error
20
+ STDERR.puts error
14
21
  exit 1
15
22
  end
16
- unless File.directory?(args.first)
17
- unless File.file?(args.first)
18
- STDERR.puts "Unknown path '#{args.first}' to an MP3 file or files"
19
- exit 2
20
- end
21
- unless File.extname(args.first) == '.mp3'
22
- STDERR.puts "Unknown extension '#{File.extname(args.first)}'"
23
- exit 2
24
- end
25
- end
26
- tracks = []
27
- if File.file?(args.first)
28
- tracks << args.first
29
- else
30
- Dir.glob(File.join(args.first, '**', '*.mp3')) do |track|
31
- tracks << track
32
- end
33
- end
34
- tracks.each_with_index do |track, index|
35
- TagLib::MPEG::File.open(track) do |file|
36
- tag = file.id3v2_tag
37
- puts if index > 0
38
- printf("%-9s%s\n", 'File:', track)
39
- printf("%-9s%s\n", 'Cover:', !tag.frame_list('APIC').first.nil?)
40
- printf("%-9s%s\n", 'Track:', tag.frame_list('TRCK').first)
41
- printf("%-9s%s\n", 'Title:', tag.title)
42
- printf("%-9s%s\n", 'Artist:', tag.artist)
43
- printf("%-9s%s\n", 'Album:', tag.album)
44
- printf("%-9s%s\n", 'Genre:', tag.genre)
45
- printf("%-9s%s\n", 'Year:', tag.year)
46
- printf("%-9s%s\n", 'Comment:', tag.comment)
47
- end
48
- end
49
23
  end
50
24
  end
51
25
 
@@ -0,0 +1,19 @@
1
+ module Musk
2
+ module Format
3
+ class Pretty
4
+ def self.print(tracks)
5
+ tracks.each_with_index do |track, index|
6
+ puts if index > 0
7
+ printf("%-10s%s\n", "Path:", track.path)
8
+ printf("%-10s%s\n", "Title:", track.title)
9
+ printf("%-10s%s\n", "Position:", track.position)
10
+ printf("%-10s%s\n", "Artist:", track.artist)
11
+ printf("%-10s%s\n", "Album:", track.album)
12
+ printf("%-10s%s\n", "Genre:", track.genre)
13
+ printf("%-10s%s\n", "Year:", track.year)
14
+ printf("%-10s%s\n", "Comment:", track.comment)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/musk/track.rb ADDED
@@ -0,0 +1,18 @@
1
+ module Musk
2
+ class Track
3
+ ATTRIBUTES = [:path,
4
+ :title,
5
+ :position,
6
+ :artist,
7
+ :album,
8
+ :genre,
9
+ :year,
10
+ :comment]
11
+
12
+ attr_accessor *ATTRIBUTES
13
+
14
+ def attributes
15
+ Hash[ATTRIBUTES.map {|a| [a, send("#{a}")]}]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,46 @@
1
+ require "taglib"
2
+ require "musk/track"
3
+
4
+ module Musk
5
+ class TrackLoader
6
+ def self.supported_formats
7
+ ["mp3"]
8
+ end
9
+
10
+ def self.supported_extensions
11
+ supported_formats.map {|f| ".#{f}"}
12
+ end
13
+
14
+ def self.load!(path)
15
+ unless path and path.length > 0
16
+ raise "Undefined path to a file or files"
17
+ end
18
+ unless File.file?(path) or File.directory?(path)
19
+ raise "Unknown path '#{path}' to a file or files"
20
+ end
21
+ if File.file?(path)
22
+ unless supported_extensions.include?(File.extname(path))
23
+ raise "Unknown extension '#{File.extname(path)}'"
24
+ end
25
+ end
26
+ if File.directory?(path)
27
+ path = File.join(path, "**", "*.{#{supported_formats.join(',')}}")
28
+ end
29
+ Dir[path].map do |path|
30
+ track = Musk::Track.new
31
+ track.path = path
32
+ TagLib::MPEG::File.open(path) do |file|
33
+ tag = file.id3v2_tag
34
+ track.title = tag.title
35
+ track.position = tag.track
36
+ track.artist = tag.artist
37
+ track.album = tag.album
38
+ track.genre = tag.genre
39
+ track.year = tag.year
40
+ track.comment = tag.comment
41
+ end
42
+ track
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,14 @@
1
+ require "musk/format/pretty"
2
+
3
+ module Musk
4
+ class TrackPrinter
5
+ def self.print!(format, tracks)
6
+ case format.to_s.to_sym
7
+ when :pretty
8
+ Format::Pretty.print(tracks)
9
+ else
10
+ raise "Unknown format '#{format}'"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module Musk
2
+ VERSION = "0.0.2"
3
+ end
data/lib/musk.rb CHANGED
@@ -1,5 +1,3 @@
1
- class Musk
2
- def self.hi
3
- "Hello world!"
4
- end
5
- end
1
+ require "musk/track"
2
+ require "musk/track_loader"
3
+ require "musk/track_printer"
data/musk.gemspec CHANGED
@@ -1,20 +1,26 @@
1
+ $LOAD_PATH << File.expand_path("../lib", __FILE__)
2
+
3
+ require "musk/version"
4
+
1
5
  Gem::Specification.new do |s|
2
- s.name = 'musk'
3
- s.version = '0.0.1'
4
- s.summary = 'Your music with the demonic scent of musk'
5
- s.description = 'Your music with the demonic scent of musk.'
6
- s.homepage = 'https://github.com/pempel/musk'
7
- s.date = '2014-03-19'
8
- s.author = 'Eugene Pempel'
9
- s.email = 'eugene.pempel@gmail.com'
10
- s.license = 'MIT'
6
+ s.author = "Eugene Pempel"
7
+ s.email = "eugene.pempel@gmail.com"
8
+ s.summary = "Your music with the demonic scent of musk"
9
+ s.description = "Your music with the demonic scent of musk."
10
+ s.homepage = "https://github.com/pempel/musk"
11
+
12
+ s.name = "musk"
13
+ s.date = "2014-03-19"
11
14
  s.files = `git ls-files`.split($\)
12
- s.executables = `git ls-files -- bin/*`.split($\).map { |f| File.basename(f) }
15
+ s.executables = `git ls-files -- bin/*`.split($\).map {|f| File.basename(f)}
16
+ s.license = "MIT"
17
+ s.version = Musk::VERSION
13
18
 
14
- s.add_runtime_dependency 'gli', '~> 2.9'
15
- s.add_runtime_dependency 'taglib-ruby', '~> 0.6'
16
- s.add_runtime_dependency 'discogs-wrapper', '~> 1.1'
19
+ s.add_runtime_dependency "gli", "~> 2.9"
20
+ s.add_runtime_dependency "taglib-ruby", "~> 0.6"
17
21
 
18
- s.add_development_dependency 'pry', '~> 0.9'
19
- s.add_development_dependency 'rspec', '~> 2.14'
22
+ s.add_development_dependency "pry", "~> 0.9"
23
+ s.add_development_dependency "rspec", "~> 2.14"
24
+ s.add_development_dependency "factory_girl", "~> 4.4"
25
+ s.add_development_dependency "simplecov", "~> 0.8"
20
26
  end
@@ -0,0 +1,41 @@
1
+ require "spec_helper"
2
+
3
+ describe "musk extract" do
4
+ let(:command) { "bundle exec bin/musk extract" }
5
+
6
+ context "called without arguments" do
7
+ it "should fail with the exit code 1" do
8
+ stdout, stderr, status = Open3.capture3(command)
9
+ status.exitstatus.should eq(1)
10
+ end
11
+
12
+ it "should write an error message to STDERR" do
13
+ stdout, stderr, status = Open3.capture3(command)
14
+ stderr.should_not be_empty
15
+ end
16
+ end
17
+
18
+ context "called with 'path_to_tracks'" do
19
+ it_should_behave_like "a command to print tracks to STDOUT in the pretty format" do
20
+ let(:expected_command) { command }
21
+ end
22
+ end
23
+
24
+ context "called with '-f pretty path_to_tracks'" do
25
+ it_should_behave_like "a command to print tracks to STDOUT in the pretty format" do
26
+ let(:expected_command) { "#{command} -f pretty" }
27
+ end
28
+ end
29
+
30
+ context "called with '--format pretty path_to_tracks'" do
31
+ it_should_behave_like "a command to print tracks to STDOUT in the pretty format" do
32
+ let(:expected_command) { "#{command} --format pretty" }
33
+ end
34
+ end
35
+
36
+ context "called with '--format=pretty path_to_tracks'" do
37
+ it_should_behave_like "a command to print tracks to STDOUT in the pretty format" do
38
+ let(:expected_command) { "#{command} --format=pretty" }
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ describe Musk::Format::Pretty do
4
+ describe ".print(tracks)" do
5
+ let(:tracks) do
6
+ [build(:jets_track), build(:kamakura_track)]
7
+ end
8
+
9
+ let(:stdout) do
10
+ tracks.map do |track|
11
+ "Path: #{track.path}\n"\
12
+ "Title: #{track.title}\n"\
13
+ "Position: #{track.position}\n"\
14
+ "Artist: #{track.artist}\n"\
15
+ "Album: #{track.album}\n"\
16
+ "Genre: #{track.genre}\n"\
17
+ "Year: #{track.year}\n"\
18
+ "Comment: #{track.comment}\n"\
19
+ end.join("\n")
20
+ end
21
+
22
+ it "should print tracks to STDOUT in the pretty format" do
23
+ capture_stdout { subject.class.print(tracks) }.should eq(stdout)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,72 @@
1
+ require "spec_helper"
2
+
3
+ describe Musk::TrackLoader do
4
+ describe ".supported_formats" do
5
+ it "should return ['mp3']" do
6
+ subject.class.supported_formats.should eq(["mp3"])
7
+ end
8
+ end
9
+
10
+ describe ".supported_extensions" do
11
+ it "should return ['.mp3']" do
12
+ subject.class.supported_extensions.should eq([".mp3"])
13
+ end
14
+ end
15
+
16
+ describe ".load!(path)" do
17
+ context "when path.nil?" do
18
+ it "should raise \"Undefined path to a file or files\"" do
19
+ error = "Undefined path to a file or files"
20
+ expect { subject.class.load!(nil) }.to raise_error(error)
21
+ end
22
+ end
23
+
24
+ context "when path.empty?" do
25
+ it "should raise \"Undefined path to a file or files\"" do
26
+ error = "Undefined path to a file or files"
27
+ expect { subject.class.load!("") }.to raise_error(error)
28
+ end
29
+ end
30
+
31
+ context "when path is a nonexistent directory" do
32
+ it "should raise \"Unknown path '{path}' to a file or files\"" do
33
+ path = File.join(ENV["MUSK_TRACKS_PATH"], "/nonexistent")
34
+ error = "Unknown path '#{path}' to a file or files"
35
+ expect { subject.class.load!(path) }.to raise_error(error)
36
+ end
37
+ end
38
+
39
+ context "when path is an exisiting directory" do
40
+ it "should create tracks from files in the directory and its subdirectories" do
41
+ subject.class.load!(ENV["MUSK_TRACKS_PATH"]).should be_tracks([
42
+ build(:jets_track, :loaded),
43
+ build(:kamakura_track, :loaded),
44
+ ])
45
+ end
46
+ end
47
+
48
+ context "when path is a nonexistent file" do
49
+ it "should raise \"Unknown path '{path}' to a file or files\"" do
50
+ path = File.join(ENV["MUSK_TRACKS_PATH"], "/nonexistent.mp3")
51
+ error = "Unknown path '#{path}' to a file or files"
52
+ expect { subject.class.load!(path) }.to raise_error(error)
53
+ end
54
+ end
55
+
56
+ context "when path is an existing file that is unsupported" do
57
+ it "should raise \"Unknown extension '{extension}'\"" do
58
+ path = File.join(ENV["MUSK_TRACKS_PATH"], "/track.bad")
59
+ error = "Unknown extension '.bad'"
60
+ allow(File).to receive(:file?).with(path).and_return(true)
61
+ expect { subject.class.load!(path) }.to raise_error(error)
62
+ end
63
+ end
64
+
65
+ context "when path is an existing file that is supported" do
66
+ it "should create a track from the file" do
67
+ path = File.join(ENV["MUSK_TRACKS_PATH"], "/bonobo/jets.mp3")
68
+ subject.class.load!(path).should be_tracks([build(:jets_track, :loaded)])
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe Musk::TrackPrinter do
4
+ describe ".print!(format, tracks)" do
5
+ let(:tracks) { build_list(:track, 2) }
6
+
7
+ context "when format is the pretty format" do
8
+ it "should call Musk::Format::Pretty.print(tracks)" do
9
+ allow(Musk::Format::Pretty).to receive(:print).with(tracks)
10
+ subject.class.print!('pretty', tracks)
11
+ expect(Musk::Format::Pretty).to have_received(:print).with(tracks)
12
+ end
13
+ end
14
+
15
+ context "when format is an unsupported format" do
16
+ it "should raise \"Unknown format '{format}'\"" do
17
+ error = "Unknown format 'unsupported'"
18
+ expect { subject.class.print!('unsupported', tracks) }.to raise_error(error)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ require "spec_helper"
2
+
3
+ describe Musk::Track do
4
+ it { should respond_to(:path) }
5
+ it { should respond_to(:path=) }
6
+ it { should respond_to(:title) }
7
+ it { should respond_to(:title=) }
8
+ it { should respond_to(:position) }
9
+ it { should respond_to(:position=) }
10
+ it { should respond_to(:artist) }
11
+ it { should respond_to(:artist=) }
12
+ it { should respond_to(:album) }
13
+ it { should respond_to(:album=) }
14
+ it { should respond_to(:genre) }
15
+ it { should respond_to(:genre=) }
16
+ it { should respond_to(:year) }
17
+ it { should respond_to(:year=) }
18
+ it { should respond_to(:comment) }
19
+ it { should respond_to(:comment=) }
20
+
21
+ describe "#attributes" do
22
+ it "should return a track attributes hash" do
23
+ track = build(:jets_track)
24
+ track.attributes.should eq(Hash[
25
+ Musk::Track::ATTRIBUTES.map {|a| [a, track.send("#{a}")]}
26
+ ])
27
+ end
28
+ end
29
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,22 @@
1
- require 'bundler/setup'
2
- Bundler.setup
1
+ require "simplecov"
3
2
 
4
- require 'musk'
3
+ SimpleCov.start do
4
+ add_filter ".bundle/"
5
+ add_filter "spec/"
6
+ end
7
+
8
+ ENV["MUSK_TRACKS_PATH"] = File.expand_path("../support/tracks", __FILE__)
9
+
10
+ require "factory_girl"
11
+ require "open3"
12
+ require "musk"
13
+
14
+ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each do |file|
15
+ require file
16
+ end
17
+
18
+ RSpec.configure do |config|
19
+ config.include FactoryGirl::Syntax::Methods
20
+ config.include Helpers
21
+ config.include Matchers
22
+ end
@@ -0,0 +1,9 @@
1
+ shared_examples "a command to print tracks to STDOUT in the pretty format" do
2
+ it "should print tracks to STDOUT via Musk::Format::Pretty" do
3
+ path = ENV["MUSK_TRACKS_PATH"]
4
+ tracks = Musk::TrackLoader.load!(path)
5
+ stdout, stderr, status = Open3.capture3("#{expected_command} #{path}")
6
+ stdout.should eq(capture_stdout { Musk::Format::Pretty.print(tracks) })
7
+ status.exitstatus.should eq(0)
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ FactoryGirl.define do
2
+ factory :track, class: Musk::Track do
3
+ end
4
+
5
+ factory :jets_track, parent: :track do
6
+ path File.join(ENV["MUSK_TRACKS_PATH"], "bonobo/jets.mp3")
7
+ title "Jets"
8
+ position 6
9
+ artist "Bonobo"
10
+ album "The North Borders"
11
+ genre "Electronic"
12
+ year 2013
13
+
14
+ trait :loaded do
15
+ comment "0"
16
+ end
17
+ end
18
+
19
+ factory :kamakura_track, parent: :track do
20
+ path File.join(ENV["MUSK_TRACKS_PATH"], "emancipator/kamakura.mp3")
21
+ title "Kamakura"
22
+ position 4
23
+ artist "Emancipator"
24
+ album "Safe In The Steep Cliffs"
25
+ genre "Electronic"
26
+ year 2010
27
+
28
+ trait :loaded do
29
+ comment "0"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ require "stringio"
2
+
3
+ module Helpers
4
+ def capture_stdout(&block)
5
+ begin
6
+ fake = StringIO.new
7
+ eval("$stdout = fake")
8
+ block.call
9
+ fake.string
10
+ ensure
11
+ eval("$stdout = STDOUT")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ class BeTracksMatcher
2
+ include RSpec::Matchers
3
+
4
+ def initialize(tracks)
5
+ @tracks = tracks
6
+ end
7
+
8
+ def matches?(tracks)
9
+ @tracks.map(&:attributes).should =~ tracks.map(&:attributes)
10
+ end
11
+ end
12
+
13
+ module Matchers
14
+ def be_tracks(tracks = [])
15
+ BeTracksMatcher.new(tracks)
16
+ end
17
+ end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: musk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Pempel
@@ -39,47 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.6'
41
41
  - !ruby/object:Gem::Dependency
42
- name: discogs-wrapper
42
+ name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.1'
48
- type: :runtime
47
+ version: '0.9'
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.1'
54
+ version: '0.9'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pry
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.9'
61
+ version: '2.14'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.9'
68
+ version: '2.14'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rspec
70
+ name: factory_girl
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.14'
75
+ version: '4.4'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.14'
82
+ version: '4.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.8'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.8'
83
97
  description: Your music with the demonic scent of musk.
84
98
  email: eugene.pempel@gmail.com
85
99
  executables:
@@ -94,9 +108,24 @@ files:
94
108
  - README.md
95
109
  - bin/musk
96
110
  - lib/musk.rb
111
+ - lib/musk/format/pretty.rb
112
+ - lib/musk/track.rb
113
+ - lib/musk/track_loader.rb
114
+ - lib/musk/track_printer.rb
115
+ - lib/musk/version.rb
97
116
  - musk.gemspec
98
- - spec/musk_spec.rb
117
+ - spec/bin/musk_spec.rb
118
+ - spec/lib/musk/format/pretty_spec.rb
119
+ - spec/lib/musk/track_loader_spec.rb
120
+ - spec/lib/musk/track_printer_spec.rb
121
+ - spec/lib/musk/track_spec.rb
99
122
  - spec/spec_helper.rb
123
+ - spec/support/examples/command_to_print_tracks_to_stdout_in_pretty_format_example.rb
124
+ - spec/support/factories/tracks.rb
125
+ - spec/support/helpers/capture_stdout_helper.rb
126
+ - spec/support/matchers/be_tracks_matcher.rb
127
+ - spec/support/tracks/bonobo/jets.mp3
128
+ - spec/support/tracks/emancipator/kamakura.mp3
100
129
  homepage: https://github.com/pempel/musk
101
130
  licenses:
102
131
  - MIT
data/spec/musk_spec.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Musk do
4
- describe '.hi' do
5
- it 'should return "Hello world!"' do
6
- Musk.hi.should eq("Hello world!")
7
- end
8
- end
9
- end