playlyfe 0.5.5 → 0.6.0
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/lib/playlyfe.rb +79 -96
- data/test/test.rb +34 -37
- metadata +2 -2
    
        data/lib/playlyfe.rb
    CHANGED
    
    | @@ -20,8 +20,7 @@ end | |
| 20 20 | 
             
            class Playlyfe
         | 
| 21 21 | 
             
              @@api = 'https://api.playlyfe.com/v1'
         | 
| 22 22 |  | 
| 23 | 
            -
              def  | 
| 24 | 
            -
                puts 'Playlyfe Initializing...............................................'
         | 
| 23 | 
            +
              def initialize(options = {})
         | 
| 25 24 | 
             
                if options[:type].nil?
         | 
| 26 25 | 
             
                  err = PlaylyfeError.new("")
         | 
| 27 26 | 
             
                  err.name = 'init_failed'
         | 
| @@ -32,13 +31,13 @@ class Playlyfe | |
| 32 31 | 
             
                @@id = options[:client_id]
         | 
| 33 32 | 
             
                @@secret = options[:client_secret]
         | 
| 34 33 | 
             
                @@store = options[:store]
         | 
| 35 | 
            -
                @@ | 
| 34 | 
            +
                @@load = options[:load]
         | 
| 36 35 | 
             
                @@redirect_uri = options[:redirect_uri]
         | 
| 37 36 | 
             
                if @@store.nil?
         | 
| 38 37 | 
             
                  @@store = lambda { |token| puts 'Storing Token' }
         | 
| 39 38 | 
             
                end
         | 
| 40 39 | 
             
                if @@type == 'client'
         | 
| 41 | 
            -
                   | 
| 40 | 
            +
                  get_access_token()
         | 
| 42 41 | 
             
                else
         | 
| 43 42 | 
             
                  if options[:redirect_uri].nil?
         | 
| 44 43 | 
             
                    err = PlaylyfeError.new("")
         | 
| @@ -49,8 +48,7 @@ class Playlyfe | |
| 49 48 | 
             
                end
         | 
| 50 49 | 
             
              end
         | 
| 51 50 |  | 
| 52 | 
            -
              def  | 
| 53 | 
            -
                puts 'Getting Access Token'
         | 
| 51 | 
            +
              def get_access_token
         | 
| 54 52 | 
             
                begin
         | 
| 55 53 | 
             
                  if @@type == 'client'
         | 
