rango 0.1.1.2.10 → 0.1.1.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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