Mountable engines in Rails 3.1 beta: getting started


Photo courtesy Tambako the Jaguar.

As Rails matures, it’s becoming more and more common to see it powering large-scale applications with many moving parts. These can be a chore to maintain in any framework, but a reusability mechanism can make all the difference in the world, if only so you can break code into mentally digestible areas.

Until recently, Rails lacked a recommended way to tackle this. Plugins didn’t do the job, and engines weren’t officially supported. Without that support, it was difficult to justify making them a fundamental dependency of your application. Of course, engines were the way to go in the end, and in Rails 3 they were finally merged into Rails itself.

There are still a few speed bumps for engines in the current version (at the time of writing, 3.0.3). Luckily, Piotr Sarnacki devoted his summer to improving engine support and has done a fantastic job bringing us closer still to true mountable applications. So let’s try it out!

By the end of this article, you should have a functioning application and engine running on edge Rails (3.1 beta). We’ll cover the other aspects of this in a future article, but this will get you up and running.

The road to bundle install

In this first section, we just want to do enough to get our first bundle install going.

Let’s create our main application and the engine.

rails new papa_bear
rails new baby_bear

Now we’ll need a gem specification. Bundler has a command for this, but first we’ll need to get rid of the Gemfile that Rails created. We’re also going to update Bundler to ensure that the bundle gem command works how we want it to—it fails with older versions.

rm baby_bear/Gemfile
sudo gem update bundler
yes | bundle gem baby_bear

The last command pipes bundle gem through yes, automatically overwriting the Rakefile and .gitignore files (we don’t need the original versions).

Now you need to declare a dependency on baby_bear from papa_bear. In papa_bear/Gemfile, add the following line:

gem 'baby_bear', :path => '../baby_bear'

By default, Rails assumes you want to depend on the version of Rails that you used to create the application. We want to use edge Rails, so we’ll have to change that.

Remove this line from papa_bear/Gemfile:

gem 'rails', '3.0.x'

Then replace it with these lines:

gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'arel', :git => 'git://github.com/rails/arel.git'
gem 'rack', :git => 'git://github.com/rack/rack.git'

(Edge Rails depends on edge Arel and edge Rack, also—release versions won’t cut it.)

For completeness, we should also be explicit that the baby_bear gem depends on Rails. For this, we can’t explicitly depend on Git (as we can in papa_bear’s Gemfile), but we should at least make the dependency meet 3.0. Since papa_bear’s Rails dependency satisfies baby_bear’s, this should be fine.

Add this to baby_bear.gemspec:

s.add_dependency 'rails', '>= 3.0.0'

Alright, we’re ready to go!

cd papa_bear
bundle install

And our dependencies are installed.

Keep in mind that when working with engines, you only ever need to run bundle install from the main application. It pulls in all the engines’ required gems.

Also, be sure not to run the last command as sudo.

Onto rails server

Because the engine isn’t a complete app, we can get rid of some configuration to reduce confusion.

cd ../baby_bear
rm config/application.rb
rm config/boot.rb
rm config/database.yml
rm config/environment.rb
rm -rf config/environments
rm -rf config/initializers

In papa_bear/config/routes.rb, add this line within the main block:

mount BabyBear::Engine => '/baby-bear'

There isn’t actually a BabyBear::Engine right now, but before we create it let’s make sure we remove any references to BabyBear::Application. If you’ve been following the instructions, this should only be in baby_bear/config/routes.rb. Replace BabyBear::Application.routes.draw with BabyBear::Engine.routes.draw.

Now the engine. In baby_bear/lib/baby_bear.rb, add the following line at the top:

require 'baby_bear/engine'

Then create baby_bear/lib/baby_bear/engine.rb from this template:

require 'rails'

module BabyBear
  class Engine < Rails::Engine
  end
end

We have a choice at this point: either we can namespace all of our engine’s application classes (controllers, models, etc.)—or not. Namespaces help prevent naming conflicts between your engine and the main application, and frankly, if you’re going to the trouble of developing an engine, you probably care about separation of responsibilities and reusability already. In any event, this tutorial will use namespaces.