| 56 54 | 
             
                    access_token = RestClient.post('https://playlyfe.com/auth/token',
         | 
| @@ -80,12 +78,12 @@ class Playlyfe | |
| 80 78 | 
             
                  access_token.delete('expires_in')
         | 
| 81 79 | 
             
                  access_token['expires_at'] = expires_at
         | 
| 82 80 | 
             
                  @@store.call access_token
         | 
| 83 | 
            -
                  if @@ | 
| 84 | 
            -
                    @@ | 
| 81 | 
            +
                  if @@load.nil?
         | 
| 82 | 
            +
                    @@load = lambda { return access_token }
         | 
| 85 83 | 
             
                  else
         | 
| 86 | 
            -
                    old_token = @@ | 
| 84 | 
            +
                    old_token = @@load.call
         | 
| 87 85 | 
             
                    if access_token != old_token
         | 
| 88 | 
            -
                      @@ | 
| 86 | 
            +
                      @@load = lambda { return access_token }
         | 
| 89 87 | 
             
                    end
         | 
| 90 88 | 
             
                  end
         | 
| 91 89 | 
             
                rescue => e
         | 
| @@ -93,43 +91,51 @@ class Playlyfe | |
| 93 91 | 
             
                end
         | 
| 94 92 | 
             
              end
         | 
| 95 93 |  | 
| 96 | 
            -
              def  | 
| 97 | 
            -
                 | 
| 98 | 
            -
                "https://playlyfe.com/auth?#{self.hash_to_query(query)}"
         | 
| 99 | 
            -
              end
         | 
| 100 | 
            -
             | 
| 101 | 
            -
              def self.exchange_code(code)
         | 
| 102 | 
            -
                if code.nil?
         | 
| 103 | 
            -
                  err = PlaylyfeError.new("")
         | 
| 104 | 
            -
                  err.name = 'init_failed'
         | 
| 105 | 
            -
                  err.message = 'You must pass in a code in exchange_code for the auth code flow'
         | 
| 106 | 
            -
                  raise err
         | 
| 107 | 
            -
                else
         | 
| 108 | 
            -
                  @@code = code
         | 
| 109 | 
            -
                  self.get_access_token()
         | 
| 110 | 
            -
                end
         | 
| 111 | 
            -
              end
         | 
| 112 | 
            -
             | 
| 113 | 
            -
              def self.check_token(options)
         | 
| 114 | 
            -
                access_token = @@retrieve.call
         | 
| 94 | 
            +
              def check_token(options)
         | 
| 95 | 
            +
                access_token = @@load.call
         | 
| 115 96 | 
             
                if access_token['expires_at'] < Time.now.to_i
         | 
| 116 97 | 
             
                  puts 'Access Token Expired'
         | 
| 117 | 
            -
                   | 
| 118 | 
            -
                  access_token = @@ | 
| 98 | 
            +
                  get_access_token()
         | 
| 99 | 
            +
                  access_token = @@load.call
         | 
| 119 100 | 
             
                end
         | 
| 120 101 | 
             
                options[:query][:access_token] = access_token['access_token']
         | 
| 121 102 | 
             
              end
         | 
| 122 103 |  | 
| 123 | 
            -
              def  | 
| 104 | 
            +
              def api(options = {})
         | 
| 124 105 | 
             
                options[:route] ||= ''
         | 
| 125 106 | 
             
                options[:query] ||= {}
         | 
| 107 | 
            +
                options[:body] ||= {}
         | 
| 126 108 | 
             
                options[:raw] ||= false
         | 
| 127 | 
            -
                 | 
| 128 | 
            -
             | 
| 109 | 
            +
                check_token(options)
         | 
| 129 110 | 
             
                begin
         | 
| 130 | 
            -
                   | 
| 131 | 
            -
                     | 
| 132 | 
            -
             | 
| 111 | 
            +
                  case options[:method]
         | 
| 112 | 
            +
                    when 'GET'
         | 
| 113 | 
            +
                      res = RestClient.get("#{@@api}#{options[:route]}",
         | 
| 114 | 
            +
                        {:params => options[:query] }
         | 
| 115 | 
            +
                      )
         | 
| 116 | 
            +
                    when 'POST'
         | 
| 117 | 
            +
                      res = RestClient.post("#{@@api}#{options[:route]}?#{hash_to_query(options[:query])}",
         | 
| 118 | 
            +
                        options[:body].to_json,
         | 
| 119 | 
            +
                        :content_type => :json,
         | 
| 120 | 
            +
                        :accept => :json
         | 
| 121 | 
            +
                      )
         | 
| 122 | 
            +
                    when 'PUT'
         | 
| 123 | 
            +
                      res = RestClient.put("#{@@api}#{options[:route]}?#{hash_to_query(options[:query])}",
         | 
| 124 | 
            +
                        options[:body].to_json,
         | 
| 125 | 
            +
                        :content_type => :json,
         | 
| 126 | 
            +
                        :accept => :json
         | 
| 127 | 
            +
                      )
         | 
| 128 | 
            +
                    when 'PATCH'
         | 
| 129 | 
            +
                      res = RestClient.patch("#{@@api}#{options[:route]}?#{hash_to_query(options[:query])}",
         | 
| 130 | 
            +
                        options[:body].to_json,
         | 
| 131 | 
            +
                        :content_type => :json,
         | 
| 132 | 
            +
                        :accept => :json
         | 
| 133 | 
            +
                      )
         | 
| 134 | 
            +
                    when 'DELETE'
         | 
| 135 | 
            +
                      res = RestClient.delete("#{@@api}#{options[:route]}",
         | 
| 136 | 
            +
                        {:params => options[:query] }
         | 
| 137 | 
            +
                      )
         | 
| 138 | 
            +
                  end
         | 
| 133 139 | 
             
                  if options[:raw] == true
         | 
| 134 140 | 
             
                    return res.body
         | 
| 135 141 | 
             
                  else
         | 
| @@ -140,76 +146,53 @@ class Playlyfe | |
| 140 146 | 
             
                end
         | 
| 141 147 | 
             
              end
         | 
| 142 148 |  | 
| 143 | 
            -
              def  | 
| 144 | 
            -
                options[: | 
| 145 | 
            -
                options | 
| 146 | 
            -
             | 
| 147 | 
            -
                self.check_token(options)
         | 
| 149 | 
            +
              def get(options = {})
         | 
| 150 | 
            +
                options[:method] = "GET"
         | 
| 151 | 
            +
                api(options)
         | 
| 152 | 
            +
              end
         | 
| 148 153 |  | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
                    :content_type => :json,
         | 
| 153 | 
            -
                    :accept => :json
         | 
| 154 | 
            -
                  )
         | 
| 155 | 
            -
                  return JSON.parse(res.body)
         | 
| 156 | 
            -
                rescue => e
         | 
| 157 | 
            -
                  raise PlaylyfeError.new(e.response)
         | 
| 158 | 
            -
                end
         | 
| 154 | 
            +
              def post(options = {})
         | 
| 155 | 
            +
                options[:method] = "POST"
         | 
| 156 | 
            +
                api(options)
         | 
| 159 157 | 
             
              end
         | 
| 160 158 |  | 
| 161 | 
            -
              def  | 
| 162 | 
            -
                options[: | 
| 163 | 
            -
                options | 
| 164 | 
            -
             | 
| 165 | 
            -
                self.check_token(options)
         | 
| 159 | 
            +
              def put(options = {})
         | 
| 160 | 
            +
                options[:method] = "PUT"
         | 
| 161 | 
            +
                api(options)
         | 
| 162 | 
            +
              end
         | 
| 166 163 |  | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 169 | 
            -
             | 
| 170 | 
            -
                    :content_type => :json,
         | 
| 171 | 
            -
                    :accept => :json
         | 
| 172 | 
            -
                  )
         | 
| 173 | 
            -
                  return JSON.parse(res.body)
         | 
| 174 | 
            -
                rescue => e
         | 
| 175 | 
            -
                  raise PlaylyfeError.new(e.response)
         | 
| 176 | 
            -
                end
         | 
| 164 | 
            +
              def patch(options = {})
         | 
| 165 | 
            +
                options[:method] = "PATCH"
         | 
| 166 | 
            +
                api(options)
         | 
| 177 167 | 
             
              end
         | 
| 178 168 |  | 
| 179 | 
            -
              def  | 
| 180 | 
            -
                options[: | 
| 181 | 
            -
                options | 
| 182 | 
            -
             | 
| 183 | 
            -
                self.check_token(options)
         | 
| 169 | 
            +
              def delete(options = {})
         | 
| 170 | 
            +
                options[:method] = "DELETE"
         | 
| 171 | 
            +
                api(options)
         | 
| 172 | 
            +
              end
         | 
| 184 173 |  | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
                    options[:body].to_json,
         | 
| 188 | 
            -
                    :content_type => :json,
         | 
| 189 | 
            -
                    :accept => :json
         | 
| 190 | 
            -
                  )
         | 
| 191 | 
            -
                  return JSON.parse(res.body)
         | 
| 192 | 
            -
                rescue => e
         | 
| 193 | 
            -
                  raise PlaylyfeError.new(e.response)
         | 
| 194 | 
            -
                end
         | 
| 174 | 
            +
              def hash_to_query(hash)
         | 
| 175 | 
            +
                return URI.encode(hash.map{|k,v| "#{k}=#{v}"}.join("&"))
         | 
| 195 176 | 
             
              end
         | 
| 196 177 |  | 
| 197 | 
            -
              def  | 
| 198 | 
            -
                 | 
| 199 | 
            -
                 | 
| 200 | 
            -
             | 
| 178 | 
            +
              def get_login_url
         | 
| 179 | 
            +
                query = { response_type: 'code', redirect_uri: @@redirect_uri, client_id: @@id }
         | 
| 180 | 
            +
                "https://playlyfe.com/auth?#{hash_to_query(query)}"
         | 
| 181 | 
            +
              end
         | 
| 201 182 |  | 
| 202 | 
            -
             | 
| 203 | 
            -
             | 
| 204 | 
            -
                    {:params => options[:query] }
         | 
| 205 | 
            -
                  )
         | 
