dotsync 0.1.5 → 0.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62ac42fee1c4a3358014f4b4d9bd8e63794b1815ad1beb5234d6a61f0815b58d
4
- data.tar.gz: 3bad18f98f83603d52bbcb6b6278d8b8b5e41ca4386adddfd8303785a9892347
3
+ metadata.gz: 4b51df7b5c764f6c18fa189f842101b4169b212d357cc2ee91f650d71a5dea9e
4
+ data.tar.gz: ebce99be5e27ba45c07d879699f08310212b2f39ebae931775bd273d8c9908f3
5
5
  SHA512:
6
- metadata.gz: 8d5db370521fbe7f210f27172d95301ebb182f058c391468359fd51f2aed9d1d2306deddd7911b0cb0b786150155b34667d3611b6aa6c22e606e6e74684f6a0c
7
- data.tar.gz: cffff97956e3aaabd2f6de871ac76441a042abd0d7d0d51dc452c73d1c397cec8cf7e4121421bd814e3620cf5a047cbf1060c162e52f56c1d04d15ba23bcb068
6
+ metadata.gz: f5957200742a5f72530bfc940a5e38315c93d1cd1ed32c1b858843c29abecea5c6a4e7b4c3faaa48ade180fd25b9777df4a4b1ff2940054f6620989185d9911c
7
+ data.tar.gz: 333dd782f60dc3eb81b7b6de1334e94424ec001cd20dc42d56742b4c0f71ef04cbe3171472b3f6cd7ab995754764bdcd02fb57680262714dccab71149e5e9a28
data/CHANGELOG.md CHANGED
@@ -1,8 +1,16 @@
1
+ # 0.1.7
2
+
3
+ - Fixes broken runner
4
+
5
+ # 0.1.6
6
+
7
+ - Show diff changes on PushAction and PullAction.
8
+ - Fixed load custom config (Icons, Colors)
9
+
1
10
  # 0.1.5
2
11
 
3
12
  - Fixes backup when destination folder does not exist
4
- - Add rubocop
5
-
13
+ - Add rubocop to Github Actions
6
14
 
7
15
  # 0.1.4
8
16
 
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dotsync (0.1.5)
4
+ dotsync (0.1.7)
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)
@@ -35,7 +37,7 @@ GEM
35
37
  logger (1.7.0)
36
38
  ostruct (0.6.3)
37
39
  parallel (1.27.0)
38
- parser (3.3.9.0)
40
+ parser (3.3.10.0)
39
41
  ast (~> 2.4.1)
40
42
  racc
41
43
  prism (1.6.0)
@@ -88,7 +90,7 @@ GEM
88
90
  rubocop-rspec (3.7.0)
89
91
  lint_roller (~> 1.1)
90
92
  rubocop (~> 1.72, >= 1.72.1)
91
- ruby-lsp (0.26.1)
93
+ ruby-lsp (0.26.2)
92
94
  language_server-protocol (~> 3.17.0)
93
95
  prism (>= 1.2, < 2.0)
94
96
  rbs (>= 3, < 5)
@@ -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
@@ -8,6 +8,7 @@ module Dotsync
8
8
 
9
9
  def execute
10
10
  show_config
11
+ show_changes
11
12
  if create_backup
12
13
  show_backup
13
14
  purge_old_backups
@@ -6,6 +6,7 @@ module Dotsync
6
6
 
7
7
  def execute
8
8
  show_config
9
+ show_changes
9
10
  push_dotfiles
10
11
  end
11
12
 
@@ -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_DIFF_ADDITIONS,
14
+ diff_modifications: config.dig("colors", "diff_modifications") || DEFAULT_DIFF_MODIFICATIONS,
15
+ diff_removals: config.dig("colors", "diff_removals") || DEFAULT_DIFF_REMOVALS
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
@@ -16,6 +16,10 @@ module Dotsync
16
16
  validate!
17
17
  end
18
18
 
19
+ def to_h
20
+ @config
21
+ end
22
+
19
23
  private
20
24
  # Validates the configuration file.
21
25
  #
@@ -6,7 +6,7 @@ module Dotsync
6
6
 
7
7
  def mappings
8
8
  mappings_list = section["mappings"]
9
- Array(mappings_list).map { |mapping| Dotsync::MappingEntry.new(mapping) }
9
+ Array(mappings_list).map { |mapping| Dotsync::Mapping.new(mapping) }
10
10
  end
11
11
 
12
12
  def backups_root
@@ -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::MappingEntry.new(mapping) }
7
+ Array(mappings_list).map { |mapping| Dotsync::Mapping.new(mapping) }
8
8
  end
9
9
 
10
10
  private
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dotsync
4
+ class Error < StandardError; end
4
5
  class ConfigError < StandardError; end
5
6
  end
data/lib/dotsync/icons.rb CHANGED
@@ -9,7 +9,7 @@ module Dotsync
9
9
  # Configuration icon
10
10
  CONFIG = " "
11
11
 
12
- # Default MappingEntry icons
12
+ # Default Mapping icons
13
13
  DEFAULT_FORCE = "󰁪 "
14
14
  DEFAULT_IGNORE = "󰈉 "
15
15
  DEFAULT_INVALID = "󱏏 "
@@ -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 MappingEntry
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::MappingEntry.new(
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,
@@ -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.to_h)
21
+ Dotsync::Colors.load_custom_colors(config.to_h)
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
- def initialize(config)
8
- @src = config.src
9
- @dest = config.dest
10
- @force = config.force?
11
- @ignores = config.ignores || []
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dotsync
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
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/icons"
16
- require_relative "dotsync/logger"
17
- require_relative "dotsync/file_transfer"
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/actions/config/xdg_base_directory_spec"
22
- require_relative "dotsync/actions/config/mapping_entry"
23
- require_relative "dotsync/actions/config/base_config"
24
- require_relative "dotsync/actions/config/pull_action_config"
25
- require_relative "dotsync/actions/config/push_action_config"
26
- require_relative "dotsync/actions/config/watch_action_config"
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.5
4
+ version: 0.1.7
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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/logger.rb
253
- - lib/dotsync/path_utils.rb
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