Skip to content

Commit bd91631

Browse files
ssl reset connection issue, and rubocop and format and do not hang in parser
1 parent dfab2a9 commit bd91631

46 files changed

Lines changed: 1781 additions & 873 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.rubocop.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@ AllCops:
88
TargetRubyVersion: 3.0
99
Layout/ClosingHeredocIndentation:
1010
Enabled: false
11+
Layout/ElseAlignment:
12+
Enabled: false
13+
Layout/EndAlignment:
14+
Enabled: false
1115
Layout/FirstArgumentIndentation:
1216
Enabled: false
1317
Layout/HashAlignment:
1418
Enabled: false
1519
Layout/HeredocIndentation:
1620
Enabled: false
21+
Layout/IndentationWidth:
22+
Enabled: false
1723
Layout/LineEndStringConcatenationIndentation:
1824
Enabled: false
1925
Layout/LineLength:
@@ -22,6 +28,8 @@ Layout/MultilineMethodCallIndentation:
2228
Enabled: false
2329
Layout/MultilineOperationIndentation:
2430
Enabled: false
31+
Layout/SpaceAroundKeyword:
32+
Enabled: false
2533
Layout/SpaceInsideHashLiteralBraces:
2634
Enabled: false
2735
Lint/EmptyClass:

applies

Whitespace-only changes.

bin/code

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,41 @@ parsed =
3737
abort Code::Version.to_s if parsed.options.version
3838
abort parsed.help if parsed.options.help
3939

