FixerUpper
You have a file and it just has so much potential.
Gut job or not, FixerUpper makes that file into the result of your dreams, backsplash, shiplap, and all.
Usage
FixerUpper is a wrapper around Tilt template engines.
It requires explicit registration of template engines:
fixer_upper = FixerUpper.new
fixer_upper.register_tilt("erb", engine: Tilt::ERBTemplate)
renderer =
fixer_upper.renderer(
filename: "file.erb",
content: %(<%= 1 + 1 %>),
engines: %i[erb]
)
renderer.call # => "2"
It allows for setting "global" options.
fixer_upper = FixerUpper.new
fixer_upper.register_tilt(
"csv",
engine: Tilt::CSVTemplate,
options: { col_sep: "|" }
)
template = %(csv << ["hello", "world"])
renderer =
fixer_upper.renderer(
filename: "file.csv",
content: template,
engines: %i[csv]
)
renderer.call # => "hello|world\n"
It works with non-tilt templates as well
class Upcase
def initialize(_filename, memo)
@memo = memo
end
def render(_view_scope, &block)
@memo.upcase
end
end
fixer_upper = FixerUpper.new
fixer_upper.register("upcase", engine: Upcase)
renderer =
fixer_upper.renderer(
filename: "file.upcase",
content: "hi",
engines: %i[upcase]
)
renderer.call # => "HI"
Installation
Add this line to your application's Gemfile:
gem "fixer_upper"
And then execute:
$ bundle
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run
rake test
to run the tests. You can also run bin/console
for an interactive
prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To
release a new version, update the version number in version.rb
, and then run
bundle exec rake release
, which will create a git tag for the version, push
git commits and tags, and push the .gem
file to
rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/zachahn/fixer_upper.
License
The gem is available as open source under the terms of the MIT License.