git_store 0.3.1 → 0.3.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/Rakefile +7 -22
 - data/git_store.gemspec +2 -2
 - data/lib/git_store.rb +2 -2
 - data/lib/git_store/pack.rb +14 -13
 - data/lib/git_store/tree.rb +6 -3
 - data/lib/git_store/user.rb +22 -13
 - data/test/commit_spec.rb +2 -2
 - data/test/git_store_spec.rb +4 -3
 - metadata +29 -33
 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,32 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'rake'
         
     | 
| 
       2 
     | 
    
         
            -
            require  
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            begin
         
     | 
| 
       5 
     | 
    
         
            -
              require 'spec/rake/spectask'
         
     | 
| 
       6 
     | 
    
         
            -
            rescue LoadError
         
     | 
| 
       7 
     | 
    
         
            -
              puts <<-EOS
         
     | 
| 
       8 
     | 
    
         
            -
            To use rspec for testing you must install the rspec gem:
         
     | 
| 
       9 
     | 
    
         
            -
                gem install rspec
         
     | 
| 
       10 
     | 
    
         
            -
            EOS
         
     | 
| 
       11 
     | 
    
         
            -
              exit(0)
         
     | 
| 
       12 
     | 
    
         
            -
            end
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rdoc/task'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rspec/core/rake_task'
         
     | 
| 
       13 
4 
     | 
    
         | 
| 
       14 
5 
     | 
    
         
             
            desc "Run all specs"
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
               
     | 
| 
       17 
     | 
    
         
            -
               
     | 
| 
       18 
     | 
    
         
            -
            end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
            desc "Print SpecDocs"
         
     | 
| 
       21 
     | 
    
         
            -
            Spec::Rake::SpecTask.new(:doc) do |t|
         
     | 
| 
       22 
     | 
    
         
            -
              t.spec_opts = ["--format", "specdoc"]
         
     | 
| 
       23 
     | 
    
         
            -
              t.spec_files = FileList['test/*_spec.rb']
         
     | 
| 
      
 6 
     | 
    
         
            +
            RSpec::Core::RakeTask.new(:spec) do |spec|
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.pattern = 'test/**/*_spec.rb'
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.rspec_opts = ['--backtrace']
         
     | 
| 
       24 
9 
     | 
    
         
             
            end
         
     | 
| 
       25 
10 
     | 
    
         | 
| 
       26 
11 
     | 
    
         
             
            desc "Generate the RDoc"
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
            RDoc::Task.new do |rdoc|
         
     | 
| 
       28 
13 
     | 
    
         
             
              files = ["README.md", "LICENSE", "lib/**/*.rb"]
         
     | 
| 
       29 
     | 
    
         
            -
              rdoc.rdoc_files. 
     | 
| 
      
 14 
     | 
    
         
            +
              rdoc.rdoc_files.include(files)
         
     | 
| 
       30 
15 
     | 
    
         
             
              rdoc.main = "README.md"
         
     | 
| 
       31 
16 
     | 
    
         
             
              rdoc.title = "Git Store - using Git as versioned data store in Ruby"
         
     | 
| 
       32 
17 
     | 
    
         
             
            end
         
     | 
    
        data/git_store.gemspec
    CHANGED
    
    | 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       2 
2 
     | 
    
         
             
              s.name = 'git_store'
         
     | 
| 
       3 
     | 
    
         
            -
              s.version = '0.3. 
     | 
| 
      
 3 
     | 
    
         
            +
              s.version = '0.3.3'
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.summary = 'a simple data store based on git'
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.author = 'Matthias Georgi'
         
     | 
| 
       6 
6 
     | 
    
         
             
              s.email = 'matti.georgi@gmail.com'
         
     | 
| 
       7 
     | 
    
         
            -
              s.homepage = 'http:// 
     | 
| 
      
 7 
     | 
    
         
            +
              s.homepage = 'http://georgi.github.com/git_store'
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.description = <<END
         
     | 
| 
       9 
9 
     | 
    
         
             
            GitStore implements a versioned data store based on the revision
         
     | 
