splattael-shoutcast_api 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -1,6 +1,5 @@
1
1
  Rakefile
2
2
  bin/shoutcast_search
3
- lib/delegator.rb
4
3
  lib/shoutcast_api.rb
5
4
  README.rdoc
6
5
  Manifest
@@ -11,5 +10,4 @@ test/fixtures/genrelist.plain
11
10
  test/fixtures/search_death.plain
12
11
  test/fixtures/empty.plain
13
12
  test/test_basic.rb
14
- test/test_delegator.rb
15
13
  shoutcast_api.gemspec
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ task :default => :test
7
7
 
8
8
  require 'echoe'
9
9
  Echoe.new('shoutcast_api') do |gem|
10
- gem.version = '0.1.0'
10
+ gem.version = '0.1.1'
11
11
  gem.author = 'Peter Suschlik'
12
12
  gem.summary = 'Simple Shoutcast.com API.'
13
13
  gem.email = 'peter-scapi@suschlik.de'
data/bin/shoutcast_search CHANGED
@@ -1,5 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Command line interface for shoutcast.com API.
4
+ # See documentation of Shoutcast for more information.
5
+ #
6
+ # === Usage
7
+ #
8
+ # shoutcast_search # => lists all genres
9
+ #
10
+ # shoutcast_search name=Chronix br=128 # => display a list of all Chronix stations with bitrate of 128
11
+ #
3
12
  require 'rubygems'
4
13
 
5
14
  require 'shoutcast_api'
data/lib/shoutcast_api.rb CHANGED
@@ -2,12 +2,20 @@ require 'httparty'
2
2
  require 'roxml'
3
3
  require 'forwardable'
4
4
 
5
- require 'delegator'
6
-
5
+ #
6
+ # Simple API for http://shoutcast.com.
7
+ #
8
+ # === Usage
9
+ #
10
+ # Shoutcast.genres # => Genrelist
11
+ #
12
+ # Shoutcast.search(:search => "Metal", :br => 128) # => Stationlist
7
13
  module Shoutcast
14
+
8
15
  extend Forwardable
9
16
  extend self
10
17
 
18
+ # Delegate module methods to +Fetcher+.
11
19
  def_delegators :Fetcher, :genres, :search
12
20
 
13
21
  class Fetcher
@@ -93,9 +101,9 @@ module Shoutcast
93
101
 
94
102
  class Stationlist
95
103
  include Xml
96
- include Delegator
104
+ extend Forwardable
97
105
 
98
- delegate_all :@stations, Array
106
+ def_delegators :@stations, *(Array.instance_methods - instance_methods)
99
107
 
100
108
  # <tunein base="/sbin/tunein-station.pls"/>
101
109
  # <station... /> <station .../>
@@ -131,9 +139,9 @@ module Shoutcast
131
139
 
132
140
  class Genrelist
133
141
  include Xml
134
- include Delegator
142
+ extend Forwardable
135
143
 
136
- delegate_all :@genres, Array
144
+ def_delegators :@genres, *(Array.instance_methods - instance_methods)
137
145
 
138
146
  xml_attr :genres, :as => [ Genre ]
139
147
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{shoutcast_api}
5
- s.version = "0.1.0"
5
+ s.version = "0.1.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Peter Suschlik"]
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
11
11
  s.description = %q{Simple Shoutcast.com API.}
12
12
  s.email = %q{peter-scapi@suschlik.de}
13
13
  s.executables = ["shoutcast_search"]
14
- s.extra_rdoc_files = ["bin/shoutcast_search", "lib/delegator.rb", "lib/shoutcast_api.rb", "README.rdoc"]
15
- s.files = ["Rakefile", "bin/shoutcast_search", "lib/delegator.rb", "lib/shoutcast_api.rb", "README.rdoc", "Manifest", "test/test_xml.rb", "test/helper.rb", "test/test_fetcher.rb", "test/fixtures/genrelist.plain", "test/fixtures/search_death.plain", "test/fixtures/empty.plain", "test/test_basic.rb", "test/test_delegator.rb", "shoutcast_api.gemspec"]
14
+ s.extra_rdoc_files = ["bin/shoutcast_search", "lib/shoutcast_api.rb", "README.rdoc"]
15
+ s.files = ["Rakefile", "bin/shoutcast_search", "lib/shoutcast_api.rb", "README.rdoc", "Manifest", "test/test_xml.rb", "test/helper.rb", "test/test_fetcher.rb", "test/fixtures/genrelist.plain", "test/fixtures/search_death.plain", "test/fixtures/empty.plain", "test/test_basic.rb", "shoutcast_api.gemspec"]
16
16
  s.has_rdoc = true
