Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8394140
to_bytes.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
to_bytes.rb
View Options
#
# to_bytes.rb
#
module
Puppet::Parser::Functions
newfunction
(
:to_bytes
,
:type
=>
:rvalue
,
:doc
=>
<<-
EOS
Converts the argument into bytes, for example 4 kB becomes 4096.
Takes a single string value as an argument.
These conversions reflect a layperson's understanding of
1 MB = 1024 KB, when in fact 1 MB = 1000 KB, and 1 MiB = 1024 KiB.
EOS
)
do
|
arguments
|
raise
(
Puppet
::
ParseError
,
"to_bytes(): Wrong number of arguments given (
#{
arguments
.
size
}
for 1)"
)
if
arguments
.
size
!=
1
arg
=
arguments
[
0
]
return
arg
if
arg
.
is_a?
Numeric
value
,
prefix
=
*
%r{([0-9.e+-]*)\s*([^bB]?)}
.
match
(
arg
)
[
1
,
2
]
value
=
value
.
to_f
case
prefix
when
''
then
return
value
.
to_i
when
'k'
then
return
(
value
*
(
1
<<
10
))
.
to_i
when
'M'
then
return
(
value
*
(
1
<<
20
))
.
to_i
when
'G'
then
return
(
value
*
(
1
<<
30
))
.
to_i
when
'T'
then
return
(
value
*
(
1
<<
40
))
.
to_i
when
'P'
then
return
(
value
*
(
1
<<
50
))
.
to_i
when
'E'
then
return
(
value
*
(
1
<<
60
))
.
to_i
else
raise
Puppet
::
ParseError
,
"to_bytes(): Unknown prefix
#{
prefix
}
"
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Wed, Jun 4, 7:21 PM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3399120
Attached To
rSPSTD puppet-puppetlabs-stdlib
Event Timeline
Log In to Comment