All Projects → mbj → Concord

mbj / Concord

Licence: mit
Mixin to ease compositions in ruby

Programming Languages

ruby
36898 projects - #4 most used programming language

concord

[Gem Version][https://rubygems.org/gems/concord] CI

Library to transform this:

class ComposedObject
  include Equalizer.new(:foo, :bar)

  # Return foo
  #
  # @return [Foo]
  #
  # @api private
  #
  attr_reader :foo
  protected :foo

  # Return bar
  #
  # @return [Bar]
  #
  # @api private
  #
  attr_reader :bar
  protected :bar

  # Initialize object
  #
  # @param [Foo] foo
  # @param [Bar] bar
  #
  # @return [undefined]
  #
  # @api private
  #
  def initialize(foo, bar)
    @foo, @bar = foo, bar
  end
end

Into shorter and easier to parse by eyes:

class ComposedObject
  include Concord.new(:foo, :bar)
end

You can still add YARD docs for generated interface.

Rubies

Tested under all >= 1.9 rubies.

Installation

Install the gem concord via your preferred method.

Credits

Contributing

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with Rakefile or version (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

License

See LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].