Skip to content

Commit aa0dc2f

Browse files
committed
Hide debug methods
1 parent 1582630 commit aa0dc2f

File tree

6 files changed

+80
-60
lines changed

6 files changed

+80
-60
lines changed

ext/yarp/extension.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -512,12 +512,13 @@ Init_yarp(void) {
512512

513513
// Next, the functions that will be called by the parser to perform various
514514
// internal tasks. We expose these to make them easier to test.
515-
rb_define_singleton_method(rb_cYARP, "named_captures", named_captures, 1);
516-
rb_define_singleton_method(rb_cYARP, "unescape_none", unescape_none, 1);
517-
rb_define_singleton_method(rb_cYARP, "unescape_minimal", unescape_minimal, 1);
518-
rb_define_singleton_method(rb_cYARP, "unescape_all", unescape_all, 1);
519-
rb_define_singleton_method(rb_cYARP, "memsize", memsize, 1);
520-
rb_define_singleton_method(rb_cYARP, "profile_file", profile_file, 1);
515+
VALUE rb_cYARPDebug = rb_define_module_under(rb_cYARP, "Debug");
516+
rb_define_singleton_method(rb_cYARPDebug, "named_captures", named_captures, 1);
517+
rb_define_singleton_method(rb_cYARPDebug, "unescape_none", unescape_none, 1);
518+
rb_define_singleton_method(rb_cYARPDebug, "unescape_minimal", unescape_minimal, 1);
519+
rb_define_singleton_method(rb_cYARPDebug, "unescape_all", unescape_all, 1);
520+
rb_define_singleton_method(rb_cYARPDebug, "memsize", memsize, 1);
521+
rb_define_singleton_method(rb_cYARPDebug, "profile_file", profile_file, 1);
521522

522523
// Next, initialize the pack API.
523524
Init_yarp_pack();

lib/yarp.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,18 @@ def self.load(source, serialized)
303303
Serialize.load(source, serialized)
304304
end
305305

306-
def self.newlines(source)
307-
YARP.parse(source).source.offsets
306+
# This module is used for testing and debugging and is not meant to be used by
307+
# consumers of this library.
308+
module Debug
309+
def self.newlines(source)
310+
YARP.parse(source).source.offsets
311+
end
308312
end
313+
314+
# Marking this as private so that consumers don't see it. It makes it a little
315+
# annoying for testing since you have to const_get it to access the methods,
316+
# but at least this way it's clear it's not meant for consumers.
317+
private_constant :Debug
309318
end
310319

311320
require_relative "yarp/lex_compat"

test/memsize_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
class MemsizeTest < Test::Unit::TestCase
66
def test_memsize
7-
result = YARP.memsize("2 + 3")
7+
result = YARP.const_get(:Debug).memsize("2 + 3")
88

99
assert_equal 5, result[:length]
1010
assert_kind_of Integer, result[:memsize]

test/parse_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def test_parse_takes_file_path
111111
# Next, assert that the newlines are in the expected places.
112112
expected_newlines = [0]
113113
source.b.scan("\n") { expected_newlines << $~.offset(0)[0] + 1 }
114-
assert_equal expected_newlines, YARP.newlines(source)
114+
assert_equal expected_newlines, YARP.const_get(:Debug).newlines(source)
115115

116116
# Finally, assert that we can lex the source and get the same tokens as
117117
# Ripper.

test/regexp_test.rb

Lines changed: 50 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ class RegexpTest < Test::Unit::TestCase
88
##############################################################################
99

1010
def test_named_captures_with_arrows
11-
assert_equal(["foo"], YARP.named_captures("(?<foo>bar)"))
11+
assert_equal(["foo"], named_captures("(?<foo>bar)"))
1212
end
1313

1414
def test_named_captures_with_single_quotes
15-
assert_equal(["foo"], YARP.named_captures("(?'foo'bar)"))
15+
assert_equal(["foo"], named_captures("(?'foo'bar)"))
1616
end
1717

1818
def test_nested_named_captures_with_arrows
19-
assert_equal(["foo", "bar"], YARP.named_captures("(?<foo>(?<bar>baz))"))
19+
assert_equal(["foo", "bar"], named_captures("(?<foo>(?<bar>baz))"))
2020
end
2121

2222
def test_nested_named_captures_with_single_quotes
23-
assert_equal(["foo", "bar"], YARP.named_captures("(?'foo'(?'bar'baz))"))
23+
assert_equal(["foo", "bar"], named_captures("(?'foo'(?'bar'baz))"))
2424
end
2525

2626
def test_allows_duplicate_named_captures
27-
assert_equal(["foo", "foo"], YARP.named_captures("(?<foo>bar)(?<foo>baz)"))
27+
assert_equal(["foo", "foo"], named_captures("(?<foo>bar)(?<foo>baz)"))
2828
end
2929

3030
def test_named_capture_inside_fake_range_quantifier
31-
assert_equal(["foo"], YARP.named_captures("foo{1, (?<foo>2)}"))
31+
assert_equal(["foo"], named_captures("foo{1, (?<foo>2)}"))
3232
end
3333

3434
##############################################################################
@@ -38,154 +38,160 @@ def test_named_capture_inside_fake_range_quantifier
3838
##############################################################################
3939

4040
def test_alternation
41-
refute_nil(YARP.named_captures("foo|bar"))
41+
refute_nil(named_captures("foo|bar"))
4242
end
4343

4444
def test_anchors
45-
refute_nil(YARP.named_captures("^foo$"))
45+
refute_nil(named_captures("^foo$"))
4646
end
4747

4848
def test_any
49-
refute_nil(YARP.named_captures("."))
49+
refute_nil(named_captures("."))
5050
end
5151

5252
def test_posix_character_classes
53-
refute_nil(YARP.named_captures("[[:digit:]]"))
53+
refute_nil(named_captures("[[:digit:]]"))
5454
end
5555

5656
def test_negated_posix_character_classes
57-
refute_nil(YARP.named_captures("[[:^digit:]]"))
57+
refute_nil(named_captures("[[:^digit:]]"))
5858
end
5959

6060
def test_invalid_posix_character_classes_should_fall_back_to_regular_classes
61-
refute_nil(YARP.named_captures("[[:foo]]"))
61+
refute_nil(named_captures("[[:foo]]"))
6262
end
6363

6464
def test_character_sets
65-
refute_nil(YARP.named_captures("[abc]"))
65+
refute_nil(named_captures("[abc]"))
6666
end
6767

6868
def test_nested_character_sets
69-
refute_nil(YARP.named_captures("[[abc]]"))
69+
refute_nil(named_captures("[[abc]]"))
7070
end
7171

7272
def test_nested_character_sets_with_operators
73-
refute_nil(YARP.named_captures("[[abc] && [def]]"))
73+
refute_nil(named_captures("[[abc] && [def]]"))
7474
end
7575

7676
def test_named_capture_inside_nested_character_set
77-
assert_equal([], YARP.named_captures("[foo (?<foo>bar)]"))
77+
assert_equal([], named_captures("[foo (?<foo>bar)]"))
7878
end
7979

8080
def test_negated_character_sets
81-
refute_nil(YARP.named_captures("[^abc]"))
81+
refute_nil(named_captures("[^abc]"))
8282
end
8383

8484
def test_character_ranges
85-
refute_nil(YARP.named_captures("[a-z]"))
85+
refute_nil(named_captures("[a-z]"))
8686
end
8787

8888
def test_negated_character_ranges
89-
refute_nil(YARP.named_captures("[^a-z]"))
89+
refute_nil(named_captures("[^a-z]"))
9090
end
9191

9292
def test_fake_named_captures_inside_character_sets
93-
assert_equal([], YARP.named_captures("[a-z(?<foo>)]"))
93+
assert_equal([], named_captures("[a-z(?<foo>)]"))
9494
end
9595

9696
def test_fake_named_capture_inside_character_set_with_escaped_ending
97-
assert_equal([], YARP.named_captures("[a-z\\](?<foo>)]"))
97+
assert_equal([], named_captures("[a-z\\](?<foo>)]"))
9898
end
9999

100100
def test_comments
101-
refute_nil(YARP.named_captures("(?#foo)"))
101+
refute_nil(named_captures("(?#foo)"))
102102
end
103103

104104
def test_comments_with_escaped_parentheses
105-
refute_nil(YARP.named_captures("(?#foo\\)\\))"))
105+
refute_nil(named_captures("(?#foo\\)\\))"))
106106
end
107107

108108
def test_non_capturing_groups
109-
refute_nil(YARP.named_captures("(?:foo)"))
109+
refute_nil(named_captures("(?:foo)"))
110110
end
111111

112112
def test_positive_lookaheads
113-
refute_nil(YARP.named_captures("(?=foo)"))
113+
refute_nil(named_captures("(?=foo)"))
114114
end
115115

116116
def test_negative_lookaheads
117-
refute_nil(YARP.named_captures("(?!foo)"))
117+
refute_nil(named_captures("(?!foo)"))
118118
end
119119

120120
def test_positive_lookbehinds
121-
refute_nil(YARP.named_captures("(?<=foo)"))
121+
refute_nil(named_captures("(?<=foo)"))
122122
end
123123

124124
def test_negative_lookbehinds
125-
refute_nil(YARP.named_captures("(?<!foo)"))
125+
refute_nil(named_captures("(?<!foo)"))
126126
end
127127

128128
def test_atomic_groups
129-
refute_nil(YARP.named_captures("(?>foo)"))
129+
refute_nil(named_captures("(?>foo)"))
130130
end
131131

132132
def test_absence_operator
133-
refute_nil(YARP.named_captures("(?~foo)"))
133+
refute_nil(named_captures("(?~foo)"))
134134
end
135135

136136
def test_conditional_expression_with_index
137-
refute_nil(YARP.named_captures("(?(1)foo)"))
137+
refute_nil(named_captures("(?(1)foo)"))
138138
end
139139

140140
def test_conditional_expression_with_name
141-
refute_nil(YARP.named_captures("(?(foo)bar)"))
141+
refute_nil(named_captures("(?(foo)bar)"))
142142
end
143143

144144
def test_conditional_expression_with_group
145-
refute_nil(YARP.named_captures("(?(<foo>)bar)"))
145+
refute_nil(named_captures("(?(<foo>)bar)"))
146146
end
147147

148148
def test_options_on_groups
149-
refute_nil(YARP.named_captures("(?imxdau:foo)"))
149+
refute_nil(named_captures("(?imxdau:foo)"))
150150
end
151151

152152
def test_options_on_groups_with_invalid_options
153-
assert_nil(YARP.named_captures("(?z:bar)"))
153+
assert_nil(named_captures("(?z:bar)"))
154154
end
155155

156156
def test_options_on_groups_getting_turned_off
157-
refute_nil(YARP.named_captures("(?-imx:foo)"))
157+
refute_nil(named_captures("(?-imx:foo)"))
158158
end
159159

160160
def test_options_on_groups_some_getting_turned_on_some_getting_turned_off
161-
refute_nil(YARP.named_captures("(?im-x:foo)"))
161+
refute_nil(named_captures("(?im-x:foo)"))
162162
end
163163

164164
def test_star_quantifier
165-
refute_nil(YARP.named_captures("foo*"))
165+
refute_nil(named_captures("foo*"))
166166
end
167167

168168
def test_plus_quantifier
169-
refute_nil(YARP.named_captures("foo+"))
169+
refute_nil(named_captures("foo+"))
170170
end
171171

172172
def test_question_mark_quantifier
173-
refute_nil(YARP.named_captures("foo?"))
173+
refute_nil(named_captures("foo?"))
174174
end
175175

176176
def test_endless_range_quantifier
177-
refute_nil(YARP.named_captures("foo{1,}"))
177+
refute_nil(named_captures("foo{1,}"))
178178
end
179179

180180
def test_beginless_range_quantifier
181-
refute_nil(YARP.named_captures("foo{,1}"))
181+
refute_nil(named_captures("foo{,1}"))
182182
end
183183

184184
def test_range_quantifier
185-
refute_nil(YARP.named_captures("foo{1,2}"))
185+
refute_nil(named_captures("foo{1,2}"))
186186
end
187187

188188
def test_fake_range_quantifier_because_of_spaces
189-
refute_nil(YARP.named_captures("foo{1, 2}"))
189+
refute_nil(named_captures("foo{1, 2}"))
190+
end
191+
192+
private
193+
194+
def named_captures(source)
195+
YARP.const_get(:Debug).named_captures(source)
190196
end
191197
end

test/unescape_test.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def test_single_quote
1515
private
1616

1717
def assert_unescape_none(source)
18-
assert_equal(source, YARP.unescape_none(source))
18+
assert_equal(source, YARP.const_get(:Debug).unescape_none(source))
1919
end
2020
end
2121

@@ -35,7 +35,7 @@ def test_single_char
3535
private
3636

3737
def assert_unescape_minimal(expected, source)
38-
assert_equal(expected, YARP.unescape_minimal(source))
38+
assert_equal(expected, YARP.const_get(:Debug).unescape_minimal(source))
3939
end
4040
end
4141

@@ -83,7 +83,7 @@ def test_unicode_codepoint
8383
assert_unescape_all("က", "\\u1000", "UTF-8")
8484
assert_unescape_all("တ", "\\u1010", "UTF-8")
8585

86-
assert_nil(YARP.unescape_all("\\uxxxx"))
86+
assert_nil(unescape_all("\\uxxxx"))
8787
end
8888

8989
def test_unicode_codepoints
@@ -95,8 +95,8 @@ def test_unicode_codepoints
9595
assert_unescape_all("𐀐", "\\u{10010}", "UTF-8")
9696
assert_unescape_all("aĀကတ𐀀𐀐", "\\u{ 61\s100\n1000\t1010\r10000\v10010 }", "UTF-8")
9797

98-
assert_nil(YARP.unescape_all("\\u{110000}"))
99-
assert_nil(YARP.unescape_all("\\u{110000 110001 110002}"))
98+
assert_nil(unescape_all("\\u{110000}"))
99+
assert_nil(unescape_all("\\u{110000 110001 110002}"))
100100
end
101101

102102
def test_control_characters
@@ -136,8 +136,12 @@ def test_escaping_normal_characters
136136

137137
private
138138

139+
def unescape_all(source)
140+
YARP.const_get(:Debug).unescape_all(source)
141+
end
142+
139143
def assert_unescape_all(expected, source, forced_encoding = nil)
140-
result = YARP.unescape_all(source)
144+
result = unescape_all(source)
141145
result.force_encoding(forced_encoding) if forced_encoding
142146
assert_equal(expected, result)
143147
end

0 commit comments

Comments
 (0)