pebblebed 0.0.32 → 0.0.33
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/pebblebed/config.rb +1 -0
- data/lib/pebblebed/sinatra.rb +7 -3
- data/lib/pebblebed/version.rb +1 -1
- data/spec/config_spec.rb +7 -2
- data/spec/sinatra_spec.rb +14 -0
- metadata +4 -4
    
        data/lib/pebblebed/config.rb
    CHANGED
    
    
    
        data/lib/pebblebed/sinatra.rb
    CHANGED
    
    | @@ -37,12 +37,16 @@ module Sinatra | |
| 37 37 | 
             
                    return @identity if @identity_checked
         | 
| 38 38 | 
             
                    @identity_checked = true
         | 
| 39 39 | 
             
                    if cache_current_identity?
         | 
| 40 | 
            -
                       | 
| 41 | 
            -
             | 
| 42 | 
            -
                       | 
| 40 | 
            +
                      cache_key = "identity-for-session-#{current_session}"
         | 
| 41 | 
            +
                      @identity = ::Pebblebed.memcached.get(cache_key)
         | 
| 42 | 
            +
                      return @identity if @identity
         | 
| 43 | 
            +
                      @identity = pebbles.checkpoint.get("/identities/me")[:identity]
         | 
| 44 | 
            +
                      # Cache identity only if there is a current user
         | 
| 45 | 
            +
                      ::Pebblebed.memcached.set(cache_key, @identity, 60) if @identity.id?
         | 
| 43 46 | 
             
                    else
         | 
| 44 47 | 
             
                      @identity = pebbles.checkpoint.get("/identities/me")[:identity]
         | 
| 45 48 | 
             
                    end
         | 
| 49 | 
            +
                    @identity
         | 
| 46 50 | 
             
                  end
         | 
| 47 51 |  | 
| 48 52 | 
             
                  def cache_current_identity?
         | 
    
        data/lib/pebblebed/version.rb
    CHANGED
    
    
    
        data/spec/config_spec.rb
    CHANGED
    
    | @@ -6,15 +6,20 @@ describe Pebblebed do | |
| 6 6 | 
             
              it "has a nice dsl that configures stuff" do
         | 
| 7 7 | 
             
                Pebblebed.config do
         | 
| 8 8 | 
             
                  host "example.org"
         | 
| 9 | 
            -
                  memcached  | 
| 9 | 
            +
                  memcached "MemcachedClient"
         | 
| 10 10 | 
             
                  service :checkpoint
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 13 | 
             
                Pebblebed.host.should eq "example.org"
         | 
| 14 | 
            -
                Pebblebed.memcached.should eq  | 
| 14 | 
            +
                Pebblebed.memcached.should eq "MemcachedClient"
         | 
| 15 15 | 
             
                Pebblebed::Connector.instance_methods.should include :checkpoint
         | 
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 | 
            +
              it "raises an error when memcached is used but not configured" do
         | 
| 19 | 
            +
                Pebblebed.memcached = nil
         | 
| 20 | 
            +
                -> {Pebblebed.memcached}.should raise_error RuntimeError
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 18 23 | 
             
              it "can calculate the root uri of any pebble" do
         | 
| 19 24 | 
             
                Pebblebed.config do
         | 
| 20 25 | 
             
                  service :checkpoint
         | 
    
        data/spec/sinatra_spec.rb
    CHANGED
    
    | @@ -3,6 +3,7 @@ require 'pebblebed' | |
| 3 3 | 
             
            require 'pebblebed/sinatra'
         | 
| 4 4 | 
             
            require 'sinatra/base'
         | 
| 5 5 | 
             
            require 'rack/test'
         | 
| 6 | 
            +
            require 'spec_helper'
         | 
| 6 7 |  | 
| 7 8 | 
             
            class TestApp < Sinatra::Base
         | 
| 8 9 | 
             
              register Sinatra::Pebblebed
         | 
| @@ -47,6 +48,7 @@ describe Sinatra::Pebblebed do | |
| 47 48 | 
             
              let(:checkpoint) { stub(:get => identity, :service_url => 'http://example.com') }
         | 
| 48 49 |  | 
| 49 50 | 
             
              before :each do
         | 
| 51 | 
            +
                TestApp.any_instance.stub(:current_session).and_return "validsessionyesyesyes"
         | 
| 50 52 | 
             
                Pebblebed::Connector.any_instance.stub(:checkpoint).and_return checkpoint
         | 
| 51 53 | 
             
              end
         | 
| 52 54 |  | 
| @@ -149,4 +151,16 @@ describe Sinatra::Pebblebed do | |
| 149 151 | 
             
                  get '/private'
         | 
| 150 152 | 
             
                end
         | 
| 151 153 | 
             
              end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
              describe "identity caching disabled when no current user" do
         | 
| 156 | 
            +
                let(:identity) { {} }
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                it "will not cache identity when there is no current identity" do
         | 
| 159 | 
            +
                  identity = nil
         | 
| 160 | 
            +
                  app.set :cache_current_identity, true
         | 
| 161 | 
            +
                  checkpoint.should_receive(:get).twice
         | 
| 162 | 
            +
                  get '/private'
         | 
| 163 | 
            +
                  get '/private'
         | 
| 164 | 
            +
                end
         | 
| 165 | 
            +
              end
         | 
| 152 166 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pebblebed
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.33
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-11- | 
| 13 | 
            +
            date: 2012-11-23 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: rspec
         | 
| @@ -328,7 +328,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 328 328 | 
             
                  version: '0'
         | 
| 329 329 | 
             
                  segments:
         | 
| 330 330 | 
             
                  - 0
         | 
| 331 | 
            -
                  hash:  | 
| 331 | 
            +
                  hash: -222285177429713152
         | 
| 332 332 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 333 333 | 
             
              none: false
         | 
| 334 334 | 
             
              requirements:
         | 
| @@ -337,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 337 337 | 
             
                  version: '0'
         | 
| 338 338 | 
             
                  segments:
         | 
| 339 339 | 
             
                  - 0
         | 
| 340 | 
            -
                  hash:  | 
| 340 | 
            +
                  hash: -222285177429713152
         | 
| 341 341 | 
             
            requirements: []
         | 
| 342 342 | 
             
            rubyforge_project: pebblebed
         | 
| 343 343 | 
             
            rubygems_version: 1.8.24
         |