| 206 | 
            -
                  JSON.parse(res.body)
         | 
| 207 | 
            -
                rescue => e
         | 
| 208 | 
            -
                  raise PlaylyfeError.new(e.response)
         | 
| 209 | 
            -
                end
         | 
| 183 | 
            +
              def get_logout_url
         | 
| 184 | 
            +
                ""
         | 
| 210 185 | 
             
              end
         | 
| 211 186 |  | 
| 212 | 
            -
              def  | 
| 213 | 
            -
                 | 
| 187 | 
            +
              def exchange_code(code)
         | 
| 188 | 
            +
                if code.nil?
         | 
| 189 | 
            +
                  err = PlaylyfeError.new("")
         | 
| 190 | 
            +
                  err.name = 'init_failed'
         | 
| 191 | 
            +
                  err.message = 'You must pass in a code in exchange_code for the auth code flow'
         | 
| 192 | 
            +
                  raise err
         | 
| 193 | 
            +
                else
         | 
| 194 | 
            +
                  @@code = code
         | 
| 195 | 
            +
                  get_access_token()
         | 
| 196 | 
            +
                end
         | 
| 214 197 | 
             
              end
         | 
| 215 198 | 
             
            end
         | 
    
        data/test/test.rb
    CHANGED
    
    | @@ -6,7 +6,7 @@ class PlaylyfeTest < Test::Unit::TestCase | |
