Module: Rdio
- Defined in:
- lib/rdio.rb,
lib/rdio/api.rb,
lib/rdio/base.rb,
lib/rdio/call.rb,
lib/rdio/oauth.rb,
lib/rdio/types.rb,
lib/rdio/datatypes.rb
Overview
third party
Defined Under Namespace
Classes: ActivityStream, Album, AlbumData, Api, ApiObj, Artist, ArtistData, BaseApi, BaseObj, Boolean, Call, JSONObj, Playlist, PlaylistData, RdioOAuth, Search, TODO, Track, TrackData, User, UserData
Constant Summary collapse
- VERSION =
'0.0.1'
- RDIO_KEY =
'RDIO_KEY'
- RDIO_SECRET =
'RDIO_SECRET'
Class Attribute Summary collapse
-
.debug ⇒ Object
Returns the value of attribute debug.
-
.log_json ⇒ Object
Returns the value of attribute log_json.
-
.log_methods ⇒ Object
Returns the value of attribute log_methods.
-
.log_posts ⇒ Object
Returns the value of attribute log_posts.
-
.log_symbols ⇒ Object
Returns the value of attribute log_symbols.
-
.logger ⇒ Object
Returns the value of attribute logger.
-
.symbols_to_types ⇒ Object
Override this to declare how certain attributes are constructed.
Class Method Summary collapse
-
.add_to_array(arr, str) ⇒ Object
Adds ‘str’ to the array or string ‘arr’.
-
.api ⇒ Object
Returns the shared Rdio::Api instance.
-
.camel2underscores(s) ⇒ Object
string -> string.
-
.convert_args(args) ⇒ Object
hash -> hash.
- .init(key, secret) ⇒ Object
-
.init_with_token(token) ⇒ Object
AccessToken => Api.
-
.keys(objs) ⇒ Object
array -> string.
- .log(str) ⇒ Object
-
.reset ⇒ Object
Resets shared API to nil.
-
.to_o(v) ⇒ Object
object -> value.
- .version ⇒ Object
Instance Method Summary collapse
Class Attribute Details
.debug ⇒ Object
Returns the value of attribute debug.
17 18 19 |
# File 'lib/rdio.rb', line 17 def debug @debug end |
.log_json ⇒ Object
Returns the value of attribute log_json.
19 20 21 |
# File 'lib/rdio.rb', line 19 def log_json @log_json end |
.log_methods ⇒ Object
Returns the value of attribute log_methods.
20 21 22 |
# File 'lib/rdio.rb', line 20 def log_methods @log_methods end |
.log_posts ⇒ Object
Returns the value of attribute log_posts.
22 23 24 |
# File 'lib/rdio.rb', line 22 def log_posts @log_posts end |
.log_symbols ⇒ Object
Returns the value of attribute log_symbols.
21 22 23 |
# File 'lib/rdio.rb', line 21 def log_symbols @log_symbols end |
.logger ⇒ Object
Returns the value of attribute logger.
18 19 20 |
# File 'lib/rdio.rb', line 18 def logger @logger end |
.symbols_to_types ⇒ Object
Override this to declare how certain attributes are constructed. This is done at the end of types.rb.
132 133 134 |
# File 'lib/rdio/base.rb', line 132 def symbols_to_types @symbols_to_types end |
Class Method Details
.add_to_array(arr, str) ⇒ Object
Adds ‘str’ to the array or string ‘arr’
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/rdio/base.rb', line 64 def add_to_array(arr,str) if arr == nil return [str.to_s] end if arr == '' return [str.to_s] end if arr.is_a? Array return arr + [str.to_s] end return arr.to_s + ',' + str.to_s end |
.api ⇒ Object
Returns the shared Rdio::Api instance. If it hasn’t been set, we try to construct it from thte environment
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/rdio.rb', line 65 def self.api return @api if @api key = ENV[RDIO_KEY] secret = ENV[RDIO_SECRET] if key and secret @api = init key,secret else msg = <<HERE Could not construct an Api instance. You must first call init(key,secret) or set the following environmental variables: - #{RDIO_KEY} - #{RDIO_SECRET} HERE raise Exception.new msg end return @api end |
.camel2underscores(s) ⇒ Object
string -> string
Converts camel-case string to underscore-delimited one.
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/rdio/base.rb', line 50 def camel2underscores(s) return s if not s return s if s == '' def decapitilize(s) s[0,1].downcase + s[1,s.length-1].to_s end s = decapitilize s while s.match /([A-Z]+)/ s = s.gsub /#{$1}/,'_'+ decapitilize($1) end s end |
.convert_args(args) ⇒ Object
hash -> hash
Uses the value of ‘to_k’ for all the iput hash values in the result hash. This is used to make sure that the arguments passed to create urls use keys for the values of objects like Artist, Track, etc. Also, we use the simple name of classes.
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rdio/base.rb', line 32 def convert_args(args) return nil if not args res = {} args.each do |k,v| if v.is_a? Array v = keys v else v = v.to_k end res[k] = v end return res end |
.init(key, secret) ⇒ Object
45 46 47 |
# File 'lib/rdio.rb', line 45 def self.init(key,secret) @api = Api.new key,secret end |
.init_with_token(token) ⇒ Object
AccessToken => Api
Initializes and returns the shared Api instance from the passed in access_token instance
54 55 56 |
# File 'lib/rdio.rb', line 54 def self.init_with_token(token) @api = Api.from_token token end |
.keys(objs) ⇒ Object
array -> string
Creates a ‘,’-separated string of the value of ‘to_k’ from all the values in ‘objs’. We also remove the nils from the input array.
82 83 84 85 86 87 |
# File 'lib/rdio/base.rb', line 82 def keys(objs) if objs.instance_of? String objs = objs.split /,/ end (not objs) ? '' : objs.compact.map {|x| x.to_k}.join(',') end |
.log(str) ⇒ Object
23 24 25 |
# File 'lib/rdio.rb', line 23 def log(str) logger.debug { str } end |
.reset ⇒ Object
Resets shared API to nil
59 60 61 |
# File 'lib/rdio.rb', line 59 def self.reset @api = nil end |
.to_o(v) ⇒ Object
object -> value
Converts v which is probably a string, to a primitive value, so we can have primitives other than strings as attributes of BaseObjs.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/rdio/base.rb', line 94 def to_o(v) if v == nil return nil end s = v.to_s if not s return nil end if s == 'nil' return nil end if s =~ /^\d+$/ return s.to_i end if s =~ /^\d+\.?\d*$/ return s.to_f end if s == 'true' return true end if s == 'false' return false end if s =~ /^\[.*\]$/ s = s.gsub /^\[/,'' s = s.gsub /\]$/,'' return s.split(',').map {|x| Rdio::to_o x} end return s end |
Instance Method Details
#decapitilize(s) ⇒ Object
53 54 55 |
# File 'lib/rdio/base.rb', line 53 def decapitilize(s) s[0,1].downcase + s[1,s.length-1].to_s end |