difftastic 0.3.0-x86_64-darwin → 0.5.0-x86_64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9a8fbc3ef11174e8de7b9c0a2f7402d0b72a72cc6a2da3ad2b2a79b5d4ccb94
4
- data.tar.gz: 9a9891dfc818c94e9e6c30c319746fe4e36fbb15f5a0a360f416d1cf4ef4198a
3
+ metadata.gz: 8b45544d9647c758954714a3cc40e887a637cf0fdad34c7ae439b81ff14d8cb9
4
+ data.tar.gz: a2e779b464964f6f19ae08cae1f76c15ce8b13da2308a3ce137badab86a98438
5
5
  SHA512:
6
- metadata.gz: b8baa75bd716ee1dc9712f9295209301831260171762c3ec0eac08ba2381ec08ea1677c5d18a6fc2db70d05d9ba7799421610bc28f54b74a42ee7e1f5a654e14
7
- data.tar.gz: 76ce78e5eeacf8d59178d430b83738b167f3f0fb5312933e53db0ed04b93abef1cea0554d59e695950ceda2186f28f6f53b6fd93268d86162e8b49046bad2cbb
6
+ metadata.gz: '0019c47beab09e06ae617d24b06e74f9089cd0f3d51e064530da0f0a1c97220f6704cdf445c9384e85a0bc55153098d95afa8982688de25706ac0afa11569fd8'
7
+ data.tar.gz: 5982885a1458c171923397c6c3f549328f6e4a92402dd0a7dc193babd3f1cd843249320816a3a16e71e3781d337e130b0a7d858c9a0dbe9f6f3fc0b191360fa5
@@ -300,7 +300,7 @@ class Difftastic::Differ
300
300
  ("--width=#{@width}" if @width),
301
301
  ].compact!
302
302
 
303
- result = Difftastic.execute(options.join(" "))
303
+ result = Difftastic.execute(options.join(" ")).lstrip.sub(/\n{2}\z/, "")
304
304
 
305
305
  unless @show_paths
306
306
  new_line_index = result.index("\n") + 1
@@ -328,7 +328,7 @@ class Difftastic::Differ
328
328
  end
329
329
 
330
330
  # Insert formatted labels at the top
331
- result = "\n#{left_part}#{right_part}#{Difftastic::ANSI.reset}\n#{result}"
331
+ result = "#{left_part}#{right_part}#{Difftastic::ANSI.reset}\n#{result}"
332
332
  end
333
333
 
334
334
  # Removed due to inconsistencies in the original output. Need to improve the pattern matching.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Difftastic
4
- VERSION = "0.3.0"
4
+ VERSION = "0.5.0"
5
5
  end
data/lib/difftastic.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "difftastic/version"
4
4
  require "tempfile"
5
+ require "pretty_please"
5
6
 
6
7
  module Difftastic
7
8
  autoload :ANSI, "difftastic/ansi"
@@ -65,111 +66,14 @@ module Difftastic
65
66
  See `bundle lock --help` output for details.
66
67
 
67
68
  If you're still seeing this message after taking those steps, try running
68
- `bundle config` and ensure `force_ruby_platform` isn't set to `true`. See
69
- https://github.com/fractaledmind/difftastic-ruby#check-bundle_force_ruby_platform
70
- for more details.
69
+ `bundle config` and ensure `force_ruby_platform` isn't set to `true`.
71
70
  MESSAGE
72
71
  end
73
72
 
74
73
  exe_file
75
74
  end
76
75
 
77
- def self.pretty(object, indent: 0, tab_width: 2, max_width: 60, max_depth: 5, max_instance_variables: 10, original_object: nil)
78
- return "self" if object && object == original_object
79
-
80
- original_object ||= object
81
-
82
- case object
83
- when Hash
84
- return "{}" if object.empty?
85
-
86
- buffer = +"{\n"
87
- indent += 1
88
- object.each do |key, value|
89
- buffer << ("\t" * indent)
90
- case key
91
- when Symbol
92
- buffer << "#{key.name}: "
93
- else
94
- buffer << pretty(key, indent:, original_object:)
95
- buffer << " => "
96
- end
97
- buffer << pretty(value, indent:, original_object:)
98
- buffer << ",\n"
99
- end
100
- indent -= 1
101
- buffer << ("\t" * indent)
102
- buffer << "}"
103
- when Array
104
- new_lines = false
105
- length = 0
106
- items = object.map do |item|
107
- pretty_item = pretty(item, indent: indent + 1, original_object:)
108
- new_lines = true if pretty_item.include?("\n")
109
- length += pretty_item.bytesize
110
- pretty_item
111
- end
112
-
113
- if new_lines || length > max_width - (indent * tab_width)
114
- "[\n#{"\t" * (indent + 1)}#{items.join(",\n#{"\t" * (indent + 1)}")},\n#{"\t" * indent}]"
115
- else
116
- "[#{items.join(', ')}]"
117
- end
118
- when Set
119
- new_lines = false
120
- length = 0
121
- items = object.to_a.sort!.map do |item|
122
- pretty_item = pretty(item, indent: indent + 1, original_object:)
123
- new_lines = true if pretty_item.include?("\n")
124
- length += pretty_item.bytesize
125
- pretty_item
126
- end
127
-
128
- if new_lines || length > max_width - (indent * tab_width)
129
- "Set[\n#{"\t" * (indent + 1)}#{items.join(",\n#{"\t" * (indent + 1)}")},\n#{"\t" * indent}]"
130
- else
131
- "Set[#{items.join(', ')}]"
132
- end
133
- when Module
134
- object.name
135
- when Pathname
136
- %(Pathname("#{object.to_path}"))
137
- when Symbol, String, Integer, Float, Regexp, Range, Rational, Complex, true, false, nil
138
- object.inspect
139
- else
140
- buffer = +""
141
- instance_variables = object.instance_variables
142
- if instance_variables.length > 0 && indent < max_depth
143
- buffer << "#{object.class.name}(\n"
144
- indent += 1
145
-
146
- if indent < max_depth
147
- object.instance_variables.take(max_instance_variables).each do |name|
148
- buffer << ("\t" * indent)
149
- buffer << name.name
150
- buffer << " = "
151
-
152
- buffer << pretty(object.instance_variable_get(name), indent:, original_object:)
153
- buffer << ",\n"
154
- end
155
-
156
- if object.instance_variables.count > max_instance_variables
157
- buffer << ("\t" * indent)
158
- buffer << "...\n"
159
- end
160
- else
161
- buffer << ("\t" * indent)
162
- buffer << "...\n"
163
- end
164
-
165
- indent -= 1
166
- buffer << ("\t" * indent)
167
- buffer << ")"
168
- elsif indent >= max_depth
169
- buffer << "#{object.class.name}(...)"
170
- else
171
- buffer << "#{object.class.name}()"
172
- end
173
- end
76
+ def self.pretty(object, indent: 0, tab_width: 2, max_width: 60, max_depth: 5, max_items: 10)
77
+ PrettyPlease.inspect(object, indent:, tab_width:, max_width:, max_depth:, max_items:)
174
78
  end
175
79
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: difftastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.0
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Joel Drapper
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-30 00:00:00.000000000 Z
11
- dependencies: []
10
+ date: 2025-02-04 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: pretty_please
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  email:
13
27
  - joel@drapper.me
14
28
  executables: