youpy-ruby-echonest 0.0.2 → 0.0.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.
data/README.rdoc CHANGED
@@ -17,7 +17,7 @@ A Ruby interface for Echo Nest Developer API
17
17
 
18
18
  == Features/Problems
19
19
 
20
- Supports only API for Track http://developer.echonest.com/pages/overview
20
+ Only supports the API for Track http://developer.echonest.com/pages/overview
21
21
 
22
22
  == Synopsis
23
23
 
data/Rakefile CHANGED
@@ -60,7 +60,7 @@ spec = Gem::Specification.new do |s|
60
60
  s.require_path = "lib"
61
61
  s.test_files = Dir["test/test_*.rb"]
62
62
 
63
- #s.add_dependency('activesupport', '>=1.3.1')
63
+ s.add_dependency('libxml-ruby')
64
64
  #s.required_ruby_version = '>= 1.8.2'
65
65
 
66
66
  s.files = %w(README.rdoc ChangeLog Rakefile) +
data/lib/echonest/api.rb CHANGED
@@ -17,7 +17,7 @@ module Echonest
17
17
  def get_bars(filename)
18
18
  get_analysys(:get_bars, filename) do |analysis|
19
19
  analysis.map do |bar|
20
- Bar.new(bar.text.to_f, bar.attributes['confidence'].to_f)
20
+ Bar.new(bar.content.to_f, bar['confidence'].to_f)
21
21
  end
22
22
  end
23
23
  end
@@ -25,7 +25,7 @@ module Echonest
25
25
  def get_beats(filename)
26
26
  get_analysys(:get_beats, filename) do |analysis|
27
27
  analysis.map do |beat|
28
- Beat.new(beat.text.to_f, beat.attributes['confidence'].to_f)
28
+ Beat.new(beat.content.to_f, beat['confidence'].to_f)
29
29
  end
30
30
  end
31
31
  end
@@ -35,25 +35,25 @@ module Echonest
35
35
  analysis.map do |segment|
36
36
  max_loudness = loudness = nil
37
37
 
38
- segment.elements['loudness'].map do |db|
39
- if db.attributes['type'] == 'max'
40
- max_loudness = Loudness.new(db.attributes['time'].to_f, db.text.to_f)
38
+ segment.find('loudness/dB').map do |db|
39
+ if db['type'] == 'max'
40
+ max_loudness = Loudness.new(db['time'].to_f, db.content.to_f)
41
41
  else
42
- loudness = Loudness.new(db.attributes['time'].to_f, db.text.to_f)
42
+ loudness = Loudness.new(db['time'].to_f, db.content.to_f)
43
43
  end
44
44
  end
45
45
 
46
- pitches = segment.elements['pitches'].map do |pitch|
47
- pitch.text.to_f
46
+ pitches = segment.find('pitches/pitch').map do |pitch|
47
+ pitch.content.to_f
48
48
  end
49
49
 
50
- timbre = segment.elements['timbre'].map do |coeff|
51
- coeff.text.to_f
50
+ timbre = segment.find('timbre/coeff').map do |coeff|
51
+ coeff.content.to_f
52
52
  end
53
53
 
