id3tag 0.5.1 → 0.5.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/Gemfile +0 -4
- data/Gemfile.lock +0 -8
- data/VERSION +1 -1
- data/id3tag.gemspec +2 -5
- data/lib/id3tag/frames/v2/unique_file_id_frame.rb +1 -1
- data/lib/id3tag/string_util.rb +19 -0
- data/spec/lib/id3tag/string_util_spec.rb +17 -0
- data/tags +1 -0
- metadata +1 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92be9c2e14829993e4b5605e5e223a153ec95553
|
4
|
+
data.tar.gz: bc8c97ed113fe62aa18de8731c65c518527790e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dea74a6d210076823b9705db4a5caadaaef41e78e375918f167ea29a5d6e428fcacb48736450110f022e46869255b1dcc20a97b17ec91dba814876e0a57cebc3
|
7
|
+
data.tar.gz: dd001f998fa99acaa2edd9088d9e36c5967625b4bbafeb99201d12edafe0cf1712577aa6ff1b1f33edcb209ca190322e84d54df511a0e7afe24d86d7c0756951
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -3,19 +3,12 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
addressable (2.3.5)
|
5
5
|
builder (3.2.2)
|
6
|
-
columnize (0.3.6)
|
7
6
|
coveralls (0.7.0)
|
8
7
|
multi_json (~> 1.3)
|
9
8
|
rest-client
|
10
9
|
simplecov (>= 0.7)
|
11
10
|
term-ansicolor
|
12
11
|
thor
|
13
|
-
debugger (1.6.2)
|
14
|
-
columnize (>= 0.3.1)
|
15
|
-
debugger-linecache (~> 1.2.0)
|
16
|
-
debugger-ruby_core_source (~> 1.2.3)
|
17
|
-
debugger-linecache (1.2.0)
|
18
|
-
debugger-ruby_core_source (1.2.3)
|
19
12
|
diff-lcs (1.2.4)
|
20
13
|
faraday (0.8.8)
|
21
14
|
multipart-post (~> 1.2.0)
|
@@ -85,7 +78,6 @@ PLATFORMS
|
|
85
78
|
|
86
79
|
DEPENDENCIES
|
87
80
|
coveralls
|
88
|
-
debugger
|
89
81
|
jeweler (~> 1.8.4)
|
90
82
|
rake
|
91
83
|
rdoc (~> 3.12)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/id3tag.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: id3tag 0.5.
|
5
|
+
# stub: id3tag 0.5.2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "id3tag"
|
9
|
-
s.version = "0.5.
|
9
|
+
s.version = "0.5.2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.authors = ["Krists Ozols"]
|
@@ -112,7 +112,6 @@ Gem::Specification.new do |s|
|
|
112
112
|
s.specification_version = 4
|
113
113
|
|
114
114
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
115
|
-
s.add_development_dependency(%q<debugger>, [">= 0"])
|
116
115
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
117
116
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
118
117
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -120,7 +119,6 @@ Gem::Specification.new do |s|
|
|
120
119
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
121
120
|
s.add_development_dependency(%q<coveralls>, [">= 0"])
|
122
121
|
else
|
123
|
-
s.add_dependency(%q<debugger>, [">= 0"])
|
124
122
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
125
123
|
s.add_dependency(%q<rake>, [">= 0"])
|
126
124
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -129,7 +127,6 @@ Gem::Specification.new do |s|
|
|
129
127
|
s.add_dependency(%q<coveralls>, [">= 0"])
|
130
128
|
end
|
131
129
|
else
|
132
|
-
s.add_dependency(%q<debugger>, [">= 0"])
|
133
130
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
134
131
|
s.add_dependency(%q<rake>, [">= 0"])
|
135
132
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
data/lib/id3tag/string_util.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module ID3Tag
|
2
2
|
module StringUtil
|
3
3
|
NULL_BYTE = "\x00"
|
4
|
+
UTF_8_DIRECTIVE = "U*"
|
4
5
|
|
5
6
|
def self.blank?(string)
|
6
7
|
string !~ /[^[:space:]]/
|
@@ -21,5 +22,23 @@ module ID3Tag
|
|
21
22
|
def self.cut_at_null_byte(string)
|
22
23
|
string.split(NULL_BYTE, 2).first
|
23
24
|
end
|
25
|
+
|
26
|
+
def self.split_by_null_byte(string)
|
27
|
+
null_byte_found = false
|
28
|
+
has_skipped = false
|
29
|
+
before, after = [], []
|
30
|
+
string.each_byte do |byte|
|
31
|
+
if byte == 0
|
32
|
+
null_byte_found = true
|
33
|
+
(has_skipped = true) and next unless has_skipped
|
34
|
+
end
|
35
|
+
if null_byte_found
|
36
|
+
after << byte
|
37
|
+
else
|
38
|
+
before << byte
|
39
|
+
end
|
40
|
+
end
|
41
|
+
[before.pack(UTF_8_DIRECTIVE), after.pack(UTF_8_DIRECTIVE)]
|
42
|
+
end
|
24
43
|
end
|
25
44
|
end
|
@@ -46,4 +46,21 @@ describe ID3Tag::StringUtil do
|
|
46
46
|
it { should eq("\xEE\xEE") }
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
describe "split_by_null_byte" do
|
51
|
+
let(:input) { }
|
52
|
+
subject { described_class.split_by_null_byte(input) }
|
53
|
+
context "when content have only 1 null byte" do
|
54
|
+
let(:input) { "a\u0000b" }
|
55
|
+
it { should eq(["a", "b"]) }
|
56
|
+
end
|
57
|
+
context "when content have multiple null bytes" do
|
58
|
+
let(:input) { "a\u0000\u0000b" }
|
59
|
+
it { should eq(["a", "\u0000b"]) }
|
60
|
+
end
|
61
|
+
context "when content have multiple null bytes" do
|
62
|
+
let(:input) { "abc" }
|
63
|
+
it { should eq(["abc", ""]) }
|
64
|
+
end
|
65
|
+
end
|
49
66
|
end
|
data/tags
CHANGED
@@ -285,6 +285,7 @@ remove lib/id3tag/unsynchronization.rb /^ def remove$/;" f class:ID3Tag.Unsyn
|
|
285
285
|
rewind_input lib/id3tag/id3_v2_frame_parser.rb /^ def rewind_input$/;" f class:ID3Tag.ID3V2FrameParser
|
286
286
|
source_encoding lib/id3tag/frames/v1/text_frame.rb /^ def source_encoding$/;" f class:ID3Tag.Frames.V1.TextFrame
|
287
287
|
source_encoding lib/id3tag/frames/v2/text_frame.rb /^ def source_encoding$/;" f class:ID3Tag.Frames.V2.TextFrame
|
288
|
+
split_by_null_byte lib/id3tag/string_util.rb /^ def self.split_by_null_byte(string)$/;" F class:ID3Tag.StringUtil
|
288
289
|
status_byte_from_flags lib/id3tag/frames/v2/frame_header_flags.rb /^ def status_byte_from_flags$/;" f class:ID3Tag.Frames.V2.FrameFlags
|
289
290
|
tag_size lib/id3tag/id3_v2_extended_header.rb /^ def tag_size$/;" f class:ID3Tag.ID3v2ExtendedHeader
|
290
291
|
tag_size lib/id3tag/id3_v2_tag_header.rb /^ def tag_size$/;" f class:ID3Tag.ID3v2TagHeader
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: id3tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krists Ozols
|
@@ -10,20 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2013-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: debugger
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: jeweler
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|