Padrino 0.13.2 - New Project Flag, Component Upgrades and Bug Fixes
Padrino 0.13.1 was shipped just over 3 months ago in January 2016 and since then we have had many issues reported and fixed. After a few months of effort, we are excited to announce the release of Padrino 0.13.2! This version is filled with a new project generator flag, minimizing dependence on AS, upgrading a few components and a number of other bug fixes.
New API Project Generator Flag
In this release, we've introduced a new project generator flag of
--api. When this flag is used during project generation, the following changes are applied to the new project:
- Project only has
padrino-genlisted as dependencies in the Gemfile.
Padrino::Helpersare not registered or referenced in the project.
- Automatically sets
Many apps have configuration code that needs to run first as the project starts up before the application is loaded. Padrino has always supported this with initializers in
lib/NAME_initializer.rb. However, there were no guarantees that this code would run before other project code leading to dependency issues due to loading order. In this release, we have introduced the
config/initializers folder which get loaded once during startup before any other app code is loaded. Initializers look like this:
# config/initializers/some_useful.rb # code run once after Padrino.before_load before Padrino.after_load # good place to define some plugin-related constants module SomeUsefulInitializer def self.registered(app) # this is where we setup components or configuration for the project end end
In your app code, for example
app/app.rb, we can register this with:
Minimize ActiveSupport Dependence
Over the last few releases, we have been working to minimize our dependency on
ActiveSupport. Note that at this time the library is still a required dependency. However, we are incrementally removing all uses of this library from the internals of Padrino whenever possible.
For those interested, we've removed many ActiveSupport methods from internal usage including but not limited to:
Thanks to @ujifgc for leading these efforts.
We've upgraded or fixed a few components:
- FIX #1789 Relax Tilt version to allow Tilt 2 (>= 1.4.1, < 3) (@ujifgc)
- FIX #2011 Update mongoid database configuration (@serradura)
Bug Fixes and Miscellaneous
There are several bug fixes and other updates:
- WARN #1989 Warn about coming behavior change (@ujifgc)
- NEW #1987 Generator now fails with invalid namespace (@ujifgc)
- FIX #2007 Respect Regexp#names at the time of route search (@namusyaka)
- FIX #2004 Set default alt attribute for image_tag (@namusyaka)
- FIX #2008 Login button on the admin app now looks as expected (@namusyaka)
- FIX Remove empty rows and cols from textarea tag (@ujifgc)
- FIX #2015 Update broken links in the README and docs (@mariozig)
- FIX #2023 Preserve
default_builderset in configure_apps (@ujifgc)
- FIX #2025 Match plugin names with dashes in their names (@wikimatze)
- FIX #2029 Don't set a value attribute on label tags (@sshaw)
- WARN Notice about removing ObjectSpace.classes and ObjectSpace.new_classes in 0.14 (@ujifgc)
- FIX #2027 Use Module#name instead of Module#to_s (@namusyaka)
- NEW Logger option :sanitize_encoding (@ujifgc)
- FIX #2006 load missing AR models before calling seeds.rb (@ujifgc)
Please report any issues you encounter with this release! We are working very actively on Padrino and want to make the framework as stable and reliable as possible. That concludes the changelog for this release. As always if you want to keep up with Padrino updates, be sure to follow us on twitter: @padrinorb, join us on IRC at “#padrino” on freenode or open an issue on GitHub.