Skip to content

y10k/anytick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anytick

Anytick extends ruby's backtick notation to do more than run a shell command. For example, it defines the def method syntax in backtick, and makes Ruby 2.7's arguments forwarding notation of (...) usable with Ruby 2.6.

Installation

Add this line to your application's Gemfile:

gem 'anytick'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install anytick

Usage

Using def method rule

Example:

require 'anytick'

class Foo
  extend Anytick.rule(Anytick::DefineMethod)

  `def foo(...)
     bar(...)
   end
  `
end

This example does not cause a syntax error in Ruby 2.6, even though it uses the new notation (...) of Ruby 2.7. If Ruby version is 2.7 or later, this example will be evaluated as is. If Ruby version is older than 2.7, this example will be evaluated by converting (...) to work with older Ruby.

Using anytick framework

Anytick provides a mechanism to extend ruby's backtick notation. The def method rule is one example of using this mechanism.

If you want to create a new rule, create the rule as a subclass of Anytick::RuleMaker. Then implement match(expr) and execute(namespace, expr, match_result) methods at the rule.

match(expr) method determines whether to apply the rule to content in backtick notation. expr is the content of backtick notation. execute(namespace, expr, match_result) method is executed when the rule is applied. namespace is the receiver of backtick notation. expr is the content of backtick notation. match_result is the result of match(expr) method.

A rule is used by include or extend via Anytick.rule. Use include to extend object scope backtick notation, and use extend to extend module/class scope backtick notation. It is possible to apply more than one rule at once.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/y10k/anytick.

License

The gem is available as open source under the terms of the MIT License.

About

Anytick extends ruby's backtick notation to do more than run a shell command

Resources

License

Stars

Watchers

Forks

Packages

No packages published