| 
       10 
10 
     | 
    
         
             
            management system Git. You can store object hierarchies as nested
         
     | 
    
        data/lib/git_store.rb
    CHANGED
    
    | 
         @@ -198,10 +198,10 @@ class GitStore 
     | 
|
| 
       198 
198 
     | 
    
         
             
              # Example:
         
     | 
| 
       199 
199 
     | 
    
         
             
              #   store.transaction { store['a'] = 'b' }
         
     | 
| 
       200 
200 
     | 
    
         
             
              #
         
     | 
| 
       201 
     | 
    
         
            -
              def transaction(message = "")
         
     | 
| 
      
 201 
     | 
    
         
            +
              def transaction(message = "", author = User.from_config, committer = author)
         
     | 
| 
       202 
202 
     | 
    
         
             
                start_transaction
         
     | 
| 
       203 
203 
     | 
    
         
             
                result = yield
         
     | 
| 
       204 
     | 
    
         
            -
                commit message
         
     | 
| 
      
 204 
     | 
    
         
            +
                commit message, author, committer
         
     | 
| 
       205 
205 
     | 
    
         | 
| 
       206 
206 
     | 
    
         
             
                result
         
     | 
| 
       207 
207 
     | 
    
         
             
              rescue
         
     | 
    
        data/lib/git_store/pack.rb
    CHANGED
    
    | 
         @@ -293,13 +293,13 @@ class GitStore 
     | 
|
| 
       293 
293 
     | 
    
         
             
                  obj_offset = offset
         
     | 
| 
       294 
294 
     | 
    
         
             
                  packfile.seek(offset)
         
     | 
| 
       295 
295 
     | 
    
         | 
| 
       296 
     | 
    
         
            -
                  c = packfile.read(1)[0]
         
     | 
| 
      
 296 
     | 
    
         
            +
                  c = packfile.read(1)[0].ord
         
     | 
| 
       297 
297 
     | 
    
         
             
                  size = c & 0xf
         
     | 
| 
       298 
298 
     | 
    
         
             
                  type = (c >> 4) & 7
         
     | 
| 
       299 
299 
     | 
    
         
             
                  shift = 4
         
     | 
| 
       300 
300 
     | 
    
         
             
                  offset += 1
         
     | 
| 
       301 
301 
     | 
    
         
             
                  while c & 0x80 != 0
         
     | 
| 
       302 
     | 
    
         
            -
                    c = packfile.read(1)[0]
         
     | 
| 
      
 302 
     | 
    
         
            +
                    c = packfile.read(1)[0].ord
         
     | 
| 
       303 
303 
     | 
    
         
             
                    size |= ((c & 0x7f) << shift)
         
     | 
| 
       304 
304 
     | 
    
         
             
                    shift += 7
         
     | 
| 
       305 
305 
     | 
    
         
             
                    offset += 1
         
     | 
| 
         @@ -326,10 +326,10 @@ class GitStore 
     | 
|
| 
       326 
326 
     | 
    
         | 
| 
       327 
327 
     | 
    
         
             
                  if type == OBJ_OFS_DELTA
         
     | 
| 
       328 
328 
     | 
    
         
             
                    i = 0
         
     | 
| 
       329 
     | 
    
         
            -
                    c = data[i]
         
     | 
| 
      
 329 
     | 
    
         
            +
                    c = data[i].ord
         
     | 
| 
       330 
330 
     | 
    
         
             
                    base_offset = c & 0x7f
         
     | 
| 
       331 
331 
     | 
    
         
             
                    while c & 0x80 != 0
         
     | 
| 
       332 
     | 
    
         
            -
                      c = data[i += 1]
         
     | 
| 
      
 332 
     | 
    
         
            +
                      c = data[i += 1].ord
         
     | 
| 
       333 
333 
     | 
    
         
             
                      base_offset += 1
         
     | 
| 
       334 
334 
     | 
    
         
             
                      base_offset <<= 7
         
     | 
| 
       335 
