⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Foreman Maintain
All Projects
Foreman Maintain
Overview
Activity
Roadmap
Issues
Wiki
Repository
Download (1.48 KB)
Statistics
| Branch:
master
| Tag:
v0.0.1
v0.0.10
v0.0.11
v0.0.2
v0.0.3
v0.0.4
v0.0.7
v0.0.8
v0.1.0
v0.1.1
v0.1.2
v0.1.3
v0.1.4
v0.1.5
v0.1.6
v0.2.0
v0.2.1
v0.2.10
v0.2.11
v0.2.12
v0.2.2
v0.2.3
v0.2.4
v0.2.5
v0.2.6
v0.2.7
v0.2.8
v0.2.9
v0.3.0
v0.3.1
v0.3.2
v0.3.3
v0.3.4
v0.3.5
v0.3.6
v0.4.0
v0.4.1
v0.4.10
v0.4.2
v0.4.3
v0.4.4
v0.4.5
v0.4.6
v0.4.7
v0.4.8
v0.4.9
v0.5.0
v0.5.1
v0.5.2
v0.5.3
v0.5.4
v0.5.5
v0.5.6
v0.6.0
v0.6.10
v0.6.11
v0.6.12
v0.6.13
v0.6.14
v0.6.15
v0.6.16
v0.6.2
v0.6.3
v0.6.4
v0.6.5
v0.6.6
v0.6.8
v0.6.9
v0.7.0
v0.7.1
v0.7.10
v0.7.11
v0.7.12
v0.7.13
v0.7.14
v0.7.2
v0.7.4
v0.7.5
v0.7.6
v0.7.7
v0.7.8
v0.7.9
v0.8.0
v0.8.1
v0.8.10
v0.8.11
v0.8.12
v0.8.13
v0.8.14
v0.8.15
v0.8.16
v0.8.17
v0.8.18
v0.8.19
v0.8.2
v0.8.20
v0.8.21
v0.8.22
v0.8.23
v0.8.24
v0.8.25
v0.8.26
v0.8.27
v0.8.28
v0.8.29
v0.8.3
v0.8.30
v0.8.31
v0.8.4
v0.8.5
v0.8.6
v0.8.7
v0.8.8
v0.8.9
v0.9.0
v0.9.1
v0.9.2
v0.9.3
v1.0.0
v1.0.1
v1.0.10
v1.0.11
v1.0.12
v1.0.13
v1.0.14
v1.0.15
v1.0.16
v1.0.17
v1.0.18
v1.0.19
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7
v1.0.9
v1.1.0
v1.1.1
v1.1.10
v1.1.11
v1.1.12
v1.1.13
v1.1.14
v1.1.2
v1.1.3
v1.1.4
v1.1.5
v1.1.6
v1.1.7
v1.1.8
v1.1.9
v1.2.0
v1.2.1
v1.2.10
v1.2.11
v1.2.2
v1.2.3
v1.2.4
v1.2.5
v1.2.6
v1.2.7
v1.2.8
v1.2.9
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.3.4
v1.3.5
v1.4.0
v1.4.1
v1.4.2
v1.4.3
v1.4.4
v1.5.0
v1.5.1
v1.6.0
v1.6.1
v1.6.2
v1.6.3
v1.6.4
| Revision:
foreman_maintain
/
lib
/
foreman_maintain
/
csv_parser.rb
@ 9d33f32e
View
History
Annotate
module
ForemanMaintain
class
CSVParser
def
initialize
reset_parser
end
def
parse
(
data
)
return
[]
if
data
.
nil?
reset_parser
data
.
each_char
do
|
char
|
handle_escape
(
char
)
||
handle_quoting
(
char
)
||
handle_comma
(
char
)
||
add_to_buffer
(
char
)
end
unless
@last_quote
.
nil?
raise
(
ArgumentError
,
format
(
'Illegal quoting in %s'
,
@raw_buffer
))
end
clean_buffer
@value
end
private
def
handle_comma
(
char
)
if
char
==
','
clean_buffer
true
else
false
end
end
def
handle_quoting
(
char
)
if
@last_quote
.
nil?
&&
[
"'"
,
'"'
].
include?
(
char
)
@last_quote
=
char
@raw_buffer
+=
char
true
elsif
@last_quote
==
char
@last_quote
=
nil
@raw_buffer
+=
char
true
elsif
@last_quote
add_to_buffer
(
char
)
true
else
false
end
end
def
handle_escape
(
char
)
if
@escape
add_to_buffer
(
char
)
@escape
=
false
true
elsif
char
==
'\\'
@escape
=
true
@raw_buffer
+=
char
true
else
false
end
end
def
add_to_buffer
(
char
)
@buffer
+=
char
@raw_buffer
+=
char
end
def
reset_parser
@value
=
[]
@buffer
=
''
@raw_buffer
=
''
@escape
=
false
@last_quote
=
nil
end
def
clean_buffer
@value
<<
@buffer
@raw_buffer
=
''
@buffer
=
''
end
end
end
« Previous
1
…
3
4
5
6
7
…
20
Next »
(5-5/20)
Loading...