Puke 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/library/puke.rb +22 -0
  2. data/library/puke/piece.rb +31 -0
  3. metadata +47 -0
data/library/puke.rb ADDED
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ require 'cgi'
4
+ require 'json'
5
+ require 'open-uri'
6
+
7
+ require 'puke/piece'
8
+
9
+ module Puke
10
+ Version = "0.0.2"
11
+
12
+ def self.search query, key
13
+ pieces = []
14
+
15
+ open "http://tinysong.com/s/#{URI.escape query}?format=json&key=#{key}" do |response|
16
+ songs = JSON.parse response.read
17
+ pieces = songs.map &Piece.method(:new)
18
+ end
19
+
20
+ pieces
21
+ end
22
+ end
@@ -0,0 +1,31 @@
1
+ # encoding: utf-8
2
+
3
+ module Puke
4
+ class Piece
5
+ def self.attribute name, value;
6
+ define_method name do
7
+ @attributes["#{value}"]
8
+ end
9
+ end
10
+
11
+ attribute :id, :SongID
12
+ attribute :title, :SongName
13
+ attribute :artist, :ArtistName
14
+ attribute :album, :AlbumName
15
+
16
+ def initialize attributes
17
+ @attributes = attributes
18
+ end
19
+
20
+ def token; @attributes["Url"][/\w+$/] end
21
+
22
+ def url
23
+ name = self.title.gsub(/[^\s\w]/, '').gsub ' ', '+'
24
+ %{http://tinysong.com/#{token}}
25
+ end
26
+
27
+ def to_s
28
+ %{#<#{self.class.name}:#{id} @title=#{title.inspect} @artist=#{artist.inspect} @album=#{album.inspect}>}
29
+ end
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Puke
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mikkel Kroman
9
+ autorequire:
10
+ bindir: executables
11
+ cert_chain: []
12
+ date: 2011-10-15 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description:
15
+ email: mk@maero.dk
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - library/puke.rb
21
+ - library/puke/piece.rb
22
+ homepage:
23
+ licenses: []
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - library
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.9.1
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.10
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Puke is a minimal grooveshark library for ruby, using the Tinysong.com api
46
+ instead of grooveshark.com
47
+ test_files: []