335 
     | 
    
         
             
                      base_offset |= c & 0x7f
         
     | 
| 
         @@ -380,21 +380,21 @@ class GitStore 
     | 
|
| 
       380 
380 
     | 
    
         
             
                  dest_size, pos = patch_delta_header_size(delta, pos)
         
     | 
| 
       381 
381 
     | 
    
         
             
                  dest = ""
         
     | 
| 
       382 
382 
     | 
    
         
             
                  while pos < delta.size
         
     | 
| 
       383 
     | 
    
         
            -
                    c = delta[pos]
         
     | 
| 
      
 383 
     | 
    
         
            +
                    c = delta[pos].ord
         
     | 
| 
       384 
384 
     | 
    
         
             
                    pos += 1
         
     | 
| 
       385 
385 
     | 
    
         
             
                    if c & 0x80 != 0
         
     | 
| 
       386 
386 
     | 
    
         
             
                      pos -= 1
         
     | 
| 
       387 
387 
     | 
    
         
             
                      cp_off = cp_size = 0
         
     | 
| 
       388 
     | 
    
         
            -
                      cp_off = delta[pos += 1] if c & 0x01 != 0
         
     | 
| 
       389 
     | 
    
         
            -
                      cp_off |= delta[pos += 1] << 8 if c & 0x02 != 0
         
     | 
| 
       390 
     | 
    
         
            -
                      cp_off |= delta[pos += 1] << 16 if c & 0x04 != 0
         
     | 
| 
       391 
     | 
    
         
            -
                      cp_off |= delta[pos += 1] << 24 if c & 0x08 != 0
         
     | 
| 
       392 
     | 
    
         
            -
                      cp_size = delta[pos += 1] if c & 0x10 != 0
         
     | 
| 
       393 
     | 
    
         
            -
                      cp_size |= delta[pos += 1] << 8 if c & 0x20 != 0
         
     | 
| 
       394 
     | 
    
         
            -
                      cp_size |= delta[pos += 1] << 16 if c & 0x40 != 0
         
     | 
| 
      
 388 
     | 
    
         
            +
                      cp_off = delta[pos += 1].ord if c & 0x01 != 0
         
     | 
| 
      
 389 
     | 
    
         
            +
                      cp_off |= delta[pos += 1].ord << 8 if c & 0x02 != 0
         
     | 
| 
      
 390 
     | 
    
         
            +
                      cp_off |= delta[pos += 1].ord << 16 if c & 0x04 != 0
         
     | 
| 
      
 391 
     | 
    
         
            +
                      cp_off |= delta[pos += 1].ord << 24 if c & 0x08 != 0
         
     | 
| 
      
 392 
     | 
    
         
            +
                      cp_size = delta[pos += 1].ord if c & 0x10 != 0
         
     | 
| 
      
 393 
     | 
    
         
            +
                      cp_size |= delta[pos += 1].ord << 8 if c & 0x20 != 0
         
     | 
| 
      
 394 
     | 
    
         
            +
                      cp_size |= delta[pos += 1].ord << 16 if c & 0x40 != 0
         
     | 
| 
       395 
395 
     | 
    
         
             
                      cp_size = 0x10000 if cp_size == 0
         
     | 
| 
       396 
396 
     | 
    
         
             
                      pos += 1
         
     | 
| 
       397 
     | 
    
         
            -
                      dest += base[cp_off,cp_size]
         
     | 
| 
      
 397 
     | 
    
         
            +
                      dest += base[cp_off, cp_size]
         
     | 
| 
       398 
398 
     | 
    
         
             
                    elsif c != 0
         
     | 
| 
       399 
399 
     | 
    
         
             
                      dest += delta[pos,c]
         
     | 
| 
       400 
400 
     | 
    
         
             
                      pos += c
         
     | 
| 
         @@ -414,6 +414,7 @@ class GitStore 
     | 
|
| 
       414 
414 
     | 
    
         
             
                    if c == nil
         
     | 
| 
       415 
