Sha256: a4eee8f92424cf1c24d48979405cdeb709565c37a6968b57b155c1c0ec7eb133

Contents?: true

Size: 950 Bytes

Versions: 39

Compression:

Stored size: 950 Bytes

Contents

module Trackman
  module Assets
    module Components
      module Diffable
        def diff local, remote 
          to_create = local.select{|a| remote.all? { |s| a.path != s.path } }.map{|a| a.to_remote }.to_a
          { 
            :create => to_create, 
            :update => remote.select{|a| local.any?{ |s| a.path == s.path && a.file_hash != s.file_hash }}.to_a,  
            :delete => define_deleted(local, remote) do |a| 
              to_create.any?{ |c| c.path.basename == a.path.basename }
            end
          }
        end

        private
          # will not delete an html for now. 
          # this behaviour is to avoid the removal of the default templates.
          def define_deleted local, remote
            to_delete = remote.select do |a| 
              local.all? { |s| s.path != a.path } 
            end

            to_delete.reject{|a| a.path.to_s =~ /.html$/ }.to_a
          end
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
trackman-0.3.4 lib/trackman/assets/components/diffable.rb
trackman-0.3.2 lib/trackman/assets/components/diffable.rb
trackman-0.3.1 lib/trackman/assets/components/diffable.rb
trackman-0.3.0 lib/trackman/assets/components/diffable.rb
trackman-0.2.90 lib/trackman/assets/components/diffable.rb
trackman-0.2.89 lib/trackman/assets/components/diffable.rb
trackman-0.2.88 lib/trackman/assets/components/diffable.rb
trackman-0.2.87 lib/trackman/assets/components/diffable.rb
trackman-0.2.86 lib/trackman/assets/components/diffable.rb
trackman-0.2.85 lib/trackman/assets/components/diffable.rb
trackman-0.2.84 lib/trackman/assets/components/diffable.rb
trackman-0.2.83 lib/trackman/assets/components/diffable.rb
trackman-0.2.82 lib/trackman/assets/components/diffable.rb
trackman-0.2.81 lib/trackman/assets/components/diffable.rb
trackman-0.2.80 lib/trackman/assets/components/diffable.rb
trackman-0.2.65 lib/trackman/assets/components/diffable.rb
trackman-0.2.64 lib/trackman/assets/components/diffable.rb
trackman-0.2.63 lib/trackman/assets/components/diffable.rb
trackman-0.2.62 lib/trackman/assets/components/diffable.rb
trackman-0.2.61 lib/trackman/assets/components/diffable.rb