0.0
Low commit activity in last 3 years
No release in over a year
Small library to easily make objects that transform input via many methods.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.3, < 3.0
>= 0
>= 0
 Project Readme

Windcharger

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–Present J. Andrew Marshall. License is available in the LICENSE file.