Fork me on GitHub

Posts Tagged ‘gem’

Release 0.4.5

Monday, April 14th, 2008

Well, here it is! The release you all were waiting for, the one that finally gives migration support to Mack! That’s right, now whether you use ActiveRecord or DataMapper, you can use the familiar rake task ‘db:migrate’ to run your migrations. Yippie! The scaffold generator will also generate a migration for you, assuming you have ORM support enabled.

There’s still some work to go on this, like the ability to pass in command line args to the task to build the full migration for you, but it’s a start! It’s now pretty easy to get your app going.

Also in this release is a rewrite of the distributed routing functionality. It’s now been rewritten to use Rinda. This is going to be the standard for all the distributed functionality that will be coming Mack over the next couple of months. As more functionality lke this is developed, the more it will be wrapped in nice, easy to use APIs.

There’s also been some tidying up here in there in the code tree. For example, new applications don’t get generated with a boot.rb file. Looking at it, there’s really no need for it, since everything is done with Rake tasks.

Overall, I’m very happy with the release, and I feel that this release definitely makes Mack a VERY useable framework because of the migration support. Enjoy!

Changelog:

  • Removed boot.rb file. It was unnecessary.
  • When a new Mack application is generated the Rakefile that gets generated is stamped with the Mack gem version used to create it. This ties the project to that gem. This can, of course, be upgraded as new Mack gems come out, but it’s a good way of tying your app to a specific revision of Mack.
  • Added support for migrations for both ActiveRecord and DataMapper. DataMapper migration support requires DataMapper 0.3.0 gem. Please keep in mind, though, that DataMapper 0.3.0 has a serious bug in it, which may prevent you from using it. Please see http://www.mackframework.com/2008/04/09/horrible-bug-in-datamapper-030/ for more information.
  • Rewrote distributed routing support to use Rinda inside of plain old DRb. This makes for an almost zero configuration usage.
  • Added: mack_ring_server binary to start a Rinda ring server for use with distributed routing.
  • Sqlite3 is now the default database for Mack applications configured with ORM support.
  • Added a test helper method, rake_task, to aid in the testing of Rake tasks.
  • Added: rake generate:migration name=<migration_name>
  • Added: rake db:migrate
  • Added: rake db:abort_if_pending_migrations
  • Added: rake db:rollback
  • Added: rake db:version
  • Added: rake mack:ring_server:start
  • Added: rake mack:ring_server:stop
  • Added: rake mack:ring_server:restart
  • Added: rake mack:ring_server:services:list
  • gem: application_configuration 1.2.2
  • gem: daemons 1.0.10

    Temporary fix for the DataMapper bug

    Wednesday, April 9th, 2008

    If like me you’re plagued by this DataMapper bug that kills your test cases. I’ve packaged up a temporary version of the DataMapper gem that seems to fix the problem.

    WARNING: This gem is NOT sanctioned by the DataMapper team. Use at your own risk.

    If you use this gem and find any issues, please let me know. Also, if you use this gem and things seem to be working just fine, then please let me know that too. Good luck!

    DataMapper-0.3.0.1.gem

    Release 0.4.0

    Wednesday, March 26th, 2008

    It’s finally here! The release you’ve all been waiting for, 0.4.0!! What’s new in this one? Well, the big one, DISTRIBUTED ROUTING!!! Now you can share your routes between all of your Mack applications.

    I’m very excited about this release. This is one of the first features that starts to set Mack apart from other Ruby frameworks such as Rails and Merb.  Mack is trying to set itself as the framework for doing multiple, distributed, portal applications. This release gets us headed in that direction.

    There will be a tutorial post and app in the next few days. In the meantime I highly encourage you to download this release and check it out.

    Changelog:

    • Added Distributed Routes!
    • gem: mack_ruby_core_extensions 0.1.3
    • removed gem: ruby_extensions
    $ sudo gem install mack

    Announcing Mack Ruby Core Extensions

    Wednesday, March 26th, 2008

    Mack has been using a combination of the ruby_extensions gem as well some local extensions to the Ruby core in order to make Mack as wonderful as it is. In an effort to make life a little simpler, as well as to help share the wealth, the ruby_extensions gem and the Mack extensions have been combined into a single new gem called mack_ruby_core_extensions.

    One of the main Mack pieces that has been broken out into this new gem is the inflection system. Now you can have inflections as part of any Ruby application just by requiring the gem. As far as I can tell this is the first stand alone inflection system for Ruby. I know because I couldn’t find one for Mack, that’s why I had to write one.

    This gem will continually be updated, outside of the core Mack code. The forthcoming release of Mack, 0.4.0, will be converted to use the new gem.

    Those who wish to contribute to the gem can find it on GitHub at: http://github.com/markbates/mack_ruby_core_extensions

    The API for mack_ruby_core_extensions can be found at:
    http://mrce-api.mackframework.com/

     $ sudo gem install mack_ruby_core_extensions

    Release 0.2.0

    Tuesday, March 11th, 2008

    A couple of really cool features in this release. In controllers and views you can  now call:

    render(:url=> "http://www.mycoolurl.com")

    Developers can now also develop their own custom rendering systems, without monkey patching the core:

    class Mack::Rendering::Pdf < Mack::Rendering::Base
      def render
        # do work to render stuff as a PDF
      end
    end

    Now add this to the list of available render systems:

    app_config.mack.rendering_systems << :pdf

    You should now be able to do this in your controller:

    class MyAwesomeController < Mack::Controller::Base
      def pdf
        render(:pdf => "my_pdf_template")
      end
    end

    Install:

    $ sudo gem install mack

    Changelog:

    • ticket: 3 Render url in Controllers/Views
    • ticket: 5 Render Extension System.