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.