dragonfly_audio 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 +4 -4
 - data/.gitignore +1 -0
 - data/.travis.yml +15 -0
 - data/Gemfile.lock +8 -9
 - data/Guardfile +2 -2
 - data/README.md +44 -0
 - data/dragonfly_audio.gemspec +14 -15
 - data/lib/dragonfly_audio/analysers/audio_properties.rb +11 -22
 - data/lib/dragonfly_audio/plugin.rb +10 -44
 - data/lib/dragonfly_audio/processors/tag.rb +29 -0
 - data/lib/dragonfly_audio/version.rb +1 -1
 - data/test/dragonfly_audio/analysers/audio_properties_test.rb +50 -0
 - data/test/dragonfly_audio/plugin_test.rb +14 -3
 - data/test/dragonfly_audio/processors/tag_test.rb +23 -0
 - data/test/test_helper.rb +2 -6
 - metadata +9 -17
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ea5b12c33329b64884570596ad8e06ffd530f830
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a13834b59b263db518b796b8b7765fac83201883
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 4febcf182f5c3874e6010d52c3a7ec686f30f33a51b1a1469e02a7133ece2ff6766e800755e37fb3f8136b259546353861dd695f056ba04753a802b1fdd9a688
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3c79cf398b489981b612a87282b1554e5aa24897096d5db35aadd02ef8c93451b50ba1a925cbb556c8e03223c0e211faee0fec301827d8c427789c56680fbf48
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.travis.yml
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            language: ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            cache: bundler
         
     | 
| 
      
 3 
     | 
    
         
            +
            script: 'bundle exec rake'
         
     | 
| 
      
 4 
     | 
    
         
            +
            rvm:
         
     | 
| 
      
 5 
     | 
    
         
            +
              - 2.2.5
         
     | 
| 
      
 6 
     | 
    
         
            +
            before_install:
         
     | 
| 
      
 7 
     | 
    
         
            +
              - sudo apt-get update
         
     | 
| 
      
 8 
     | 
    
         
            +
              - sudo apt-get install -y libtag1-dev
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            notifications:
         
     | 
| 
      
 11 
     | 
    
         
            +
              email:
         
     | 
| 
      
 12 
     | 
    
         
            +
                recipients:
         
     | 
| 
      
 13 
     | 
    
         
            +
                  - tomas.celizna@gmail.com
         
     | 
| 
      
 14 
     | 
    
         
            +
                on_failure: change
         
     | 
