Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add modified time #60

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions en/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ Check out demo apps:
- https://github.com/voltrb/todomvc
- https://github.com/voltrb/blog5


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,5 @@
* [Component Gems](contributing/component_gems.md)
* [Contributing](contributing/README.md)


Modified at {{ file.mtime }}
4 changes: 3 additions & 1 deletion en/contributing/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Contributing

You want to contribute? Great! Thanks for being awesome! We have full docs on how to contribute here:
https://github.com/voltrb/volt/blob/master/CONTRIBUTING.md
https://github.com/voltrb/volt/blob/master/CONTRIBUTING.md

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/contributing/component_gems.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ NOTE: this section is a work in progress
## Component Load Order

-

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/deployment/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Volt Deployment

This chapter highlights various deployment options for Volt on popular cloud providers.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/deployment/cloud9.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,5 @@ end


NOTE: if anyone wants to create a custom Volt imagge for cloud9, please let @ryanstout know in the gitter room. Thanks!

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/deployment/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ docker run --name my-volt-app -p 3000:3000 -d my-volt-app
```

You can then go to http://localhost:3000 in your browser

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/deployment/heroku.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ end

You can see an example application that has been deployed [here](https://murmuring-hollows-3078.herokuapp.com/about).


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@

The following attempts to document all of the features of Volt. While the code is always the final source of authority, we attempt to keep these docs as up-to-date as possible.


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/arraymodel_events.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ page._items.delete_at(0)
```

This is used internally on each bindings, but can be used in your own code.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ Any JS/CSS from an included component or component gem will be included as well.
It is reccomended that images and other assets be put in ```app/{component}/assets/images``` (or fonts, etc..) Then the url for an image for example would be: ```/assets/{component}/assets/images/...```

**Note: asset bundling is on the TODO list**

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/associations.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ end