17
17
  s.homepage = %q{http://github.com/splattael/shoutcast_api}
18
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Shoutcast_api", "--main", "README.rdoc"]
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.rubyforge_project = %q{shoutcast_api}
21
21
  s.rubygems_version = %q{1.3.1}
22
22
  s.summary = %q{Simple Shoutcast.com API.}
23
- s.test_files = ["test/test_xml.rb", "test/test_fetcher.rb", "test/test_basic.rb", "test/test_delegator.rb"]
23
+ s.test_files = ["test/test_xml.rb", "test/test_fetcher.rb", "test/test_basic.rb"]
24
24
 
25
25
  if s.respond_to? :specification_version then
26
26
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splattael-shoutcast_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Suschlik
@@ -40,13 +40,11 @@ extensions: []
40
40
 
41
41
  extra_rdoc_files:
42
42
  - bin/shoutcast_search
43
- - lib/delegator.rb
44
43
  - lib/shoutcast_api.rb
45
44
  - README.rdoc
46
45
  files:
47
46
  - Rakefile
48
47
  - bin/shoutcast_search
49
- - lib/delegator.rb
50
48
  - lib/shoutcast_api.rb
51
49
  - README.rdoc
52
50
  - Manifest
@@ -57,7 +55,6 @@ files:
57
55
  - test/fixtures/search_death.plain
58
56
  - test/fixtures/empty.plain
59
57
  - test/test_basic.rb
60
- - test/test_delegator.rb
61
58
  - shoutcast_api.gemspec
62
59
  has_rdoc: true
63
60
  homepage: http://github.com/splattael/shoutcast_api
@@ -94,4 +91,3 @@ test_files:
94
91
  - test/test_xml.rb
95
92
  - test/test_fetcher.rb
96
93
  - test/test_basic.rb
97
- - test/test_delegator.rb
data/lib/delegator.rb DELETED
@@ -1,36 +0,0 @@
1
- module Shoutcast
2
-
3
- # Delegates methods via Forwardable.
4
- module Delegator
5
- def self.included(base)
6
- base.extend ClassMethods
7
- end
8
-
9
- module ClassMethods
10
- # Delegates all methods defined +klass+ to +object+.
11
- #
12
- # === Usage
13
- # class ArrayMimic < SomeInheritance
14
- #
15
- # delegate_all :@array, Array
16
- #
17
- # end
18
- #
19
- # array = ArrayMimic.new
20
- # array.push 1, 2, 3
21
- # array.each do |item|
22
- # p item
23
- # end
24
- #
25
- def delegate_all(object, klass)
26
- class_eval <<-EVAL
27
- extend Forwardable
28
-
29
- def_delegators :#{object}, *(#{klass}.instance_methods - instance_methods)
30
- EVAL
31
- end
32
- end
33
-
34
- end
35
-
36
- end
@@ -1,27 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'helper')
2
-
3
- class ArrayMimic
4
- include Shoutcast::Delegator
5
-
6
- delegate_all :@array, Array
7
-
8
- def initialize
9
- @array = []
10
- end
11
-
12
- end
13
-
14
- class DelegatorTest < Test::Unit::TestCase
15
-
16
- def test_method_delegation
17
- ary = ArrayMimic.new
18
- ary.push 1, 2, 3
19
-
20
- assert_equal 3, ary.size
21
- assert_equal 1, ary.first
22
- assert_equal 3, ary.last
23
- assert_respond_to ary, :each
24
- assert_equal [].methods.sort, ary.methods.sort
25
- end
26
-
27
- end