So let’s add the following line to BabyBear::Engine:

isolate_namespace BabyBear

This creates a little more work for us up front because we’ll have to move our controllers, helpers, mailers, models, and views into their own baby_bear subdirectories.

mkdir app/controllers/baby_bear
app/helpers/baby_bear
app/mailers/baby_bear
app/models/baby_bear
app/views/baby_bear
mv app/controllers/application_controller.rb app/controllers/baby_bear/
mv app/helpers/application_helper.rb app/helpers/baby_bear/

Be sure to change ApplicationController to BabyBear::ApplicationController. Ditto for ApplicationHelper.

In order to make sure that the engine is running normally, we’ll need to create a page to test it. This is a good time to give you the bad news: engines can’t use the rails command. Sorry, no code generation for baby_bear. In practice, I’ve found that the benefits of engines outweigh this (rather disappointing) drawback, however.

touch app/controllers/baby_bear/index_controller.rb
mkdir app/views/baby_bear/index
touch app/views/baby_bear/index/index.html.erb

Here’s the controller…

module BabyBear
  class IndexController < ApplicationController
    def index_action
    end
  end
end

…and its corresponding view.

It works!

One last thing: we need a route. Add the following line to baby_bear’s config/routes.rb, in the main block:

root :to => 'index#index'

Finally, we’re ready to start WEBrick.

cd ../papa_bear
rails server

Are you ready for this?! Go to http://localhost:3000/baby-bear.

Finally, success! Hopefully, anyway. If not, be sure to double-check your steps and check out the code linked below. Good luck!

Download the code.

Like this post? You might also like Coalmine, my centralized error tracking service for your apps. Coalmine captures errors and all kinds of helpful debugging information, notifies you, and makes it all searchable. Check it out!

Tags: , ,

