Project

k_builder

0.0
No release in over a year
K Builder provides various fluent builders for initializing applications with different language requirements
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

K Builder

KBuilder provides various fluent builders and code generators for initializing applications with different language requirements

Installation

Add this line to your application's Gemfile:

gem 'k_builder'

And then execute:

bundle install

Or install it yourself as:

gem install k_builder

Stories

Main Story

As a Polyglot Developer, I want to be up and running in any development language with consistency, so I am productive and using best practices

See all stories

Usage

See all usage examples

Basic Example

Configure and Run

Setup configuration for KBuilder

Generate two files:

  1. main.rb is based on class.rb from app_template
  2. configuration.log.txt is based on an inline template

Check out usage.md for more details

usecases_folder = File.join(Dir.getwd, 'spec', 'usecases')

KConfig.configure do |config|
  config.template_folder = File.join(usecases_folder, '.app_template')
  config.global_template_folder = File.join(usecases_folder, '.global_template')
  config.target_folder = File.join(usecases_folder, '.output')
end

template = <<~TEXT
  Configured Template Folder        : {{a}}
  Configured Global Template Folder : {{b}}
  Configured Output Folder          : {{c}}
TEXT

builder = KBuilder::Builder.init

builder.add_file('main.rb', template_file: 'class.rb', name: 'main').add_file(
  'configuration.log.txt',
  template: template,
  a: builder.template_folder,
  b: builder.global_template_folder,
  c: builder.target_folder
)

Development

Checkout the repo

git clone klueless-io/k_builder

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests.

You can also run bin/console for an interactive prompt that will allow you to experiment.

bin/console

Aaa::Bbb::Program.execute()
# => ""

k_builder is setup with Guard, run guard, this will watch development file changes and run tests automatically, if successful, it will then run rubocop for style quality.

To release a new version, update the version number in version.rb, build the gem and push the .gem file to rubygems.org.

gem build
gem push rspec-usecases-?.?.??.gem
# or push the latest gem
ls *.gem | sort -r | head -1 | xargs gem push

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/klueless-io/k_builder. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the K Builder project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

Copyright

Copyright (c) David Cruwys. See MIT License for further details.