dotsync 0.1.5 → 0.1.6
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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +6 -2
 - data/Gemfile.lock +7 -5
 - data/dotsync.gemspec +5 -4
 - data/lib/dotsync/actions/concerns/mappings_transfer.rb +15 -0
 - data/lib/dotsync/actions/pull_action.rb +1 -0
 - data/lib/dotsync/actions/push_action.rb +1 -0
 - data/lib/dotsync/colors.rb +37 -0
 - data/lib/dotsync/{actions/config → config}/pull_action_config.rb +1 -1
 - data/lib/dotsync/{actions/config → config}/push_action_config.rb +1 -1
 - data/lib/dotsync/errors.rb +1 -0
 - data/lib/dotsync/icons.rb +1 -1
 - data/lib/dotsync/models/diff.rb +18 -0
 - data/lib/dotsync/{actions/config/mapping_entry.rb → models/mapping.rb} +2 -2
 - data/lib/dotsync/runner.rb +4 -0
 - data/lib/dotsync/utils/directory_differ.rb +111 -0
 - data/lib/dotsync/{file_transfer.rb → utils/file_transfer.rb} +12 -5
 - data/lib/dotsync/version.rb +1 -1
 - data/lib/dotsync.rb +20 -18
 - metadata +43 -26
 - /data/lib/dotsync/{actions/config → config}/base_config.rb +0 -0
 - /data/lib/dotsync/{actions/config → config}/watch_action_config.rb +0 -0
 - /data/lib/dotsync/{actions/config → config}/xdg_base_directory_spec.rb +0 -0
 - /data/lib/dotsync/{logger.rb → utils/logger.rb} +0 -0
 - /data/lib/dotsync/{path_utils.rb → utils/path_utils.rb} +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 9b671284dfcdd29739df951c9656b8a0a9867619b57175ac62c5eb6f45137ed0
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 26ee6f58257a4a556ea2a7f1eedc06660743fd47e1e073f1977b0a591a2db7f3
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a0206e946ca9040ed97d5385c33fea54b0080e824fbe5c3844adac5bc37cdf452e75efd6ebc40ac1f40d66d1bfa52e9f60ec962ab5a247dda0a8acdea15c2235
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2902acbf3de208132ced6cde1b22f4f3a5a72eacacd6c9c048d3edbf8f20ebf636bf5e7549aec207aba07c642d0a54cf55a6684191a6cb259c66fd31878e32bc
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,8 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                dotsync (0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
                dotsync (0.1.6)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  fileutils (~> 1.7.3)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  find (~> 0.2.0)
         
     | 
| 
       6 
7 
     | 
    
         
             
                  listen (~> 3.9.0)
         
     | 
| 
       7 
8 
     | 
    
         
             
                  logger (~> 1.7.0)
         
     | 
| 
       8 
9 
     | 
    
         
             
                  ostruct (~> 0.6.3)
         
     | 
| 
         @@ -26,6 +27,7 @@ GEM 
     | 
|
| 
       26 
27 
     | 
    
         
             
                ffi (1.17.2-x86_64-linux-gnu)
         
     | 
| 
       27 
28 
     | 
    
         
             
                ffi (1.17.2-x86_64-linux-musl)
         
     | 
| 
       28 
29 
     | 
    
         
             
                fileutils (1.7.3)
         
     | 
| 
      
 30 
     | 
    
         
            +
                find (0.2.0)
         
     | 
| 
       29 
31 
     | 
    
         
             
                json (2.15.2)
         
     | 
| 
       30 
32 
     | 
    
         
             
                language_server-protocol (3.17.0.5)
         
     | 
| 
       31 
33 
     | 
    
         
             
                lint_roller (1.1.0)
         
     | 
| 
         @@ -119,10 +121,10 @@ DEPENDENCIES 
     | 
|
| 
       119 
121 
     | 
    
         
             
              rake (~> 13.3.0)
         
     | 
| 
       120 
122 
     | 
    
         
             
              rspec (~> 3.13.1)
         
     | 
| 
       121 
123 
     | 
    
         
             
              rubocop (~> 1.81.1)
         
     | 
| 
       122 
     | 
    
         
            -
              rubocop-md
         
     | 
| 
       123 
     | 
    
         
            -
              rubocop-performance
         
     | 
| 
       124 
     | 
    
         
            -
              rubocop-rake
         
     | 
| 
       125 
     | 
    
         
            -
              rubocop-rspec
         
     | 
| 
      
 124 
     | 
    
         
            +
              rubocop-md (~> 2.0.3)
         
     | 
| 
      
 125 
     | 
    
         
            +
              rubocop-performance (~> 1.26.1)
         
     | 
| 
      
 126 
     | 
    
         
            +
              rubocop-rake (~> 0.7.1)
         
     | 
| 
      
 127 
     | 
    
         
            +
              rubocop-rspec (~> 3.7.0)
         
     | 
| 
       126 
128 
     | 
    
         
             
              ruby-lsp (~> 0.26.1)
         
     | 
| 
       127 
129 
     | 
    
         
             
              timecop (~> 0.9.10)
         
     | 
| 
       128 
130 
     | 
    
         | 
    
        data/dotsync.gemspec
    CHANGED
    
    | 
         @@ -32,13 +32,14 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       32 
32 
     | 
    
         
             
              spec.add_dependency "fileutils", "~> 1.7.3"
         
     | 
| 
       33 
33 
     | 
    
         
             
              spec.add_dependency "logger", "~> 1.7.0" # No longer part of default gems from Ruby 3.5
         
     | 
| 
       34 
34 
     | 
    
         
             
              spec.add_dependency "ostruct", "~> 0.6.3" # No longer part of default gems from Ruby 3.5
         
     | 
| 
      
 35 
     | 
    
         
            +
              spec.add_dependency "find", "~> 0.2.0"
         
     | 
| 
       35 
36 
     | 
    
         
             
              spec.add_development_dependency "rake", "~> 13.3.0"
         
     | 
| 
       36 
37 
     | 
    
         
             
              spec.add_development_dependency "rspec", "~> 3.13.1"
         
     | 
| 
       37 
38 
     | 
    
         
             
              spec.add_development_dependency "rubocop", "~> 1.81.1"
         
     | 
| 
       38 
     | 
    
         
            -
              spec.add_development_dependency "rubocop-rspec"
         
     | 
| 
       39 
     | 
    
         
            -
              spec.add_development_dependency "rubocop-performance"
         
     | 
| 
       40 
     | 
    
         
            -
              spec.add_development_dependency "rubocop-rake"
         
     | 
| 
       41 
     | 
    
         
            -
              spec.add_development_dependency "rubocop-md"
         
     | 
| 
      
 39 
     | 
    
         
            +
              spec.add_development_dependency "rubocop-rspec", "~> 3.7.0"
         
     | 
| 
      
 40 
     | 
    
         
            +
              spec.add_development_dependency "rubocop-performance", "~> 1.26.1"
         
     | 
| 
      
 41 
     | 
    
         
            +
              spec.add_development_dependency "rubocop-rake", "~> 0.7.1"
         
     | 
| 
      
 42 
     | 
    
         
            +
              spec.add_development_dependency "rubocop-md", "~> 2.0.3"
         
     | 
| 
       42 
43 
     | 
    
         
             
              spec.add_development_dependency "timecop", "~> 0.9.10"
         
     | 
| 
       43 
44 
     | 
    
         
             
              spec.add_development_dependency "ruby-lsp", "~> 0.26.1"
         
     | 
| 
       44 
45 
     | 
    
         
             
            end
         
     | 
| 
         @@ -14,6 +14,21 @@ module Dotsync 
     | 
|
| 
       14 
14 
     | 
    
         
             
                  end
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                def show_changes
         
     | 
| 
      
 18 
     | 
    
         
            +
                  diffs = valid_mappings.map do |mapping|
         
     | 
| 
      
 19 
     | 
    
         
            +
                    Dotsync::DirectoryDiffer.new(mapping).diff
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                  diffs.flat_map(&:additions).sort.each do |path|
         
     | 
| 
      
 22 
     | 
    
         
            +
                    logger.log("  #{path}", color: Dotsync::Colors.diff_additions)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  diffs.flat_map(&:modifications).sort.each do |path|
         
     | 
| 
      
 25 
     | 
    
         
            +
                    logger.log("  #{path}", color: Dotsync::Colors.diff_modifications)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                  diffs.flat_map(&:removals).sort.each do |path|
         
     | 
| 
      
 28 
     | 
    
         
            +
                    logger.log("  #{path}", color: Dotsync::Colors.diff_removals)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       17 
32 
     | 
    
         
             
                def transfer_mappings
         
     | 
| 
       18 
33 
     | 
    
         
             
                  valid_mappings.each do |mapping|
         
     | 
| 
       19 
34 
     | 
    
         
             
                    Dotsync::FileTransfer.new(mapping).transfer
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Dotsync
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Colors
         
     | 
| 
      
 5 
     | 
    
         
            +
                DEFAULT_DIFF_ADDITIONS = 34
         
     | 
| 
      
 6 
     | 
    
         
            +
                DEFAULT_DIFF_MODIFICATIONS = 36
         
     | 
| 
      
 7 
     | 
    
         
            +
                DEFAULT_DIFF_REMOVALS = 88
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                @custom_colors = {}
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def self.load_custom_colors(config)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @custom_colors = {
         
     | 
| 
      
 13 
     | 
    
         
            +
                    diff_additions: config.dig("colors", "diff_additions") || DEFAULT_FORCE,
         
     | 
| 
      
 14 
     | 
    
         
            +
                    diff_modifications: config.dig("colors", "diff_modifications") || DEFAULT_IGNORE,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    diff_removals: config.dig("colors", "diff_removals") || DEFAULT_INVALID
         
     | 
| 
      
 16 
     | 
    
         
            +
                  }
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def self.diff_additions
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @custom_colors[:additions] || DEFAULT_DIFF_ADDITIONS
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def self.diff_modifications
         
     | 
| 
      
 24 
     | 
    
         
            +
                  @custom_colors[:modifications] || DEFAULT_DIFF_MODIFICATIONS
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                def self.diff_removals
         
     | 
| 
      
 28 
     | 
    
         
            +
                  @custom_colors[:removals] || DEFAULT_DIFF_REMOVALS
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                MAPPINGS = {
         
     | 
| 
      
 32 
     | 
    
         
            +
                  diff_additions: -> { diff_additions },
         
     | 
| 
      
 33 
     | 
    
         
            +
                  diff_modifications: -> { diff_modifications },
         
     | 
| 
      
 34 
     | 
    
         
            +
                  diff_removals: -> { diff_removals }
         
     | 
| 
      
 35 
     | 
    
         
            +
                }
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,7 +4,7 @@ module Dotsync 
     | 
|
| 
       4 
4 
     | 
    
         
             
              class PushActionConfig < BaseConfig
         
     | 
| 
       5 
5 
     | 
    
         
             
                def mappings
         
     | 
| 
       6 
6 
     | 
    
         
             
                  mappings_list = section["mappings"]
         
     | 
| 
       7 
     | 
    
         
            -
                  Array(mappings_list).map { |mapping| Dotsync:: 
     | 
| 
      
 7 
     | 
    
         
            +
                  Array(mappings_list).map { |mapping| Dotsync::Mapping.new(mapping) }
         
     | 
| 
       8 
8 
     | 
    
         
             
                end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                private
         
     | 
    
        data/lib/dotsync/errors.rb
    CHANGED
    
    
    
        data/lib/dotsync/icons.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Dotsync
         
     | 
| 
      
 4 
     | 
    
         
            +
              # Represents the differences between two directories
         
     | 
| 
      
 5 
     | 
    
         
            +
              class Diff
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_reader :additions, :modifications, :removals
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def initialize(additions: [], modifications: [], removals: [])
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @additions = additions
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @modifications = modifications
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @removals = removals
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def empty?
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @additions.empty? && @modifications.empty? && @removals.empty?
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Dotsync
         
     | 
| 
       4 
     | 
    
         
            -
              class  
     | 
| 
      
 4 
     | 
    
         
            +
              class Mapping
         
     | 
| 
       5 
5 
     | 
    
         
             
                include Dotsync::PathUtils
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
                attr_reader :original_src, :original_dest, :original_ignores
         
     | 
| 
         @@ -66,7 +66,7 @@ module Dotsync 
     | 
|
| 
       66 
66 
     | 
    
         
             
                    path
         
     | 
| 
       67 
67 
     | 
    
         
             
                  end
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  Dotsync:: 
     | 
| 
      
 69 
     | 
    
         
            +
                  Dotsync::Mapping.new(
         
     | 
| 
       70 
70 
     | 
    
         
             
                    "src" => File.join(@original_src, relative_path),
         
     | 
| 
       71 
71 
     | 
    
         
             
                    "dest" => File.join(@original_dest, relative_path),
         
     | 
| 
       72 
72 
     | 
    
         
             
                    "force" => @force,
         
     | 
    
        data/lib/dotsync/runner.rb
    CHANGED
    
    | 
         @@ -17,7 +17,11 @@ module Dotsync 
     | 
|
| 
       17 
17 
     | 
    
         
             
                      config_class = Dotsync.const_get("#{camelize(action_name.to_s)}ActionConfig")
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                      config = config_class.new(Dotsync.config_path)
         
     | 
| 
      
 20 
     | 
    
         
            +
                      Dotsync::Icons.load_custom_icons(config)
         
     | 
| 
      
 21 
     | 
    
         
            +
                      Dotsync::Colors.load_custom_colors(config)
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       20 
23 
     | 
    
         
             
                      action = action_class.new(config, @logger)
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       21 
25 
     | 
    
         
             
                      action.execute
         
     | 
| 
       22 
26 
     | 
    
         
             
                    rescue ConfigError => e
         
     | 
| 
       23 
27 
     | 
    
         
             
                      @logger.error("[#{action_name}] config error:")
         
     | 
| 
         @@ -0,0 +1,111 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Dotsync
         
     | 
| 
      
 4 
     | 
    
         
            +
              # Usage:
         
     | 
| 
      
 5 
     | 
    
         
            +
              # differ = DirectoryDiffer.new("/path/to/src", "/path/to/dest")
         
     | 
| 
      
 6 
     | 
    
         
            +
              # differences = differ.diff
         
     | 
| 
      
 7 
     | 
    
         
            +
              class DirectoryDiffer
         
     | 
| 
      
 8 
     | 
    
         
            +
                attr_reader :src, :dest
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                # Initializes a new DirectoryDiffer.
         
     | 
| 
      
 11 
     | 
    
         
            +
                #
         
     | 
| 
      
 12 
     | 
    
         
            +
                # @param mapping [Dotsync::Mapping] the mapping object containing source, destination, force, and ignore details
         
     | 
| 
      
 13 
     | 
    
         
            +
                # @option mapping [String] :src the source directory path
         
     | 
| 
      
 14 
     | 
    
         
            +
                # @option mapping [String] :dest the destination directory path
         
     | 
| 
      
 15 
     | 
    
         
            +
                # @option mapping [Boolean] :force? optional flag to force actions
         
     | 
| 
      
 16 
     | 
    
         
            +
                # @option mapping [Array<String>] :ignores optional list of files/directories to ignore
         
     | 
| 
      
 17 
     | 
    
         
            +
                def initialize(mapping)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @src = mapping.src
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @dest = mapping.dest
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @force = mapping.force?
         
     | 
| 
      
 21 
     | 
    
         
            +
                  @ignores = mapping.original_ignores || []
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def diff
         
     | 
| 
      
 25 
     | 
    
         
            +
                  additions = []
         
     | 
| 
      
 26 
     | 
    
         
            +
                  modifications = []
         
     | 
| 
      
 27 
     | 
    
         
            +
                  removals = []
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  Find.find(src) do |src_path|
         
     | 
| 
      
 30 
     | 
    
         
            +
                    rel_path = src_path.sub(/^#{Regexp.escape(src)}\/?/, "")
         
     | 
| 
      
 31 
     | 
    
         
            +
                    next if rel_path.empty?
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    dest_path = File.join(dest, rel_path)
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    if !File.exist?(dest_path)
         
     | 
| 
      
 36 
     | 
    
         
            +
                      additions << rel_path
         
     | 
| 
      
 37 
     | 
    
         
            +
                    elsif File.file?(src_path) && File.file?(dest_path)
         
     | 
| 
      
 38 
     | 
    
         
            +
                      if File.size(src_path) != File.size(dest_path)
         
     | 
| 
      
 39 
     | 
    
         
            +
                        modifications << rel_path
         
     | 
| 
      
 40 
     | 
    
         
            +
                      end
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  if @force
         
     | 
| 
      
 45 
     | 
    
         
            +
                    Find.find(dest) do |dest_path|
         
     | 
| 
      
 46 
     | 
    
         
            +
                      rel_path = dest_path.sub(/^#{Regexp.escape(dest)}\/?/, "")
         
     | 
| 
      
 47 
     | 
    
         
            +
                      next if rel_path.empty?
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                      src_path = File.join(src, rel_path)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                      if !File.exist?(src_path)
         
     | 
| 
      
 52 
     | 
    
         
            +
                        removals << rel_path
         
     | 
| 
      
 53 
     | 
    
         
            +
                      end
         
     | 
| 
      
 54 
     | 
    
         
            +
                    end
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  if @ignores.any?
         
     | 
| 
      
 58 
     | 
    
         
            +
                    additions = filter_paths(additions, @ignores)
         
     | 
| 
      
 59 
     | 
    
         
            +
                    modifications = filter_paths(modifications, @ignores)
         
     | 
| 
      
 60 
     | 
    
         
            +
                    removals = filter_paths(removals, @ignores)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  Dotsync::Diff.new(additions: additions, modifications: modifications, removals: removals)
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                private
         
     | 
| 
      
 67 
     | 
    
         
            +
                  def collect_src_diffs
         
     | 
| 
      
 68 
     | 
    
         
            +
                    diffs = []
         
     | 
| 
      
 69 
     | 
    
         
            +
                    Find.find(src) do |src_path|
         
     | 
| 
      
 70 
     | 
    
         
            +
                      rel_path = src_path.sub(/^#{Regexp.escape(src)}\/?/, "")
         
     | 
| 
      
 71 
     | 
    
         
            +
                      next if rel_path.empty?
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                      dest_path = File.join(dest, rel_path)
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                      if !File.exist?(dest_path)
         
     | 
| 
      
 76 
     | 
    
         
            +
                        diffs << rel_path
         
     | 
| 
      
 77 
     | 
    
         
            +
                      elsif File.directory?(src_path) && !File.directory?(dest_path)
         
     | 
| 
      
 78 
     | 
    
         
            +
                        diffs << rel_path
         
     | 
| 
      
 79 
     | 
    
         
            +
                      elsif File.file?(src_path) && !File.file?(dest_path)
         
     | 
| 
      
 80 
     | 
    
         
            +
                        diffs << rel_path
         
     | 
| 
      
 81 
     | 
    
         
            +
                      elsif File.file?(src_path) && File.file?(dest_path)
         
     | 
| 
      
 82 
     | 
    
         
            +
                        if File.size(src_path) != File.size(dest_path)
         
     | 
| 
      
 83 
     | 
    
         
            +
                          diffs << rel_path
         
     | 
| 
      
 84 
     | 
    
         
            +
                        end
         
     | 
| 
      
 85 
     | 
    
         
            +
                      end
         
     | 
| 
      
 86 
     | 
    
         
            +
                    end
         
     | 
| 
      
 87 
     | 
    
         
            +
                    diffs
         
     | 
| 
      
 88 
     | 
    
         
            +
                  end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                  def collect_dest_diffs
         
     | 
| 
      
 91 
     | 
    
         
            +
                    diffs = []
         
     | 
| 
      
 92 
     | 
    
         
            +
                    Find.find(dest) do |dest_path|
         
     | 
| 
      
 93 
     | 
    
         
            +
                      rel_path = dest_path.sub(/^#{Regexp.escape(dest)}\/?/, "")
         
     | 
| 
      
 94 
     | 
    
         
            +
                      next if rel_path.empty?
         
     | 
| 
      
 95 
     | 
    
         
            +
                      src_path = File.join(src, rel_path)
         
     | 
| 
      
 96 
     | 
    
         
            +
                      if !File.exist?(src_path)
         
     | 
| 
      
 97 
     | 
    
         
            +
                        diffs << rel_path
         
     | 
| 
      
 98 
     | 
    
         
            +
                      end
         
     | 
| 
      
 99 
     | 
    
         
            +
                    end
         
     | 
| 
      
 100 
     | 
    
         
            +
                    diffs
         
     | 
| 
      
 101 
     | 
    
         
            +
                  end
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                  def filter_paths(all_paths, ignore_paths)
         
     | 
| 
      
 104 
     | 
    
         
            +
                    all_paths.reject do |path|
         
     | 
| 
      
 105 
     | 
    
         
            +
                      ignore_paths.any? do |ignore|
         
     | 
| 
      
 106 
     | 
    
         
            +
                        path == ignore || path.start_with?("#{ignore}/")
         
     | 
| 
      
 107 
     | 
    
         
            +
                      end
         
     | 
| 
      
 108 
     | 
    
         
            +
                    end
         
     | 
| 
      
 109 
     | 
    
         
            +
                  end
         
     | 
| 
      
 110 
     | 
    
         
            +
              end
         
     | 
| 
      
 111 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,11 +4,18 @@ module Dotsync 
     | 
|
| 
       4 
4 
     | 
    
         
             
              class FileTransfer
         
     | 
| 
       5 
5 
     | 
    
         
             
                attr_reader :ignores
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
                # Initializes a new FileTransfer instance
         
     | 
| 
      
 8 
     | 
    
         
            +
                #
         
     | 
| 
      
 9 
     | 
    
         
            +
                # @param mapping [Dotsync::Mapping] the mapping object containing source, destination, force, and ignore details
         
     | 
| 
      
 10 
     | 
    
         
            +
                # @option mapping [String] :src the source directory path
         
     | 
| 
      
 11 
     | 
    
         
            +
                # @option mapping [String] :dest the destination directory path
         
     | 
| 
      
 12 
     | 
    
         
            +
                # @option mapping [Boolean] :force? optional flag to force actions
         
     | 
| 
      
 13 
     | 
    
         
            +
                # @option mapping [Array<String>] :ignores optional list of files/directories to ignore
         
     | 
| 
      
 14 
     | 
    
         
            +
                def initialize(mapping)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @src = mapping.src
         
     | 
| 
      
 16 
     | 
    
         
            +
                  @dest = mapping.dest
         
     | 
| 
      
 17 
     | 
    
         
            +
                  @force = mapping.force?
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @ignores = mapping.ignores || []
         
     | 
| 
       12 
19 
     | 
    
         
             
                end
         
     | 
| 
       13 
20 
     | 
    
         | 
| 
       14 
21 
     | 
    
         
             
                def transfer
         
     | 
    
        data/lib/dotsync/version.rb
    CHANGED
    
    
    
        data/lib/dotsync.rb
    CHANGED
    
    | 
         @@ -7,25 +7,26 @@ require "toml-rb" 
     | 
|
| 
       7 
7 
     | 
    
         
             
            require "logger"
         
     | 
| 
       8 
8 
     | 
    
         
             
            require "forwardable" # Ruby standard library
         
     | 
| 
       9 
9 
     | 
    
         
             
            require "ostruct"
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            # Errors
         
     | 
| 
       12 
     | 
    
         
            -
            require_relative "dotsync/errors"
         
     | 
| 
      
 10 
     | 
    
         
            +
            require "find"
         
     | 
| 
       13 
11 
     | 
    
         | 
| 
       14 
12 
     | 
    
         
             
            # Utils
         
     | 
| 
       15 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       16 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       17 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       18 
     | 
    
         
            -
            require_relative "dotsync/path_utils"
         
     | 
| 
      
 13 
     | 
    
         
            +
            require_relative "dotsync/utils/logger"
         
     | 
| 
      
 14 
     | 
    
         
            +
            require_relative "dotsync/utils/file_transfer"
         
     | 
| 
      
 15 
     | 
    
         
            +
            require_relative "dotsync/utils/directory_differ"
         
     | 
| 
      
 16 
     | 
    
         
            +
            require_relative "dotsync/utils/path_utils"
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            # Models
         
     | 
| 
      
 19 
     | 
    
         
            +
            require_relative "dotsync/models/mapping"
         
     | 
| 
      
 20 
     | 
    
         
            +
            require_relative "dotsync/models/diff"
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
22 
     | 
    
         
             
            # Config
         
     | 
| 
       21 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       22 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       23 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       24 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       25 
     | 
    
         
            -
            require_relative "dotsync/ 
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            # Concerns
         
     | 
| 
      
 23 
     | 
    
         
            +
            require_relative "dotsync/config/xdg_base_directory_spec"
         
     | 
| 
      
 24 
     | 
    
         
            +
            require_relative "dotsync/config/base_config"
         
     | 
| 
      
 25 
     | 
    
         
            +
            require_relative "dotsync/config/pull_action_config"
         
     | 
| 
      
 26 
     | 
    
         
            +
            require_relative "dotsync/config/push_action_config"
         
     | 
| 
      
 27 
     | 
    
         
            +
            require_relative "dotsync/config/watch_action_config"
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            # Actions Concerns
         
     | 
| 
       29 
30 
     | 
    
         
             
            require_relative "dotsync/actions/concerns/mappings_transfer"
         
     | 
| 
       30 
31 
     | 
    
         | 
| 
       31 
32 
     | 
    
         
             
            # Actions
         
     | 
| 
         @@ -34,13 +35,14 @@ require_relative "dotsync/actions/pull_action" 
     | 
|
| 
       34 
35 
     | 
    
         
             
            require_relative "dotsync/actions/push_action"
         
     | 
| 
       35 
36 
     | 
    
         
             
            require_relative "dotsync/actions/watch_action"
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
            # Base classes
         
     | 
| 
      
 39 
     | 
    
         
            +
            require_relative "dotsync/errors"
         
     | 
| 
      
 40 
     | 
    
         
            +
            require_relative "dotsync/icons"
         
     | 
| 
      
 41 
     | 
    
         
            +
            require_relative "dotsync/colors"
         
     | 
| 
       37 
42 
     | 
    
         
             
            require_relative "dotsync/runner"
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
43 
     | 
    
         
             
            require_relative "dotsync/version"
         
     | 
| 
       40 
44 
     | 
    
         | 
| 
       41 
45 
     | 
    
         
             
            module Dotsync
         
     | 
| 
       42 
     | 
    
         
            -
              class Error < StandardError; end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
46 
     | 
    
         
             
              class << self
         
     | 
| 
       45 
47 
     | 
    
         
             
                attr_writer :config_path
         
     | 
| 
       46 
48 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dotsync
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - David Sáenz
         
     | 
| 
         @@ -80,6 +80,20 @@ dependencies: 
     | 
|
| 
       80 
80 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       81 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
82 
     | 
    
         
             
                    version: 0.6.3
         
     | 
| 
      
 83 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 84 
     | 
    
         
            +
              name: find
         
     | 
| 
      
 85 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 86 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 87 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 88 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 89 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
      
 90 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 91 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 92 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 93 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 94 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 95 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 96 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
       83 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
98 
     | 
    
         
             
              name: rake
         
     | 
| 
       85 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -126,58 +140,58 @@ dependencies: 
     | 
|
| 
       126 
140 
     | 
    
         
             
              name: rubocop-rspec
         
     | 
| 
       127 
141 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
142 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
     | 
    
         
            -
                - - " 
     | 
| 
      
 143 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       130 
144 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version:  
     | 
| 
      
 145 
     | 
    
         
            +
                    version: 3.7.0
         
     | 
| 
       132 
146 
     | 
    
         
             
              type: :development
         
     | 
| 
       133 
147 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
148 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
149 
     | 
    
         
             
                requirements:
         
     | 
| 
       136 
     | 
    
         
            -
                - - " 
     | 
| 
      
 150 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       137 
151 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version:  
     | 
| 
      
 152 
     | 
    
         
            +
                    version: 3.7.0
         
     | 
| 
       139 
153 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
154 
     | 
    
         
             
              name: rubocop-performance
         
     | 
| 
       141 
155 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
156 
     | 
    
         
             
                requirements:
         
     | 
| 
       143 
     | 
    
         
            -
                - - " 
     | 
| 
      
 157 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       144 
158 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version:  
     | 
| 
      
 159 
     | 
    
         
            +
                    version: 1.26.1
         
     | 
| 
       146 
160 
     | 
    
         
             
              type: :development
         
     | 
| 
       147 
161 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       148 
162 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
163 
     | 
    
         
             
                requirements:
         
     | 
| 
       150 
     | 
    
         
            -
                - - " 
     | 
| 
      
 164 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       151 
165 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version:  
     | 
| 
      
 166 
     | 
    
         
            +
                    version: 1.26.1
         
     | 
| 
       153 
167 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       154 
168 
     | 
    
         
             
              name: rubocop-rake
         
     | 
| 
       155 
169 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       156 
170 
     | 
    
         
             
                requirements:
         
     | 
| 
       157 
     | 
    
         
            -
                - - " 
     | 
| 
      
 171 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       158 
172 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       159 
     | 
    
         
            -
                    version:  
     | 
| 
      
 173 
     | 
    
         
            +
                    version: 0.7.1
         
     | 
| 
       160 
174 
     | 
    
         
             
              type: :development
         
     | 
| 
       161 
175 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       162 
176 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       163 
177 
     | 
    
         
             
                requirements:
         
     | 
| 
       164 
     | 
    
         
            -
                - - " 
     | 
| 
      
 178 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       165 
179 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       166 
     | 
    
         
            -
                    version:  
     | 
| 
      
 180 
     | 
    
         
            +
                    version: 0.7.1
         
     | 
| 
       167 
181 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       168 
182 
     | 
    
         
             
              name: rubocop-md
         
     | 
| 
       169 
183 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       170 
184 
     | 
    
         
             
                requirements:
         
     | 
| 
       171 
     | 
    
         
            -
                - - " 
     | 
| 
      
 185 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       172 
186 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       173 
     | 
    
         
            -
                    version:  
     | 
| 
      
 187 
     | 
    
         
            +
                    version: 2.0.3
         
     | 
| 
       174 
188 
     | 
    
         
             
              type: :development
         
     | 
| 
       175 
189 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       176 
190 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       177 
191 
     | 
    
         
             
                requirements:
         
     | 
| 
       178 
     | 
    
         
            -
                - - " 
     | 
| 
      
 192 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       179 
193 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       180 
     | 
    
         
            -
                    version:  
     | 
| 
      
 194 
     | 
    
         
            +
                    version: 2.0.3
         
     | 
| 
       181 
195 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       182 
196 
     | 
    
         
             
              name: timecop
         
     | 
| 
       183 
197 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -237,22 +251,25 @@ files: 
     | 
|
| 
       237 
251 
     | 
    
         
             
            - lib/dotsync.rb
         
     | 
| 
       238 
252 
     | 
    
         
             
            - lib/dotsync/actions/base_action.rb
         
     | 
| 
       239 
253 
     | 
    
         
             
            - lib/dotsync/actions/concerns/mappings_transfer.rb
         
     | 
| 
       240 
     | 
    
         
            -
            - lib/dotsync/actions/config/base_config.rb
         
     | 
| 
       241 
     | 
    
         
            -
            - lib/dotsync/actions/config/mapping_entry.rb
         
     | 
| 
       242 
     | 
    
         
            -
            - lib/dotsync/actions/config/pull_action_config.rb
         
     | 
| 
       243 
     | 
    
         
            -
            - lib/dotsync/actions/config/push_action_config.rb
         
     | 
| 
       244 
     | 
    
         
            -
            - lib/dotsync/actions/config/watch_action_config.rb
         
     | 
| 
       245 
     | 
    
         
            -
            - lib/dotsync/actions/config/xdg_base_directory_spec.rb
         
     | 
| 
       246 
254 
     | 
    
         
             
            - lib/dotsync/actions/pull_action.rb
         
     | 
| 
       247 
255 
     | 
    
         
             
            - lib/dotsync/actions/push_action.rb
         
     | 
| 
       248 
256 
     | 
    
         
             
            - lib/dotsync/actions/watch_action.rb
         
     | 
| 
      
 257 
     | 
    
         
            +
            - lib/dotsync/colors.rb
         
     | 
| 
      
 258 
     | 
    
         
            +
            - lib/dotsync/config/base_config.rb
         
     | 
| 
      
 259 
     | 
    
         
            +
            - lib/dotsync/config/pull_action_config.rb
         
     | 
| 
      
 260 
     | 
    
         
            +
            - lib/dotsync/config/push_action_config.rb
         
     | 
| 
      
 261 
     | 
    
         
            +
            - lib/dotsync/config/watch_action_config.rb
         
     | 
| 
      
 262 
     | 
    
         
            +
            - lib/dotsync/config/xdg_base_directory_spec.rb
         
     | 
| 
       249 
263 
     | 
    
         
             
            - lib/dotsync/errors.rb
         
     | 
| 
       250 
     | 
    
         
            -
            - lib/dotsync/file_transfer.rb
         
     | 
| 
       251 
264 
     | 
    
         
             
            - lib/dotsync/icons.rb
         
     | 
| 
       252 
     | 
    
         
            -
            - lib/dotsync/ 
     | 
| 
       253 
     | 
    
         
            -
            - lib/dotsync/ 
     | 
| 
      
 265 
     | 
    
         
            +
            - lib/dotsync/models/diff.rb
         
     | 
| 
      
 266 
     | 
    
         
            +
            - lib/dotsync/models/mapping.rb
         
     | 
| 
       254 
267 
     | 
    
         
             
            - lib/dotsync/runner.rb
         
     | 
| 
       255 
268 
     | 
    
         
             
            - lib/dotsync/tasks/actions.rake
         
     | 
| 
      
 269 
     | 
    
         
            +
            - lib/dotsync/utils/directory_differ.rb
         
     | 
| 
      
 270 
     | 
    
         
            +
            - lib/dotsync/utils/file_transfer.rb
         
     | 
| 
      
 271 
     | 
    
         
            +
            - lib/dotsync/utils/logger.rb
         
     | 
| 
      
 272 
     | 
    
         
            +
            - lib/dotsync/utils/path_utils.rb
         
     | 
| 
       256 
273 
     | 
    
         
             
            - lib/dotsync/version.rb
         
     | 
| 
       257 
274 
     | 
    
         
             
            homepage: https://github.com/dsaenztagarro/dotsync
         
     | 
| 
       258 
275 
     | 
    
         
             
            licenses:
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |