Skip to content

Commit 2aef678

Browse files
committed
Use require_relative in the Regexp::Parser codebase
If there are many searches in the `$LOAD_PATH` in the user environment, require will perform unnecessary searches that are not needed. In contrast, `require_relative` is efficient because it uses a relative path.
1 parent 8766c03 commit 2aef678

File tree

8 files changed

+61
-61
lines changed

8 files changed

+61
-61
lines changed

lib/regexp_parser.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
require 'regexp_parser/version'
2-
require 'regexp_parser/token'
3-
require 'regexp_parser/scanner'
4-
require 'regexp_parser/syntax'
5-
require 'regexp_parser/lexer'
6-
require 'regexp_parser/parser'
1+
require_relative 'regexp_parser/version'
2+
require_relative 'regexp_parser/token'
3+
require_relative 'regexp_parser/scanner'
4+
require_relative 'regexp_parser/syntax'
5+
require_relative 'regexp_parser/lexer'
6+
require_relative 'regexp_parser/parser'

lib/regexp_parser/expression.rb

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
1-
require 'regexp_parser/error'
1+
require_relative 'error'
22

3-
require 'regexp_parser/expression/shared'
4-
require 'regexp_parser/expression/base'
5-
require 'regexp_parser/expression/quantifier'
6-
require 'regexp_parser/expression/subexpression'
7-
require 'regexp_parser/expression/sequence'
8-
require 'regexp_parser/expression/sequence_operation'
3+
require_relative 'expression/shared'
4+
require_relative 'expression/base'
5+
require_relative 'expression/quantifier'
6+
require_relative 'expression/subexpression'
7+
require_relative 'expression/sequence'
8+
require_relative 'expression/sequence_operation'
99

10-
require 'regexp_parser/expression/classes/alternation'
11-
require 'regexp_parser/expression/classes/anchor'
12-
require 'regexp_parser/expression/classes/backreference'
13-
require 'regexp_parser/expression/classes/character_set'
14-
require 'regexp_parser/expression/classes/character_set/intersection'
15-
require 'regexp_parser/expression/classes/character_set/range'
16-
require 'regexp_parser/expression/classes/character_type'
17-
require 'regexp_parser/expression/classes/conditional'
18-
require 'regexp_parser/expression/classes/escape_sequence'
19-
require 'regexp_parser/expression/classes/free_space'
20-
require 'regexp_parser/expression/classes/group'
21-
require 'regexp_parser/expression/classes/keep'
22-
require 'regexp_parser/expression/classes/literal'
23-
require 'regexp_parser/expression/classes/posix_class'
24-
require 'regexp_parser/expression/classes/root'
25-
require 'regexp_parser/expression/classes/unicode_property'
10+
require_relative 'expression/classes/alternation'
11+
require_relative 'expression/classes/anchor'
12+
require_relative 'expression/classes/backreference'
13+
require_relative 'expression/classes/character_set'
14+
require_relative 'expression/classes/character_set/intersection'
15+
require_relative 'expression/classes/character_set/range'
16+
require_relative 'expression/classes/character_type'
17+
require_relative 'expression/classes/conditional'
18+
require_relative 'expression/classes/escape_sequence'
19+
require_relative 'expression/classes/free_space'
20+
require_relative 'expression/classes/group'
21+
require_relative 'expression/classes/keep'
22+
require_relative 'expression/classes/literal'
23+
require_relative 'expression/classes/posix_class'
24+
require_relative 'expression/classes/root'
25+
require_relative 'expression/classes/unicode_property'
2626

