True Object-Oriented Decorator

DevOps By Rultor.com
We recommend RubyMine

rake
PDD status
Gem Version
Test Coverage
Yard Docs
Hits-of-Code
License

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.