lib/grit/submodule.rb in grit-1.1.1 vs lib/grit/submodule.rb in grit-2.0.0

- old
+ new

@@ -1,21 +1,21 @@ module Grit - + class Submodule attr_reader :id attr_reader :mode attr_reader :name - + # Create a Submodule containing just the specified attributes # +repo+ is the Repo # +atts+ is a Hash of instance variable data # # Returns Grit::Submodule (unbaked) def self.create(repo, atts) self.allocate.create_initialize(repo, atts) end - + # Initializer for Submodule.create # +repo+ is the Repo # +atts+ is a Hash of instance variable data # # Returns Grit::Submodule @@ -24,43 +24,43 @@ atts.each do |k, v| instance_variable_set("@#{k}".to_sym, v) end self end - + # The url of this submodule # +ref+ is the committish that should be used to look up the url # # Returns String def url(ref) config = self.class.config(@repo, ref) - + lookup = config.keys.inject({}) do |acc, key| id = config[key]['id'] acc[id] = config[key]['url'] acc end - + lookup[@id] end - + # The configuration information for the given +repo+ # +repo+ is the Repo # +ref+ is the committish (defaults to 'master') # # Returns a Hash of { <path:String> => { 'url' => <url:String>, 'id' => <id:String> } } # Returns {} if no .gitmodules file was found def self.config(repo, ref = "master") commit = repo.commit(ref) blob = commit.tree/'.gitmodules' return {} unless blob - + lines = blob.data.gsub(/\r\n?/, "\n" ).split("\n") - + config = {} current = nil - + lines.each do |line| if line =~ /^\[submodule "(.+)"\]$/ current = $1 config[current] = {} config[current]['id'] = (commit.tree/current).id @@ -69,20 +69,20 @@ config[current]['id'] = (commit.tree/$2).id if $1 == 'path' else # ignore end end - + config end - + def basename File.basename(name) - end - + end + # Pretty object inspection def inspect %Q{#<Grit::Submodule "#{@id}">} end end # Submodule - + end # Grit \ No newline at end of file