27-
require 'regexp_parser/expression/methods/construct'
28-
require 'regexp_parser/expression/methods/human_name'
29-
require 'regexp_parser/expression/methods/match'
30-
require 'regexp_parser/expression/methods/match_length'
31-
require 'regexp_parser/expression/methods/negative'
32-
require 'regexp_parser/expression/methods/options'
33-
require 'regexp_parser/expression/methods/parts'
34-
require 'regexp_parser/expression/methods/printing'
35-
require 'regexp_parser/expression/methods/strfregexp'
36-
require 'regexp_parser/expression/methods/tests'
37-
require 'regexp_parser/expression/methods/traverse'
27+
require_relative 'expression/methods/construct'
28+
require_relative 'expression/methods/human_name'
29+
require_relative 'expression/methods/match'
30+
require_relative 'expression/methods/match_length'
31+
require_relative 'expression/methods/negative'
32+
require_relative 'expression/methods/options'
33+
require_relative 'expression/methods/parts'
34+
require_relative 'expression/methods/printing'
35+
require_relative 'expression/methods/strfregexp'
36+
require_relative 'expression/methods/tests'
37+
require_relative 'expression/methods/traverse'

lib/regexp_parser/parser.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
require 'regexp_parser/error'
2-
require 'regexp_parser/expression'
1+
require_relative 'error'
2+
require_relative 'expression'
33

44
class Regexp::Parser
55
include Regexp::Expression

lib/regexp_parser/scanner/errors/scanner_error.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'regexp_parser/error'
1+
require_relative '../../../regexp_parser/error'
22

33
class Regexp::Scanner
44
# General scanner error (catch all)

lib/regexp_parser/scanner/scanner.rl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -640,9 +640,9 @@
640640
*|;
641641
}%%
642642

643-
require 'regexp_parser/scanner/errors/scanner_error'
644-
require 'regexp_parser/scanner/errors/premature_end_error'
645-
require 'regexp_parser/scanner/errors/validation_error'
643+
require_relative 'scanner/errors/scanner_error'
644+
require_relative 'scanner/errors/premature_end_error'
645+
require_relative 'scanner/errors/validation_error'
646646

647647
class Regexp::Scanner
648648
# Scans the given regular expression text, or Regexp object and collects the

lib/regexp_parser/syntax.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'regexp_parser/error'
1+
require_relative 'error'
22

33
module Regexp::Syntax
44
class SyntaxError < Regexp::Parser::Error; end

lib/regexp_parser/syntax/token.rb

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ module FreeSpace
2020

2121

2222
# Load all the token files, they will populate the Map constant.
23-
require 'regexp_parser/syntax/token/anchor'
24-
require 'regexp_parser/syntax/token/assertion'
25-
require 'regexp_parser/syntax/token/backreference'
26-
require 'regexp_parser/syntax/token/posix_class'
27-
require 'regexp_parser/syntax/token/character_set'
28-
require 'regexp_parser/syntax/token/character_type'
29-
require 'regexp_parser/syntax/token/conditional'
30-
require 'regexp_parser/syntax/token/escape'
31-
require 'regexp_parser/syntax/token/group'
32-
require 'regexp_parser/syntax/token/keep'
33-
require 'regexp_parser/syntax/token/meta'
34-
require 'regexp_parser/syntax/token/quantifier'
35-
require 'regexp_parser/syntax/token/unicode_property'
23+
require_relative '../syntax/token/anchor'
24+
require_relative '../syntax/token/assertion'
25+
require_relative '../syntax/token/backreference'
26+
require_relative '../syntax/token/posix_class'
27+
require_relative '../syntax/token/character_set'
28+
require_relative '../syntax/token/character_type'
29+
require_relative '../syntax/token/conditional'
30+
require_relative '../syntax/token/escape'
31+
require_relative '../syntax/token/group'
32+
require_relative '../syntax/token/keep'
33+
require_relative '../syntax/token/meta'
34+
require_relative '../syntax/token/quantifier'
35+
require_relative '../syntax/token/unicode_property'
3636

3737

3838
# After loading all the tokens the map is full. Extract all tokens and types

lib/regexp_parser/syntax/versions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
#
44
# Aliases for the latest patch version are provided as 'ruby/n.n',
55
# e.g. 'ruby/1.9' refers to Ruby v1.9.3.
6-
Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f| require f }
6+
Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f| require_relative f }
77

88
Regexp::Syntax::CURRENT = Regexp::Syntax.for("ruby/#{RUBY_VERSION}")

0 commit comments

Comments
 (0)