Skip to content
A small library to easily make objects that transform input via many methods.
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
spec
.gitignore
.travis.yml
Gemfile
LICENSE.txt
README.md
Rakefile
windcharger.gemspec

README.md

Windcharger

Build Status Code Climate rating Gem Version

Windcharger mascot. He carries powerful magnets in his arms that he can use to manipulate large objects.

Windcharger is a small library to easily make objects that transform input via many methods.

Installation

Install as usual: gem install windcharger or add gem 'windcharger' to your Gemfile.

Usage

Declare methods as attributes by extending Windcharger::Attributes and preceding methods with attribute:

require 'windcharger'

class MyTransformer
  extend Windcharger::Attributes

  attribute
  def foo; end

  attribute
  def bar; end

  def not_an_attribute; end
end

MyTransformer.attributes  #=> [:foo, :bar]

This isn’t very useful on its own, so include Windcharger::HashTransformer to get the transform method:

require 'windcharger'

class MyTransformer
  extend Windcharger::Attributes
  include Windcharger::HashTransformer

  attribute
  def foo
    :the_foo
  end

  attribute
  def bar
    :walked_into_a_bar
  end

  def qux
    1
  end

  attribute :qax, :qux

  def qax
    2
  end

  def not_an_attribute
    42
  end
end

my_transformer = MyTransformer.new
my_transformer.transform
#=> {
#     :foo => :the_foo,
#     :bar => :walked_into_a_bar,
#     :qax => 2,
#     :qux => 1,
#   }

Add an initialize that takes some input and then transform it to each attribute in their respective methods and you have a nice transformer object.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Credits & License

Copyright © 2013 J. Andrew Marshall. License is available in the LICENSE file.

You can’t perform that action at this time.