Sha256: 5558622eb1d416b131fadfca2ff47cac9ea531d6ff66d144712336ae118bd1e9

Contents?: true

Size: 1.57 KB

Versions: 67

Compression:

Stored size: 1.57 KB

Contents

## filesize
filesize.rb provides a class for easily working with file sizes.
That means:

* Parsing strings (e.g. "1 GiB") and saving it internally as bytes
* Handling both SI and binary prefixes
* Converting from any type and unit to any other (SI to SI, SI to Binary and so on)
* doing calculations with filesizes (in a smart way, see Usage for more)
* filesize.rb also provides some default sizes, like the ones of DVDs

## Usage
### Parsing a string
```ruby
Filesize.from("1 GiB")
# => #<Filesize:0x93c06c8 @bytes=1073741824, @type={:regexp=>/^([\d,.]+)?\s?(?:([kmgtpezy])i)?b$/i, :multiplier=>1024, :presuffix=>"i"}>
```

### Converting filesizes
```ruby
Filesize.from("1 GiB").to_f('KiB') # => 1048576.0
Filesize.from("1 GiB").to_f('KB')  # => 1073741.824
Filesize.from("1 GB").to_i         # => 1000000000
```

### Outputting filesizes
```ruby
Filesize.from("12502343 B").to_s('GiB') # => "0.01 GiB"
Filesize.from("12502343 B").pretty      # => "11.92 MiB"
```

### Calculating with filesizes
#### The file size on the left side sets the type
```ruby
(Filesize.from("1400 MB")  + Filesize.from("1400 MiB")).pretty # => "2.87 GB"
(Filesize.from("1400 MiB") + Filesize.from("1400 MB")).pretty  # => "2.67 GiB"
```

#### Filesizes can also be coerced
```ruby
(Filesize.from("1400 MiB") + 1024).pretty # => "1.37 GiB"
(1024 + Filesize.from("1400 MB")).pretty  # => "1.40 GB"
```

#### filesize.rb is smart about the return value
```ruby
Filesize.from("1400 MiB") / Filesize.from("700 MiB") # => 2.0
```

#### One can also use predefined sizes
```ruby
Filesize::DVD / Filesize::CD # => 6.13566756571429
```

Version data entries

67 entries across 63 versions & 18 rubygems

Version Path
logstash-output-scalyr-0.2.1.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.2.0 vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.2.0.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.26.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.25.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.24.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.23.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.22.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.21.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.20.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.19.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.18.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.17.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.16.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.15.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.14.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.13 vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.12 vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.11.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown
logstash-output-scalyr-0.1.10.beta vendor/bundle/jruby/2.5.0/gems/filesize-0.0.4/README.markdown