| 
      
 15 
     | 
    
         
            +
                on_success: never
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                dragonfly_audio (0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
                dragonfly_audio (0.0.2)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  dragonfly (~> 1.0)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  taglib-ruby
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            GEM
         
     | 
| 
       9 
9 
     | 
    
         
             
              remote: https://rubygems.org/
         
     | 
| 
       10 
10 
     | 
    
         
             
              specs:
         
     | 
| 
       11 
     | 
    
         
            -
                addressable (2. 
     | 
| 
      
 11 
     | 
    
         
            +
                addressable (2.4.0)
         
     | 
| 
       12 
12 
     | 
    
         
             
                coderay (1.1.0)
         
     | 
| 
       13 
13 
     | 
    
         
             
                dragonfly (1.0.12)
         
     | 
| 
       14 
14 
     | 
    
         
             
                  addressable (~> 2.3)
         
     | 
| 
         @@ -34,12 +34,9 @@ GEM 
     | 
|
| 
       34 
34 
     | 
    
         
             
                  rb-inotify (>= 0.9)
         
     | 
| 
       35 
35 
     | 
    
         
             
                lumberjack (1.0.9)
         
     | 
| 
       36 
36 
     | 
    
         
             
                method_source (0.8.2)
         
     | 
| 
       37 
     | 
    
         
            -
                mini_portile (0.6.2)
         
     | 
| 
       38 
37 
     | 
    
         
             
                minitest (5.8.1)
         
     | 
| 
       39 
     | 
    
         
            -
                multi_json (1. 
     | 
| 
      
 38 
     | 
    
         
            +
                multi_json (1.12.1)
         
     | 
| 
       40 
39 
     | 
    
         
             
                nenv (0.2.0)
         
     | 
| 
       41 
     | 
    
         
            -
                nokogiri (1.6.6.2)
         
     | 
| 
       42 
     | 
    
         
            -
                  mini_portile (~> 0.6.0)
         
     | 
| 
       43 
40 
     | 
    
         
             
                notiffany (0.0.8)
         
     | 
| 
       44 
41 
     | 
    
         
             
                  nenv (~> 0.1)
         
     | 
| 
       45 
42 
     | 
    
         
             
                  shellany (~> 0.0)
         
     | 
| 
         @@ -47,14 +44,14 @@ GEM 
     | 
|
| 
       47 
44 
     | 
    
         
             
                  coderay (~> 1.1.0)
         
     | 
| 
       48 
45 
     | 
    
         
             
                  method_source (~> 0.8.1)
         
     | 
| 
       49 
46 
     | 
    
         
             
                  slop (~> 3.4)
         
     | 
| 
       50 
     | 
    
         
            -
                rack ( 
     | 
| 
      
 47 
     | 
    
         
            +
                rack (2.0.1)
         
     | 
| 
       51 
48 
     | 
    
         
             
                rake (10.4.2)
         
     | 
| 
       52 
49 
     | 
    
         
             
                rb-fsevent (0.9.6)
         
     | 
| 
       53 
50 
     | 
    
         
             
                rb-inotify (0.9.5)
         
     | 
| 
       54 
51 
     | 
    
         
             
                  ffi (>= 0.5.0)
         
     | 
| 
       55 
52 
     | 
    
         
             
                shellany (0.0.1)
         
     | 
| 
       56 
53 
     | 
    
         
             
                slop (3.6.0)
         
     | 
| 
       57 
     | 
    
         
            -
                taglib-ruby (0.7. 
     | 
| 
      
 54 
     | 
    
         
            +
                taglib-ruby (0.7.1)
         
     | 
| 
       58 
55 
     | 
    
         
             
                thor (0.19.1)
         
     | 
| 
       59 
56 
     | 
    
         | 
| 
       60 
57 
     | 
    
         
             
            PLATFORMS
         
     | 
| 
         @@ -66,5 +63,7 @@ DEPENDENCIES 
     | 
|
| 
       66 
63 
     | 
    
         
             
              guard
         
     | 
| 
       67 
64 
     | 
    
         
             
              guard-minitest
         
     | 
| 
       68 
65 
     | 
    
         
             
              minitest
         
     | 
| 
       69 
     | 
    
         
            -
              nokogiri
         
     | 
| 
       70 
66 
     | 
    
         
             
              rake
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            BUNDLED WITH
         
     | 
| 
      
 69 
     | 
    
         
            +
               1.12.5
         
     | 
    
        data/Guardfile
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # More info at https://github.com/guard/guard#readme
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            guard :minitest do
         
     | 
| 
       5 
     | 
    
         
            -
              watch(%r{^lib/(.+)\.rb$}) 
     | 
| 
      
 5 
     | 
    
         
            +
              watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
         
     | 
| 
       6 
6 
     | 
    
         
             
              watch(%r{^test/.+_test\.rb$})
         
     | 
| 
       7 
     | 
    
         
            -
              watch(%r{^test/test_helper\.rb$}) 
     | 
| 
      
 7 
     | 
    
         
            +
              watch(%r{^test/test_helper\.rb$}) { 'test' }
         
     | 
| 
       8 
8 
     | 
    
         
             
            end
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Dragonfly Audio
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            [](https://travis-ci.org/tomasc/dragonfly_audio) [](http://badge.fury.io/rb/dragonfly_audio) [](https://coveralls.io/r/tomasc/mongoid_recurring)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            Wraps common audio-related tasks into [Dragonfly](http://markevans.github.io/dragonfly) analysers and processors.
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            ## Installation
         
     | 
| 
         @@ -18,6 +20,8 @@ Or install it yourself as: 
     | 
|
| 
       18 
20 
     | 
    
         | 
| 
       19 
21 
     | 
    
         
             
            ## Dependencies
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
            This gem uses [taglib-ruby](https://github.com/robinst/taglib-ruby) to read and write meta data and properties of audio files.
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       21 
25 
     | 
    
         
             
            ## Usage
         
     | 
| 
       22 
26 
     | 
    
         | 
| 
       23 
27 
     | 
    
         
             
            Add the `:audio` plugin to your Dragonfly config block:
         
     | 
| 
         @@ -30,8 +34,48 @@ end 
     | 
|
| 
       30 
34 
     | 
    
         | 
| 
       31 
35 
     | 
    
         
             
            ## Analysers
         
     | 
| 
       32 
36 
     | 
    
         | 
| 
      
 37 
     | 
    
         
            +
            ### audio_properties
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            Reads properties and tags of an audio file:
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 42 
     | 
    
         
            +
            audio.audio_properties
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            # => {
         
     | 
| 
      
 45 
     | 
    
         
            +
            #   title: 'The Ship Was Sailing',
         
     | 
| 
      
 46 
     | 
    
         
            +
            #   artist: 'Vito Ricci',
         
     | 
| 
      
 47 
     | 
    
         
            +
            #   album: 'Music From Memory',
         
     | 
| 
      
 48 
     | 
    
         
            +
            #   year: '1985',
         
     | 
| 
      
 49 
     | 
    
         
            +
            #   track: 7
         
     | 
| 
      
 50 
     | 
    
         
            +
            #   genre: 'Ambient',
         
     | 
| 
      
 51 
     | 
    
         
            +
            #   comment: 'This Music was originally composed for "The Memory Theatre of Gulio Camillo" by Matthew Maguire. A Creation production premiered at La Mama Spring 1985 thanks to Bonnie for not laughing to Justin for laughing to Jon Gordron for electronic bondage produced by Jonathan Mann for Pangea Productions recorded 8/85 at Chiens Interdits Studio in a big cover production by Ann Rower cover design by Paul Leone * all compositions by Vito Ricci * play it loud',
         
     | 
| 
      
 52 
     | 
    
         
            +
            #   length: 345,
         
     | 
| 
      
 53 
     | 
    
         
            +
            #   bitrate: 192,
         
     | 
| 
      
 54 
     | 
    
         
            +
            #   channels: 2,
         
     | 
| 
      
 55 
     | 
    
         
            +
            #   sample_rate: 44_100
         
     | 
| 
      
 56 
     | 
    
         
            +
            # }
         
     | 
| 
      
 57 
     | 
    
         
            +
            ```
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
       33 
59 
     | 
    
         
             
            ## Processors
         
     | 
| 
       34 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
            ### tag
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            Sets the file's meta information:
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 66 
     | 
    
         
            +
            audio.tag(artist: 'Ariel Kalma', album: 'Le Temps Des Moissons', track: 'Bakafrika')
         
     | 
| 
      
 67 
     | 
    
         
            +
            ```
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            Permissible properties:
         
     | 
| 
      
 70 
     | 
    
         
            +
            * album
         
     | 
| 
      
 71 
     | 
    
         
            +
            * artist
         
     | 
| 
      
 72 
     | 
    
         
            +
            * comment
         
     | 
| 
      
 73 
     | 
    
         
            +
            * genre
         
     | 
| 
      
 74 
     | 
    
         
            +
            * tag
         
     | 
| 
      
 75 
     | 
    
         
            +
            * title
         
     | 
| 
      
 76 
     | 
    
         
            +
            * track
         
     | 
| 
      
 77 
     | 
    
         
            +
            * year
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
       35 
79 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       36 
80 
     | 
    
         | 
| 
       37 
81 
     | 
    
         
             
            1. Fork it ( https://github.com/tomasc/dragonfly_audio/fork )
         
     | 
    
        data/dragonfly_audio.gemspec
    CHANGED
    
    | 
         @@ -4,26 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require 'dragonfly_audio/version'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |spec|
         
     | 
| 
       7 
     | 
    
         
            -
              spec.name          =  
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name          = 'dragonfly_audio'
         
     | 
| 
       8 
8 
     | 
    
         
             
              spec.version       = DragonflyAudio::VERSION
         
     | 
| 
       9 
     | 
    
         
            -
              spec.authors       = [ 
     | 
| 
       10 
     | 
    
         
            -
              spec.email         = [ 
     | 
| 
       11 
     | 
    
         
            -
              spec.summary       =  
     | 
| 
       12 
     | 
    
         
            -
              spec.homepage      =  
     | 
| 
       13 
     | 
    
         
            -
              spec.license       =  
     | 
| 
      
 9 
     | 
    
         
            +
              spec.authors       = ['Tomas Celizna', 'Asger Behncke Jacobsen']
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.email         = ['tomas.celizna@gmail.com', 'asger@8kilo.com']
         
     | 
| 
      
 11 
     | 
    
         
            +
              spec.summary       = 'Wraps common audio-related tasks into Dragonfly analysers and processors.'
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.homepage      = 'https://github.com/tomasc/dragonfly_audio'
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.license       = 'MIT'
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              spec.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
       16 
16 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
       17 
17 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       18 
     | 
    
         
            -
              spec.require_paths = [ 
     | 
| 
      
 18 
     | 
    
         
            +
              spec.require_paths = ['lib']
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
              spec.add_dependency  
     | 
| 
       21 
     | 
    
         
            -
              spec.add_dependency  
     | 
| 
      
 20 
     | 
    
         
            +
              spec.add_dependency 'dragonfly', '~> 1.0'
         
     | 
| 
      
 21 
     | 
    
         
            +
              spec.add_dependency 'taglib-ruby'
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
              spec.add_development_dependency  
     | 
| 
       24 
     | 
    
         
            -
              spec.add_development_dependency  
     | 
| 
       25 
     | 
    
         
            -
              spec.add_development_dependency  
     | 
| 
       26 
     | 
    
         
            -
              spec.add_development_dependency  
     | 
| 
       27 
     | 
    
         
            -
              spec.add_development_dependency  
     | 
| 
       28 
     | 
    
         
            -
              spec.add_development_dependency "minitest"
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_development_dependency 'bundler', '~> 1.6'
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_development_dependency 'rake'
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_development_dependency 'guard'
         
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_development_dependency 'guard-minitest'
         
     | 
| 
      
 27 
     | 
    
         
            +
              spec.add_development_dependency 'minitest'
         
     | 
| 
       29 
28 
     | 
    
         
             
            end
         
     | 
| 
         @@ -5,42 +5,31 @@ require 'taglib' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            module DragonflyAudio
         
     | 
| 
       6 
6 
     | 
    
         
             
              module Analysers
         
     | 
| 
       7 
7 
     | 
    
         
             
                class AudioProperties
         
     | 
| 
      
 8 
     | 
    
         
            +
                  TAGS = %i(title artist album year track genre comment).freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
                  AUDIO_PROPS = %i(length bitrate channels sample_rate).freeze
         
     | 
| 
       8 
10 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                  def call 
     | 
| 
      
 11 
     | 
    
         
            +
                  def call(content)
         
     | 
| 
       10 
12 
     | 
    
         
             
                    taglib_fileref(content)
         
     | 
| 
       11 
13 
     | 
    
         
             
                  end
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
                  private # =============================================================
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                  def taglib_fileref 
     | 
| 
      
 17 
     | 
    
         
            +
                  def taglib_fileref(content)
         
     | 
| 
       16 
18 
     | 
    
         
             
                    res = {}
         
     | 
| 
       17 
     | 
    
         
            -
                    TagLib::FileRef.open( 
     | 
| 
      
 19 
     | 
    
         
            +
                    TagLib::FileRef.open(content.path) do |fileref|
         
     | 
| 
       18 
20 
     | 
    
         
             
                      unless fileref.null?
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                         
     | 
| 
       23 
     | 
    
         
            -
                        res.merge! artist: tag.artist
         
     | 
| 
       24 
     | 
    
         
            -
                        res.merge! album: tag.album
         
     | 
| 
       25 
     | 
    
         
            -
                        res.merge! year: tag.year
         
     | 
| 
       26 
     | 
    
         
            -
                        res.merge! tag: tag.year
         
     | 
| 
       27 
     | 
    
         
            -
                        res.merge! track: tag.track
         
     | 
| 
       28 
     | 
    
         
            -
                        res.merge! genre: tag.genre
         
     | 
| 
       29 
     | 
    
         
            -
                        res.merge! comment: tag.comment
         
     | 
| 
      
 22 
     | 
    
         
            +
                        TAGS.each do |tag_name|
         
     | 
| 
      
 23 
     | 
    
         
            +
                          res[tag_name] = fileref.tag.send(tag_name)
         
     | 
| 
      
 24 
     | 
    
         
            +
                        end
         
     | 
| 
       30 
25 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
                         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                         
     | 
| 
       34 
     | 
    
         
            -
                        res.merge! channels: prop.channels
         
     | 
| 
       35 
     | 
    
         
            -
                        res.merge! sample_rate: prop.sample_rate
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                        # prop.merge! %w(title artist album year track genre comment).inject({}) { |res, att| { att => fileref.tag.send(att) } }
         
     | 
| 
       38 
     | 
    
         
            -
                        # prop.merge! length: fileref.audio_properties.length
         
     | 
| 
      
 26 
     | 
    
         
            +
                        AUDIO_PROPS.each do |prop_name|
         
     | 
| 
      
 27 
     | 
    
         
            +
                          res[prop_name] = fileref.audio_properties.send(prop_name)
         
     | 
| 
      
 28 
     | 
    
         
            +
                        end
         
     | 
| 
       39 
29 
     | 
    
         
             
                      end
         
     | 
| 
       40 
30 
     | 
    
         
             
                    end
         
     | 
| 
       41 
31 
     | 
    
         
             
                    res
         
     | 
| 
       42 
32 
     | 
    
         
             
                  end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
33 
     | 
    
         
             
                end
         
     | 
| 
       45 
34 
     | 
    
         
             
              end
         
     | 
| 
       46 
35 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,56 +1,22 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'dragonfly_audio/analysers/audio_properties'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'dragonfly_audio/processors/tag'
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            module DragonflyAudio
         
     | 
| 
       4 
5 
     | 
    
         
             
              class Plugin
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                def call app, opts={}
         
     | 
| 
      
 6 
     | 
    
         
            +
                def call(app, _opts = {})
         
     | 
| 
       7 
7 
     | 
    
         
             
                  app.add_analyser :audio_properties, DragonflyAudio::Analysers::AudioProperties.new
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                     
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                  app.add_analyser :album do |content|
         
     | 
| 
       18 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:album]
         
     | 
| 
       19 
     | 
    
         
            -
                  end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                  app.add_analyser :year do |content|
         
     | 
| 
       22 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:year]
         
     | 
| 
       23 
     | 
    
         
            -
                  end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                  app.add_analyser :track do |content|
         
     | 
| 
       26 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:track]
         
     | 
| 
       27 
     | 
    
         
            -
                  end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                  app.add_analyser :genre do |content|
         
     | 
| 
       30 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:genre]
         
     | 
| 
      
 9 
     | 
    
         
            +
                  [
         
     | 
| 
      
 10 
     | 
    
         
            +
                    DragonflyAudio::Analysers::AudioProperties::TAGS,
         
     | 
| 
      
 11 
     | 
    
         
            +
                    DragonflyAudio::Analysers::AudioProperties::AUDIO_PROPS
         
     | 
| 
      
 12 
     | 
    
         
            +
                  ].flatten.each do |analyser|
         
     | 
| 
      
 13 
     | 
    
         
            +
                    app.add_analyser analyser do |content|
         
     | 
| 
      
 14 
     | 
    
         
            +
                      content.analyse(:audio_properties)[analyser]
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
       31 
16 
     | 
    
         
             
                  end
         
     | 
| 
       32 
17 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                  app. 
     | 
| 
       34 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:comment]
         
     | 
| 
       35 
     | 
    
         
            -
                  end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                  app.add_analyser :length do |content|
         
     | 
| 
       38 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:length]
         
     | 
| 
       39 
     | 
    
         
            -
                  end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                  app.add_analyser :bitrate do |content|
         
     | 
| 
       42 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:bitrate]
         
     | 
| 
       43 
     | 
    
         
            -
                  end
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  app.add_analyser :channels do |content|
         
     | 
| 
       46 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:channels]
         
     | 
| 
       47 
     | 
    
         
            -
                  end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                  app.add_analyser :sample_rate do |content|
         
     | 
| 
       50 
     | 
    
         
            -
                    content.analyse(:audio_properties)[:sample_rate]
         
     | 
| 
       51 
     | 
    
         
            -
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  app.add_processor :tag, DragonflyAudio::Processors::Tag.new
         
     | 
| 
       52 
19 
     | 
    
         
             
                end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
20 
     | 
    
         
             
              end
         
     | 
| 
       55 
21 
     | 
    
         
             
            end
         
     | 
| 
       56 
22 
     | 
    
         | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'taglib'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            # IMPORTANT: See http://robinst.github.io/taglib-ruby/
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module DragonflyAudio
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Processors
         
     | 
| 
      
 7 
     | 
    
         
            +
                class Tag
         
     | 
| 
      
 8 
     | 
    
         
            +
                  PERMISSIBLE_PROPERTIES = DragonflyAudio::Analysers::AudioProperties::TAGS
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def call(content, properties)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    clean_properties = properties.delete_if { |key, _| !PERMISSIBLE_PROPERTIES.include?(key) }
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    tempfile = Dragonfly::TempObject.new(content.tempfile)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    TagLib::FileRef.open(tempfile.path) do |file|
         
     | 
| 
      
 16 
     | 
    
         
            +
                      unless file.null?
         
     | 
| 
      
 17 
     | 
    
         
            +
                        tag = file.tag
         
     | 
| 
      
 18 
     | 
    
         
            +
                        clean_properties.each do |key, value|
         
     | 
| 
      
 19 
     | 
    
         
            +
                          tag.send("#{key}=", value)
         
     | 
| 
      
 20 
     | 
    
         
            +
                        end
         
     | 
| 
      
 21 
     | 
    
         
            +
                        file.save
         
     | 
| 
      
 22 
     | 
    
         
            +
                      end
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    content.update(tempfile)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe DragonflyAudio::Analysers::AudioProperties do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:app) { test_app.configure_with(:audio) }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:audio) { app.fetch_file(SAMPLES_DIR.join('BroadmoorSirenTest.mp3')) }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              it 'analyses "album" property' do
         
     | 
| 
      
 8 
     | 
    
         
            +
                audio.audio_properties[:album].must_equal 'Album XYZ'
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              it 'analyses "artist" property' do
         
     | 
| 
      
 12 
     | 
    
         
            +
                audio.audio_properties[:artist].must_equal 'Artist'
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              it 'analyses "bitrate" property' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                audio.audio_properties[:bitrate].must_equal 192
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              it 'analyses "channels" property' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                audio.audio_properties[:channels].must_equal 2
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              it 'analyses "comment" property' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                audio.audio_properties[:comment].must_equal '   Comment    '
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              it 'analyses "genre" property' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                audio.audio_properties[:genre].must_equal 'Dance'
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              it 'analyses "length" property' do
         
     | 
| 
      
 32 
     | 
    
         
            +
                audio.audio_properties[:length].must_equal 156
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              it 'analyses "sample_rate" property' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                audio.audio_properties[:sample_rate].must_equal 44_100
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              it 'analyses "title" property' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                audio.audio_properties[:title].must_equal 'SongTitle'
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              it 'analyses "track" property' do
         
     | 
| 
      
 44 
     | 
    
         
            +
                audio.audio_properties[:track].must_equal 0
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              it 'analyses "year" property' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                audio.audio_properties[:year].must_equal 0
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -2,17 +2,28 @@ require 'test_helper' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module DragonflyAudio
         
     | 
| 
       4 
4 
     | 
    
         
             
              describe Plugin do
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
5 
     | 
    
         
             
                let(:app) { test_app.configure_with(:audio) }
         
     | 
| 
       7 
6 
     | 
    
         
             
                let(:audio) { app.fetch_file(SAMPLES_DIR.join('BroadmoorSirenTest.mp3')) }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                # ---------------------------------------------------------------------
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
8 
     | 
    
         
             
                describe 'analysers' do
         
     | 
| 
       12 
9 
     | 
    
         
             
                  it 'adds #audio_properties' do
         
     | 
| 
       13 
10 
     | 
    
         
             
                    audio.must_respond_to :audio_properties
         
     | 
| 
       14 
11 
     | 
    
         
             
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  [
         
     | 
| 
      
 14 
     | 
    
         
            +
                    DragonflyAudio::Analysers::AudioProperties::TAGS,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    DragonflyAudio::Analysers::AudioProperties::AUDIO_PROPS
         
     | 
| 
      
 16 
     | 
    
         
            +
                  ].flatten.each do |analyser|
         
     | 
| 
      
 17 
     | 
    
         
            +
                    it "adds ##{analyser}" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                      audio.must_respond_to analyser
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
       15 
21 
     | 
    
         
             
                end
         
     | 
| 
       16 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
                describe 'processors' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  it 'adds #tag' do
         
     | 
| 
      
 25 
     | 
    
         
            +
                    audio.must_respond_to :tag
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
       17 
28 
     | 
    
         
             
              end
         
     | 
| 
       18 
29 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe DragonflyAudio::Processors::Tag do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:app) { test_app.configure_with(:audio) }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:processor) { DragonflyAudio::Processors::Tag.new }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:analyser) { DragonflyAudio::Analysers::AudioProperties.new }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:audio) { Dragonfly::Content.new(app, SAMPLES_DIR.join('BroadmoorSirenTest.mp3')) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              let(:artist) { 'Elvis Presley' }
         
     | 
| 
      
 10 
     | 
    
         
            +
              let(:title) { 'Hound Dawg' }
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              before { processor.call(audio, artist: artist, title: title) }
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe 'properties' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                it 'sets the artist tag property' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  analyser.call(audio)[:artist].must_equal artist
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                it 'sets the title tag property' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  analyser.call(audio)[:title].must_equal title
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
    
        data/test/test_helper.rb
    CHANGED
    
    | 
         @@ -7,15 +7,11 @@ require 'minitest/spec' 
     | 
|
| 
       7 
7 
     | 
    
         
             
            require 'dragonfly'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'dragonfly_audio'
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
            # ---------------------------------------------------------------------
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
10 
     | 
    
         
             
            SAMPLES_DIR = Pathname.new(File.expand_path('../../samples', __FILE__))
         
     | 
| 
       13 
11 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            def test_app name=nil
         
     | 
| 
      
 12 
     | 
    
         
            +
            def test_app(name = nil)
         
     | 
| 
       17 
13 
     | 
    
         
             
              app = Dragonfly::App.instance(name)
         
     | 
| 
       18 
14 
     | 
    
         
             
              app.datastore = Dragonfly::MemoryDataStore.new
         
     | 
| 
       19 
     | 
    
         
            -
              app.secret =  
     | 
| 
      
 15 
     | 
    
         
            +
              app.secret = 'test secret'
         
     | 
| 
       20 
16 
     | 
    
         
             
              app
         
     | 
| 
       21 
17 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dragonfly_audio
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tomas Celizna
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date:  
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-09-14 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: dragonfly
         
     | 
| 
         @@ -67,20 +67,6 @@ dependencies: 
     | 
|
| 
       67 
67 
     | 
    
         
             
                - - ">="
         
     | 
| 
       68 
68 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       69 
69 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       70 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       71 
     | 
    
         
            -
              name: nokogiri
         
     | 
| 
       72 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       73 
     | 
    
         
            -
                requirements:
         
     | 
| 
       74 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       75 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       76 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       77 
     | 
    
         
            -
              type: :development
         
     | 
| 
       78 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       79 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       80 
     | 
    
         
            -
                requirements:
         
     | 
| 
       81 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       82 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       83 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       84 
70 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       85 
71 
     | 
    
         
             
              name: guard
         
     | 
| 
       86 
72 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -132,6 +118,7 @@ extensions: [] 
     | 
|
| 
       132 
118 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       133 
119 
     | 
    
         
             
            files:
         
     | 
| 
       134 
120 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
      
 121 
     | 
    
         
            +
            - ".travis.yml"
         
     | 
| 
       135 
122 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       136 
123 
     | 
    
         
             
            - Gemfile.lock
         
     | 
| 
       137 
124 
     | 
    
         
             
            - Guardfile
         
     | 
| 
         @@ -142,9 +129,12 @@ files: 
     | 
|
| 
       142 
129 
     | 
    
         
             
            - lib/dragonfly_audio.rb
         
     | 
| 
       143 
130 
     | 
    
         
             
            - lib/dragonfly_audio/analysers/audio_properties.rb
         
     | 
| 
       144 
131 
     | 
    
         
             
            - lib/dragonfly_audio/plugin.rb
         
     | 
| 
      
 132 
     | 
    
         
            +
            - lib/dragonfly_audio/processors/tag.rb
         
     | 
| 
       145 
133 
     | 
    
         
             
            - lib/dragonfly_audio/version.rb
         
     | 
| 
       146 
134 
     | 
    
         
             
            - samples/BroadmoorSirenTest.mp3
         
     | 
| 
      
 135 
     | 
    
         
            +
            - test/dragonfly_audio/analysers/audio_properties_test.rb
         
     | 
| 
       147 
136 
     | 
    
         
             
            - test/dragonfly_audio/plugin_test.rb
         
     | 
| 
      
 137 
     | 
    
         
            +
            - test/dragonfly_audio/processors/tag_test.rb
         
     | 
| 
       148 
138 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       149 
139 
     | 
    
         
             
            homepage: https://github.com/tomasc/dragonfly_audio
         
     | 
| 
       150 
140 
     | 
    
         
             
            licenses:
         
     | 
| 
         @@ -166,10 +156,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       166 
156 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       167 
157 
     | 
    
         
             
            requirements: []
         
     | 
| 
       168 
158 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       169 
     | 
    
         
            -
            rubygems_version: 2.4. 
     | 
| 
      
 159 
     | 
    
         
            +
            rubygems_version: 2.4.5.1
         
     | 
| 
       170 
160 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       171 
161 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       172 
162 
     | 
    
         
             
            summary: Wraps common audio-related tasks into Dragonfly analysers and processors.
         
     | 
| 
       173 
163 
     | 
    
         
             
            test_files:
         
     | 
| 
      
 164 
     | 
    
         
            +
            - test/dragonfly_audio/analysers/audio_properties_test.rb
         
     | 
| 
       174 
165 
     | 
    
         
             
            - test/dragonfly_audio/plugin_test.rb
         
     | 
| 
      
 166 
     | 
    
         
            +
            - test/dragonfly_audio/processors/tag_test.rb
         
     | 
| 
       175 
167 
     | 
    
         
             
            - test/test_helper.rb
         
     |