Crystal Plus
An extension of the Crystal standard library.
Installation
Add this to your application's shard.yml
:
dependencies:
crystal_plus:
github: mosop/crystal_plus
Index
- Dir
- .tmp : makes a uniquely-named and temporary directory
- NamedTuple
- String
- #empty_to_nil : returns nil if empty
Dir
.tmp
Makes a uniquely-named directory and yields a passed block with the directory's path. The directory is to be deleted before this method returns.
Dir.tmp do |dir|
# The dir argument points to a new temporary directory.
end
# The directory is already deleted here.
Parameters
- base : a base directory's path whose a temporary directory will be created (default:
"/tmp"
) - cleanup : whether to delete a created temporary directory before .tmp returns (default:
true
)
NamedTuple
#to_h?
def test_to_h(**options)
options.to_h
end
test_to_h # compile error
require "cyrstal_plus/named_tuple/#to_h?"
def test_to_h?(**options)
options.to_h?
end
test_to_h? # => nil
#merge
require "cyrstal_plus/named_tuple/#merge"
def merge(tuple, **options)
tuple.merge(options)
end
def reverse_merge(tuple, **options)
options.merge(tuple)
end
smile = {face: ":)"}
frown = {face: ":("}
other = {other: ":P"}
merge(smile) # => {face: ":)"}
merge(smile, **frown) # => {face: ":("}
merge(smile, **other) # => ArgumentError
reverse_merge(smile) # => ArgumentError
String
#empty_to_nil
Returns nil if self is empty. Otherwise, self.
require "cyrstal_plus/string/#empty_to_nil"
"abc".empty_to_nil # => "abc"
"".empty_to_nil # => nil
Release Notes
- v0.1.2
- String#empty_to_nil
- v0.1.1
- Dir.tmp
Contributing
- Fork it ( https://github.com/mosop/crystal_plus/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- mosop - creator, maintainer