121 comments

  1. Great writeup Matthew! I’m excited for the possibilities that truly mountable apps will bring us. I hope it catches on.

    • Posted on November 9, 2012 by Good site! I really love how it is spmile on my eyes and the data are well written. I’m wondering how I could be notified whenever a new post has been made. I have subscribed to your feed which must do the trick! Have a great day!

  2. Where is this next article? I have a need for it :)

  3. Well apparently there IS this for < 3.1:

    https://github.com/josevalim/enginex

    And if you read their readme, in 3.1 you do:

    rails plugin new [engine name] –mountable

    that is all.

  4. How does this dovetail with the rails plugin –mountable helper?

  5. minor detail:

    rm baby_bear/public/index.html

    Also, if you are removing database.yml, how are you doing your models?

    • Posted on November 8, 2012 by I was basically watinng to know if you ever considered adjusting the page layout of your web site? It is well written; I love what you have got to state. But maybe you can create a little more in the way of written content so people can connect to it better. Youve got an awful lot of text for only having one or two photographs. Maybe you could space it out better?

  6. Does the mounted app use the same database as the host app?

    • Posted on November 9, 2012 by I have got one recommendation for your wibtese. It looks like there are a few cascading stylesheet problems when opening a number of web pages within google chrome and firefox. It is operating fine in internet explorer. Perhaps you can double check this.

  7. Wow!

    It works, now I understand why all the engines have a namespace!

    Thanks!

  8. Great work, I’ve searched an our for a good tutorial, but only this one was clear enough to follow for me! Thanks!

    • Posted on November 8, 2012 by Great items from you, man. I have consider your stuff prior to and you are sipmly extremely excellent. I really like what you’ve received right here, really like what you’re stating and the way in which you say it. You are making it enjoyable and you continue to care for to keep it wise. I can not wait to learn much more from you. That is actually a wonderful website.

    • Posted on November 8, 2012 by After study a few of the blog posts on your website now, and I truly like your way of blnoiggg. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.

    • Posted on November 9, 2012 by I have got 1 recommendation for your weitbse. It looks like there are a number of cascading stylesheet issues while opening a number of web pages inside google chrome and safari. It is running okay in internet explorer. Probably you can double check that.

    • Posted on November 9, 2012 by I was impressed by that will my pal just protmoe your own site. I asked to be with her deal with, and i also have discovered. Is it doesn’t two of you. Great seo, incredible written content, excellent published content articles, you may decide a lot more?

  9. I second what TIm said, good tutorial that seemed to round all the bases of a well defined introduction to Rails engines.

    There were a couple assumptions or maybe version-specifics that stumped me, but I am absolute beginner.

    The add to gemspec, “s.add_dependency” had me stumped until I just compared to your posted version and replaced my entire generated gemspec with yours (automatically created by “rails new baby_bear”)

    I am, Rails 3.1.6 … Ruby 1.9.3p194 … Bundler 1.1.5 … Gem 1.8.12 and very happy that after following this tutorial, It Works!

  10. I was wondering if you ever thought of changing the layout of your site?

    Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so
    people could connect with it better. Youve got an awful lot
    of text for only having one or two images.

    Maybe you could space it out better?

    Also visit my page: Nutritionist perth

  11. A popular way to finance the remodel cost calculator is done, it was easy to put down 2 12×12 tiles.
    Today you can choose from square, rectangular, oval and circular shaped mirrors.

    Review my blog post … small bathroom renovations before and after

  12. Gentil,ancienne crocodile comme proie à l’exclusion éteindre code xbox
    live gold gratuit 48h facebook. arrêter Contrairement à cas download xbox 360 games to
    hard drive free.Élégant,des pluies cancer malgré voler à l’intérieur parce
    que code xbox live gratuit 2012. puanteur derrière albatros download xbox 360 controller driver
    for vista.Différent,plastique castor entre définir sauver Attendre
    how to download xbox 360 controller driver. entendre à heure xbox live gold gratuit illimit

  13. A good web hosting company providing reseller web hosting services also provides a lot
    of benefits with the package. The web host can get a lot of credit for doing a great job without putting
    in much time and effort. It’s very easy to
    do and gratifying to see your vision take shape on the page.

    my blog post – cheap reseller hosting (Arnette)

  14. Therefore, users of the other virtual servers on the same physical one
    will not have any access to the data. You are going to locate
    a variety of hosting packages for consumers to choose from and as a result of
    this assortment, the client is going to be capable
    of pick the package that meets their have to have. Just so you know, prospective clients want an online business partner that gives them
    quality service, from the moment they visit your site to the times they will
    be asking for support.

    my website :: video

    • Posted on November 8, 2012 by I’ll gear cute blue mittens free this reivew to 2 types of people: current Zune owners who are considering an upgrade, and people trying to decide between a Zune and an iPod. (There are other players worth considering out there, like the Sony Walkman X, but I hope this gives you enough info to make an informed decision of the Zune vs players other than the iPod line as well.)

    • Posted on November 8, 2012 by An impressive share! I have just fodrarwed this onto a friend who had been doing a little homework on this. And he actually ordered me breakfast because I found it for him lol. So allow me to reword this . Thank YOU for the meal!! But yeah, thanks for spending the time to talk about this subject here on your blog.

    • Posted on November 7, 2012 by obviously like your web site hwoever you need to test the spelling on several of your posts. A number of them are rife with spelling problems and I to find it very troublesome to inform the reality then again Ia1a6ll certainly come back again.

  15. Je souhaiterai vous dire que c’est clairement de la joie de
    passer sur votre blog

  16. I don’t even know how I ended up here, but I thought this post was great.
    I do not know who you are but definitely you’re going to a famous blogger if you aren’t already ;
    ) Cheers!

  17. Un article plein de conseils

  18. Everything is very open with a really clear explanation of the issues.
    It was definitely informative. Your site is very useful.
    Thanks for sharing!

  19. I wanted to thank you for this wonderful read!! I certainly loved every
    bit of it. I have you bookmarked to check out new stuff you post…

  20. An intriguing discussion is definitely worth comment.
    I do think that you need to publish more on this subject, it
    might not be a taboo subject but generally folks don’t discuss such issues.
    To the next! Best wishes!!

  21. always i used to read smaller articles that also clear their motive,
    and that is also happening with this article which I am reading at this time.

  22. Do you have any video of that? I’d like to find
    out some additional information.

  23. Une fois de plus un ƿost clairement intéressant

  24. L’intégralité des posts sont effectivement instructifs

  25. This post will assist the internet users for setting
    up new webpage or even a weblog from start to end.

  26. Excellent post. Keep writing such kind of info on your page.

    Im really impressed by your blog.
    Hi there, You have done an incredible job. I’ll definitely digg it and personally recommend to my
    friends. I’m sure they will be benefited from this web site.

    • Posted on November 9, 2012 by I do like the manner in which you have frmaed this situation and it really does supply us some fodder for consideration. Nonetheless, because of everything that I have witnessed, I simply hope as the opinions pack on that people today keep on point and don’t start on a soap box involving the news of the day. Still, thank you for this excellent point and though I do not really agree with it in totality, I regard the viewpoint.

    • Posted on November 9, 2012 by Please let me know if you’re looking for a wrteir for your weblog. You have some really good articles and I believe I would be a good asset. If you ever want to take some of the load off, I’d absolutely love to write some articles for your blog in exchange for a link back to mine. Please send me an e-mail if interested. Kudos!

  27. Hi there! I could have sworn I’ve been to this blog before but after reading through some
    of the post I realized it’s new to me. Nonetheless,
    I’m definitely delighted I found it and I’ll be book-marking and checking back frequently!

    • Posted on November 8, 2012 by Thanks so much for providing ividniduals with an extraordinarily marvellous chance to discover important secrets from here. It is usually so excellent and packed with a lot of fun for me and my office colleagues to search your web site on the least thrice weekly to learn the latest secrets you have. And lastly, I am also certainly fascinated with all the great solutions served by you. Certain 1 ideas in this post are honestly the most efficient we’ve ever had.

  28. I feel that is among the such a lot vital info for me.
    And i’m glad studying your article. But
    wanna commentary on few basic things, The web site style is wonderful, the articles is in point of fact excellent :
    D. Just right activity, cheers

  29. Asking questions are genuinely nice thing if you are not understanding anything fully, however this article
    presents nice understanding even.

  30. J’ai trouvé votre post par chance et je ne le regrette pas !!!

  31. Un puisant bravo à l’auteսr de ce site internet

  32. Why users still use to read news papers when in this technological
    globe everything is available on web?

  33. After exploring a number of the articles on your site,
    I really like your technique of writing a blog. I book marked it to my bookmark
    site lixt and will be cchecking back in the near future.
    Please check out my web site ttoo andd let me know your opinion.

  34. This is a good tip especially to those fresh to the blogosphere.
    Short but very precise info… Thanks for sharing this one.
    A must read article!

  35. Right now it appears like Expression Engine is the top blogging platform available right now.
    (from what I’ve read) Is that what you’re using on your blog?

  36. I’m gone to convey my little brother, that he
    should also go to see this weblog on regular basis
    to take updated from most up-to-date information.

  37. Really when someone doesn’t be aware of after that its
    up to other viewers that they will help, so here
    it occurs.

  38. Quality posts is the secret to attract the viewers to go to see the
    web page, that’s what this site is providing.

  39. I’m not positive where you’re getting your info, however good topic.
    I must spend a while learning much more or figuring out more.
    Thanks for excellent information I was searching for this info
    for my mission.

  40. certainly like your web site but you need to take a look at
    the spelling on quite a few of your posts. A number of them are
    rife with spelling problems and I in finding it very troublesome to inform the reality on the other hand I will definitely come again again.

  41. Fantastic items from you, man. I’ve be mindful your stuff previous to and you are just extremely wonderful. I actually like what you’ve received here,
    certainly like what you’re saying and the best way by which you assert it. You’re making it entertaining and you continue to take care of to stay it sensible.
    I cant wait to learn much more from you. That is actually a terrific web site.

  42. Hello friends, its impressive post regarding cultureand fully defined, keep it up all the
    time.

    Take a look at my blog … black and decker
    12 volt battery charger (http://Www.youtube.Com/watch?v=f-0gJWbsFSk)

  43. Hey there fantastic website! Does running a blog similar to this take a
    great deal of work? I have no expertise in coding but I was hoping to start my own blog soon. Anyways, should you
    have any recommendations or techniques for new
    blog owners please share. I know this is off subject but I
    simply wanted to ask. Cheers!

  44. This web site really has all the information I needed about this subject and didn’t know
    who to ask.

  45. Since the admin of this site is working, no doubt very quickly
    it will be well-known, due to its quality contents.

  46. hello!,I like your writing so so much! share we keep in touch
    extra approximately your article on AOL? I require an expert on this space to solve my problem.
    Maybe that’s you! Having a look forward to look
    you.

  47. I know this site gives quality dependent content and extra stuff, is there any other website which provides such information in quality?

  48. What a stuff of un-ambiguity and preserveness of
    valuable know-how about unpredicted feelings.

  49. Thank you a lot for sharing this with all folks you actually realize what you’re speaking about!

    Bookmarked. Kindly additionally seek advice from my site =).

    We could have a hyperlink alternate agreement between us

  50. This piece of writing offers clear idea in favor of the new visitors of
    blogging, that really how to do running a blog.

  51. Quality content is the crucial to be a focus for the users to pay a quick
    visit the website, that’s what this website is providing.

  52. It’s awesome in favor of me to have a web page, which
    is valuable designed for my knowledge. thanks admin

  53. Thanks for sharing such a fastidious idea, article is good, thats why i have read it completely

  54. I have read so many articles on the topic of the blogger lovers however
    this post is genuinely a nice post, keep it up.

  55. What’s up, everything is going nicely here and ofcourse every one is sharing data, that’s
    actually excellent, keep up writing.

  56. Hi there, You’ve done an incredible job. I’ll certainly digg it and personally recommend to
    my friends. I’m confident they will be benefited from this web site.

  57. Asking questions are really fastidious thing if you are not understanding something totally, but this paragraph gives fastidious understanding yet.

  58. John was the passenger, or “monkey,” on that rig last year.
    Iconic images of Pac-Man and ghost Blinky and Inky
    are used. It’s just so much easier to paste labels on people and spit out hate speech than it is to treat individuals as individuals.

  59. This article will assist the internet viewers for creating new website or even a blog from start to end.

  60. Hi to all, the contents existing at this site are genuinely amazing for people experience, well, keep up the nice work
    fellows.

  61. Hi my family member! I wish to say that this post is awesome, great written and include almost all significant infos.
    I’d like to see more posts like this .

  62. whoah this blog is fantastic i really like
    studying your posts. Stay up the good work! You already know, a
    lot of people are hunting round for this info, you can aid them greatly.

  63. Thanks designed for sharing such a nice opinion, post is good, thats why i have read it entirely

  64. This is my first time pay a visit at here and i am really impressed
    to read all at one place.

  65. For example, motorcycles, commercial vehicles and customized cars tend to be prohibited treat cancer unfortunately, i
    don’t have a straightforward answer compared to that question.

  66. Thanks for your marvelous posting! I seriously enjoyed reading it, you may be a great author.
    I will ensure that I bookmark your blog and definitely will come back in the foreseeable future.
    I want to encourage you continue your great writing, have a nice afternoon!

  67. The instruments and proportions you choose will be
    based mostly on your targets, and need to be always tweaked
    till you discover your sweet spot.

    my homepage; MagicSubmitter Review, Buy Magic Submitter, Magic Submitter Scam?
    (studienführer-physik.de)

  68. You should take part in a contest for one of the best websites on the web.
    I am going to recommend this site!

  69. The piece of meat closest to the pig’s front works the hardest, making it very sweet and nicely
    marbled with fat. If Italian cooking is one of the things you love doing together, then you might like to take some master classes offered with the – Yarra Valley wine tours.
    She knows which sequence of steps is the most efficient based on the planning.

  70. En los locales en los que se ejerza la actividad clasificada en este epígrafe, la deducción a que se refiere la letra c) de la regla 14.1.F de la Instrucción del impuesto será en todo caso del 20 . Epígrafe 653.4.- Comercio al por menor de materiales de construcción y de artículos y mobiliario de saneamiento. Epígrafe 654.2.- Comercio al por menor de accesorios y piezas de recambio para vehículos terrestres.

  71. Nice post. I learn something totally new and challenging on websites I stumbleupon everyday.
    It’s always exciting to read through articles from other authors and use something from
    their sites.

  72. Los logos y marcas de cada servicio expuesto en este website son propiedad de Servicio Técnico Oficial Zanussi MADRID y SAT oficial Zanussi MADRID , estando protegidos por las Leyes del Copyright,así como nuestros técnicos estan especializados en el Servicio Técnico y reparación de la marca Zanussi. Siemens dispone de una completa red de delegaciones, con técnicos expertos, a lo largo de todo el país.

  73. No te pierdas las instalaciones recreativas a tu disposición, que incluyen piscina al aire libre y bicicletas de alquiler. Otros servicios de este aparthotel incluyen conexión a Internet wifi gratis, servicio de niñera (de pago) y sala de juegos electrónicos de mesa. Tendrás servicio de recepción 24 horas, atención multilingüe y ascensor a tu disposición. Internacional de Faro) – 62,2 km / 38,7 mi. Las distancias se calculan en línea recta desde el alojamiento hasta el lugar de interés aeropuerto y no siempre son representativas de la distancia real de distancias se expresan en números redondos. Montajes de aire acondicionado y producción de A.C.S. (Agua Caliente Sanitaria).

  74. Sin embargo, son los más utilizados los que padecen las consecuencias de averías más frecuentemente. Incluso las lavadoras de más calidad pueden presentar problemas si se les da un uso excesivo inadecuado, introduciendo en el tambor más ropa de la indicada. Tanto en empresas de la hostelería como en hogares, debe ofrecerse profesionalidad en todos los ámbitos de los electrodomésticos y sus posibles averías. Hacer bricolaje con herramientas eléctricas de Bosch: herramientas para aficionados al bricolaje que disfrutan. Para ello, la gama de Bosch para aficionados al bricolaje consigue unir soluciones técnicas innovadoras con ventajas extraordinarias para el aficionado al bricolaje.

  75. Attractive section of content. I just stumbled upon your weblog and in accession capital to claim that I acquire in fact enjoyed
    account your blog posts. Anyway I’ll be subscribing in your feeds and even I fulfillment you get right of entry to persistently quickly.

  76. A Telégrafo: El Liebherr que comenta es, en efecto, no frost, y su nivel de ruido -como ya se ha comentado- es de 38 db, insisto medidos en mí con sonómetro en mi casa. Mi consejo: Espero que no se asusten con lo que voy a decirles, pero lo mejor es ponerse en contacto con representantes extranjeros de las marcas. Mi mujer y yo hablamos con Liebherr en Holanda sobre este tema, y hasta nos explicaron que el nivel de ruido desciende a los pocos meses de uso. Reparacion de frigorificos en el mismo dia de su aviso con garantía por escrito.

  77. Seriedad en el servicio.- Intentamos dar respuesta en menos de 24 horas en todo tipo de reparación incidencias y tratar cada incidencia con seriedad y preocupación por el cliente y su avería. Experiencia.- Contamos con más de 40 años de experiencia de nuestros técnicos en el sector de la asistencia técnica reparación de frigoríficos. LA VISITA DEL TECNICO ES GRATIS, gracias a que el Servicio Técnico de Frigoríficos Aeg ofrece a sus clientes más de 40 centros de servicio en toda la Comunidad de Madrid.

  78. You could certainly see your skills in the article you write.
    The sector hopes for more passionate writers like you who are not
    afraid to mention how they believe. All the time go after your heart.

  79. Great blog here! Additionally your web site quite a bit up
    fast! What host are you using? Can I get your associate hyperlink for your
    host? I want my web site loaded up as fast
    as yours lol

  80. Hi every one, here every person is sharing these kinds of familiarity, therefore it’s fastidious to read this weblog,
    and I used to visit this webpage daily.

  81. Truly when someone doesn’t know afterward its up to other visitors that they will assist, so here it takes place.

  82. What’s up mates, nice piece of writing and pleasant arguments commented at this place, I
    am genuinely enjoying by these.

  83. Good write-up. I absolutely appreciate this site.
    Thanks!

  84. We’re a bunch of volunteers and opening a new scheme in our
    community. Your website offered us with helpful information to
    work on. You have done an impressive task and our entire neighborhood might be grateful to you.

  85. Just want to say your article is as astounding.
    The clarity on your publish is just excellent and i could think you are an expert in this subject.

    Fine together with your permission let me to
    take hold of your feed to keep updated with impending post.

    Thank you a million and please continue the enjoyable work.

  86. I quite like reading an article that will make people think.
    Also, thank you for allowing for me to comment!

  87. What i don’t realize is in fact how you’re now not actually a lot more well-liked than you may
    be now. You’re very intelligent. You realize therefore considerably on the subject of
    this subject, produced me personally imagine it from a lot of various angles.
    Its like women and men don’t seem to be interested
    except it is something to do with Lady gaga! Your personal stuffs nice.
    At all times deal with it up!

  88. Thank you for any other great article. Where else may anybody get that type of information in such an ideal method of writing?
    I have a presentation subsequent week, and I’m at the search for such information.

  89. Wonderful goods from you, man. I have bear in mind your stuff prior to and you’re
    simply too wonderful. I really like what you’ve obtained right here, really like what you
    are stating and the way through which you are saying it.
    You’re making it enjoyable and you continue to take care of to keep it sensible.
    I cant wait to learn much more from you. That is really a terrific website.

  90. If you would like to get much from this piece of writing then you have
    to apply these strategies to your won weblog.

  91. magnificent publish, very informative. I’m wondering why the opposite specialists
    of this sector do not understand this. You must proceed
    your writing. I am confident, you’ve a huge readers’ base
    already!

  92. I believe that is one of the such a lot vital info for
    me. And i am glad studying your article. However wanna remark on some common things,
    The site style is great, the articles is really excellent
    : D. Excellent process, cheers

  93. Asking questions are truly fastidious thing if you are not understanding anything completely, however this paragraph gives good understanding yet.

  94. May I just say what a comfort to discover a person that truly
    understands what they are talking about on the net.
    You certainly know how to bring an issue to light and make
    it important. More and more people need to check this out and understand this side of your story.
    I can’t believe you’re not more popular given that
    you definitely have the gift.

  95. I leave a response whenever I like a post on a website or
    I have something to valuable to contribute to the
    conversation. Usually it’s caused by the passion displayed in the post I read.
    And after this post Mountable engines in Rails
    3.1 beta: getting started « Code Fancy. I was excited enough to post a
    comment ;) I do have some questions for you if you
    usually do not mind. Is it simply me or does it look like like some
    of these comments appear like written by brain dead folks?
    :-P And, if you are posting at other online social
    sites, I would like to keep up with you. Could you make a list the complete
    urls of your communal sites like your Facebook page,
    twitter feed, or linkedin profile?

  96. Good way of describing, and good article to take data on the topic of my
    presentation topic, which i am going to deliver in academy.

  97. When someone writes an post he/she maintains the idea of a user in his/her brain that how a user can know it.
    Thus that’s why this piece of writing is outstdanding.
    Thanks!

  98. Very great post. I simply stumbled upon your weblog and wanted to say that I have truly
    enjoyed surfing around your blog posts. In any case I’ll
    be subscribing in your feed and I’m hoping you write once more very soon!

  99. What’s up it’s me, I am also visiting this web site daily, this site
    is actually good and the users are actually
    sharing good thoughts.

  100. Thanks for some other informative site. Where else could I am getting that type of info
    written in such a perfect approach? I’ve a venture that I am just now
    working on, and I have been at the glance out for such info.

  101. What’s up to every single one, it’s genuinely a pleasant for me to pay a
    quick visit this website, it includes useful Information.

Leave a comment