rango 0.1.1.2.10 → 0.1.1.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/CHANGELOG +7 -0
  2. data/README.textile +2 -0
  3. data/bin/rango +5 -2
  4. data/lib/rango.rb +47 -78
  5. data/lib/rango/core_ext.rb +21 -0
  6. data/lib/rango/gv/router.rb +42 -0
  7. data/lib/rango/gv/scaffolding.rb +53 -0
  8. data/lib/rango/gv/static.rb +4 -5
  9. data/lib/rango/interactive.rb +18 -0
  10. data/lib/rango/logger.rb +14 -0
  11. data/lib/rango/mini.rb +0 -6
  12. data/lib/rango/mini_render.rb +16 -0
  13. data/lib/rango/mixins/logger.rb +19 -0
  14. data/lib/rango/mixins/message.rb +3 -3
  15. data/lib/rango/mixins/render.rb +5 -5
  16. data/lib/rango/mixins/rendering.rb +13 -13
  17. data/lib/rango/orm/README.textile +24 -0
  18. data/lib/rango/orm/tasks/datamapper.rake +40 -14
  19. data/lib/rango/orm/tasks/sequel.rake +21 -1
  20. data/lib/rango/path.rb +13 -0
  21. data/lib/rango/rack/request.rb +8 -4
  22. data/lib/rango/templates/helpers.rb +84 -86
  23. data/lib/rango/templates/template.rb +50 -53
  24. data/lib/rango/version.rb +1 -1
  25. data/spec/rango/controller_spec.rb +1 -0
  26. data/spec/rango/mixins/message_spec.rb +4 -4
  27. data/spec/rango/mixins/render_spec.rb +4 -4
  28. data/spec/rango/project_spec.rb +2 -0
  29. data/spec/rango/templates/template_spec.rb +18 -18
  30. data/stubs/{project → stack}/content/Gemfile.rbt +0 -0
  31. data/stubs/{project → stack}/content/Rakefile.rbt +0 -0
  32. data/stubs/{project → stack}/content/TODO.txt +0 -0
  33. data/stubs/{project → stack}/content/config.ru.rbt +0 -0
  34. data/stubs/{project → stack}/content/init.rb.rbt +4 -7
  35. data/stubs/{app → stack}/content/models.rb.rbt +0 -0
  36. data/stubs/stack/content/settings_local.rb.rbt +20 -0
  37. data/stubs/{project → stack}/content/spec/%name%/init_spec.rb.rbt +0 -0
  38. data/stubs/{project → stack}/content/spec/%name%/models_spec.rb.rbt +0 -0
  39. data/stubs/{project → stack}/content/spec/%name%/views_spec.rb.rbt +0 -0
  40. data/stubs/{project → stack}/content/spec/spec.opts +0 -0
  41. data/stubs/{project → stack}/content/spec/spec_helper.rb +0 -0
  42. data/stubs/{project → stack}/content/templates/base.html.haml.rbt +0 -0
  43. data/stubs/stack/content/templates/errors/404.html.haml +1 -0
  44. data/stubs/stack/content/templates/errors/500.html.haml +1 -0
  45. data/stubs/{project → stack}/content/templates/index.html.haml +0 -0
  46. data/stubs/{app → stack}/content/views.rb.rbt +13 -0
  47. data/stubs/{app → stack}/metadata.yml +0 -0
  48. data/stubs/{project → stack}/postprocess.rb +0 -0
  49. data/stubs/{project → stack}/setup.rb +0 -0
  50. metadata +82 -43
  51. data/lib/rango/orm/adapter.rb +0 -46
  52. data/lib/rango/orm/adapters/datamapper.rb +0 -26
  53. data/lib/rango/orm/adapters/sequel.rb +0 -18
  54. data/lib/rango/orm/orm.txt +0 -11
  55. data/lib/rango/orm/support/datamapper/support.rb +0 -17
  56. data/stubs/app/content/init.rb.rbt +0 -10
  57. data/stubs/app/setup.rb +0 -13
  58. data/stubs/bigapp/content/init.rb +0 -0
  59. data/stubs/bigapp/content/models/%model%.rb.rbt +0 -6
  60. data/stubs/bigapp/content/views/%controller%.rb.rbt +0 -10
  61. data/stubs/bigapp/content/views/application.rb +0 -0
  62. data/stubs/bigapp/metadata.yml +0 -3
  63. data/stubs/bigapp/setup.rb +0 -12
  64. data/stubs/project/content/settings.rb +0 -13
  65. data/stubs/project/content/settings_local.rb.rbt +0 -6
  66. data/stubs/project/metadata.yml +0 -3
