True Object-Oriented Decorator
Let’s say, you have an object that you want to decorate, thus
adding new attributes and methods to it. Here is how:
require 'decoor' s = ' Jeff Lebowski ' d = decoor(s, br: ' ') do def parts @origin.strip.split(@br) end end assert(d.parts == ['Jeff', 'Lebowski'])
You may also turn an existing class into a decorator:
require 'decoor' class MyString def initialize(s, br) @s = s @br = br end decoor(:s) def parts @origin.strip.split(@br) end end d = MyString.new('Jeff Lebowski') assert(d.parts == ['Jeff', 'Lebowski'])
That’s it.
How to contribute
Read
these guidelines.
Make sure you build is green before you contribute
your pull request. You will need to have
Ruby 3.2+ and
Bundler installed. Then:
bundle update bundle exec rake
If it’s clean and you don’t see any error messages, submit your pull request.