rackamole 0.2.2 → 0.2.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/HISTORY +6 -1
 - data/lib/rackamole.rb +1 -1
 - data/lib/rackamole/store/mongo_db.rb +13 -1
 - data/spec/rackamole/store/mongo_db_spec.rb +14 -2
 - metadata +2 -2
 
    
        data/HISTORY
    CHANGED
    
    | 
         @@ -14,4 +14,9 @@ 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            0.2.2
         
     | 
| 
       16 
16 
     | 
    
         
             
            * NOTICE: Wrong docs and wrong configuration for mongo store initialization
         
     | 
| 
       17 
     | 
    
         
            -
              * Corrected docs and validation for mongo store init - changed :database to :db_name
         
     | 
| 
      
 17 
     | 
    
         
            +
              * Corrected docs and validation for mongo store init - changed :database to :db_name
         
     | 
| 
      
 18 
     | 
    
         
            +
              
         
     | 
| 
      
 19 
     | 
    
         
            +
            0.2.3
         
     | 
| 
      
 20 
     | 
    
         
            +
            * Bug fixes
         
     | 
| 
      
 21 
     | 
    
         
            +
              * Fixed issue where session or param key falls under the format a.b.c which causes 
         
     | 
| 
      
 22 
     | 
    
         
            +
                validation problems in mongoDB. Thanks Rafael!
         
     | 
    
        data/lib/rackamole.rb
    CHANGED
    
    
| 
         @@ -162,11 +162,23 @@ module Rackamole 
     | 
|
| 
       162 
162 
     | 
    
         
             
                      }
         
     | 
| 
       163 
163 
     | 
    
         | 
| 
       164 
164 
     | 
    
         
             
                      args.each do |k,v|
         
     | 
| 
       165 
     | 
    
         
            -
                        row[min_field(k)] = v if v
         
     | 
| 
      
 165 
     | 
    
         
            +
                        row[min_field(k)] = check_hash( v ) if v
         
     | 
| 
       166 
166 
     | 
    
         
             
                      end
         
     | 
| 
       167 
167 
     | 
    
         
             
                      logs.save( row )
         
     | 
| 
       168 
168 
     | 
    
         
             
                    end
         
     | 
| 
       169 
169 
     | 
    
         | 
| 
      
 170 
     | 
    
         
            +
                    # Check for invalid key format - ie something that will choke mongo
         
     | 
| 
      
 171 
     | 
    
         
            +
                    # case a.b.c => a_b_c
         
     | 
| 
      
 172 
     | 
    
         
            +
                    def ensure_valid_key( key )
         
     | 
| 
      
 173 
     | 
    
         
            +
                      key.to_s.index( /\./ ) ? key.to_s.gsub( /\./, '_' ) : key
         
     | 
| 
      
 174 
     | 
    
         
            +
                    end
         
     | 
| 
      
 175 
     | 
    
         
            +
                    
         
     | 
| 
      
 176 
     | 
    
         
            +
                    # Check 
         
     | 
| 
      
 177 
     | 
    
         
            +
                    def check_hash( value )
         
     | 
| 
      
 178 
     | 
    
         
            +
                      return value unless value.is_a?( Hash )
         
     | 
| 
      
 179 
     | 
    
         
            +
                      value.keys.inject({}){ |h,k| h[ensure_valid_key(k)] = value[k];h }
         
     | 
| 
      
 180 
     | 
    
         
            +
                    end
         
     | 
| 
      
 181 
     | 
    
         
            +
                    
         
     | 
| 
       170 
182 
     | 
    
         
             
                    # For storage reason minify the json to save space...
         
     | 
| 
       171 
183 
     | 
    
         
             
                    def min_field( field )
         
     | 
| 
       172 
184 
     | 
    
         
             
                      field_map[field] || field
         
     | 
| 
         @@ -34,9 +34,9 @@ describe Rackamole::Store::MongoDb do 
     | 
|
| 
       34 
34 
     | 
    
         
             
                  @args[:session]      = { :fred => 10.to_json }
         
     | 
| 
       35 
35 
     | 
    
         
             
                  @args[:created_at]   = @now.utc
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
                    
         
     | 
| 
       38 
38 
     | 
    
         
             
                it "should mole a context based feature correctly" do
         
     | 
| 
       39 
     | 
    
         
            -
                  @store.mole( @args ) 
     | 
| 
      
 39 
     | 
    
         
            +
                  @store.mole( @args )
         
     | 
| 
       40 
40 
     | 
    
         
             
                  @store.features.count.should == 1
         
     | 
| 
       41 
41 
     | 
    
         
             
                  @store.logs.count.should     == 1
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
         @@ -75,6 +75,18 @@ describe Rackamole::Store::MongoDb do 
     | 
|
| 
       75 
75 
     | 
    
         
             
                  user['did'].should == '20091127'
         
     | 
| 
       76 
76 
     | 
    
         
             
                end
         
     | 
| 
       77 
77 
     | 
    
         | 
| 
      
 78 
     | 
    
         
            +
                it "should convert a.b.c session keys correctly" do
         
     | 
| 
      
 79 
     | 
    
         
            +
                  @args[:session] = { 'a.b.c' => 10 }
         
     | 
| 
      
 80 
     | 
    
         
            +
                  
         
     | 
| 
      
 81 
     | 
    
         
            +
                  @store.mole( @args )
         
     | 
| 
      
 82 
     | 
    
         
            +
                  @store.features.count.should == 1
         
     | 
| 
      
 83 
     | 
    
         
            +
                  @store.logs.count.should     == 1
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                  log = @store.logs.find_one()
         
     | 
| 
      
 86 
     | 
    
         
            +
                  log.should_not        be_nil
         
     | 
| 
      
 87 
     | 
    
         
            +
                  log['ses'].should     == { 'a_b_c' => 10 }      
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
                
         
     | 
| 
       78 
90 
     | 
    
         
             
                it "should mole a rails feature correctly" do
         
     | 
| 
       79 
91 
     | 
    
         
             
                  @args[:path]       = '/fred/blee/duh'
         
     | 
| 
       80 
92 
     | 
    
         
             
                  @args[:route_info] = { :controller => 'fred', :action => 'blee', :id => 'duh' }
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rackamole
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Fernand Galiana
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2010-01- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2010-01-08 00:00:00 -07:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     |