mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Merge pull request #250 from github/mac-format
Handle Mac Format when splitting lines
This commit is contained in:
@@ -204,7 +204,31 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# Returns an Array of lines
|
# Returns an Array of lines
|
||||||
def lines
|
def lines
|
||||||
@lines ||= (viewable? && data) ? data.split("\n", -1) : []
|
@lines ||=
|
||||||
|
if viewable? && data
|
||||||
|
data.split(line_split_character, -1)
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Character used to split lines. This is almost always "\n" except when Mac
|
||||||
|
# Format is detected in which case it's "\r".
|
||||||
|
#
|
||||||
|
# Returns a split pattern string.
|
||||||
|
def line_split_character
|
||||||
|
@line_split_character ||= (mac_format?? "\r" : "\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
# Public: Is the data in ** Mac Format **. This format uses \r (0x0d) characters
|
||||||
|
# for line ends and does not include a \n (0x0a).
|
||||||
|
#
|
||||||
|
# Returns true when mac format is detected.
|
||||||
|
def mac_format?
|
||||||
|
return if !viewable?
|
||||||
|
if pos = data[0, 4096].index("\r")
|
||||||
|
data[pos + 1] != ?\n
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Public: Get number of lines of code
|
# Public: Get number of lines of code
|
||||||
|
|||||||
1
samples/Text/mac.txt
Normal file
1
samples/Text/mac.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
line 1
|
||||||
@@ -65,6 +65,14 @@ class TestBlob < Test::Unit::TestCase
|
|||||||
assert_equal ["module Foo", "end", ""], blob("Ruby/foo.rb").lines
|
assert_equal ["module Foo", "end", ""], blob("Ruby/foo.rb").lines
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_mac_format
|
||||||
|
assert blob("Text/mac.txt").mac_format?
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_lines_mac_format
|
||||||
|
assert_equal ["line 1", "line 2", ""], blob("Text/mac.txt").lines
|
||||||
|
end
|
||||||
|
|
||||||
def test_size
|
def test_size
|
||||||
assert_equal 15, blob("Ruby/foo.rb").size
|
assert_equal 15, blob("Ruby/foo.rb").size
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user