415 
     | 
    
         
             
                      raise PackFormatError, 'invalid delta header'
         
     | 
| 
       416 
416 
     | 
    
         
             
                    end
         
     | 
| 
      
 417 
     | 
    
         
            +
                    c = c.ord
         
     | 
| 
       417 
418 
     | 
    
         
             
                    pos += 1
         
     | 
| 
       418 
419 
     | 
    
         
             
                    size |= (c & 0x7f) << shift
         
     | 
| 
       419 
420 
     | 
    
         
             
                    shift += 7
         
     | 
    
        data/lib/git_store/tree.rb
    CHANGED
    
    | 
         @@ -74,12 +74,15 @@ class GitStore 
     | 
|
| 
       74 
74 
     | 
    
         | 
| 
       75 
75 
     | 
    
         
             
                # Write entry with specified name.
         
     | 
| 
       76 
76 
     | 
    
         
             
                def put(name, value)
         
     | 
| 
       77 
     | 
    
         
            -
                  @modified = true
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
77 
     | 
    
         
             
                  if value.is_a?(Tree)
         
     | 
| 
      
 78 
     | 
    
         
            +
                    @modified = true
         
     | 
| 
       80 
79 
     | 
    
         
             
                    @table[name] = value
         
     | 
| 
       81 
80 
     | 
    
         
             
                  else
         
     | 
| 
       82 
     | 
    
         
            -
                     
     | 
| 
      
 81 
     | 
    
         
            +
                    data = handler_for(name).write(value)
         
     | 
| 
      
 82 
     | 
    
         
            +
                    if @table[name].nil? or data != @table[name].data
         
     | 
| 
      
 83 
     | 
    
         
            +
                      @modified = true
         
     | 
| 
      
 84 
     | 
    
         
            +
                      @table[name] = Blob.new(store, nil, data)
         
     | 
| 
      
 85 
     | 
    
         
            +
                    end
         
     | 
| 
       83 
86 
     | 
    
         
             
                  end
         
     | 
| 
       84 
87 
     | 
    
         | 
| 
       85 
88 
     | 
    
         
             
                  value
         
     | 
    
        data/lib/git_store/user.rb
    CHANGED
    
    | 
         @@ -1,29 +1,38 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            class GitStore
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              class User
         
     | 
| 
       4 
     | 
    
         
            -
                attr_accessor :name, :email, :time
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                def initialize(name, email, time)
         
     | 
| 
       7 
     | 
    
         
            -
                  @name, @email, @time = name, email, time
         
     | 
| 
       8 
     | 
    
         
            -
                end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 2 
     | 
    
         
            +
              class User < Struct.new(:name, :email, :time)
         
     | 
| 
       10 
3 
     | 
    
         
             
                def dump
         
     | 
| 
       11 
4 
     | 
    
         
             
                  "#{ name } <#{email}> #{ time.to_i } #{ time.strftime('%z') }"
         
     | 
| 
       12 
5 
     | 
    
         
             
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
                alias to_s dump
         
     | 
| 
       13 
7 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                def  
     | 
| 
       15 
     | 
    
         
            -
                  name  
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 9 
     | 
    
         
            +
                  "#<GitStore::User name=%p email=%p time=%p>" % [name, email, time]
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
       17 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
                def self.from_config
         
     | 
| 
      
 13 
     | 
    
         
            +
                  name, email = config_get('user.name'), config_get('user.email')
         
     | 
| 
       18 
14 
     | 
    
         
             
                  new name, email, Time.now
         
     | 
| 
       19 
15 
     | 
    
         
             
                end
         
     | 
| 
       20 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                def self.config_get(key)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  value = `git config #{key}`.chomp
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  if $?.exitstatus == 0
         
     | 
| 
      
 21 
     | 
    
         
            +
                    return value unless value.empty?
         
     | 
| 
      
 22 
     | 
    
         
            +
                    raise RuntimError, "#{key} is empty"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  else
         
     | 
| 
      
 24 
     | 
    
         
            +
                    raise RuntimError, "No #{key} found in git config"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def self.config_user_email
         
     | 