| 6 6 |  | 
| 7 7 | 
             
              def test_invalid_client
         | 
| 8 8 | 
             
                begin
         | 
| 9 | 
            -
                  Playlyfe. | 
| 9 | 
            +
                  Playlyfe.new(
         | 
| 10 10 | 
             
                    client_id: "wrong_id",
         | 
| 11 11 | 
             
                    client_secret: "wrong_secret",
         | 
| 12 12 | 
             
                    type: 'client'
         | 
| @@ -19,7 +19,7 @@ class PlaylyfeTest < Test::Unit::TestCase | |
| 19 19 |  | 
| 20 20 | 
             
              def test_wrong_init
         | 
| 21 21 | 
             
                begin
         | 
| 22 | 
            -
                  Playlyfe. | 
| 22 | 
            +
                  Playlyfe.new(
         | 
| 23 23 | 
             
                    client_id: "Zjc0MWU0N2MtODkzNS00ZWNmLWEwNmYtY2M1MGMxNGQ1YmQ4",
         | 
| 24 24 | 
             
                    client_secret: "YzllYTE5NDQtNDMwMC00YTdkLWFiM2MtNTg0Y2ZkOThjYTZkMGIyNWVlNDAtNGJiMC0xMWU0LWI2NGEtYjlmMmFkYTdjOTI3"
         | 
| 25 25 | 
             
                  )
         | 
| @@ -28,56 +28,54 @@ class PlaylyfeTest < Test::Unit::TestCase | |
| 28 28 | 
             
                end
         | 
| 29 29 | 
             
              end
         | 
| 30 30 |  | 
| 31 | 
            -
              def  | 
| 31 | 
            +
              def test_init_staging
         | 
| 32 | 
            +
                pl = Playlyfe.new(
         | 
| 33 | 
            +
                  client_id: "Zjc0MWU0N2MtODkzNS00ZWNmLWEwNmYtY2M1MGMxNGQ1YmQ4",
         | 
| 34 | 
            +
                  client_secret: "YzllYTE5NDQtNDMwMC00YTdkLWFiM2MtNTg0Y2ZkOThjYTZkMGIyNWVlNDAtNGJiMC0xMWU0LWI2NGEtYjlmMmFkYTdjOTI3",
         | 
| 35 | 
            +
                  type: 'client'
         | 
| 36 | 
            +
                )
         | 
| 37 | 
            +
             | 
| 32 38 | 
             
                begin
         | 
| 33 | 
            -
                   | 
| 34 | 
            -
                    client_id: "Zjc0MWU0N2MtODkzNS00ZWNmLWEwNmYtY2M1MGMxNGQ1YmQ4",
         | 
| 35 | 
            -
                    client_secret: "YzllYTE5NDQtNDMwMC00YTdkLWFiM2MtNTg0Y2ZkOThjYTZkMGIyNWVlNDAtNGJiMC0xMWU0LWI2NGEtYjlmMmFkYTdjOTI3",
         | 
| 36 | 
            -
                    type: 'client'
         | 
| 37 | 
            -
                  )
         | 
| 38 | 
            -
                  Playlyfe.get(route: '/gege', query: { player_id: 'student1' })
         | 
| 39 | 
            +
                  pl.get(route: '/gege', query: { player_id: 'student1' })
         | 
| 39 40 | 
             
                rescue PlaylyfeError => e
         | 
| 40 41 | 
             
                  assert_equal e.name,'route_not_found'
         | 
| 41 42 | 
             
                  assert_equal e.message, 'This route does not exist'
         | 
| 42 43 | 
             
                end
         | 
| 43 | 
            -
              end
         | 
| 44 44 |  | 
| 45 | 
            -
             | 
| 46 | 
            -
                 | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
                )
         | 