@@ -1,46 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rango
4
- module ORM
5
- class Adapter
6
- def initialize
7
- Project.orm = self
8
- end
9
-
10
- # @return [String] "datamapper"
11
- def name
12
- self.class.name.split("::").last
13
- end
14
-
15
- def load
16
- raise NotImplementedError, "You have to implement Adapter#load method!"
17
- end
18
-
19
- def connect
20
- raise NotImplementedError, "You have to implement Adapter#connect method!"
21
- end
22
-
23
- # DB[:table]
24
- attr_reader :connection
25
-
26
- def form_for(*)
27
- raise NotImplementedError
28
- end
29
-
30
- def finish
31
- Rango.logger.info("Database connection established with #{Project.orm} and database #{path}")
32
- end
33
-
34
- protected
35
- def try_connect(&block)
36
- adapter = Project.settings.database_adapter
37
- database = Project.settings.database_name
38
- block.call(adapter, database)
39
- rescue Exception => exception
40
- Rango.logger.exception(exception)
41
- Rango.logger.fatal("Database connection can't be established, exiting")
42
- exit 1
43
- end
44
- end
45
- end
46
- end
@@ -1,26 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rango
4
- module ORM
5
- class Datamapper
6
- def self.models
7
- klasses = Array.new
8
- ObjectSpace.each_object(Class) do |klass|
9
- klasses.push(klass) if klass.included_modules.include?(DataMapper::Resource)
10
- end
11
- klasses
12
- end
13
-
14
- def load
15
- Rango.dependency "dm-core", gem: true
16
- require_relative "support"
17
- end
18
-
19
- def connect
20
- try_connect do |adapter, database|
21
- DataMapper.setup(:default, "#{adapter}://#{database}")
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rango
4
- module ORM
5
- class Sequel
6
- def load
7
- Rango.dependency "sequel", gem: true
8
- require_relative "support"
9
- end
10
-
11
- def connect
12
- try_connect do |adapter, database|
13
- Sequel.connect("#{adapter}://#{database}")
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,11 +0,0 @@
1
- === Core Support ===
2
- - tasks for migrations, creating db etc
3
- - Project.orm (adapter object) so plugins knows which ORM is in use and can use it's methods
4
- ? environments support ... settings_local.rb
5
-
6
- === Extended Support ===
7
- ? custom fields (slugfield)
8
- ? "action orm" layer for form_for etc
9
- - Rango.orm.form_for ... well, maybe better will be Rango.orm.errors etc (see ActionORM)
10
- - or support just ModelForms
11
- - or both ones
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # FIXME: this code is already in another file
4
- # FIXME: DataMapper vs. Datamapper
5
- module Rango
6
- class ORM
7
- class DataMapper
8
- class << self
9
- def models
10
- ObjectSpace.classes.map do |klass|
11
- klass.included(DataMapper::Resource)
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,10 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "rango/mixins/application"
4
-
5
- module <%= @name.camel_case %>
6
- extend Rango::ApplicationMixin
7
- end
8
-
9
- require_relative "models.rb"
10
- require_relative "views.rb"
data/stubs/app/setup.rb DELETED
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # This hook will be executed in context of current generator object before templater start to generate new files.
4
- # You can update context hash and register hooks. Don't forget to use merge! instead of merge, because you are
5
- # manipulating with one object, rather than returning new one.
6
-
7
- # rango create app blog --models=post,tag --controllers=posts,tags --orm=sequel
8
- hook do |generator, context|
9
- context[:orm] = "datamapper" unless context.has_key?(:orm)
10
- models = [context[:models]].compact.flatten # the flatten thing: if you have --models=post, it would be just a string
11
- controllers = [context[:controllers]].compact.flatten
12
- context.merge!(models: models, controllers: controllers)
13
- end
File without changes
@@ -1,6 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class <%= @model.camel_case %>
4
- include DataMapper::Resource
5
- property :title, String
6
- end
@@ -1,10 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # http://wiki.github.com/botanicus/rango/controllers
4
-
5
- require "rango/controller"
6
- require "rango/mixins/http_caching"
7
-
8
- class <%= @controller.camel_case %> < Rango::Controller
9
- include Rango::HttpCaching
10
- end
File without changes
@@ -1,3 +0,0 @@
1
- ---
2
- :full: yes
3
- :flat: no
@@ -1,12 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # This hook will be executed in context of current generator object before templater start to generate new files.
4
- # You can update context hash and register hooks. Don't forget to use merge! instead of merge, because you are
5
- # manipulating with one object, rather than returning new one.
6
-
7
- # rango create app blog --models=post,tag --controllers=posts,tags
8
- hook do |generator, context|
9
- models = context[:models] || Array.new
10
- controllers = context[:controllers] || Array.new
11
- context.merge!(models: models, controllers: controllers)
12
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "rango/project"
4
-
5
- Project.configure do
6
- # write it: self.feature = value
7
- # read it: Project.settings.feature
8
- self.orm = :datamapper
9
- end
10
-
11
- # plugins configuration
12
- # Rango::Plugins::Mailer.configure do
13
- # end
@@ -1,6 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # these settings will be merged with settings in main settings file
4
- Project.configure do
5
- # TODO
6
- end
@@ -1,3 +0,0 @@
1
- ---
2
- :full: yes
3
- :flat: no