| 
      
 29 
     | 
    
         
            +
                  email = `git config user.email`.chomp
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       21 
32 
     | 
    
         
             
                def self.parse(user)
         
     | 
| 
       22 
33 
     | 
    
         
             
                  if match = user.match(/(.*)<(.*)> (\d+) ([+-]\d+)/)
         
     | 
| 
       23 
34 
     | 
    
         
             
                    new match[1].strip, match[2].strip, Time.at(match[3].to_i + match[4].to_i * 3600)
         
     | 
| 
       24 
35 
     | 
    
         
             
                  end
         
     | 
| 
       25 
36 
     | 
    
         
             
                end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
37 
     | 
    
         
             
              end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
38 
     | 
    
         
             
            end
         
     | 
    
        data/test/commit_spec.rb
    CHANGED
    
    | 
         @@ -32,7 +32,7 @@ This is a message" 
     | 
|
| 
       32 
32 
     | 
    
         
             
              end
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
              it "should be readable by git binary" do
         
     | 
| 
       35 
     | 
    
         
            -
                time = Time. 
     | 
| 
      
 35 
     | 
    
         
            +
                time = Time.utc(2009, 4, 20)
         
     | 
| 
       36 
36 
     | 
    
         
             
                author = GitStore::User.new("hans", "hans@email.de", time)
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
                store['a'] = "Yay"
         
     | 
| 
         @@ -41,7 +41,7 @@ This is a message" 
     | 
|
| 
       41 
41 
     | 
    
         
             
                IO.popen("git log") do |io|
         
     | 
| 
       42 
42 
     | 
    
         
             
                  io.gets.should == "commit #{commit.id}\n"
         
     | 
| 
       43 
43 
     | 
    
         
             
                  io.gets.should == "Author: hans <hans@email.de>\n"
         
     | 
| 
       44 
     | 
    
         
            -
                  io.gets.should == "Date:   Mon Apr 20 00:00:00 2009  
     | 
| 
      
 44 
     | 
    
         
            +
                  io.gets.should == "Date:   Mon Apr 20 00:00:00 2009 +0000\n"
         
     | 
| 
       45 
45 
     | 
    
         
             
                  io.gets.should == "\n"
         
     | 
| 
       46 
46 
     | 
    
         
             
                  io.gets.should == "    Commit Message\n"
         
     | 
| 
       47 
47 
     | 
    
         
             
                end
         
     | 
    
        data/test/git_store_spec.rb
    CHANGED
    
    | 
         @@ -14,6 +14,8 @@ describe GitStore do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                Dir.chdir REPO
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
                `git init`
         
     | 
| 
      
 17 
     | 
    
         
            +
                `git config user.name 'User Name'`
         
     | 
| 
      
 18 
     | 
    
         
            +
                `git config user.email 'user.name@email.com'`
         
     | 
| 
       17 
19 
     | 
    
         
             
                @store = GitStore.new(REPO)
         
     | 
| 
       18 
20 
     | 
    
         
             
              end
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
         @@ -243,14 +245,13 @@ describe GitStore do 
     | 
|
| 
       243 
245 
     | 
    
         | 
| 
       244 
246 
     | 
    
         
             
                store.load
         
     | 
| 
       245 
247 
     | 
    
         | 
| 
       246 
     | 
    
         
            -
                user = GitStore::User.from_config
         
     | 
| 
       247 
248 
     | 
    
         
             
                id = File.read('.git/refs/tags/0.1')
         
     | 
| 
       248 
249 
     | 
    
         
             
                tag = store.get(id)
         
     | 
| 
       249 
250 
     | 
    
         | 
| 
       250 
251 
     | 
    
         
             
                tag.type.should == 'commit'
         
     | 
| 
       251 
252 
     | 
    
         
             
                tag.object.should == store.head
         
     | 
| 
       252 
     | 
    
         
            -
                tag.tagger.name.should ==  
     | 
| 
       253 
     | 
    
         
            -
                tag.tagger.email.should == user.email
         
     | 