40+
def glob_pattern?(value)
41+
value.match?(/[*?\[\]{]/)
42+
end
43+
44+
expanded_argument_files = []
45+
remaining_arguments = []
46+
47+
parsed.arguments.each do |argument|
48+
if glob_pattern?(argument)
49+
matches = Dir.glob(argument).select { |path| File.file?(path) }
50+
51+
if matches.any?
52+
expanded_argument_files.concat(matches)
53+
else
54+
remaining_arguments << argument
55+
end
56+
else
57+
remaining_arguments << argument
58+
end
59+
end
60+
4061
input = parsed.options.input.to_s
4162
input += File.read(input) if File.exist?(input)
42-
input += parsed.arguments.join(" ")
43-
input += parsed.files.map { |file| File.read(file) }.join
63+
input += remaining_arguments.join(" ")
64+
input +=
65+
(parsed.files + expanded_argument_files)
66+
.map { |file| File.read(file) }
67+
.join("\n\n")
4468

4569
profile = parsed.options.profile || parsed.options.profiler
4670
require "ruby-prof" if profile
4771

4872
RubyProf.start if profile
4973

50-
input = STDIN.each_line.to_a.join if input.empty?
74+
input = $stdin.each_line.to_a.join if input.empty?
5175

5276
if parsed.options.parse
5377
begin

lib/code-ruby.rb

Lines changed: 16 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -21,152 +21,19 @@
2121
loader.ignore("#{__dir__}/code-ruby.rb")
2222
loader.setup
2323

24-
module WordNumberComparaisons
25-
def zero?
26-
zero?
27-
end
28-
29-
def one?
30-
self == 1
31-
end
32-
33-
def two?
34-
self == 2
35-
end
36-
37-
def three?
38-
self == 3
39-
end
40-
41-
def four?
42-
self == 4
43-
end
44-
45-
def five?
46-
self == 5
47-
end
48-
49-
def six?
50-
self == 6
51-
end
52-
53-
def seven?
54-
self == 7
55-
end
56-
57-
def eight?
58-
self == 8
59-
end
60-
61-
def nine?
62-
self == 9
63-
end
64-
65-
def ten?
66-
self == 10
67-
end
68-
end
69-
70-
class Object
71-
alias is_an? is_a?
72-
73-
def to_code
74-
raise NotImplementedError, "to_code not defined on #{self.class.name}"
75-
end
76-
end
77-
78-
class Class
79-
def to_code
80-
Code::Object::Class.new(self)
81-
end
82-
end
83-
84-
class Module
85-
def to_code
86-
Code::Object::Class.new(self)
87-
end
88-
end
89-
90-
class NilClass
91-
def to_code
92-
Code::Object::Nothing.new(self)
93-
end
94-
end
95-
96-
class TrueClass
97-
def to_code
98-
Code::Object::Boolean.new(self)
99-
end
100-
end
101-
102-
class FalseClass
103-
def to_code
104-
Code::Object::Boolean.new(self)
105-
end
106-
end
107-
108-
class String
109-
def to_code
110-
Code::Object::String.new(self)
111-
end
112-
end
113-
114-
class Symbol
115-
def to_code
116-
Code::Object::String.new(self)
117-
end
118-
end
119-
120-
class Integer
121-
include WordNumberComparaisons
122-
123-
def to_code
124-
Code::Object::Integer.new(self)
125-
end
126-
end
127-
128-
class Float
129-
include WordNumberComparaisons
130-
131-
def to_code
132-
Code::Object::Decimal.new(self)
133-
end
134-
end
135-
136-
class BigDecimal
137-
include WordNumberComparaisons
138-
139-
def to_code
140-
Code::Object::Decimal.new(self)
141-
end
142-
end
143-
144-
class Array
145-
def to_code
146-
Code::Object::List.new(self)
147-
end
148-
end
149-
150-
class Hash
151-
def to_code
152-
Code::Object::Dictionary.new(self)
153-
end
154-
end
155-
156-
module Nokogiri
157-
module XML
158-
class Element
159-
def to_code
160-
Code::Object::Html.new(self)
161-
end
162-
end
163-
end
164-
end
165-
166-
module ActiveSupport
167-
class TimeWithZone
168-
def to_code
169-
Code::Object::Time.new(self)
170-
end
171-
end
172-
end
24+
require_relative "code/extensions/word_number_comparaisons"
25+
require_relative "code/extensions/object"
26+
require_relative "code/extensions/class"
27+
require_relative "code/extensions/module"
28+
require_relative "code/extensions/nil_class"
29+
require_relative "code/extensions/true_class"
30+
require_relative "code/extensions/false_class"
31+
require_relative "code/extensions/string"
32+
require_relative "code/extensions/symbol"
33+
require_relative "code/extensions/integer"
34+
require_relative "code/extensions/float"
35+
require_relative "code/extensions/big_decimal"
36+
require_relative "code/extensions/array"
37+
require_relative "code/extensions/hash"
38+
require_relative "code/extensions/nokogiri"
39+
require_relative "code/extensions/active_support"

lib/code/error.rb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@ def initialize(value = nil)
1010
end
1111
end
1212

13-
class Break < ControlFlow; end
13+
class Break < ControlFlow
14+
end
1415

15-
class Next < ControlFlow; end
16+
class Next < ControlFlow
17+
end
1618

17-
class Continue < Next; end
19+
class Continue < Next
20+
end
1821

19-
class Return < ControlFlow; end
22+
class Return < ControlFlow
23+
end
2024

21-
class Retry < ControlFlow; end
25+
class Retry < ControlFlow
26+
end
2227
end
2328
end
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
module ActiveSupport
4+
class TimeWithZone
5+
def to_code
6+
Code::Object::Time.new(self)
7+
end
8+
end
9+
end

lib/code/extensions/array.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# frozen_string_literal: true
2+
3+
class Array
4+
def to_code
5+
Code::Object::List.new(self)
6+
end
7+
end

lib/code/extensions/big_decimal.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
class BigDecimal
4+
include WordNumberComparaisons
5+
6+
def to_code
7+
Code::Object::Decimal.new(self)
8+
end
9+
end

lib/code/extensions/class.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# frozen_string_literal: true
2+
3+
class Class
4+
def to_code
5+
Code::Object::Class.new(self)
6+
end
7+
end

lib/code/extensions/false_class.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# frozen_string_literal: true
2+
3+
class FalseClass
4+
def to_code
5+
Code::Object::Boolean.new(self)
6+
end
7+
end

0 commit comments

Comments
 (0)