Rails is really a collection of pieces that can be put together to create a web app. You can enhance or replace many of the components - how you write views, how controllers work, and how you build models. While models are built on top of ActiveRecord in the
I've decided to try documenting the different patterns used in HTML templates. By HTML templates, I mean taking some HTML(ish) text, and inserting dynamically-generated content. This templating can take place on the web server or in the browser; the patterns don't usually differ between the two.
Delimited HTML
Here are some general guidelines to consider when reviewing a pull request:
- Is the code covered by tests? *
- Are there any tests cases that are missing? *
- Unit tests - for any model changes *
- Acceptance tests - ???infrastructure needed
- Integration tests - for any front end behavior change *
- Black box testing? infrastructure needed
- Controller tests - for any controller changes *
- Rake / release tasks - manually run them? *
# Allow multiple classes to be declared via A|B instead of [A, B]. | |
class Class | |
def |(*other_classes) | |
SetOfClasses.new(self, other_classes) | |
end | |
end | |
require 'set' | |
class SetOfClasses | |
attr_reader :classes |
#### Debian Installer preseed file for Debian 7.2 (Wheezy) minimal install. | |
# Allow installer to ask questions interactively - for now. | |
d-i preseed/interactive boolean true | |
d-i debconf/frontend string newt | |
# Set localization (language, country, and locale). | |
d-i debian-installer/locale string en_US | |
d-i localechooser/preferred-locale select en_US.UTF-8 |
# MORF - My Own Ruby Framework # | |
# This is based on Uncle Bob's talk at Midwest Ruby 2011, | |
# [Architecture the Lost Years](https://www.youtube.com/watch?v=WpkDN78P884), | |
# as well as his article on [Clean Architecture](https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html). | |
# Also inspired by Gary Bernhardt's [Boundaries](https://www.youtube.com/watch?v=yTkzNHF6rMs) talk, | |
# and lots of other immutability (functional core) ideas being used within OOP programming (like Piotr Solnica's work). | |
ENV['DB_URL'] = 'memory:morf_example' |
Please have Vagrant and VirtualBox installed ahead of the workshop, if possible. We'll be providing a virtual machine (on USB keys) with the lab exercises. Having Vagrant ready to run the VM will help us get started quickly. That said, we'll have a few minutes of slide presentation to get started. You might be able to get things working then. If you're unable to get Vagrant working, we'll have you pair up with a neighbor.
# From http://blog.boochtek.com/2015/02/23/hexagonal-rails-controllers | |
class OrderController < ApplicationController | |
def index | |
interactor.on(:display) { |orders| render orders } | |
interactor.list | |
end | |
def show | |
interactor.on(:display) { |order| render order } |
* '...' - Using for Atom. | |
* "..." - Using for Text. | |
* [...] - Using this for List (and maybe Map). | |
* {...} - Using this for Block. | |
* <...> - No good, as it's too hard to parse differently than < and >. | |
* (...) - Already overloaded for precedence and method call invocation. Tuple? | |
* [<...>] - Looks like a really good choice. Map? | |
* [!...!] - Might be too hard to parse ! inside a List then. (Unless we don't have a ! operator.) | |
* [@...@] - Probably too hard to parse $ sigil inside a List then. | |
* [#...#] - Probably too hard to parse comments then. Might use for nestable block comments. |