lotusrb 0.5.0 → 0.6.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -14
- data/FEATURES.md +21 -0
- data/LICENSE.md +1 -1
- data/README.md +8 -7
- data/bin/lotus +1 -0
- data/lib/lotus.rb +6 -0
- data/lib/lotus/action/csrf_protection.rb +1 -1
- data/lib/lotus/application.rb +4 -4
- data/lib/lotus/application_name.rb +8 -6
- data/lib/lotus/cli.rb +75 -66
- data/lib/lotus/cli_sub_commands/assets.rb +29 -0
- data/lib/lotus/{commands → cli_sub_commands}/db.rb +24 -29
- data/lib/lotus/cli_sub_commands/destroy.rb +102 -0
- data/lib/lotus/cli_sub_commands/generate.rb +127 -0
- data/lib/lotus/commands/assets/precompile.rb +35 -0
- data/lib/lotus/commands/console.rb +28 -8
- data/lib/lotus/commands/db/abstract.rb +6 -2
- data/lib/lotus/commands/db/console.rb +5 -5
- data/lib/lotus/commands/generate/abstract.rb +63 -0
- data/lib/lotus/commands/generate/action.rb +262 -0
- data/lib/lotus/commands/generate/app.rb +116 -0
- data/lib/lotus/commands/generate/mailer.rb +118 -0
- data/lib/lotus/commands/generate/migration.rb +63 -0
- data/lib/lotus/commands/generate/model.rb +96 -0
- data/lib/lotus/commands/new/abstract.rb +128 -0
- data/lib/lotus/commands/new/app.rb +116 -0
- data/lib/lotus/commands/new/container.rb +102 -0
- data/lib/lotus/commands/routes.rb +19 -2
- data/lib/lotus/commands/server.rb +16 -2
- data/lib/lotus/config/framework_configuration.rb +13 -1
- data/lib/lotus/configuration.rb +24 -76
- data/lib/lotus/container.rb +15 -2
- data/lib/lotus/environment.rb +43 -4
- data/lib/lotus/frameworks.rb +1 -0
- data/lib/lotus/generators/action/action_spec.minitest.tt +1 -1
- data/lib/lotus/generators/action/action_spec.rspec.tt +1 -1
- data/lib/lotus/generators/action/view_spec.minitest.tt +1 -1
- data/lib/lotus/generators/action/view_spec.rspec.tt +1 -1
- data/lib/lotus/generators/{slice → app}/.gitkeep.tt +0 -0
- data/lib/lotus/generators/{slice → app}/application.rb.tt +61 -23
- data/lib/lotus/generators/app/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/{slice → app}/config/routes.rb.tt +0 -0
- data/lib/lotus/generators/app/favicon.ico +0 -0
- data/lib/lotus/generators/{slice → app}/templates/application.html.erb.tt +2 -1
- data/lib/lotus/generators/app/views/application_layout.rb.tt +7 -0
- data/lib/lotus/generators/application/app/.env.development.tt +1 -0
- data/lib/lotus/generators/application/app/.env.test.tt +1 -0
- data/lib/lotus/generators/application/app/Gemfile.tt +1 -0
- data/lib/lotus/generators/application/app/Rakefile.minitest.tt +1 -0
- data/lib/lotus/generators/application/app/Rakefile.rspec.tt +1 -0
- data/lib/lotus/generators/application/app/config/application.rb.tt +56 -18
- data/lib/lotus/generators/application/app/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/application/app/favicon.ico +0 -0
- data/lib/lotus/generators/application/app/gitignore.tt +2 -0
- data/lib/lotus/generators/application/app/lotusrc.tt +3 -3
- data/lib/lotus/generators/application/app/spec_helper.rb.rspec.tt +5 -1
- data/lib/lotus/generators/application/app/templates/application.html.erb.tt +1 -0
- data/lib/lotus/generators/application/container/.env.development.tt +1 -0
- data/lib/lotus/generators/application/container/.env.test.tt +1 -0
- data/lib/lotus/generators/application/container/Gemfile.tt +1 -1
- data/lib/lotus/generators/application/container/Rakefile.minitest.tt +1 -0
- data/lib/lotus/generators/application/container/Rakefile.rspec.tt +1 -0
- data/lib/lotus/generators/application/container/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/gitignore.tt +2 -0
- data/lib/lotus/generators/application/container/lib/chirp/mailers/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/lib/chirp/mailers/templates/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/lotusrc.tt +3 -3
- data/lib/lotus/generators/application/container/spec_helper.rb.rspec.tt +5 -1
- data/lib/lotus/generators/database_config.rb +17 -4
- data/lib/lotus/generators/generatable.rb +51 -0
- data/lib/lotus/generators/generator.rb +35 -0
- data/lib/lotus/generators/test_framework.rb +42 -0
- data/lib/lotus/loader.rb +43 -0
- data/lib/lotus/lotusrc.rb +50 -49
- data/lib/lotus/middleware.rb +28 -10
- data/lib/lotus/rake_helper.rb +68 -0
- data/lib/lotus/rake_tasks.rb +2 -0
- data/lib/lotus/rendering_policy.rb +2 -2
- data/lib/lotus/repositories/car_repository.rb +3 -0
- data/lib/lotus/repositories/name_repository.rb +3 -0
- data/lib/lotus/setup.rb +1 -3
- data/lib/lotus/static.rb +77 -0
- data/lib/lotus/templates/welcome.html.erb +7 -4
- data/lib/lotus/version.rb +1 -1
- data/lib/lotus/views/default.rb +2 -1
- data/lib/lotus/views/default_template_finder.rb +4 -3
- data/lotusrb.gemspec +11 -9
- metadata +79 -60
- data/lib/lotus/commands/generate.rb +0 -97
- data/lib/lotus/commands/new.rb +0 -43
- data/lib/lotus/config/assets.rb +0 -81
- data/lib/lotus/generators/abstract.rb +0 -31
- data/lib/lotus/generators/action.rb +0 -235
- data/lib/lotus/generators/app.rb +0 -39
- data/lib/lotus/generators/app/.gitkeep +0 -1
- data/lib/lotus/generators/application/app.rb +0 -129
- data/lib/lotus/generators/application/container.rb +0 -111
- data/lib/lotus/generators/mailer.rb +0 -112
- data/lib/lotus/generators/migration.rb +0 -58
- data/lib/lotus/generators/model.rb +0 -90
- data/lib/lotus/generators/slice.rb +0 -94
- data/lib/lotus/generators/slice/views/application_layout.rb.tt +0 -7
data/lib/lotus/middleware.rb
CHANGED
@@ -52,7 +52,7 @@ module Lotus
|
|
52
52
|
@builder.call(env)
|
53
53
|
end
|
54
54
|
|
55
|
-
#
|
55
|
+
# Append a middleware to the stack.
|
56
56
|
#
|
57
57
|
# @param middleware [Object] a Rack middleware
|
58
58
|
# @param args [Array] optional arguments to pass to the Rack middleware
|
@@ -61,7 +61,24 @@ module Lotus
|
|
61
61
|
# @return [Array] the middleware that was added
|
62
62
|
#
|
63
63
|
# @since 0.2.0
|
64
|
+
#
|
65
|
+
# @see Lotus::Middleware#prepend
|
64
66
|
def use(middleware, *args, &blk)
|
67
|
+
@stack.push [middleware, args, blk]
|
68
|
+
end
|
69
|
+
|
70
|
+
# Prepend a middleware to the stack.
|
71
|
+
#
|
72
|
+
# @param middleware [Object] a Rack middleware
|
73
|
+
# @param args [Array] optional arguments to pass to the Rack middleware
|
74
|
+
# @param blk [Proc] an optional block to pass to the Rack middleware
|
75
|
+
#
|
76
|
+
# @return [Array] the middleware that was added
|
77
|
+
#
|
78
|
+
# @since 0.6.0
|
79
|
+
#
|
80
|
+
# @see Lotus::Middleware#use
|
81
|
+
def prepend(middleware, *args, &blk)
|
65
82
|
@stack.unshift [middleware, args, blk]
|
66
83
|
end
|
67
84
|
|
@@ -80,8 +97,8 @@ module Lotus
|
|
80
97
|
# @since 0.2.0
|
81
98
|
def load_default_stack(application)
|
82
99
|
@default_stack_loaded ||= begin
|
100
|
+
_load_assets_middleware
|
83
101
|
_load_session_middleware
|
84
|
-
_load_asset_middlewares
|
85
102
|
_load_default_welcome_page_for(application)
|
86
103
|
use Rack::MethodOverride
|
87
104
|
|
@@ -106,19 +123,20 @@ module Lotus
|
|
106
123
|
# @since 0.2.0
|
107
124
|
def _load_session_middleware
|
108
125
|
if @configuration.sessions.enabled?
|
109
|
-
|
126
|
+
prepend(*@configuration.sessions.middleware)
|
110
127
|
end
|
111
128
|
end
|
112
129
|
|
113
|
-
#
|
130
|
+
# Use static assets middleware
|
114
131
|
#
|
115
132
|
# @api private
|
116
|
-
#
|
117
|
-
def
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
133
|
+
# @since 0.6.0
|
134
|
+
def _load_assets_middleware
|
135
|
+
env = Lotus.environment
|
136
|
+
|
137
|
+
if !env.container? && env.serve_static_assets?
|
138
|
+
require 'lotus/static'
|
139
|
+
use Lotus::Static
|
122
140
|
end
|
123
141
|
end
|
124
142
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
module Lotus
|
4
|
+
# Install Rake tasks in projects
|
5
|
+
#
|
6
|
+
# @since 0.6.0
|
7
|
+
# @api private
|
8
|
+
class RakeHelper
|
9
|
+
include Rake::DSL
|
10
|
+
|
11
|
+
# @since 0.6.0
|
12
|
+
# @api private
|
13
|
+
def self.install_tasks
|
14
|
+
new.install
|
15
|
+
end
|
16
|
+
|
17
|
+
# @since 0.6.0
|
18
|
+
# @api private
|
19
|
+
def install
|
20
|
+
desc "Preload project configuration"
|
21
|
+
task :preload do
|
22
|
+
require 'lotus/environment'
|
23
|
+
Lotus::Environment.new
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "Load the full project"
|
27
|
+
task environment: :preload do
|
28
|
+
require Lotus::Environment.new.env_config
|
29
|
+
Lotus::Application.preload_applications!
|
30
|
+
end
|
31
|
+
|
32
|
+
# Ruby ecosystem compatibility
|
33
|
+
#
|
34
|
+
# Most of the SaaS automatic tasks are designed after Ruby on Rails.
|
35
|
+
# They expect the following Rake tasks to be present:
|
36
|
+
#
|
37
|
+
# * db:migrate
|
38
|
+
# * assets:precompile
|
39
|
+
#
|
40
|
+
# See https://github.com/heroku/heroku-buildpack-ruby/issues/442
|
41
|
+
#
|
42
|
+
# ===
|
43
|
+
#
|
44
|
+
# These Rake tasks aren't listed when someone runs `rake -T`, because we
|
45
|
+
# want to encourage developers to use `lotus` commands.
|
46
|
+
#
|
47
|
+
# In order to migrate the database or precompile assets a developer should
|
48
|
+
# use:
|
49
|
+
#
|
50
|
+
# * lotus db migrate
|
51
|
+
# * lotus assets precompile
|
52
|
+
#
|
53
|
+
# This is the preferred way to run Lotus command line tasks.
|
54
|
+
# Please use them when you're in control of your deployment environment.
|
55
|
+
namespace :db do
|
56
|
+
task :migrate do
|
57
|
+
system "bundle exec lotus db migrate"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
namespace :assets do
|
62
|
+
task :precompile do
|
63
|
+
system "bundle exec lotus assets precompile"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -27,7 +27,7 @@ module Lotus
|
|
27
27
|
def render(env, response)
|
28
28
|
body = _render(env, response)
|
29
29
|
|
30
|
-
response[BODY] = Array(body) unless body.nil?
|
30
|
+
response[BODY] = Array(body) unless body.nil? || body.respond_to?(:each)
|
31
31
|
response
|
32
32
|
end
|
33
33
|
|
@@ -66,7 +66,7 @@ module Lotus
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def view_for(action, response)
|
69
|
-
if response[BODY].empty?
|
69
|
+
if response[BODY].respond_to?(:empty?) && response[BODY].empty?
|
70
70
|
captures = @controller_pattern.match(action.class.name)
|
71
71
|
Utils::Class.load!(@view_pattern % { controller: captures[:controller], action: captures[:action] }, @namespace)
|
72
72
|
else
|
data/lib/lotus/setup.rb
CHANGED
data/lib/lotus/static.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'rack/static'
|
2
|
+
require 'lotus/assets/compiler'
|
3
|
+
|
4
|
+
module Lotus
|
5
|
+
class Static < ::Rack::Static
|
6
|
+
PATH_INFO = 'PATH_INFO'.freeze
|
7
|
+
PUBLIC_DIRECTORY = Lotus.public_directory.join('**', '*').to_s.freeze
|
8
|
+
|
9
|
+
def initialize(app)
|
10
|
+
super(app, root: Lotus.public_directory, header_rules: _header_rules)
|
11
|
+
@sources = _sources_from_applications
|
12
|
+
end
|
13
|
+
|
14
|
+
def call(env)
|
15
|
+
path = env[PATH_INFO]
|
16
|
+
|
17
|
+
prefix, config = @sources.find {|p, _| path.start_with?(p) }
|
18
|
+
original = if prefix && config
|
19
|
+
config.sources.find(path.sub(prefix, ''))
|
20
|
+
end
|
21
|
+
|
22
|
+
if can_serve(path, original)
|
23
|
+
super
|
24
|
+
else
|
25
|
+
precompile(original, config) ?
|
26
|
+
call(env) :
|
27
|
+
@app.call(env)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def can_serve(path, original = nil)
|
34
|
+
destination = Dir[PUBLIC_DIRECTORY].find do |file|
|
35
|
+
file.index(path).to_i > 0
|
36
|
+
end
|
37
|
+
|
38
|
+
(super(path) || !!destination) && _fresh?(original, destination)
|
39
|
+
end
|
40
|
+
|
41
|
+
def _fresh?(original, destination)
|
42
|
+
# At this point we're sure that destination exist.
|
43
|
+
#
|
44
|
+
# If original is missing, it could be a file that a developer manually
|
45
|
+
# created into public directory without having the corresponding original.
|
46
|
+
# In this case we return true, so the destination file can be served.
|
47
|
+
return true if original.nil? || !::File.exist?(original.to_s)
|
48
|
+
|
49
|
+
::File.mtime(destination) >
|
50
|
+
::File.mtime(original)
|
51
|
+
end
|
52
|
+
|
53
|
+
def precompile(original, config)
|
54
|
+
return unless original && config
|
55
|
+
|
56
|
+
Lotus::Assets::Compiler.compile(config, original)
|
57
|
+
true
|
58
|
+
end
|
59
|
+
|
60
|
+
def _sources_from_applications
|
61
|
+
Lotus::Application.applications.each_with_object({}) do |application, result|
|
62
|
+
config = _assets_configuration(application)
|
63
|
+
result["#{ config.prefix }/"] = config
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def _assets_configuration(application)
|
68
|
+
application.configuration.namespace::Assets.configuration
|
69
|
+
end
|
70
|
+
|
71
|
+
def _header_rules
|
72
|
+
unless Lotus.env?(:development, :test)
|
73
|
+
[[:all, {'Cache-Control' => 'public, max-age=31536000'}]]
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -2,11 +2,12 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Lotus — A complete web framework for Ruby</title>
|
5
|
+
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon.ico">
|
5
6
|
<style>
|
6
7
|
* { margin: 0; padding: 0; }
|
7
8
|
body { font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; color: #333; background-color: #ecf0f1; font-size: 16px; line-height: 24px; }
|
8
|
-
|
9
|
-
|
9
|
+
h2, h3 { margin: -20px; line-height: 100px; text-align: center; }
|
10
|
+
.logo { text-align: center; margin-top: 0.5em; }
|
10
11
|
h2 { font-size: 30px; }
|
11
12
|
h3 { font-size: 20px; line-height: 22px; color: #666; }
|
12
13
|
hr { margin: 2em; color: #ecf0f1; }
|
@@ -23,7 +24,9 @@
|
|
23
24
|
</head>
|
24
25
|
<body>
|
25
26
|
<div id="container">
|
26
|
-
<
|
27
|
+
<div class="logo">
|
28
|
+
<img alt="Lotus Logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW4AAABYCAMAAADiKO25AAAAilBMVEUAAABQK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK01QK013Ei1ZAAAALXRSTlMAwNCwcB8QYKAC+haQ9e/qPQrZUAaKf+RFmskwJKpLaVW6WqV437WENirGlmT3SgtbAAAG40lEQVR42uzb6XKiQBSG4YMKCAyryCYqKq7jd/+3NwsqQzyNpGY6OFU8P6mkKnlDmm66pS7UzcGiwRcpbMBZ0eArGN/w29GggXT+GDfLkAaSWRc8KBoNpNIy/CHzaSBRqKDhMIzfMqX4YE4DaQo8GeaD0lgunsTD8C3LHIyIBlJoNhjOcHvLsQZrSwMZxmDtaCBDDFZAAxlMsBwa/DTk/r8Ng4k8flIus727H+10q9uj0rruRj+/IduVyTA3/BTtujHxYH/XXk8ErdTEg3nQh3ezXXlLE03x6dUyx3PRZE5P9GXCfLUuo2iie++7hWp5ha7PVmefGpIMz2yvfRGf2HimJNRVoVSO9Hl5ubHxsJ9ufRLKlS4saqqvs1Kl4pGIv126uAt2V4sewHLVtldUuQOOTV1NUBnTJ4V6ho/s9EwCC3ShUlN9nTVCZUY8LXrKsylCqjhgKYb4BayRgRXLzm1s92At1ffJvYrBCLYG/RKAV4i3F67gjSTnzhWI2BPjTXJHEMgW9NMGvMAQbZ6FMXhLublnDlocrLfIHUHILA2i7xBYibaGtxCYS81dol2gvkHuGdpMiNYQGIsOPmwgsJWZe45X4rz33JqLmrPf2/jTXmv5iUyNP9ZjQSSXmHuCPwTzVe5TaCXlpXHZog/yUYODijtqsP5Z7gh3F139HSuZ73HnEVFoQ6DgD63pEHAMebkT1DYe1fLUbEynWk1R+Uacv88duqiYV4MevPEtYPvYkPJHMnfi0UdO7uYKIF5R0znDQ9Rvbg83OjUsFABZWP/qnBF/4DiAgC4v9xJ3zFIvrJ/25rnX3KVwRqw7dk7tY7EZEkMTj/XScid1bb/9MbrpNXeKypGeqKt6T1JgQQwPAjuSljvDTaCJO1a8/nLXJSdU6x6wIIYOgZO03N7LscIf4ebwDrnn1EYBryTGUfiglJZ7iZsjiZxwp/aYe1evyFuczc6rROEq1FZl5a7fu7t+hz9J2WPueb18bDMBKyXGDqwrSctdMDe3+Pa+9Jh7i7u5T7VOt6yZqsTIpyb7jyAvd8qsWsURTL+/3FadJi4tEjKO+CCOhF+uHl00mSVJzB10OgIQ4cbrLzcdUDM3a5VEvAtqbpoY1MJIUhc15UQSc4cmKmm3ufm6x9wLNAVpoRFvER2C2A2UdL0w6CVjsU6VwI2DcbQgkpk7ZzuKl1/zXnKL522XKCcJZOX2On5wwkVl2mduYwpGtvZJAim5E9x43Yb4ZZ+5yYjAcUoJwaXknrHLVnGFcS+5a6cf7Z1tc6IwEMdXFAQijwJyClKtWqzN9/96N3cOrqOwxCNXmpn83rYK+bt52mx2P3kbxxBe4cdb9xF9N6PIjeQ73oJbKTFV1oJnc16zgBldbgBztubPVCosBE2xswOGu3hZchd9clOwvb16tO+NAtscxxPyZW/RjzlUbh8d0LTcfRRV6fE7PlXYxDf90ouAYIE2OVTugJ4sYvxzP8l2ypFQARdVKmC34Kwwcm6o3DE9WXho/EIUKPhCAQfs9jZHiPyTPVzuCbafmkus16M21gocLyR+/1IQ25APl9smfbl78o4S7Y33VTg8u3lgjaTXJx4kg+VGY2TUaLoDRLiDqnA0fO6NI2EB9sjhcofU45hHHnZEtJtNicAHNIgltJHcNg2+JUFux2++jRETd9hqxkFOGYyrRFgPzuVum94RevVnIEFusLtDqOvmVQKn7UV9zjOne7yP1QhaS7EPPcfNm2u0kESK3GHn4qxYUQen7Ph3AXWGB5ym95VqhGRiHMlTa5LKx9XoGaTIDfg4O4I78gAXvt2Zu9wF6zjY+xo34PhktRO19FLkHT06bBYTwxkht3DA7WpmNTYalvSexMbf3Q7R9swpSjpWOD2N8SyAy+/wpx9f+/nssiYSCQ2RG0qOuJPFoZp9lCuOHKO+zF1+me3zOlxmE37jMvJlEXG5YenyHlJHntxsxSncEJ5xUk4TMMlXoeTLjeQ+JzkASJIbR68X+/Eb/Ypb6Rf95MuNFAZlOTlIlRs2Qbdt76ED88S7qUa/xioiN5JkHu/AZiBZbjAnHBE+ddx2ma/3Nv4lbTG5EfOXy1vY1QDS5QanCtoamVpAkexbjXFqyk9B8N/kRswsfrSMywZAptxIVBmPlp0x6KVOjw9yvtejJtg4z2mW5Ier0vCuD41PWZiAMOH8Sg3CmJVtBNeGG+VhA4IU88su9v8oHe/SbaR6+hjHMgvTSuB7SCz2b89ydHKkn4pO/SWITmynIFpuEj2YKI1OuSuETiitJDpduhi6GICS6FIXYuhCLmqiyxQJoYtwqYkuMSeGLqCoJtFJlwcVRBe/VRFd2lkaunD5t/IbPw+WlZDv0SkAAAAASUVORK5CYII="/>
|
29
|
+
</div>
|
27
30
|
<hr />
|
28
31
|
<h2>A complete web framework for Ruby</h2>
|
29
32
|
|
@@ -44,7 +47,7 @@
|
|
44
47
|
</div>
|
45
48
|
</div>
|
46
49
|
<div id="footer">
|
47
|
-
© 2014
|
50
|
+
© 2014 ‐ <%= Time.now.year %> Luca Guidi — Lotus is released under the MIT License.
|
48
51
|
</div>
|
49
52
|
</body>
|
50
53
|
</html>
|
data/lib/lotus/version.rb
CHANGED
data/lib/lotus/views/default.rb
CHANGED
@@ -8,6 +8,7 @@ module Lotus
|
|
8
8
|
# @api private
|
9
9
|
class Default
|
10
10
|
include Lotus::View
|
11
|
+
|
11
12
|
configuration.reset!
|
12
13
|
|
13
14
|
layout nil
|
@@ -20,7 +21,7 @@ module Lotus
|
|
20
21
|
|
21
22
|
def self.render(root, template_name, context)
|
22
23
|
format = context[:format]
|
23
|
-
template = DefaultTemplateFinder.new(root, template_name, format).find
|
24
|
+
template = DefaultTemplateFinder.new(self, root, template_name, format).find
|
24
25
|
|
25
26
|
if template
|
26
27
|
new(template, context).render
|
@@ -5,9 +5,10 @@ module Lotus
|
|
5
5
|
#
|
6
6
|
# @since 0.2.0
|
7
7
|
# @api private
|
8
|
-
def initialize(root, template_name, format)
|
9
|
-
|
10
|
-
|
8
|
+
def initialize(view, root, template_name, format)
|
9
|
+
@view = view
|
10
|
+
@root = root
|
11
|
+
@options = { template: template_name, format: format }
|
11
12
|
end
|
12
13
|
|
13
14
|
private
|
data/lotusrb.gemspec
CHANGED
@@ -19,18 +19,20 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
spec.required_ruby_version = '>= 2.0.0'
|
21
21
|
|
22
|
-
spec.add_dependency 'lotus-utils', '~> 0.
|
23
|
-
spec.add_dependency 'lotus-router', '~> 0.
|
24
|
-
spec.add_dependency 'lotus-controller', '~> 0.
|
25
|
-
spec.add_dependency 'lotus-view', '~> 0.
|
26
|
-
spec.add_dependency 'lotus-helpers', '~> 0.2', '>= 0.2.
|
22
|
+
spec.add_dependency 'lotus-utils', '~> 0.6'
|
23
|
+
spec.add_dependency 'lotus-router', '~> 0.5'
|
24
|
+
spec.add_dependency 'lotus-controller', '~> 0.5'
|
25
|
+
spec.add_dependency 'lotus-view', '~> 0.5'
|
26
|
+
spec.add_dependency 'lotus-helpers', '~> 0.2', '>= 0.2.6'
|
27
27
|
spec.add_dependency 'lotus-mailer', '~> 0.1'
|
28
|
+
spec.add_dependency 'lotus-assets', '~> 0.1'
|
28
29
|
spec.add_dependency 'shotgun', '~> 0.9'
|
29
30
|
spec.add_dependency 'dotenv', '~> 2.0'
|
30
31
|
spec.add_dependency 'thor', '~> 0.19'
|
32
|
+
spec.add_dependency 'bundler', '~> 1.6'
|
31
33
|
|
32
|
-
spec.add_development_dependency '
|
33
|
-
spec.add_development_dependency '
|
34
|
-
spec.add_development_dependency '
|
35
|
-
spec.add_development_dependency '
|
34
|
+
spec.add_development_dependency 'minispec-metadata', '~> 3.2.1'
|
35
|
+
spec.add_development_dependency 'minitest', '~> 5'
|
36
|
+
spec.add_development_dependency 'rack-test', '~> 0.6'
|
37
|
+
spec.add_development_dependency 'rake', '~> 10'
|
36
38
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lotusrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-01-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: lotus-utils
|
@@ -18,80 +18,56 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0.
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 0.5.2
|
21
|
+
version: '0.6'
|
25
22
|
type: :runtime
|
26
23
|
prerelease: false
|
27
24
|
version_requirements: !ruby/object:Gem::Requirement
|
28
25
|
requirements:
|
29
26
|
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
|
-
version: '0.
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.5.2
|
28
|
+
version: '0.6'
|
35
29
|
- !ruby/object:Gem::Dependency
|
36
30
|
name: lotus-router
|
37
31
|
requirement: !ruby/object:Gem::Requirement
|
38
32
|
requirements:
|
39
33
|
- - "~>"
|
40
34
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0.
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 0.4.3
|
35
|
+
version: '0.5'
|
45
36
|
type: :runtime
|
46
37
|
prerelease: false
|
47
38
|
version_requirements: !ruby/object:Gem::Requirement
|
48
39
|
requirements:
|
49
40
|
- - "~>"
|
50
41
|
- !ruby/object:Gem::Version
|
51
|
-
version: '0.
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.4.3
|
42
|
+
version: '0.5'
|
55
43
|
- !ruby/object:Gem::Dependency
|
56
44
|
name: lotus-controller
|
57
45
|
requirement: !ruby/object:Gem::Requirement
|
58
46
|
requirements:
|
59
47
|
- - "~>"
|
60
48
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 0.4.5
|
49
|
+
version: '0.5'
|
65
50
|
type: :runtime
|
66
51
|
prerelease: false
|
67
52
|
version_requirements: !ruby/object:Gem::Requirement
|
68
53
|
requirements:
|
69
54
|
- - "~>"
|
70
55
|
- !ruby/object:Gem::Version
|
71
|
-
version: '0.
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.4.5
|
56
|
+
version: '0.5'
|
75
57
|
- !ruby/object:Gem::Dependency
|
76
58
|
name: lotus-view
|
77
59
|
requirement: !ruby/object:Gem::Requirement
|
78
60
|
requirements:
|
79
61
|
- - "~>"
|
80
62
|
- !ruby/object:Gem::Version
|
81
|
-
version: '0.
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 0.4.4
|
63
|
+
version: '0.5'
|
85
64
|
type: :runtime
|
86
65
|
prerelease: false
|
87
66
|
version_requirements: !ruby/object:Gem::Requirement
|
88
67
|
requirements:
|
89
68
|
- - "~>"
|
90
69
|
- !ruby/object:Gem::Version
|
91
|
-
version: '0.
|
92
|
-
- - ">="
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: 0.4.4
|
70
|
+
version: '0.5'
|
95
71
|
- !ruby/object:Gem::Dependency
|
96
72
|
name: lotus-helpers
|
97
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,7 +77,7 @@ dependencies:
|
|
101
77
|
version: '0.2'
|
102
78
|
- - ">="
|
103
79
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.2.
|
80
|
+
version: 0.2.6
|
105
81
|
type: :runtime
|
106
82
|
prerelease: false
|
107
83
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -111,7 +87,7 @@ dependencies:
|
|
111
87
|
version: '0.2'
|
112
88
|
- - ">="
|
113
89
|
- !ruby/object:Gem::Version
|
114
|
-
version: 0.2.
|
90
|
+
version: 0.2.6
|
115
91
|
- !ruby/object:Gem::Dependency
|
116
92
|
name: lotus-mailer
|
117
93
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,6 +102,20 @@ dependencies:
|
|
126
102
|
- - "~>"
|
127
103
|
- !ruby/object:Gem::Version
|
128
104
|
version: '0.1'
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: lotus-assets
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.1'
|
112
|
+
type: :runtime
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.1'
|
129
119
|
- !ruby/object:Gem::Dependency
|
130
120
|
name: shotgun
|
131
121
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,7 +165,7 @@ dependencies:
|
|
175
165
|
- - "~>"
|
176
166
|
- !ruby/object:Gem::Version
|
177
167
|
version: '1.6'
|
178
|
-
type: :
|
168
|
+
type: :runtime
|
179
169
|
prerelease: false
|
180
170
|
version_requirements: !ruby/object:Gem::Requirement
|
181
171
|
requirements:
|
@@ -183,19 +173,19 @@ dependencies:
|
|
183
173
|
- !ruby/object:Gem::Version
|
184
174
|
version: '1.6'
|
185
175
|
- !ruby/object:Gem::Dependency
|
186
|
-
name:
|
176
|
+
name: minispec-metadata
|
187
177
|
requirement: !ruby/object:Gem::Requirement
|
188
178
|
requirements:
|
189
179
|
- - "~>"
|
190
180
|
- !ruby/object:Gem::Version
|
191
|
-
version:
|
181
|
+
version: 3.2.1
|
192
182
|
type: :development
|
193
183
|
prerelease: false
|
194
184
|
version_requirements: !ruby/object:Gem::Requirement
|
195
185
|
requirements:
|
196
186
|
- - "~>"
|
197
187
|
- !ruby/object:Gem::Version
|
198
|
-
version:
|
188
|
+
version: 3.2.1
|
199
189
|
- !ruby/object:Gem::Dependency
|
200
190
|
name: minitest
|
201
191
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,6 +214,20 @@ dependencies:
|
|
224
214
|
- - "~>"
|
225
215
|
- !ruby/object:Gem::Version
|
226
216
|
version: '0.6'
|
217
|
+
- !ruby/object:Gem::Dependency
|
218
|
+
name: rake
|
219
|
+
requirement: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - "~>"
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '10'
|
224
|
+
type: :development
|
225
|
+
prerelease: false
|
226
|
+
version_requirements: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - "~>"
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '10'
|
227
231
|
description: A complete web framework for Ruby
|
228
232
|
email:
|
229
233
|
- me@lucaguidi.com
|
@@ -245,8 +249,12 @@ files:
|
|
245
249
|
- lib/lotus/application.rb
|
246
250
|
- lib/lotus/application_name.rb
|
247
251
|
- lib/lotus/cli.rb
|
252
|
+
- lib/lotus/cli_sub_commands/assets.rb
|
253
|
+
- lib/lotus/cli_sub_commands/db.rb
|
254
|
+
- lib/lotus/cli_sub_commands/destroy.rb
|
255
|
+
- lib/lotus/cli_sub_commands/generate.rb
|
256
|
+
- lib/lotus/commands/assets/precompile.rb
|
248
257
|
- lib/lotus/commands/console.rb
|
249
|
-
- lib/lotus/commands/db.rb
|
250
258
|
- lib/lotus/commands/db/abstract.rb
|
251
259
|
- lib/lotus/commands/db/apply.rb
|
252
260
|
- lib/lotus/commands/db/console.rb
|
@@ -255,11 +263,17 @@ files:
|
|
255
263
|
- lib/lotus/commands/db/migrate.rb
|
256
264
|
- lib/lotus/commands/db/prepare.rb
|
257
265
|
- lib/lotus/commands/db/version.rb
|
258
|
-
- lib/lotus/commands/generate.rb
|
259
|
-
- lib/lotus/commands/
|
266
|
+
- lib/lotus/commands/generate/abstract.rb
|
267
|
+
- lib/lotus/commands/generate/action.rb
|
268
|
+
- lib/lotus/commands/generate/app.rb
|
269
|
+
- lib/lotus/commands/generate/mailer.rb
|
270
|
+
- lib/lotus/commands/generate/migration.rb
|
271
|
+
- lib/lotus/commands/generate/model.rb
|
272
|
+
- lib/lotus/commands/new/abstract.rb
|
273
|
+
- lib/lotus/commands/new/app.rb
|
274
|
+
- lib/lotus/commands/new/container.rb
|
260
275
|
- lib/lotus/commands/routes.rb
|
261
276
|
- lib/lotus/commands/server.rb
|
262
|
-
- lib/lotus/config/assets.rb
|
263
277
|
- lib/lotus/config/configure.rb
|
264
278
|
- lib/lotus/config/cookies.rb
|
265
279
|
- lib/lotus/config/framework_configuration.rb
|
@@ -273,8 +287,6 @@ files:
|
|
273
287
|
- lib/lotus/container.rb
|
274
288
|
- lib/lotus/environment.rb
|
275
289
|
- lib/lotus/frameworks.rb
|
276
|
-
- lib/lotus/generators/abstract.rb
|
277
|
-
- lib/lotus/generators/action.rb
|
278
290
|
- lib/lotus/generators/action/action.rb.tt
|
279
291
|
- lib/lotus/generators/action/action_spec.minitest.tt
|
280
292
|
- lib/lotus/generators/action/action_spec.rspec.tt
|
@@ -283,9 +295,13 @@ files:
|
|
283
295
|
- lib/lotus/generators/action/view.rb.tt
|
284
296
|
- lib/lotus/generators/action/view_spec.minitest.tt
|
285
297
|
- lib/lotus/generators/action/view_spec.rspec.tt
|
286
|
-
- lib/lotus/generators/app.
|
287
|
-
- lib/lotus/generators/app
|
288
|
-
- lib/lotus/generators/
|
298
|
+
- lib/lotus/generators/app/.gitkeep.tt
|
299
|
+
- lib/lotus/generators/app/application.rb.tt
|
300
|
+
- lib/lotus/generators/app/config/initializers/.gitkeep
|
301
|
+
- lib/lotus/generators/app/config/routes.rb.tt
|
302
|
+
- lib/lotus/generators/app/favicon.ico
|
303
|
+
- lib/lotus/generators/app/templates/application.html.erb.tt
|
304
|
+
- lib/lotus/generators/app/views/application_layout.rb.tt
|
289
305
|
- lib/lotus/generators/application/app/.env.development.tt
|
290
306
|
- lib/lotus/generators/application/app/.env.test.tt
|
291
307
|
- lib/lotus/generators/application/app/.env.tt
|
@@ -299,8 +315,10 @@ files:
|
|
299
315
|
- lib/lotus/generators/application/app/config.ru.tt
|
300
316
|
- lib/lotus/generators/application/app/config/application.rb.tt
|
301
317
|
- lib/lotus/generators/application/app/config/environment.rb.tt
|
318
|
+
- lib/lotus/generators/application/app/config/initializers/.gitkeep
|
302
319
|
- lib/lotus/generators/application/app/config/routes.rb.tt
|
303
320
|
- lib/lotus/generators/application/app/db/.gitkeep
|
321
|
+
- lib/lotus/generators/application/app/favicon.ico
|
304
322
|
- lib/lotus/generators/application/app/features_helper.rb.minitest.tt
|
305
323
|
- lib/lotus/generators/application/app/features_helper.rb.rspec.tt
|
306
324
|
- lib/lotus/generators/application/app/gitignore.tt
|
@@ -315,7 +333,6 @@ files:
|
|
315
333
|
- lib/lotus/generators/application/app/spec_helper.rb.rspec.tt
|
316
334
|
- lib/lotus/generators/application/app/templates/application.html.erb.tt
|
317
335
|
- lib/lotus/generators/application/app/views/application_layout.rb.tt
|
318
|
-
- lib/lotus/generators/application/container.rb
|
319
336
|
- lib/lotus/generators/application/container/.env.development.tt
|
320
337
|
- lib/lotus/generators/application/container/.env.test.tt
|
321
338
|
- lib/lotus/generators/application/container/.env.tt
|
@@ -327,12 +344,15 @@ files:
|
|
327
344
|
- lib/lotus/generators/application/container/capybara.rb.rspec.tt
|
328
345
|
- lib/lotus/generators/application/container/config.ru.tt
|
329
346
|
- lib/lotus/generators/application/container/config/environment.rb.tt
|
347
|
+
- lib/lotus/generators/application/container/config/initializers/.gitkeep
|
330
348
|
- lib/lotus/generators/application/container/db/.gitkeep
|
331
349
|
- lib/lotus/generators/application/container/features_helper.rb.minitest.tt
|
332
350
|
- lib/lotus/generators/application/container/features_helper.rb.rspec.tt
|
333
351
|
- lib/lotus/generators/application/container/gitignore.tt
|
334
352
|
- lib/lotus/generators/application/container/lib/app_name.rb.tt
|
335
353
|
- lib/lotus/generators/application/container/lib/chirp/entities/.gitkeep
|
354
|
+
- lib/lotus/generators/application/container/lib/chirp/mailers/.gitkeep
|
355
|
+
- lib/lotus/generators/application/container/lib/chirp/mailers/templates/.gitkeep
|
336
356
|
- lib/lotus/generators/application/container/lib/chirp/repositories/.gitkeep
|
337
357
|
- lib/lotus/generators/application/container/lib/config/mapping.rb.tt
|
338
358
|
- lib/lotus/generators/application/container/lotusrc.tt
|
@@ -341,35 +361,34 @@ files:
|
|
341
361
|
- lib/lotus/generators/application/container/spec_helper.rb.minitest.tt
|
342
362
|
- lib/lotus/generators/application/container/spec_helper.rb.rspec.tt
|
343
363
|
- lib/lotus/generators/database_config.rb
|
344
|
-
- lib/lotus/generators/
|
364
|
+
- lib/lotus/generators/generatable.rb
|
365
|
+
- lib/lotus/generators/generator.rb
|
345
366
|
- lib/lotus/generators/mailer/mailer.rb.tt
|
346
367
|
- lib/lotus/generators/mailer/mailer_spec.rb.tt
|
347
368
|
- lib/lotus/generators/mailer/template.html.tt
|
348
369
|
- lib/lotus/generators/mailer/template.txt.tt
|
349
|
-
- lib/lotus/generators/migration.rb
|
350
370
|
- lib/lotus/generators/migration/migration.rb.tt
|
351
|
-
- lib/lotus/generators/model.rb
|
352
371
|
- lib/lotus/generators/model/entity.rb.tt
|
353
372
|
- lib/lotus/generators/model/entity_spec.minitest.tt
|
354
373
|
- lib/lotus/generators/model/entity_spec.rspec.tt
|
355
374
|
- lib/lotus/generators/model/repository.rb.tt
|
356
375
|
- lib/lotus/generators/model/repository_spec.minitest.tt
|
357
376
|
- lib/lotus/generators/model/repository_spec.rspec.tt
|
358
|
-
- lib/lotus/generators/
|
359
|
-
- lib/lotus/generators/slice/.gitkeep.tt
|
360
|
-
- lib/lotus/generators/slice/application.rb.tt
|
361
|
-
- lib/lotus/generators/slice/config/routes.rb.tt
|
362
|
-
- lib/lotus/generators/slice/templates/application.html.erb.tt
|
363
|
-
- lib/lotus/generators/slice/views/application_layout.rb.tt
|
377
|
+
- lib/lotus/generators/test_framework.rb
|
364
378
|
- lib/lotus/loader.rb
|
365
379
|
- lib/lotus/lotusrc.rb
|
366
380
|
- lib/lotus/mailer/glue.rb
|
367
381
|
- lib/lotus/middleware.rb
|
382
|
+
- lib/lotus/rake_helper.rb
|
383
|
+
- lib/lotus/rake_tasks.rb
|
368
384
|
- lib/lotus/rendering_policy.rb
|
385
|
+
- lib/lotus/repositories/car_repository.rb
|
386
|
+
- lib/lotus/repositories/name_repository.rb
|
369
387
|
- lib/lotus/root.rb
|
370
388
|
- lib/lotus/routes.rb
|
371
389
|
- lib/lotus/routing/default.rb
|
372
390
|
- lib/lotus/setup.rb
|
391
|
+
- lib/lotus/static.rb
|
373
392
|
- lib/lotus/templates/default.html.erb
|
374
393
|
- lib/lotus/templates/welcome.html.erb
|
375
394
|
- lib/lotus/version.rb
|
@@ -399,7 +418,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
418
|
version: '0'
|
400
419
|
requirements: []
|
401
420
|
rubyforge_project:
|
402
|
-
rubygems_version: 2.
|
421
|
+
rubygems_version: 2.5.1
|
403
422
|
signing_key:
|
404
423
|
specification_version: 4
|
405
424
|
summary: A complete web framework for Ruby
|