| 51 | 
            -
                players = Playlyfe.get(route: '/players', query: { player_id: 'student1', limit: 1 })
         | 
| 45 | 
            +
                players = pl.api(method: 'GET', route: '/players', query: { player_id: 'student1', limit: 1 })
         | 
| 46 | 
            +
                assert_not_nil players["data"]
         | 
| 47 | 
            +
                assert_not_nil players["data"][0]
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                players = pl.get(route: '/players', query: { player_id: 'student1', limit: 1 })
         | 
| 52 50 | 
             
                assert_not_nil players["data"]
         | 
| 53 51 | 
             
                assert_not_nil players["data"][0]
         | 
| 54 52 |  | 
| 55 53 | 
             
                begin
         | 
| 56 | 
            -
                   | 
| 54 | 
            +
                  pl.get(route: '/player')
         | 
| 57 55 | 
             
                rescue PlaylyfeError => e
         | 
| 58 56 | 
             
                  assert_equal e.message, "The 'player_id' parameter should be specified in the query"
         | 
| 59 57 | 
             
                end
         | 
| 60 58 |  | 
| 61 59 | 
             
                player_id = 'student1'
         | 
| 62 | 
            -
                player =  | 
| 60 | 
            +
                player = pl.get(route: '/player', query: { player_id: player_id } )
         | 
| 63 61 | 
             
                assert_equal player["id"], "student1"
         | 
| 64 62 | 
             
                assert_equal player["alias"], "Student1"
         | 
| 65 63 | 
             
                assert_equal player["enabled"], true
         | 
| 66 64 |  | 
| 67 | 
            -
                 | 
| 68 | 
            -
                 | 
| 69 | 
            -
                 | 
| 70 | 
            -
                 | 
| 65 | 
            +
                pl.get(route: '/definitions/processes', query: { player_id: player_id } )
         | 
| 66 | 
            +
                pl.get(route:'/definitions/teams', query: { player_id: player_id } )
         | 
| 67 | 
            +
                pl.get(route: '/processes', query: { player_id: player_id } )
         | 
| 68 | 
            +
                pl.get(route: '/teams', query: { player_id: player_id } )
         | 
| 71 69 |  | 
| 72 | 
            -
                processes =  | 
| 70 | 
            +
                processes = pl.get(route: '/processes', query: { player_id: 'student1', limit: 1, skip: 4 })
         | 
| 73 71 | 
             
                assert_equal processes["data"][0]["definition"], "module1"
         | 
| 74 72 | 
             
                assert_equal processes["data"].size, 1
         | 
| 75 73 |  | 
| 76 | 
            -
                new_process =  | 
| 74 | 
            +
                new_process = pl.post(route: '/definitions/processes/module1', query: { player_id: player_id })
         | 
| 77 75 | 
             
                assert_equal new_process["definition"], "module1"
         | 
| 78 76 | 
             
                assert_equal new_process["state"], "ACTIVE"
         | 
| 79 77 |  | 
| 80 | 
            -
                patched_process =  | 