```belongs_to``` associations return a promise that resolves with the associated model.


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/attribute_bindings.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ Select boxes can be bound to a value (while not technically a DOM property, this

When the selected option of the select above changes, ```_rating``` is changed to match. When ```_rating``` is changed, the selected value is changed to the first option with a matching value. If no matching values are found, the select box is unselected.


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/automatic_model_conversion.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ items.to_a
```

You can get a normal array again by calling .to_a on a Volt::ArrayModel.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/beforeafter_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@ You can limit which actions a filter runs on by passing ```only: :some_action```
It is common to redirect from inside of a before filter. If you no longer wish to continue with the rendering, you can call ```stop_chain``` in an action and the rendering will stop.

```stop_chain``` raises an exception that will be caught by the filter runner, so no code after ```stop_chain``` will be run.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/buffers.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ end
```

Calling .buffer on an existing model will return a buffer for that model instance. If you call .buffer on a Volt::ArrayModel, you will get a buffer for a new item in that collection. Calling .save! will then add the item to that sub-collection as if you had done ```<<``` or ```create``` to push the item into the collection.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/callbacks_and_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ When a view binding or tag renders a view, it first loads a controller. There a

Most of the time all you will need is the action method to setup the controller, model, etc...


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/channel.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ channel.on('disconnect') do
.. disconnect ..
end
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/component_gems.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ rake release
```

Remove the ```path:``` option in the gemfile if you wish to use the rubygems version.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/components.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ You can add a new component to an app with:

When you visit a route, it loads all of the files in the component on the front end, so new pages within the component can be rendered without a new http request. If a URL is visited that routes to a different component, the request will be loaded as a normal page load and all of that component's files will be loaded. You can think of components as the "reload boundary" between sections of your app. [Note: currently only the "main" component is supported for initial page load, expect "reload boundry" support soon]


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/content_binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ The most basic binding is a content binding:

The content binding runs the Ruby code between ```{{``` and ```}}```, then renders the return value. Any time the data a content binding relies on changes, the binding will run again and update the text. Text in content bindings is html escaped by default.


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/controllers.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,5 @@ You can also provide your own object to be a model.
In the example above, any methods not defined on the TodosController will fall through to the provided model. All views in the ```views/{controller_name}``` folder will have this controller as the target for any Ruby run in their bindings. This means that calls on ```self``` (implicit or with ```self```.) will have the model as their target (after calling through the controller). This lets you add methods to the controller to control how the model is handled, or provide extra methods to the views.

Volt is more similar to an MVVM architecture than an MVC architecture. Instead of the controllers passing data off to the views, the controllers are the context for the views. When using a ```Volt::ModelController```, the controller automatically forwards all methods it does not handle to the model. This is convenient since you can set a model in the controller and then access its properties directly with methods in bindings. This lets you do something like ```{{ _name }}``` instead of something like ```{{ model._name }}```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ An in-browser REPL (like irb) is in the works. We also have source maps support
MAPS=true volt s

This feature is disabled by default because (due to the volume of pages rendered) it slows down page rendering. We're working with the opal and sprockets teams to make it so everything is still served in one big source map file (which would show the files as they originated on disk).

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ css_file '//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css'
```

Note, however, that jquery and bootstrap are currently both included by default. Dependencies included with ```javascript_file``` and ```css_file``` will be mixed in with your component assets at the correct locations according to the order that they occur in the dependencies.rb files.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/each_binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ For the array: ```['one', 'two', 'three']``` this would print:
You can do ```{{ index + 1 }}``` to correct the zero offset.

When items are removed or added to the array, the ```each``` binding automatically and intelligently adds or removes the items from/to the DOM.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/environment_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ In addition to the options in config/app.rb, some instance specific options in V
| DB_DRIVER | Same as Volt.config.db_driver |
| DB_URI | Same as Volt.config.db_uri |


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/escaping.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ When you need to use {{ and }} outside of bindings, anything in a triple mustach
```html
{{{ bindings look like: {{this}} }}}
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/event_bindings.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,5 @@ Calls preventDefault() on the jQuery event.
### .target

Returns the target DOM node.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/fields.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# Fields

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/flash_collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ cookies.delete(:user_id)
Values in the cookie collection are converted to strings. Adding expiration and other options are still on our todo list. Right now cookies default to a 1 year expiration.



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/getting_view_dom_nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,5 @@ In the example above with two td's however, this will return the table, which is
In the above example, the section tag is a single root node for the whole view. However due to the whitespace, there are technically other nodes, so ```container``` will return the node above the section. If you know you only have one node in a view, you can use ```first_element``` to get the first element node in a view. (An element node is a tag)



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/http_controllers.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,5 @@ You can add custom HTTP headers to your response. The custom headers will be tra

:auth_token will be transformed to 'Auth-Token'. You can either set headers by using a ```Symbol``` or a ```String```.
```:auth_token == 'Auth-Token' == 'auth-token' == 'Auth_Token'```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/if_binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,5 @@ Unless is supported as well.
<p>render this when some_check? is false</p>
{{ end }}
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/lib.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ If you really like having Gems auto-required, you can put the following at the s
```ruby
Bundler.setup
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/message_bus.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ The message bus can also be used from your app's code. The message bus provides
## Custom Message Bus

You can create your own message bus implementation by implementing the ```BaseMessageBus``` class at ```lib/volt/message_bus/base_message_bus.rb``` Then you can set the ```config.message_bus.bus_name = 'name_of_class'``` where ```name_of_class``` is the underscored version of you class name. See ```base_message_bus.rb``` for details on implementing your own bus.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/middleware.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ Volt.current_app.middleware.use(SomeMiddleware)
- ```run```

(more methods to reorder middleware coming soon)

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/model_classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ Now when you access any sub-collection called ```_info```, it will load as an in
```

This lets you set custom methods and validations within collections.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/model_states.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ On any store model (or buffer) you can call .saved_state and will get back one o
| dirty | The data was loaded at one point, but is no longer being synced with the server. This will happen if no bindings are reactively listening on the data or anything produced from the data |



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,5 @@ page._items.size
page._items[0]
# => <Volt::Model {:id=>"997e8a28c9675452ebcd5fa7", :name=>"Item 1"}>
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/nil_models.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ simply use:
Additionally, ```#and``` works the same way as ```&&```. ```#and``` and ```#or``` let you easily deal with default values involving NilModels.

-- TODO: Document .true? / .false?

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,5 @@ end

The permissions API attempts to provide a simple way to define who can do what to your app's data. You can put any logic inside of the permissions blocks


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/provided_collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ Above, we mentioned that Volt comes with many default collection models accessib
| controller | A model for the current controller. |

**More storage locations are planned.**

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/provided_components.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@ flash._notices << "message to flash"
```

These messages will show for 5 seconds, then disappear (both from the screen and the collection).

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/reactive_accessors.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ end
```

Now, from the view, we can bind to ```query``` while also changing in and out the model. When ```query``` is accessed it tracks that it was accessed and will rerun any Computations when it changes.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,5 @@ As mentioned above, you will rarely use Dependencies directly, but having an und
TODO: Explain Dependencies



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/routes.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ This means that routes in Volt have to be able to go both from URL to params and
## Http Routes

To provide data to clients that need to access it via Http (a REST api for example)

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/routes_file.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,5 @@ delete "/api/todos/{{ id }}", controller: 'todos', action: 'destroy', safe: true
The above will make ```id```, ```controller```, ```action``` and ```safe``` availabe to the controller via the params hash.

You can overwrite the actual HTTP method by providing setting "method" via the HTTP GET or POST parameters.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/store_collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,5 @@ Because there is a delay when syncing data to the server, store models provide a
| dirty | the data was loaded, but it is no longer being kept in sync with the server |



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/sub_collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ montana._cities.create({name: 'Helena'})
store._states.create(montana)
# => #<Promise(70297821780700): #<Volt::Model id: "84bd..b3be", name: "Montana">>
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/tag_attributes.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ Instead of passing in individual attributes, you can also assign the controllers
{{ end }}
</li>
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ Refer to the View Binding section to see how tags lookup their associated view f
A tag loads the same as a template, loading the controller, calling the action method (if one exists), and rendering the view. You can also pass in attributes to Tags.



Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ end.fail do |error|
end
```


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ The integration tests don't run by default, to run Capybara tests, you need to s
3. IE - coming soon

Chrome is not supported due to [this issue](https://code.google.com/p/chromedriver/issues/detail?id=887#makechanges) with ChromeDriver. Feel free to go [here](https://code.google.com/p/chromedriver/issues/detail?id=887#makechanges) and pester the chromedriver team to fix it.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/url.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ In volt you can access information about the url via the ```url``` method, which
- fragment

Each method will reactively update when the url changes.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/url_for_and_url_with.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,5 @@ Because ```url_with``` is a controller method, it can also be accessed in views:
```html
<a href="{{ url_with(page: 5) }}">page 5</a>
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/users.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,5 @@ module Main
end
```


Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/validations.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,5 @@ end
## Custom Validators

TODO: Document custom validator classes

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/view_bindings.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ The above would search the following:
| :body | index.html | comments | gems/blog |

Once the file for the tag or view is found, Volt will look for a matching controller. If the view file does not have an associated controller, a new ```ModelController``` will be used. Once a controller is found and loaded, a corresponding "action" method will be called on it if it exists. Action methods default to the name of the view file (without .html)

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/views.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@ While Volt is more of a Model View ViewModel (MVVM) framework than a MVC framewo
Any method call or instance variable lookup in a view runs in the context of such a controller.

If you have a view at ```app/main/views/index/index.html``` it will load the controller at ```app/main/controller/index_controller.rb```.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/volt_command.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,5 @@ Runner is an easy way to run code inside of the volt environment. Runner takes
## drop_collection

TODO:...

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/volt_helpers.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ Volt does its best to start with useful defaults. You can configure things, lik
| db_host | 'localhost' | The hostname for the mongo database. |
| db_port | 27017 | The port for the mongo database. |
| compress_deflate | false | If true, will run deflate in the app server. It's better to let something like nginx do this, though. |

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/docs/yield_binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ In the example above, "About" can be rendered elsewhere using ```{{ yield }}```.
Any content or other bindings can be passed into the ```tag```. You can also pass content to component tags and yield inside of their views.

Lastly if you just want to get the html content as a string, you can call ```yield_html``` in the controller. This will return a string that you can ```.watch!``` on if needed and it will re-render when the content changes.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/getting_help/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ Volt is still a work in progress, but early feedback is very much appreciated.
- **If you found a bug**: post on [github issues](https://github.com/voltrb/volt/issues)
- **If you have an idea or need a feature**: post on [github issues](https://github.com/voltrb/volt/issues)
- **If you want to discuss Volt**: [chat on gitter](https://gitter.im/voltrb/volt), someone from the volt team is usually online and happy to help with anything.

Modified at {{ file.mtime }}
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,5 @@ end
```

In opal, local variables compile down to JS local variables, so we can assign ```post``` and then call ```#container```. Inside of our JS we have access to the ```post``` variable. We can pass the container node to jQuery and call our method on it.

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/getting_help/can_i_use_opal_gems.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ if RUBY_PLATFORM == 'opal'
require 'browser'
end
```

Modified at {{ file.mtime }}
2 changes: 2 additions & 0 deletions en/getting_help/does_volt_support_haml,_slim,_etc.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ When rendering to the actual dom, Volt tracks the locations of the rendered DOM
Its not too bad, but out of the box gems like haml and slim aren't designed for what Volt needs. Any template language that can compile to Volt's compiled template format can be used. The compiled template format is ruby code (that gets compiled to the client via Opal). It consists of html and bindings. The html has placeholders (currently special html comments) that show where the binding should be rendered. The bindings are ruby Procs that setup instance of the bindings. (Volt::EachBinding, Volt::ContentBinding, Volt::AttributeBinding, Volt::IfBinding, and Volt::EventBinding)

To make haml or slim compile, someone will need to modify slim or haml to produce the Volt compiled template format (instead of pre-rendered html) It shouldn't be that hard, but its not trivial. If you are intereted, hit up @ryanstout on our [gitter](https://gitter.im/voltrb/volt).

Modified at {{ file.mtime }}
Loading