Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Register
Sign in
Toggle navigation
Menu
Open sidebar
Tiger Ton
mastodon
Commits
ee17d81b
Commit
ee17d81b
authored
5 years ago
by
ThibG
Committed by
Eugen Rochko
5 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Minor performance improvements and cleanup in formatter (#10765)
parent
9e95af33
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
app/lib/formatter.rb
+5
-14
app/lib/formatter.rb
with
5 additions
and
14 deletions
+5
-14
app/lib/formatter.rb
+
5
-
14
View file @
ee17d81b
...
...
@@ -187,7 +187,7 @@ class Formatter
end
def
rewrite
(
text
,
entities
)
chars
=
text
.
to_s
.
to_char_a
text
=
text
.
to_s
# Sort by start index
entities
=
entities
.
sort_by
do
|
entity
|
...
...
@@ -199,12 +199,12 @@ class Formatter
last_index
=
entities
.
reduce
(
0
)
do
|
index
,
entity
|
indices
=
entity
.
respond_to?
(
:indices
)
?
entity
.
indices
:
entity
[
:indices
]
result
<<
encode
(
chars
[
index
...
indices
.
first
]
.
join
)
result
<<
encode
(
text
[
index
...
indices
.
first
])
result
<<
yield
(
entity
)
indices
.
last
end
result
<<
encode
(
chars
[
last_index
..-
1
]
.
join
)
result
<<
encode
(
text
[
last_index
..-
1
])
result
.
flatten
.
join
end
...
...
@@ -231,23 +231,14 @@ class Formatter
# Note: I couldn't obtain list_slug with @user/list-name format
# for mention so this requires additional check
special
=
Extractor
.
extract_urls_with_indices
(
escaped
,
options
).
map
do
|
extract
|
# exactly one of :url, :hashtag, :screen_name, :cashtag keys is present
key
=
(
extract
.
keys
&
[
:url
,
:hashtag
,
:screen_name
,
:cashtag
]).
first
new_indices
=
[
old_to_new_index
.
find_index
(
extract
[
:indices
].
first
),
old_to_new_index
.
find_index
(
extract
[
:indices
].
last
),
]
has_prefix_char
=
[
:hashtag
,
:screen_name
,
:cashtag
].
include?
(
key
)
value_indices
=
[
new_indices
.
first
+
(
has_prefix_char
?
1
:
0
),
# account for #, @ or $
new_indices
.
last
-
1
,
]
next
extract
.
merge
(
:
indices
=>
new_indices
,
key
=>
text
[
value
_indices
.
first
..
value
_indices
.
last
]
indices
:
new_indices
,
url:
text
[
new
_indices
.
first
..
new
_indices
.
last
-
1
]
)
end
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets