crystal-object-send

Interpret a String to an Object method call

Crystal Object#send

Build Status ISC

Interpret a String to an Object method call.

Similar to the Ruby's Object#send.

Here macros and the Crystal::Parser are used to build a pseudo interpreter.

Disclaimer

There are lots of limitations, this library is mainly an experiment.

Usually you better avoid using it and interpret the string on your own. It would be more performant and safer.

Installation

Add the dependency to your shard.yml:

dependencies:
  object-send:
    github: j8r/crystal-object-send

Examples

"abc".send "chars"         #=> ['a', 'b', 'c']
"abc".send "lchop('a')"    #=> "bc"
"abc".send "insert 1, 'z'" #=> "azbc"
2.send("+ 3")              #=> 5

var = "first 2"
[0, 1, 3].send(var)        #=> [0, 1]
[0, 1, 2].send("[-1]?")    #=> eq 2
[0, 1, 2].send("[..]")     #=> eq [0, 1, 2]

See more in the specs

License

Copyright (c) 2019 Julien Reichardt - ISC License

Owner
github statistic
  • 6
  • 0
  • 0
  • 0
  • 6 months ago
  • February 12, 2019
License

ISC License

Links
Synced at

Fri, 28 Feb 2020 18:32:28 GMT