Sha256: ddb797bbecec8ff6f32e0d288d0f6a04281bc9de67479f3aadc45b0314d9aa26

Contents?: true

Size: 1.31 KB

Versions: 8

Compression:

Stored size: 1.31 KB

Contents

#
# Copyright (C) 2010-2016 dtk contributors
#
# This file is part of the dtk project.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
module DTK::Common; class GritAdapter; class FileAccess
  module StatusMixin
    def status()
      chdir_and_checkout do
        Status.new(@grit_repo.status)
      end
    end

    class Status < Hash
      def initialize(grit_status_obj)
        super()
        FileStates.each do |file_state|
          paths_with_file_state = grit_status_obj.send(file_state).map{|info|info[1].path} 
          self[file_state] = paths_with_file_state unless paths_with_file_state.empty?
        end
      end
      
      def any_changes?()
        !!FileStates.find{|fs|self[fs]}
      end
      
      FileStates = [:added,:deleted,:changed,:untracked]
    end
  end                                         
end; end; end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dtk-common-0.12.0 lib/grit_adapter/file_access/status.rb
dtk-common-0.11.0 lib/grit_adapter/file_access/status.rb
dtk-common-0.10.3 lib/grit_adapter/file_access/status.rb
dtk-common-0.10.1 lib/grit_adapter/file_access/status.rb
dtk-common-0.10.0 lib/grit_adapter/file_access/status.rb
dtk-common-0.9.1 lib/grit_adapter/file_access/status.rb
dtk-common-0.9.0 lib/grit_adapter/file_access/status.rb
dtk-common-0.8.0 lib/grit_adapter/file_access/status.rb