mb-discid 0.1.0 → 0.1.1

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.
data/README CHANGED
@@ -9,9 +9,22 @@ to find the release entry for your CD in the MusicBrainz database.
9
9
  Before installing rdiscid make sure you have libdiscid installed. See
10
10
  http://musicbrainz.org/doc/libdiscid for more information on how to do this.
11
11
 
12
- === Install with gem
12
+ === Installation with RubyGems
13
13
  gem install mb-discid
14
14
 
15
+ == Installation on Windows operating systems.
16
+ For Windows a binary gem "mb-discid-0.1.1-mswin32.gem" is available. To install
17
+ it follow the instructions below:
18
+
19
+ 1. Make sure you have at least Ruby 1.8.6 installed.
20
+ 2. Install RubyGems, if you don't already have it.
21
+ 3. Download "libdiscid-0.1.1-win32bin.zip" from
22
+ http://musicbrainz.org/doc/libdiscid.
23
+ 4. Copy the file "discid.dll" from "libdiscid-0.1.1-win32bin.zip" to your Ruby
24
+ bin directory (normally "C:\ruby\bin".
25
+ 5. Run "gem install mb-discid" to install MB-DiscID.
26
+ 6. To test the installation try to run "discid.rb" in the examples directory.
27
+
15
28
  === Installing from source
16
29
  rake install
17
30
 
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # $Id$
1
+ # $Id: Rakefile 69 2007-06-03 14:14:25Z phw $
2
2
  # Copyright (c) 2007, Philipp Wolfer
3
3
  # All rights reserved.
4
4
  # See LICENSE for permissions.
@@ -15,7 +15,7 @@ end
15
15
  # Packaging tasks: -------------------------------------------------------
16
16
 
17
17
  PKG_NAME = 'mb-discid'
18
- PKG_VERSION = '0.1.0'
18
+ PKG_VERSION = '0.1.1'
19
19
  PKG_SUMMARY = 'Ruby bindings for libdiscid.'
20
20
  PKG_AUTHOR = 'Philipp Wolfer'
21
21
  PKG_EMAIL = 'phw@rubyforge.org'
@@ -27,19 +27,27 @@ EOF
27
27
  PKG_FILES = FileList[
28
28
  'Rakefile', 'LICENSE', 'README',
29
29
  'examples/**/*',
30
- 'ext/**/*.{c,rb}'
30
+ 'ext/**/*.{c,rb}',
31
+ 'lib/**/*.rb'
31
32
  ]
32
33
 
33
34
  spec = Gem::Specification.new do |spec|
34
- spec.platform = Gem::Platform::RUBY
35
35
  spec.name = PKG_NAME
36
36
  spec.version = PKG_VERSION
37
37
  spec.summary = PKG_SUMMARY
38
+ if ENV['BINARY_GEM'] == 'win32'
39
+ spec.platform = Gem::Platform::WIN32
40
+ spec.files = PKG_FILES << 'ext/MB_DiscID.so'
41
+ spec.bindir = 'bin'
42
+ spec.required_ruby_version = ">= #{RUBY_VERSION}"
43
+ else
44
+ spec.platform = Gem::Platform::RUBY
45
+ spec.files = PKG_FILES
46
+ spec.extensions << 'ext/extconf.rb'
47
+ end
38
48
  spec.requirements << 'libdiscid (http://musicbrainz.org/doc/libdiscid)'
39
- spec.require_path = 'lib'
49
+ spec.require_paths = ['lib', 'ext']
40
50
  spec.autorequire = spec.name
41
- spec.files = PKG_FILES
42
- spec.extensions << 'ext/extconf.rb'
43
51
  spec.description = PKG_DESCRIPTION
44
52
  spec.author = PKG_AUTHOR
45
53
  spec.email = PKG_EMAIL
data/examples/discid.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'DiscID'
3
+ require 'mb-discid'
4
4
 
5
5
  # Read the device name from the command line or use the default.
6
6
  device = $*[0] ? $*[0] : MusicBrainz::DiscID.default_device
data/ext/extconf.rb CHANGED
@@ -1,9 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
+ # $Id: extconf.rb 69 2007-06-03 14:14:25Z phw $
2
3
 
3
4
  require 'mkmf'
4
5
 
5
- if have_library('discid', 'discid_new')
6
- create_makefile('DiscID')
6
+ if have_library('discid', 'discid_new') or
7
+ have_library('discid.dll', 'discid_new')
8
+ # Remove -MD from compiler flags on Windows.
9
+ $CFLAGS.sub!('-MD', '') if RUBY_PLATFORM.include? 'win32'
10
+ create_makefile('MB_DiscID')
7
11
  else
8
12
  puts 'Required library libdiscid not found.'
9
13
  end
@@ -1,5 +1,5 @@
1
1
  /*---------------------------------------------------------------------------
2
- $Id: discid.c 55 2007-06-01 19:18:12Z phw $
2
+ $Id: mb_discid.c 67 2007-06-03 14:09:23Z phw $
3
3
  Copyright (c) 2007, Philipp Wolfer
4
4
  All rights reserved.
5
5
  See LICENSE for permissions.
@@ -30,11 +30,13 @@ static VALUE mb_discid_id(VALUE self)
30
30
  {
31
31
  if (rb_iv_get(self, "@read") == Qfalse)
32
32
  return Qnil;
33
-
34
- DiscId *disc;
35
- Data_Get_Struct(self, DiscId, disc);
36
-
37
- return rb_str_new2(discid_get_id(disc));
33
+ else
34
+ {
35
+ DiscId *disc;
36
+ Data_Get_Struct(self, DiscId, disc);
37
+
38
+ return rb_str_new2(discid_get_id(disc));
39
+ }
38
40
  }
39
41
 
40
42
  /**
@@ -46,11 +48,13 @@ static VALUE mb_discid_submission_url(VALUE self)
46
48
  {
47
49
  if (rb_iv_get(self, "@read") == Qfalse)
48
50
  return Qnil;
49
-
50
- DiscId *disc;
51
- Data_Get_Struct(self, DiscId, disc);
52
-
53
- return rb_str_new2(discid_get_submission_url(disc));
51
+ else
52
+ {
53
+ DiscId *disc;
54
+ Data_Get_Struct(self, DiscId, disc);
55
+
56
+ return rb_str_new2(discid_get_submission_url(disc));
57
+ }
54
58
  }
55
59
 
56
60
  /**
@@ -62,11 +66,13 @@ static VALUE mb_discid_freedb_id(VALUE self)
62
66
  {
63
67
  if (rb_iv_get(self, "@read") == Qfalse)
64
68
  return Qnil;
65
-
66
- DiscId *disc;
67
- Data_Get_Struct(self, DiscId, disc);
68
-
69
- return rb_str_new2(discid_get_freedb_id(disc));
69
+ else
70
+ {
71
+ DiscId *disc;
72
+ Data_Get_Struct(self, DiscId, disc);
73
+
74
+ return rb_str_new2(discid_get_freedb_id(disc));
75
+ }
70
76
  }
71
77
 
72
78
  /**
@@ -78,11 +84,13 @@ static VALUE mb_discid_first_track_num(VALUE self)
78
84
  {
79
85
  if (rb_iv_get(self, "@read") == Qfalse)
80
86
  return Qnil;
81
-
82
- DiscId *disc;
83
- Data_Get_Struct(self, DiscId, disc);
84
-
85
- return INT2FIX(discid_get_first_track_num(disc));
87
+ else
88
+ {
89
+ DiscId *disc;
90
+ Data_Get_Struct(self, DiscId, disc);
91
+
92
+ return INT2FIX(discid_get_first_track_num(disc));
93
+ }
86
94
  }
87
95
 
88
96
  /**
@@ -94,11 +102,13 @@ static VALUE mb_discid_last_track_num(VALUE self)
94
102
  {
95
103
  if (rb_iv_get(self, "@read") == Qfalse)
96
104
  return Qnil;
97
-
98
- DiscId *disc;
99
- Data_Get_Struct(self, DiscId, disc);
100
-
101
- return INT2FIX(discid_get_last_track_num(disc));
105
+ else
106
+ {
107
+ DiscId *disc;
108
+ Data_Get_Struct(self, DiscId, disc);
109
+
110
+ return INT2FIX(discid_get_last_track_num(disc));
111
+ }
102
112
  }
103
113
 
104
114
  /**
@@ -110,11 +120,13 @@ static VALUE mb_discid_sectors(VALUE self)
110
120
  {
111
121
  if (rb_iv_get(self, "@read") == Qfalse)
112
122
  return Qnil;
113
-
114
- DiscId *disc;
115
- Data_Get_Struct(self, DiscId, disc);
116
-
117
- return INT2FIX(discid_get_sectors(disc));
123
+ else
124
+ {
125
+ DiscId *disc;
126
+ Data_Get_Struct(self, DiscId, disc);
127
+
128
+ return INT2FIX(discid_get_sectors(disc));
129
+ }
118
130
  }
119
131
 
120
132
  /**
@@ -130,31 +142,37 @@ static VALUE mb_discid_tracks(VALUE self)
130
142
  {
131
143
  if (rb_iv_get(self, "@read") == Qfalse)
132
144
  return Qnil;
133
-
134
- DiscId *disc;
135
- Data_Get_Struct(self, DiscId, disc);
136
-
137
- VALUE result = rb_ary_new(); // Array of all [offset, length] tuples
138
- VALUE tuple; // Array to store one [offset, length] tuple.
139
- int track = discid_get_first_track_num(disc); // Track number
140
- while (track <= discid_get_last_track_num(disc))
145
+ else
141
146
  {
142
- tuple = rb_ary_new3(2,
143
- INT2FIX(discid_get_track_offset(disc, track)),
144
- INT2FIX(discid_get_track_length(disc, track)) );
147
+ DiscId *disc;
148
+ Data_Get_Struct(self, DiscId, disc);
145
149
 
146
- if (rb_block_given_p())
147
- rb_yield(tuple);
148
- else
149
- rb_ary_push(result, tuple);
150
+ { // Stupid MS compiler.
151
+
152
+ VALUE result = rb_ary_new(); // Array of all [offset, length] tuples
153
+ VALUE tuple; // Array to store one [offset, length] tuple.
154
+ int track = discid_get_first_track_num(disc); // Track number
155
+ while (track <= discid_get_last_track_num(disc))
156
+ {
157
+ tuple = rb_ary_new3(2,
158
+ INT2FIX(discid_get_track_offset(disc, track)),
159
+ INT2FIX(discid_get_track_length(disc, track)) );
150
160
 
151
- track++;
161
+ if (rb_block_given_p())
162
+ rb_yield(tuple);
163
+ else
164
+ rb_ary_push(result, tuple);
165
+
166
+ track++;
167
+ }
168
+
169
+ if (rb_block_given_p())
170
+ return Qnil;
171
+ else
172
+ return result;
173
+
174
+ } // Stupid MS compiler.
152
175
  }
153
-
154
- if (rb_block_given_p())
155
- return Qnil;
156
- else
157
- return result;
158
176
  }
159
177
 
160
178
  /**
@@ -167,6 +185,8 @@ static VALUE mb_discid_read(int argc, VALUE *argv, VALUE self)
167
185
  DiscId *disc;
168
186
  Data_Get_Struct(self, DiscId, disc);
169
187
 
188
+ { // Stupid MS compiler.
189
+
170
190
  VALUE device = Qnil; // The device string as a Ruby string.
171
191
  char* cdevice; // The device string as a C string.
172
192
 
@@ -190,6 +210,8 @@ static VALUE mb_discid_read(int argc, VALUE *argv, VALUE self)
190
210
  rb_iv_set(self, "@read", Qtrue);
191
211
 
192
212
  return Qnil;
213
+
214
+ } // Stupid MS compiler.
193
215
  }
194
216
 
195
217
  /**
@@ -227,7 +249,7 @@ VALUE mb_discid_default_device(VALUE class)
227
249
  /**
228
250
  * Initialize the DiscID class and make it available in Ruby.
229
251
  */
230
- void Init_DiscID() {
252
+ void Init_MB_DiscID() {
231
253
  mMusicBrainz = rb_define_module("MusicBrainz");
232
254
  cDiscID = rb_define_class_under(mMusicBrainz, "DiscID", rb_cObject);
233
255
  rb_define_singleton_method(cDiscID, "new", mb_discid_new, -1);
data/lib/mb-discid.rb ADDED
@@ -0,0 +1,12 @@
1
+ # $Id: mb-discid.rb 67 2007-06-03 14:09:23Z phw $
2
+ # Copyright (c) 2007, Philipp Wolfer
3
+ # All rights reserved.
4
+ # See LICENSE for permissions.
5
+
6
+ # Just a helper file to allow loading the MB-DiscID library with
7
+ # <tt>require 'mb-discid'</tt>, which is the only recommended way
8
+ # to load the library.
9
+ # This file may even provide extensions to the library in the future
10
+ # to avoid to have to write everything in C.
11
+
12
+ require 'MB_DiscID.so'
metadata CHANGED
@@ -3,11 +3,12 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: mb-discid
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2007-06-02 00:00:00 +02:00
6
+ version: 0.1.1
7
+ date: 2007-06-03 00:00:00 +02:00
8
8
  summary: Ruby bindings for libdiscid.
9
9
  require_paths:
10
10
  - lib
11
+ - ext
11
12
  email: phw@rubyforge.org
12
13
  homepage: http://rbrainz.rubyforge.org
13
14
  rubyforge_project: rbrainz
@@ -33,8 +34,9 @@ files:
33
34
  - LICENSE
34
35
  - README
35
36
  - examples/discid.rb
36
- - ext/discid.c
37
+ - ext/mb_discid.c
37
38
  - ext/extconf.rb
39
+ - lib/mb-discid.rb
38
40
  test_files: []
39
41
 
40
42
  rdoc_options: []