| 78 | 
            +
                patched_process = pl.patch(
         | 
| 81 79 | 
             
                  route: "/processes/#{new_process['id']}",
         | 
| 82 80 | 
             
                  query: { player_id: player_id },
         | 
| 83 81 | 
             
                  body: { name: 'patched_process', access: 'PUBLIC' }
         | 
| @@ -86,43 +84,42 @@ class PlaylyfeTest < Test::Unit::TestCase | |
| 86 84 | 
             
                assert_equal patched_process['name'], 'patched_process'
         | 
| 87 85 | 
             
                assert_equal patched_process['access'], 'PUBLIC'
         | 
| 88 86 |  | 
| 89 | 
            -
                deleted_process =  | 
| 87 | 
            +
                deleted_process = pl.delete(route: "/processes/#{new_process['id']}", query: { player_id: player_id })
         | 
| 90 88 | 
             
                assert_not_nil deleted_process['message']
         | 
| 91 89 |  | 
| 92 | 
            -
                #data =  | 
| 90 | 
            +
                #data = pl.put(route: "/players/#{player_id}/reset", query: { player_id: player_id })
         | 
| 93 91 | 
             
                #puts data
         | 
| 94 92 |  | 
| 95 | 
            -
                raw_data =  | 
| 93 | 
            +
                raw_data = pl.get(route: '/player', query: { player_id: player_id }, raw: true)
         | 
| 96 94 | 
             
                assert_equal raw_data.class, String
         | 
| 97 95 | 
             
              end
         | 
| 98 96 |  | 
| 99 97 | 
             
              def test_init_production
         | 
| 100 | 
            -
                Playlyfe. | 
| 98 | 
            +
                pl = Playlyfe.new(
         | 
| 101 99 | 
             
                  client_id: "N2Y4NjNlYTItODQzZi00YTQ0LTkzZWEtYTBiNTA2ODg3MDU4",
         | 
| 102 100 | 
             
                  client_secret: "NDc3NTA0NmItMjBkZi00MjI2LWFhMjUtOTI0N2I1YTkxYjc2M2U3ZGI0MDAtNGQ1Mi0xMWU0LWJmZmUtMzkyZTdiOTYxYmMx",
         | 
| 103 101 | 
             
                  type: 'client'
         | 
| 104 102 | 
             
                )
         | 
| 105 | 
            -
                 | 
| 106 | 
            -
                #assert_equal player["data"][0]["email"], "peter@playlyfe.com"
         | 
| 103 | 
            +
                players = pl.get(route: '/game/players', query: { limit: 1 })
         | 
| 107 104 | 
             
              end
         | 
| 108 105 |  | 
| 109 106 | 
             
              def test_store
         | 
| 110 107 | 
             
                redis = Redis.new
         | 
| 111 | 
            -
                Playlyfe. | 
| 108 | 
            +
                pl = Playlyfe.new(
         | 
| 112 109 | 
             
                  client_id: "Zjc0MWU0N2MtODkzNS00ZWNmLWEwNmYtY2M1MGMxNGQ1YmQ4",
         | 
| 113 110 | 
             
                  client_secret: "YzllYTE5NDQtNDMwMC00YTdkLWFiM2MtNTg0Y2ZkOThjYTZkMGIyNWVlNDAtNGJiMC0xMWU0LWI2NGEtYjlmMmFkYTdjOTI3",
         | 
| 114 111 | 
             
                  type: 'client',
         | 
| 115 112 | 
             
                  store: lambda { |token| redis.set('token', JSON.generate(token)) },
         | 
| 116 | 
            -
                   | 
| 113 | 
            +
                  load: lambda { return JSON.parse(redis.get('token')) }
         | 
| 117 114 | 
             
                )
         | 
| 118 | 
            -
                players =  | 
| 115 | 
            +
                players = pl.get(route: '/players', query: { player_id: 'student1', limit: 1 })
         | 
| 119 116 | 
             
                assert_not_nil players["data"]
         | 
| 120 117 | 
             
                assert_not_nil players["data"][0]
         | 
| 121 118 | 
             
              end
         | 
| 122 119 |  | 
| 123 120 | 
             
              def test_auth_code_error
         | 
| 124 121 | 
             
                begin
         | 
| 125 | 
            -
                  Playlyfe. | 
| 122 | 
            +
                  Playlyfe.new(
         | 
| 126 123 | 
             
                    client_id: "NGM2ZmYyNGQtNjViMy00YjQ0LWI0YTgtZTdmYWFlNDRkMmUx",
         | 
| 127 124 | 
             
                    client_secret: "ZTQ0OWI4YTItYzE4ZC00MWQ5LTg3YjktMDI5ZjAxYTBkZmRiZGQ0NzI4OTAtNGQ1My0xMWU0LWJmZmUtMzkyZTdiOTYxYmMx",
         | 
| 128 125 | 
             
                    type: 'code'
         | 
| @@ -133,7 +130,7 @@ class PlaylyfeTest < Test::Unit::TestCase | |
| 133 130 | 
             
              end
         | 
| 134 131 |  | 
| 135 132 | 
             
              def test_auth_code
         | 
| 136 | 
            -
                Playlyfe. | 
| 133 | 
            +
                Playlyfe.new(
         | 
| 137 134 | 
             
                  client_id: "NGM2ZmYyNGQtNjViMy00YjQ0LWI0YTgtZTdmYWFlNDRkMmUx",
         | 
| 138 135 | 
             
                  client_secret: "ZTQ0OWI4YTItYzE4ZC00MWQ5LTg3YjktMDI5ZjAxYTBkZmRiZGQ0NzI4OTAtNGQ1My0xMWU0LWJmZmUtMzkyZTdiOTYxYmMx",
         | 
| 139 136 | 
             
                  type: 'code',
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: playlyfe
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.6.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2014-10- | 
| 12 | 
            +
            date: 2014-10-27 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rest_client
         |