| 
      
 253 
     | 
    
         
            +
                tag.tagger.name.should == 'User Name'
         
     | 
| 
      
 254 
     | 
    
         
            +
                tag.tagger.email.should == 'user.name@email.com'
         
     | 
| 
       254 
255 
     | 
    
         
             
                tag.message.should =~ /message/    
         
     | 
| 
       255 
256 
     | 
    
         
             
              end
         
     | 
| 
       256 
257 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,33 +1,33 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: git_store
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.3
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
       5 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
     | 
    
         
            -
            authors: 
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
       7 
8 
     | 
    
         
             
            - Matthias Georgi
         
     | 
| 
       8 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            date: 2010-02-07 00:00:00 +01:00
         
     | 
| 
       13 
     | 
    
         
            -
            default_executable: 
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-01-26 00:00:00.000000000 Z
         
     | 
| 
       14 
13 
     | 
    
         
             
            dependencies: []
         
     | 
| 
      
 14 
     | 
    
         
            +
            description: ! 'GitStore implements a versioned data store based on the revision
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            description: |
         
     | 
| 
       17 
     | 
    
         
            -
              GitStore implements a versioned data store based on the revision
         
     | 
| 
       18 
16 
     | 
    
         
             
              management system Git. You can store object hierarchies as nested
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       19 
18 
     | 
    
         
             
              hashes, which will be mapped on the directory structure of a git
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       20 
20 
     | 
    
         
             
              repository. GitStore checks out the repository into a in-memory
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       21 
22 
     | 
    
         
             
              representation, which can be modified and finally committed.
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
      
 24 
     | 
    
         
            +
            '
         
     | 
| 
       23 
25 
     | 
    
         
             
            email: matti.georgi@gmail.com
         
     | 
| 
       24 
26 
     | 
    
         
             
            executables: []
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
27 
     | 
    
         
             
            extensions: []
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            extra_rdoc_files: 
         
     | 
| 
      
 28 
     | 
    
         
            +
            extra_rdoc_files:
         
     | 
| 
       29 
29 
     | 
    
         
             
            - README.md
         
     | 
| 
       30 
     | 
    
         
            -
            files: 
     | 
| 
      
 30 
     | 
    
         
            +
            files:
         
     | 
| 
       31 
31 
     | 
    
         
             
            - .gitignore
         
     | 
| 
       32 
32 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       33 
33 
     | 
    
         
             
            - README.md
         
     | 
| 
         @@ -47,33 +47,29 @@ files: 
     | 
|
| 
       47 
47 
     | 
    
         
             
            - test/commit_spec.rb
         
     | 
| 
       48 
48 
     | 
    
         
             
            - test/git_store_spec.rb
         
     | 
| 
       49 
49 
     | 
    
         
             
            - test/tree_spec.rb
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
            homepage: http://ww.matthias-georgi.de/git_store
         
     | 
| 
      
 50 
     | 
    
         
            +
            homepage: http://georgi.github.com/git_store
         
     | 
| 
       52 
51 
     | 
    
         
             
            licenses: []
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
52 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       55 
53 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
            require_paths: 
         
     | 
| 
      
 54 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       58 
55 
     | 
    
         
             
            - lib
         
     | 
| 
       59 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
       60 
     | 
    
         
            -
               
     | 
| 
       61 
     | 
    
         
            -
               
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
| 
       66 
     | 
    
         
            -
               
     | 
| 
       67 
     | 
    
         
            -
               
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
      
 56 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 58 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 60 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 62 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 63 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 65 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 66 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 67 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       71 
68 
     | 
    
         
             
            requirements: []
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
69 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       74 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 70 
     | 
    
         
            +
            rubygems_version: 1.8.24
         
     | 
| 
       75 
71 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       76 
72 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       77 
73 
     | 
    
         
             
            summary: a simple data store based on git
         
     | 
| 
       78 
74 
     | 
    
         
             
            test_files: []
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
      
 75 
     | 
    
         
            +
            has_rdoc: true
         
     |