54
54
  Segment.new(
55
- segment.attributes['start'].to_f,
56
- segment.attributes['duration'].to_f,
55
+ segment['start'].to_f,
56
+ segment['duration'].to_f,
57
57
  loudness,
58
58
  max_loudness,
59
59
  pitches,
@@ -65,7 +65,7 @@ module Echonest
65
65
 
66
66
  def get_tempo(filename)
67
67
  get_analysys(:get_tempo, filename) do |analysis|
68
- analysis[0].text.to_f
68
+ analysis.first.content.to_f
69
69
  end
70
70
  end
71
71
 
@@ -73,8 +73,8 @@ module Echonest
73
73
  get_analysys(:get_sections, filename) do |analysis|
74
74
  analysis.map do |section|
75
75
  Section.new(
76
- section.attributes['start'].to_f,
77
- section.attributes['duration'].to_f
76
+ section['start'].to_f,
77
+ section['duration'].to_f
78
78
  )
79
79
  end
80
80
  end
@@ -82,32 +82,32 @@ module Echonest
82
82
 
83
83
  def get_duration(filename)
84
84
  get_analysys(:get_duration, filename) do |analysis|
85
- analysis[0].text.to_f
85
+ analysis.first.content.to_f
86
86
  end
87
87
  end
88
88
 
89
89
  def get_end_of_fade_in(filename)
90
90
  get_analysys(:get_end_of_fade_in, filename) do |analysis|
91
- analysis[0].text.to_f
91
+ analysis.first.content.to_f
92
92
  end
93
93
  end
94
94
 
95
95
  def get_key(filename)
96
96
  get_analysys(:get_key, filename) do |analysis|
97
- ValueWithConfidence.new(analysis[0].text.to_i, analysis[0].attributes['confidence'].to_f)
97
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
98
98
  end
99
99
  end
100
100
 
101
101
  def get_loudness(filename)
102
102
  get_analysys(:get_loudness, filename) do |analysis|
103
- analysis[0].text.to_f
103
+ analysis.first.content.to_f
104
104
  end
105
105
  end
106
106
 
107
107
  def get_metadata(filename)
108
108
  get_analysys(:get_metadata, filename) do |analysis|
109
109
  analysis.inject({}) do |memo, key|
110
- memo[key.name] = key.text
110
+ memo[key.name] = key.content
111
111
  memo
112
112
  end
113
113
  end
@@ -115,27 +115,27 @@ module Echonest
115
115
 
116
116
  def get_mode(filename)
117
117
  get_analysys(:get_mode, filename) do |analysis|
118
- ValueWithConfidence.new(analysis[0].text.to_i, analysis[0].attributes['confidence'].to_f)
118
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
119
119
  end
120
120
  end
121
121
 
122
122
  def get_start_of_fade_out(filename)
123
123
  get_analysys(:get_start_of_fade_out, filename) do |analysis|
124
- analysis[0].text.to_f
124
+ analysis.first.content.to_f
125
125
  end
126
126
  end
127
127
 
128
128
  def get_tatums(filename)
129
129
  get_analysys(:get_tatums, filename) do |analysis|
130
130
  analysis.map do |tatum|
131
- Tatum.new(tatum.text.to_f, tatum.attributes['confidence'].to_f)
131
+ Tatum.new(tatum.content.to_f, tatum['confidence'].to_f)
132
132
  end
133
133
  end
134
134
  end
135
135
 
136
136
  def get_time_signature(filename)
137
137
  get_analysys(:get_time_signature, filename) do |analysis|
138
- ValueWithConfidence.new(analysis[0].text.to_i, analysis[0].attributes['confidence'].to_f)
138
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
139
139
  end
140
140
  end
141
141
 
@@ -147,7 +147,7 @@ module Echonest
147
147
 
148
148
  def get_analysys(method, filename)
149
149
  get_trackinfo(method, filename) do |response|
150
- yield response.xml.elements['response/analysis']
150
+ yield response.xml.find('/response/analysis').first
151
151
  end
152
152
  end
153
153
 
@@ -1,11 +1,11 @@
1
- require "rexml/document"
1
+ require "xml"
2
2
 
3
3
  module Echonest
4
4
  class Response
5
5
  attr_reader :xml
6
6
 
7
7
  def initialize(body)
8
- @xml = REXML::Document.new(body)
8
+ @xml = XML::Document.string(body)
9
9
  end
10
10
 
11
11
  def status
@@ -32,8 +32,8 @@ module Echonest
32
32
  attr_reader :code, :message
33
33
 
34
34
  def initialize(xml)
35
- @code = xml.elements['response/status/code'][0].to_s.to_i
36
- @message = xml.elements['response/status/message'][0].to_s
35
+ @code = xml.find('/response/status/code').first.content.to_s.to_i
36
+ @message = xml.find('/response/status/message').first.content.to_s
37
37
  end
38
38
  end
39
39
 
@@ -41,8 +41,8 @@ module Echonest
41
41
  def initialize(xml)
42
42
  @parameters = {}
43
43
 
44
- xml.elements.each('response/query/parameter') do |parameter|
45
- @parameters[parameter.attributes['name'].to_sym] = parameter.text
44
+ xml.find('/response/query/parameter').each do |parameter|
45
+ @parameters[parameter['name'].to_sym] = parameter.content
46
46
  end
47
47
  end
48
48
 
@@ -1,3 +1,3 @@
1
1
  module Echonest
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -46,7 +46,7 @@ EOM
46
46
  @success.status.code.should eql(0)
47
47
  @success.status.message.should eql('Success')
48
48
  @success.success?.should be_true
49
- @success.xml.elements['response/artist/name'][0].to_s.should eql('Radiohead')
49
+ @success.xml.find('/response/artist/name').first.content.should eql('Radiohead')
50
50
 
51
51
  @failure.status.code.should eql(1)
52
52
  @failure.status.message.should eql('Invalid API key')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: youpy-ruby-echonest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - youpy
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-30 00:00:00 -07:00
12
+ date: 2009-07-06 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: libxml-ruby
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: An Ruby interface for Echo Nest Developer API
17
26
  email: youpy@buycheapviagraonlinenow.com
18
27
  executables: []