Skip to content

Commit

Permalink
roadmap
Browse files Browse the repository at this point in the history
  • Loading branch information
lancejpollard committed Oct 3, 2012
1 parent 14cfa5e commit 28d5026
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 8 deletions.
25 changes: 19 additions & 6 deletions ROADMAP.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ For 0.5.0, Tower will include the features below. It's going to be a rolling li


You are free to contribute any of these features in any order… I'm more of a fan of doing what you want when you want to, as long as it follows some general plan. I stay motivated and get way more done that way. You are free to contribute any of these features in any order… I'm more of a fan of doing what you want when you want to, as long as it follows some general plan. I stay motivated and get way more done that way.


> Any features marked with `*` have been started. > Any features marked with `*` have been started. Anything in a "Requirement" section is important and not yet implemented. The rest - in "Improvements" - are improvements on already working/implemented functionality (these things may be moved until later).
## 0.5.0 - Full Featured Release ## 0.5.0 - Full Featured Release


Expand Down Expand Up @@ -72,33 +72,42 @@ You are free to contribute any of these features in any order… I'm more of a f


### 0.4.3 (controllers) ### 0.4.3 (controllers)


#### Requirements

- error hooks for controllers
- https helper methods
- compile assets for s3 so you don't have to include them in your repo
- get coffeescript working w uglifyjs
- request timeout if app crash

#### Improvements

- *some sort of `updateAll`|`deleteAll` ​functionality for controllers (array of ids)* - *some sort of `updateAll`|`deleteAll` ​functionality for controllers (array of ids)*
- *rails like flash messages - *rails like flash messages
- finish resourceful routes - finish resourceful routes
- finalize resourceful controller actions (see https://github.com/josevalim/inherited_resources) - finalize resourceful controller actions (see https://github.com/josevalim/inherited_resources)


##### Server **Server**


- ~~update to express 3.0~~ - ~~update to express 3.0~~
- add api to get remote ip address - ~~add api to get remote ip address~~
- add api to get [rough] geo from ip address - add api to get [rough] geo from ip address
- error hooks for controllers
- better `redirectTo` - better `redirectTo`
- better `urlFor` - better `urlFor`
- test subdomains on heroku/nodejitsu - test subdomains on heroku/nodejitsu
- basic controller logging/subscriptions - basic controller logging/subscriptions
- https helper methods
- namespaced controllers - namespaced controllers
- test jsonp - test jsonp
- integrate clusters and make sure it works on heroku - integrate clusters and make sure it works on heroku
- standardize/finish the `URL` object (should be an ember object with computable properties) - standardize/finish the `URL` object (should be an ember object with computable properties)
- "api endpoints" documentation - "api endpoints" documentation
- http://railscasts.com/episodes/350-rest-api-versioning
- some way to cache routes so it doesn't have to iterate through every route for each request. - some way to cache routes so it doesn't have to iterate through every route for each request.
- restart server if crashed - restart server if crashed
- https://github.com/learnboost/up - https://github.com/learnboost/up
- http://stackoverflow.com/questions/9558360/node-js-reliability-for-large-application - http://stackoverflow.com/questions/9558360/node-js-reliability-for-large-application


##### Client **Client**


- better route2ember map - better route2ember map
- better controller scopes - better controller scopes
Expand All @@ -112,6 +121,9 @@ You are free to contribute any of these features in any order… I'm more of a f
- convert all `class X` in tower to `.extend`, just javascript - convert all `class X` in tower to `.extend`, just javascript
- for tower development, compile and load client sub-packages to improve workflow. - for tower development, compile and load client sub-packages to improve workflow.
- better error reporting w/ coffeescript (`options = bare: true, filename: filePath`) - better error reporting w/ coffeescript (`options = bare: true, filename: filePath`)
- generic file/path extensions
- file.matches
- file.pattern()


<a name="0.4.4" href="0.4.4"></a> <a name="0.4.4" href="0.4.4"></a>


Expand Down Expand Up @@ -210,6 +222,7 @@ By this point, the models, views, templates, and controllers should be fairly co
- http caching methods in the controller - http caching methods in the controller
- redirect helpers at the top level, so you easily write permanent redirects (http://stackoverflow.com/questions/4046960/how-to-redirect-without-www-using-rails-3-rack) - redirect helpers at the top level, so you easily write permanent redirects (http://stackoverflow.com/questions/4046960/how-to-redirect-without-www-using-rails-3-rack)
- create normalized file/directory api (wrench, pathfinder, findit... need to merge this stuff into one) - create normalized file/directory api (wrench, pathfinder, findit... need to merge this stuff into one)
- cloud paas environment variable map
- handle app config: - handle app config:
``` ruby ``` ruby
config.encoding = "utf-8" config.encoding = "utf-8"
Expand Down
7 changes: 7 additions & 0 deletions packages/tower-application/server/platform.coffee
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,7 @@
# @todo this should normalize the environment variables for different paas providers.

Tower.__defineGetter__ 'isHeroku', ->
process.env.TOWER_CLOUD_PLATFORM == 'heroku'

Tower.__defineGetter__ 'isNodejitsu', ->
process.env.TOWER_CLOUD_PLATFORM == 'nodejitsu'
Empty file.
1 change: 1 addition & 0 deletions packages/tower-support/shared/shared.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ _.extend Tower,
config: {} config: {}
namespaces: {} namespaces: {}
metadata: {} metadata: {}

tryRequire: (paths) -> tryRequire: (paths) ->
paths = _.flatten(paths) paths = _.flatten(paths)
for path in paths for path in paths
Expand Down
5 changes: 4 additions & 1 deletion packages/tower/client.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -29,11 +29,14 @@ require '../tower-controller/client'
require '../tower-net/client' require '../tower-net/client'
require '../tower-middleware/server' require '../tower-middleware/server'


Tower.pathSeparator = '/'
Tower.pathRegExp = /\//g

Tower.goTo = (string, params) -> Tower.goTo = (string, params) ->
# History.pushState(params, params?.title, string) # History.pushState(params, params?.title, string)


Tower.joinPath = -> Tower.joinPath = ->
_.args(arguments).join('/') _.args(arguments).join(Tower.pathSeparator)


# compile pattern for location? # compile pattern for location?
# location = new RegExp(window.location.hostname) # location = new RegExp(window.location.hostname)
2 changes: 2 additions & 0 deletions packages/tower/server.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ _.extend Tower,
watch: true watch: true
publicCacheDuration: 60 * 1000 publicCacheDuration: 60 * 1000
domain: 'localhost' domain: 'localhost'
pathSeparator: _path.sep
pathRegExp: new RegExp(_.regexpEscape(_path.sep), 'g')


render: (string, options = {}) -> render: (string, options = {}) ->
Tower.modules.mint.render(options.type, string, options) Tower.modules.mint.render(options.type, string, options)
Expand Down
2 changes: 1 addition & 1 deletion wiki
Submodule wiki updated from dd3865 to 537c81

0 comments on commit 28d5026

Please sign in to comment.