nu_wav 0.4.2 → 0.4.3

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWUxNmI2ZmJhYThlYTMwNGQ3MzczOTY1NzdhNTNmMTQzMzc5MDhjZA==
5
- data.tar.gz: !binary |-
6
- MzQxZWE3MThhZjNiODBiMDk4N2FhZjVlZGRhMmEzMTU3NjIyMjg4NQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MmNkYTA1YTdjOTgwZmMzODA3ZWQyOTYxZWJhNzAzZTNjOWMzMzRiYmYyN2Mw
10
- Zjg1MzdiODUzZDE5MmQyZmY1YWM4NjRiZTdiNTY1ZDRlMDZiMDA1MmE4OTAw
11
- NDZhODE0OTAyYWVmYjJlMzJkYTkxZjI5MjljYzQ0NDkzNzJiZTk=
12
- data.tar.gz: !binary |-
13
- MzU4YTYxN2YxZDY3NGE2ODdkOTExOTU3YjRlYTQ4NTYwMDNkZmRhNmY4N2Q1
14
- ZDdiY2NkZGExMzlkY2YxYzA2OTU1NzUxZmIxYzAyNWFhMmNiMmQ1ZGY0YjJk
15
- YzBiNzAyYWViNzRiM2VmY2Q5ZTU4MDEwOGViZWIyMTdjYTk2NjU=
2
+ SHA1:
3
+ metadata.gz: 2a98052f77005eea3169e6dcad060615a4c538ce
4
+ data.tar.gz: 3008e293f4a03291e3a13b8666ea15ac14d52e34
5
+ SHA512:
6
+ metadata.gz: 7a376f0947dcefd56e0c1bafaef0021057a5b2c6574831bdb09c8be8b92d3f1e169dd64f1dd680b02648cac111a510164519636b934dd5c4874952e702a3e97a
7
+ data.tar.gz: 48ab57391f54d3ed2b6a4657dd6a60220f8aabaa6ff7112cab6d02cb9e2daccb0c14929b70c9f4fd688622df77b26e9a8b3f5025ea55aaf4e443e97a85c06ceb
data/README.rdoc CHANGED
@@ -1,10 +1,34 @@
1
- = nu_wav
1
+ = NuWav Ruby Gem (nu_wav)
2
+
3
+ [![Build Status](https://travis-ci.org/kookster/nu_wav.png?branch=master)](https://travis-ci.org/kookster/nu_wav)
2
4
 
3
5
  NuWav is a pure Ruby audio WAVE file parser and writer.
4
6
 
5
- It currently has support for basic WAVE files, Broadcast Wave Format (bext and mext chunks), and cart chunk.
7
+ It currently has support for basic WAVE files, Broadcast Wave Format (bext and mext chunks), and the cart chunk.
8
+ It will parse other chunks, but doesn't necessarily provide specific parsing for them.
9
+
10
+ It will look for a class based on the chunk name, so if you want to add 'fact' chunk parsing, you need to define a class like this (n.b. 'fact' chunks are already supported, this is an example from the code):
11
+
12
+ ```
13
+ module NuWav
14
+ class FactChunk < NuWav::Chunk
15
+ attr_accessor :samples_number
16
+
17
+ def parse
18
+ @samples_number = read_dword(0)
19
+ end
6
20
 
7
- Other chunks types in the WAVE are not yet supported.
21
+ def to_s
22
+ "<chunk type:fact samples_number:#{@samples_number} />"
23
+ end
24
+
25
+ def to_binary
26
+ "fact" + write_dword(4) + write_dword(@samples_number)
27
+ end
28
+
29
+ end
30
+ end
31
+ ```
8
32
 
9
33
  == Note on Patches/Pull Requests
10
34
 
data/lib/nu_wav.rb CHANGED
@@ -18,6 +18,8 @@ module NuWav
18
18
 
19
19
  DEBUG = ENV['NU_WAV_DEBUG']
20
20
 
21
+ TMP_FILE_DIR = ENV['NU_WAV_TMP_DIR'] || '/tmp/'
22
+
21
23
  # 1 is standard integer based, 3 is the floating point PCM
22
24
  PCM_INTEGER_COMPRESSION = 1
23
25
  PCM_FLOATING_COMPRESSION = 3
@@ -43,4 +45,12 @@ module NuWav
43
45
  class NotRIFFFormat < StandardError; end
44
46
  class NotWAVEFormat < StandardError; end
45
47
 
48
+ def self.temp_file(base_file_name=nil, keep_open=false, keep_textmode=false)
49
+ FileUtils.mkdir_p(NuWav::TMP_FILE_DIR) unless File.exists?(NuWav::TMP_FILE_DIR)
50
+ Tempfile.new(base_file_name, NuWav::TMP_FILE_DIR).tap do |tmp|
51
+ tmp.binmode unless keep_textmode
52
+ tmp.close unless keep_open
53
+ end
54
+ end
55
+
46
56
  end
data/lib/nu_wav/chunk.rb CHANGED
@@ -275,7 +275,7 @@ module NuWav
275
275
  def self.parse(id, size, file)
276
276
 
277
277
  # tmp_data = File.open('./data_chunk.mp2', 'wb')
278
- tmp_data = Tempfile.open('data_chunk')
278
+ tmp_data = NuWav.temp_file('data_chunk', true)
279
279
  tmp_data.binmode
280
280
 
281
281
  remaining = size
@@ -291,7 +291,7 @@ module NuWav
291
291
  end
292
292
 
293
293
  def self.new_from_file(file)
294
- tmp_data = Tempfile.open('data_chunk')
294
+ tmp_data = NuWav.temp_file('data_chunk', true)
295
295
  tmp_data.binmode
296
296
  FileUtils.cp(file.path, tmp_data.path)
297
297
  tmp_data.rewind
@@ -326,6 +326,5 @@ module NuWav
326
326
  out = "data" + write_dword(d.size) + d
327
327
  out
328
328
  end
329
-
330
329
  end
331
330
  end
@@ -1,3 +1,3 @@
1
1
  module NuWav
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nu_wav
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kuklewicz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2014-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-mp3info
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.6.13
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.6.13
27
27
  - !ruby/object:Gem::Dependency
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
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
54
  version: '0'
55
55
  description: NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast
@@ -86,17 +86,17 @@ require_paths:
86
86
  - lib
87
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ! '>='
89
+ - - '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.0.6
99
+ rubygems_version: 2.1.11
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: NuWav is a pure ruby audio WAV file parser and writer.