claudiob-radiotagmap 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -19,6 +19,9 @@ Ruby gem to map by U.S. state the music played on FM radios
19
19
 
20
20
  ## History ##
21
21
 
22
+ v0.0.7 2009/09/18
23
+ More contrast in color and defaults to forever and Logger::INFO
24
+
22
25
  v0.0.6 2009/09/18
23
26
  Only plot the color of the presence of ONE genre/tag (not two)
24
27
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
data/lib/radiotagmap.rb CHANGED
@@ -12,6 +12,8 @@ module Radiotagmap
12
12
  @log = Logger.new(STDERR)
13
13
  @log.level = Logger::WARN
14
14
  @log.level = Logger::DEBUG ### Only for debug purpose ###
15
+
16
+ @max_weight = 0.0
15
17
 
16
18
  # Returns the index of the family of genres/tags that is currently
17
19
  # most playing on the FM radios of a given U.S. state.
@@ -24,7 +26,7 @@ module Radiotagmap
24
26
  # == Examples
25
27
  # get_main_tag "CA", [['Rock', 'Indie Rock'], ['Country', 'Alt Country']]
26
28
  #--
27
- def self.get_tags_weight(state = "CA", among = [['Rock'], ['Country']])
29
+ def self.get_tags_weight(state = "CA", among = [['Country'], ['Rock']])
28
30
  among = among.collect{|family| family.collect(&:downcase)}
29
31
 
30
32
  # stations = Yesradio::search_stations(:loc => state)
@@ -42,7 +44,7 @@ module Radiotagmap
42
44
  return if artists.nil?
43
45
  @log.debug "#{state} | #{artists.length} artists"
44
46
  @log.debug "#{state} | #{artists.join(' ')}"
45
-
47
+
46
48
  # The same function as above, but without threads, would be:
47
49
  # artists = stations.collect do |station|
48
50
  # Yesradio::get_station :name => station.name
@@ -94,12 +96,15 @@ module Radiotagmap
94
96
  def self.get_map_color(weights = [0.5, 0.2])
95
97
  a = "aa"
96
98
  if weights.nil?
97
- a << "ffffff"
99
+ a << "999999"
98
100
  else
101
+ value = weights[0]
102
+ @max_weight = [@max_weight, value].max
103
+ value = value/@max_weight unless @max_weight.zero?
99
104
  r = "ff" # "%02x" % (255*weights[0]).round
100
- b = "%02x" % (255*(1-weights[1])).round
105
+ b = "%02x" % (255*(1-value)).round
101
106
  g = "ff" #"%02x" % (255*(1-weights.sum)).round
102
- a << b << g << r
107
+ a << b << b << r # The more country, the more red
103
108
  end
104
109
  end
105
110
 
@@ -115,8 +120,13 @@ module Radiotagmap
115
120
  # == Examples
116
121
  # update_kml
117
122
  #--
118
- def self.update_kml(kml_path = "./overlay.kml", among = [['Rock'], ['Country']], forever = false)
123
+ def self.update_kml(kml_path = "./overlay.kml", among = [['Country']], forever = true)
124
+ @log.level = Logger::INFO
119
125
  begin
126
+ # TO DO: to increase contrast in color, call one get_map_color
127
+ # passing the entire array, so that the MAX is first calculated
128
+ # (e.g. the state with more country only has 6/10 country artists)
129
+ # and then the contrast of colors is normalized based on that value
120
130
  STATES_COORDS.each do |state, coords|
121
131
  color = get_map_color(get_tags_weight(state, among))
122
132
  @log.debug "#{state} | The new color is #{color}"
data/radiotagmap.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{radiotagmap}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Claudio Baccigalupo"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: claudiob-radiotagmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Baccigalupo