lotusrb 0.2.1 → 0.3.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 +20 -3
- data/FEATURES.md +94 -0
- data/README.md +73 -22
- data/lib/lotus/cli.rb +24 -5
- data/lib/lotus/commands/db/console.rb +54 -0
- data/lib/lotus/commands/db.rb +27 -0
- data/lib/lotus/commands/generate.rb +70 -0
- data/lib/lotus/config/cookies.rb +47 -0
- data/lib/lotus/config/security.rb +58 -0
- data/lib/lotus/configuration.rb +65 -24
- data/lib/lotus/environment.rb +3 -1
- data/lib/lotus/generators/action/action.rb.tt +8 -0
- data/lib/lotus/generators/action/action_spec.minitest.tt +12 -0
- data/lib/lotus/generators/action/action_spec.rspec.tt +12 -0
- data/lib/lotus/generators/action/template.tt +0 -0
- data/lib/lotus/generators/action/view.rb.tt +5 -0
- data/lib/lotus/generators/action/view_spec.minitest.tt +12 -0
- data/lib/lotus/generators/action/view_spec.rspec.tt +12 -0
- data/lib/lotus/generators/action.rb +149 -0
- data/lib/lotus/generators/application/container/Gemfile.tt +7 -2
- data/lib/lotus/generators/application/container/config/.env.development.tt +1 -1
- data/lib/lotus/generators/application/container/config/.env.test.tt +1 -1
- data/lib/lotus/generators/application/container/gitignore.tt +2 -0
- data/lib/lotus/generators/application/container/lib/app_name.rb.tt +4 -2
- data/lib/lotus/generators/application/container/lotusrc.tt +3 -0
- data/lib/lotus/generators/application/container.rb +78 -8
- data/lib/lotus/generators/slice/application.rb.tt +63 -11
- data/lib/lotus/generators/slice/config/mapping.rb.tt +4 -1
- data/lib/lotus/loader.rb +10 -2
- data/lib/lotus/lotusrc.rb +146 -0
- data/lib/lotus/middleware.rb +2 -2
- data/lib/lotus/routes.rb +62 -6
- data/lib/lotus/version.rb +1 -1
- data/lotusrb.gemspec +6 -5
- metadata +41 -28
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'lotus/helpers'
|
2
|
+
|
1
3
|
module <%= config[:classified_slice_name] %>
|
2
4
|
class Application < Lotus::Application
|
3
5
|
configure do
|
@@ -6,12 +8,12 @@ module <%= config[:classified_slice_name] %>
|
|
6
8
|
#
|
7
9
|
|
8
10
|
# Define the root path of this application.
|
9
|
-
# All
|
11
|
+
# All paths specified in this configuration are relative to path below.
|
10
12
|
#
|
11
13
|
root __dir__
|
12
14
|
|
13
15
|
# Relative load paths where this application will recursively load the code.
|
14
|
-
#
|
16
|
+
# When you add new directories, remember to add them here.
|
15
17
|
#
|
16
18
|
load_paths << [
|
17
19
|
'controllers',
|
@@ -87,7 +89,7 @@ module <%= config[:classified_slice_name] %>
|
|
87
89
|
# uri: String, 'file:///db/bookshelf'
|
88
90
|
# 'memory://localhost/bookshelf'
|
89
91
|
# 'sqlite:memory:'
|
90
|
-
# 'sqlite://db/bookshelf.
|
92
|
+
# 'sqlite://db/bookshelf.sqlite3'
|
91
93
|
# 'postgres://localhost/bookshelf'
|
92
94
|
# 'mysql://localhost/bookshelf'
|
93
95
|
#
|
@@ -102,13 +104,13 @@ module <%= config[:classified_slice_name] %>
|
|
102
104
|
# TEMPLATES
|
103
105
|
#
|
104
106
|
|
105
|
-
# The layout to be used by all
|
107
|
+
# The layout to be used by all views
|
106
108
|
#
|
107
109
|
layout :application # It will load <%= config[:classified_slice_name] %>::Views::ApplicationLayout
|
108
110
|
|
109
|
-
# The relative path
|
111
|
+
# The relative path to templates
|
110
112
|
#
|
111
|
-
|
113
|
+
templates 'templates'
|
112
114
|
|
113
115
|
##
|
114
116
|
# ASSETS
|
@@ -126,12 +128,62 @@ module <%= config[:classified_slice_name] %>
|
|
126
128
|
#
|
127
129
|
# serve_assets false
|
128
130
|
|
131
|
+
##
|
132
|
+
# SECURITY
|
133
|
+
#
|
134
|
+
|
135
|
+
# X-Frame-Options is a HTTP header supported by modern browsers.
|
136
|
+
# It determines if a web page can or cannot be included via <frame> and
|
137
|
+
# <iframe> tags by untrusted domains.
|
138
|
+
#
|
139
|
+
# Web applications can send this header to prevent Clickjacking attacks.
|
140
|
+
#
|
141
|
+
# Read more at:
|
142
|
+
#
|
143
|
+
# * https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
|
144
|
+
# * https://www.owasp.org/index.php/Clickjacking
|
145
|
+
#
|
146
|
+
security.x_frame_options "DENY"
|
147
|
+
|
148
|
+
# Content-Security-Policy (CSP) is a HTTP header supported by modern browsers.
|
149
|
+
# It determines trusted sources of execution for dynamic contents
|
150
|
+
# (JavaScript) or other web related assets: stylesheets, images, fonts,
|
151
|
+
# plugins, etc.
|
152
|
+
#
|
153
|
+
# Web applications can send this header to mitigate Cross Site Scripting
|
154
|
+
# (XSS) attacks.
|
155
|
+
#
|
156
|
+
# The default value allows images, scripts, AJAX, and CSS from the same
|
157
|
+
# origin, and does not allow any other resources to load (eg object,
|
158
|
+
# frame, media, etc).
|
159
|
+
#
|
160
|
+
# Inline JavaScript is NOT allowed. To enable it, please use:
|
161
|
+
# "script-src 'unsafe-inline'".
|
162
|
+
#
|
163
|
+
# Content Security Policy introduction:
|
164
|
+
#
|
165
|
+
# * http://www.html5rocks.com/en/tutorials/security/content-security-policy/
|
166
|
+
# * https://www.owasp.org/index.php/Content_Security_Policy
|
167
|
+
# * https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
|
168
|
+
#
|
169
|
+
# Inline and eval JavaScript risks:
|
170
|
+
#
|
171
|
+
# * http://www.html5rocks.com/en/tutorials/security/content-security-policy/#inline-code-considered-harmful
|
172
|
+
# * http://www.html5rocks.com/en/tutorials/security/content-security-policy/#eval-too
|
173
|
+
#
|
174
|
+
# Content Security Policy usage:
|
175
|
+
#
|
176
|
+
# * http://content-security-policy.com/
|
177
|
+
# * https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Using_Content_Security_Policy
|
178
|
+
#
|
179
|
+
security.content_security_policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
|
180
|
+
|
129
181
|
##
|
130
182
|
# FRAMEWORKS
|
131
183
|
#
|
132
184
|
|
133
|
-
# Configure the code
|
134
|
-
# This is useful for
|
185
|
+
# Configure the code that will yield each time <%= config[:classified_slice_name] %>::Action is included
|
186
|
+
# This is useful for sharing common functionality
|
135
187
|
#
|
136
188
|
# See: http://www.rubydoc.info/gems/lotus-controller#Configuration
|
137
189
|
controller.prepare do
|
@@ -139,12 +191,12 @@ module <%= config[:classified_slice_name] %>
|
|
139
191
|
# before :authenticate! # run an authentication before callback
|
140
192
|
end
|
141
193
|
|
142
|
-
# Configure the code
|
143
|
-
# This is useful for
|
194
|
+
# Configure the code that will yield each time <%= config[:classified_slice_name] %>::View is included
|
195
|
+
# This is useful for sharing common functionality
|
144
196
|
#
|
145
197
|
# See: http://www.rubydoc.info/gems/lotus-view#Configuration
|
146
198
|
view.prepare do
|
147
|
-
|
199
|
+
include Lotus::Helpers
|
148
200
|
end
|
149
201
|
end
|
150
202
|
|
data/lib/lotus/loader.rb
CHANGED
@@ -5,6 +5,7 @@ require 'lotus/routes'
|
|
5
5
|
require 'lotus/routing/default'
|
6
6
|
require 'lotus/action/cookies'
|
7
7
|
require 'lotus/action/session'
|
8
|
+
require 'lotus/config/security'
|
8
9
|
|
9
10
|
module Lotus
|
10
11
|
# Load an application
|
@@ -49,8 +50,15 @@ module Lotus
|
|
49
50
|
controller = Lotus::Controller.duplicate(namespace) do
|
50
51
|
handle_exceptions config.handle_exceptions
|
51
52
|
default_format config.default_format
|
52
|
-
|
53
|
-
|
53
|
+
default_headers({
|
54
|
+
Lotus::Config::Security::X_FRAME_OPTIONS_HEADER => config.security.x_frame_options,
|
55
|
+
Lotus::Config::Security::CONTENT_SECURITY_POLICY_HEADER => config.security.content_security_policy
|
56
|
+
})
|
57
|
+
|
58
|
+
if config.cookies.enabled?
|
59
|
+
prepare { include Lotus::Action::Cookies }
|
60
|
+
cookies config.cookies.default_options
|
61
|
+
end
|
54
62
|
prepare { include Lotus::Action::Session } if config.sessions.enabled?
|
55
63
|
|
56
64
|
config.controller.__apply(self)
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'dotenv'
|
3
|
+
|
4
|
+
module Lotus
|
5
|
+
# Create and read the .lotusrc file in the root of the application
|
6
|
+
#
|
7
|
+
# @since 0.3.0
|
8
|
+
# @api private
|
9
|
+
class Lotusrc
|
10
|
+
# Lotusrc name file
|
11
|
+
#
|
12
|
+
# @since 0.3.0
|
13
|
+
# @api private
|
14
|
+
#
|
15
|
+
# @see Lotus::Lotusrc#path_file
|
16
|
+
FILE_NAME = '.lotusrc'.freeze
|
17
|
+
|
18
|
+
# Architecture default value
|
19
|
+
#
|
20
|
+
# @since 0.3.0
|
21
|
+
# @api private
|
22
|
+
#
|
23
|
+
# @see Lotus::Lotusrc#read
|
24
|
+
DEFAULT_ARCHITECTURE = 'container'.freeze
|
25
|
+
|
26
|
+
# Architecture key for writing the lotusrc file
|
27
|
+
#
|
28
|
+
# @since 0.3.0
|
29
|
+
# @api private
|
30
|
+
#
|
31
|
+
# @see Lotus::Lotusrc#read
|
32
|
+
ARCHITECTURE_KEY = 'architecture'.freeze
|
33
|
+
|
34
|
+
# Test suite default value
|
35
|
+
#
|
36
|
+
# @since 0.3.0
|
37
|
+
# @api private
|
38
|
+
#
|
39
|
+
# @see Lotus::Lotusrc#read
|
40
|
+
DEFAULT_TEST_SUITE = 'minitest'.freeze
|
41
|
+
|
42
|
+
# Test suite key for writing the lotusrc file
|
43
|
+
#
|
44
|
+
# @since 0.3.0
|
45
|
+
# @api private
|
46
|
+
#
|
47
|
+
# @see Lotus::Lotusrc#read
|
48
|
+
TEST_KEY = 'test'.freeze
|
49
|
+
|
50
|
+
# Template default value
|
51
|
+
#
|
52
|
+
# @since 0.3.0
|
53
|
+
# @api private
|
54
|
+
#
|
55
|
+
# @see Lotus::Lotusrc#read
|
56
|
+
DEFAULT_TEMPLATE = 'erb'.freeze
|
57
|
+
|
58
|
+
# Template key for writing the lotusrc file
|
59
|
+
#
|
60
|
+
# @since 0.3.0
|
61
|
+
# @api private
|
62
|
+
#
|
63
|
+
# @see Lotus::Lotusrc#read
|
64
|
+
TEMPLATE_KEY = 'template'.freeze
|
65
|
+
|
66
|
+
# Initialize Lotusrc class with application's root and enviroment options.
|
67
|
+
# Create the lotusrc file if it doesn't exist in the root given.
|
68
|
+
#
|
69
|
+
# @param root [Pathname] Application's root
|
70
|
+
# @param options [Hash] Environment's options
|
71
|
+
#
|
72
|
+
# @see Lotus::Environment#initialize
|
73
|
+
def initialize(root, options = {})
|
74
|
+
@root = root
|
75
|
+
@options = options
|
76
|
+
|
77
|
+
# NOTE this line is here in order to auto-upgrade applications generated
|
78
|
+
# with lotusrb < 0.3.0. Consider to remove it in the future.
|
79
|
+
create
|
80
|
+
end
|
81
|
+
|
82
|
+
# Read lotusrc file and parse it's values.
|
83
|
+
#
|
84
|
+
# @return [Lotus::Utils::Hash] parsed values
|
85
|
+
#
|
86
|
+
# @example Default values if file doesn't exist
|
87
|
+
# Lotus::Lotusrc.new(Pathname.new(Dir.pwd)).read
|
88
|
+
# # => { architecture: 'container', test: 'minitest', template: 'erb' }
|
89
|
+
#
|
90
|
+
# @example Custom values if file doesn't exist
|
91
|
+
# options = { architect: 'application', test: 'rspec', template: 'slim' }
|
92
|
+
# Lotus::Lotusrc.new(Pathname.new(Dir.pwd), options).read
|
93
|
+
# # => { architecture: 'application', test: 'rspec', template: 'slim' }
|
94
|
+
def read
|
95
|
+
if exists?
|
96
|
+
lotusrc_options = Dotenv.load path_file
|
97
|
+
Utils::Hash.new(lotusrc_options).symbolize!
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
private
|
102
|
+
|
103
|
+
# Create lotusrc file if exists
|
104
|
+
#
|
105
|
+
# @since 0.3.0
|
106
|
+
# @api private
|
107
|
+
#
|
108
|
+
# @see Lotus::Lotusrc::DEFAULT_ARCHITECTURE
|
109
|
+
# @see Lotus::Lotusrc::ARCHITECTURE_KEY
|
110
|
+
# @see Lotus::Lotusrc::DEFAULT_TEST_SUITE
|
111
|
+
# @see Lotus::Lotusrc::TEST_KEY
|
112
|
+
# @see Lotus::Lotusrc::DEFAULT_TEMPLATE
|
113
|
+
# @see Lotus::Lotusrc::TEMPLATE_KEY
|
114
|
+
def create
|
115
|
+
unless exists?
|
116
|
+
rcfile = File.new(path_file, "w")
|
117
|
+
rcfile.puts "#{ ARCHITECTURE_KEY }=#{ @options.fetch(:architecture, DEFAULT_ARCHITECTURE) }"
|
118
|
+
rcfile.puts "#{ TEST_KEY }=#{ @options.fetch(:test, DEFAULT_TEST_SUITE) }"
|
119
|
+
rcfile.puts "#{ TEMPLATE_KEY }=#{ @options.fetch(:template, DEFAULT_TEMPLATE) }"
|
120
|
+
rcfile.close
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
# Check if lotusrc file exists
|
125
|
+
#
|
126
|
+
# @since 0.3.0
|
127
|
+
# @api private
|
128
|
+
#
|
129
|
+
# @return [Boolean] lotusrc file's path existing
|
130
|
+
def exists?
|
131
|
+
path_file.exist?
|
132
|
+
end
|
133
|
+
|
134
|
+
# Return the lotusrc file's path
|
135
|
+
#
|
136
|
+
# @since 0.3.0
|
137
|
+
# @api private
|
138
|
+
#
|
139
|
+
# @return [Pathname] lotusrc file's path
|
140
|
+
#
|
141
|
+
# @see Lotus::Lotusrc::FILE_NAME
|
142
|
+
def path_file
|
143
|
+
@root.join FILE_NAME
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
data/lib/lotus/middleware.rb
CHANGED
@@ -55,8 +55,8 @@ module Lotus
|
|
55
55
|
# Add a middleware to the stack.
|
56
56
|
#
|
57
57
|
# @param middleware [Object] a Rack middleware
|
58
|
-
# @param
|
59
|
-
# @param
|
58
|
+
# @param args [Array] optional arguments to pass to the Rack middleware
|
59
|
+
# @param blk [Proc] an optional block to pass to the Rack middleware
|
60
60
|
#
|
61
61
|
# @return [Array] the middleware that was added
|
62
62
|
#
|
data/lib/lotus/routes.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'lotus/utils/escape'
|
2
|
+
|
1
3
|
module Lotus
|
2
4
|
# Routes factory
|
3
5
|
#
|
@@ -23,7 +25,7 @@ module Lotus
|
|
23
25
|
# @param args [Array,nil] an optional set of arguments that is passed down
|
24
26
|
# to the wrapped route set.
|
25
27
|
#
|
26
|
-
# @return [
|
28
|
+
# @return [Lotus::Utils::Escape::SafeString] the corresponding relative URL
|
27
29
|
#
|
28
30
|
# @raise Lotus::Routing::InvalidRouteException
|
29
31
|
#
|
@@ -31,7 +33,7 @@ module Lotus
|
|
31
33
|
#
|
32
34
|
# @see http://rdoc.info/gems/lotus-router/Lotus/Router#path-instance_method
|
33
35
|
#
|
34
|
-
# @example
|
36
|
+
# @example Basic example
|
35
37
|
# require 'lotus'
|
36
38
|
#
|
37
39
|
# module Bookshelf
|
@@ -49,8 +51,27 @@ module Lotus
|
|
49
51
|
#
|
50
52
|
# Bookshelf::Routes.path(:login, return_to: '/dashboard')
|
51
53
|
# # => '/login?return_to=%2Fdashboard'
|
54
|
+
#
|
55
|
+
# @example Dynamic finders
|
56
|
+
# require 'lotus'
|
57
|
+
#
|
58
|
+
# module Bookshelf
|
59
|
+
# class Application < Lotus::Application
|
60
|
+
# configure do
|
61
|
+
# routes do
|
62
|
+
# get '/login', to: 'sessions#new', as: :login
|
63
|
+
# end
|
64
|
+
# end
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
#
|
68
|
+
# Bookshelf::Routes.login_path
|
69
|
+
# # => '/login'
|
70
|
+
#
|
71
|
+
# Bookshelf::Routes.login_path(return_to: '/dashboard')
|
72
|
+
# # => '/login?return_to=%2Fdashboard'
|
52
73
|
def path(name, *args)
|
53
|
-
@routes.path(name, *args)
|
74
|
+
Utils::Escape::SafeString.new(@routes.path(name, *args))
|
54
75
|
end
|
55
76
|
|
56
77
|
# Return an absolute path for the given route name
|
@@ -59,7 +80,7 @@ module Lotus
|
|
59
80
|
# @param args [Array,nil] an optional set of arguments that is passed down
|
60
81
|
# to the wrapped route set.
|
61
82
|
#
|
62
|
-
# @return [
|
83
|
+
# @return [Lotus::Utils::Escape::SafeString] the corresponding absolute URL
|
63
84
|
#
|
64
85
|
# @raise Lotus::Routing::InvalidRouteException
|
65
86
|
#
|
@@ -67,7 +88,7 @@ module Lotus
|
|
67
88
|
#
|
68
89
|
# @see http://rdoc.info/gems/lotus-router/Lotus/Router#url-instance_method
|
69
90
|
#
|
70
|
-
# @example
|
91
|
+
# @example Basic example
|
71
92
|
# require 'lotus'
|
72
93
|
#
|
73
94
|
# module Bookshelf
|
@@ -88,8 +109,43 @@ module Lotus
|
|
88
109
|
#
|
89
110
|
# Bookshelf::Routes.url(:login, return_to: '/dashboard')
|
90
111
|
# # => 'https://bookshelf.org/login?return_to=%2Fdashboard'
|
112
|
+
#
|
113
|
+
# @example Dynamic finders
|
114
|
+
# require 'lotus'
|
115
|
+
#
|
116
|
+
# module Bookshelf
|
117
|
+
# class Application < Lotus::Application
|
118
|
+
# configure do
|
119
|
+
# routes do
|
120
|
+
# scheme 'https'
|
121
|
+
# host 'bookshelf.org'
|
122
|
+
#
|
123
|
+
# get '/login', to: 'sessions#new', as: :login
|
124
|
+
# end
|
125
|
+
# end
|
126
|
+
# end
|
127
|
+
# end
|
128
|
+
#
|
129
|
+
# Bookshelf::Routes.login_url
|
130
|
+
# # => 'https://bookshelf.org/login'
|
131
|
+
#
|
132
|
+
# Bookshelf::Routes.login_url(return_to: '/dashboard')
|
133
|
+
# # => 'https://bookshelf.org/login?return_to=%2Fdashboard'
|
91
134
|
def url(name, *args)
|
92
|
-
@routes.url(name, *args)
|
135
|
+
Utils::Escape::SafeString.new(@routes.url(name, *args))
|
136
|
+
end
|
137
|
+
|
138
|
+
protected
|
139
|
+
# @since 0.3.0
|
140
|
+
# @api private
|
141
|
+
def method_missing(m, *args)
|
142
|
+
named_route, type = m.to_s.split(/\_(path|url)\z/)
|
143
|
+
|
144
|
+
if type
|
145
|
+
public_send(type, named_route.to_sym, *args)
|
146
|
+
else
|
147
|
+
super
|
148
|
+
end
|
93
149
|
end
|
94
150
|
end
|
95
151
|
end
|
data/lib/lotus/version.rb
CHANGED
data/lotusrb.gemspec
CHANGED
@@ -13,16 +13,17 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = 'http://lotusrb.org'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files -z -- lib/* bin/* LICENSE.md README.md CHANGELOG.md lotusrb.gemspec`.split("\x0")
|
16
|
+
spec.files = `git ls-files -z -- lib/* bin/* LICENSE.md README.md CHANGELOG.md FEATURES.md lotusrb.gemspec`.split("\x0")
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test)/})
|
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.
|
22
|
+
spec.add_dependency 'lotus-utils', '~> 0.4'
|
23
|
+
spec.add_dependency 'lotus-router', '~> 0.3'
|
24
|
+
spec.add_dependency 'lotus-controller', '~> 0.4'
|
25
|
+
spec.add_dependency 'lotus-view', '~> 0.4'
|
26
|
+
spec.add_dependency 'lotus-helpers', '~> 0.1'
|
26
27
|
spec.add_dependency 'shotgun', '~> 0.9'
|
27
28
|
spec.add_dependency 'dotenv', '~> 1.0'
|
28
29
|
spec.add_dependency 'thor', '~> 0.19'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lotusrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lotus-utils
|
@@ -16,74 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.3.4
|
19
|
+
version: '0.4'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0.
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.3.4
|
26
|
+
version: '0.4'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: lotus-router
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - "~>"
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 0.2.1
|
33
|
+
version: '0.3'
|
43
34
|
type: :runtime
|
44
35
|
prerelease: false
|
45
36
|
version_requirements: !ruby/object:Gem::Requirement
|
46
37
|
requirements:
|
47
38
|
- - "~>"
|
48
39
|
- !ruby/object:Gem::Version
|
49
|
-
version: '0.
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 0.2.1
|
40
|
+
version: '0.3'
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
42
|
name: lotus-controller
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
56
44
|
requirements:
|
57
45
|
- - "~>"
|
58
46
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0.
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.3.2
|
47
|
+
version: '0.4'
|
63
48
|
type: :runtime
|
64
49
|
prerelease: false
|
65
50
|
version_requirements: !ruby/object:Gem::Requirement
|
66
51
|
requirements:
|
67
52
|
- - "~>"
|
68
53
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0.
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 0.3.2
|
54
|
+
version: '0.4'
|
73
55
|
- !ruby/object:Gem::Dependency
|
74
56
|
name: lotus-view
|
75
57
|
requirement: !ruby/object:Gem::Requirement
|
76
58
|
requirements:
|
77
59
|
- - "~>"
|
78
60
|
- !ruby/object:Gem::Version
|
79
|
-
version: '0.
|
61
|
+
version: '0.4'
|
80
62
|
type: :runtime
|
81
63
|
prerelease: false
|
82
64
|
version_requirements: !ruby/object:Gem::Requirement
|
83
65
|
requirements:
|
84
66
|
- - "~>"
|
85
67
|
- !ruby/object:Gem::Version
|
86
|
-
version: '0.
|
68
|
+
version: '0.4'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: lotus-helpers
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.1'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.1'
|
87
83
|
- !ruby/object:Gem::Dependency
|
88
84
|
name: shotgun
|
89
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,6 +187,7 @@ extensions: []
|
|
191
187
|
extra_rdoc_files: []
|
192
188
|
files:
|
193
189
|
- CHANGELOG.md
|
190
|
+
- FEATURES.md
|
194
191
|
- LICENSE.md
|
195
192
|
- README.md
|
196
193
|
- bin/lotus
|
@@ -199,22 +196,35 @@ files:
|
|
199
196
|
- lib/lotus/application_name.rb
|
200
197
|
- lib/lotus/cli.rb
|
201
198
|
- lib/lotus/commands/console.rb
|
199
|
+
- lib/lotus/commands/db.rb
|
200
|
+
- lib/lotus/commands/db/console.rb
|
201
|
+
- lib/lotus/commands/generate.rb
|
202
202
|
- lib/lotus/commands/new.rb
|
203
203
|
- lib/lotus/commands/routes.rb
|
204
204
|
- lib/lotus/commands/server.rb
|
205
205
|
- lib/lotus/config/assets.rb
|
206
206
|
- lib/lotus/config/configure.rb
|
207
|
+
- lib/lotus/config/cookies.rb
|
207
208
|
- lib/lotus/config/framework_configuration.rb
|
208
209
|
- lib/lotus/config/load_paths.rb
|
209
210
|
- lib/lotus/config/mapper.rb
|
210
211
|
- lib/lotus/config/mapping.rb
|
211
212
|
- lib/lotus/config/routes.rb
|
213
|
+
- lib/lotus/config/security.rb
|
212
214
|
- lib/lotus/config/sessions.rb
|
213
215
|
- lib/lotus/configuration.rb
|
214
216
|
- lib/lotus/container.rb
|
215
217
|
- lib/lotus/environment.rb
|
216
218
|
- lib/lotus/frameworks.rb
|
217
219
|
- lib/lotus/generators/abstract.rb
|
220
|
+
- lib/lotus/generators/action.rb
|
221
|
+
- lib/lotus/generators/action/action.rb.tt
|
222
|
+
- lib/lotus/generators/action/action_spec.minitest.tt
|
223
|
+
- lib/lotus/generators/action/action_spec.rspec.tt
|
224
|
+
- lib/lotus/generators/action/template.tt
|
225
|
+
- lib/lotus/generators/action/view.rb.tt
|
226
|
+
- lib/lotus/generators/action/view_spec.minitest.tt
|
227
|
+
- lib/lotus/generators/action/view_spec.rspec.tt
|
218
228
|
- lib/lotus/generators/application/container.rb
|
219
229
|
- lib/lotus/generators/application/container/.gitkeep
|
220
230
|
- lib/lotus/generators/application/container/Gemfile.tt
|
@@ -229,10 +239,12 @@ files:
|
|
229
239
|
- lib/lotus/generators/application/container/db/.gitkeep
|
230
240
|
- lib/lotus/generators/application/container/features_helper.rb.minitest.tt
|
231
241
|
- lib/lotus/generators/application/container/features_helper.rb.rspec.tt
|
242
|
+
- lib/lotus/generators/application/container/gitignore.tt
|
232
243
|
- lib/lotus/generators/application/container/lib/app_name.rb.tt
|
233
244
|
- lib/lotus/generators/application/container/lib/chirp/entities/.gitkeep
|
234
245
|
- lib/lotus/generators/application/container/lib/chirp/repositories/.gitkeep
|
235
246
|
- lib/lotus/generators/application/container/lib/config/mapping.rb.tt
|
247
|
+
- lib/lotus/generators/application/container/lotusrc.tt
|
236
248
|
- lib/lotus/generators/application/container/rspec.rspec.tt
|
237
249
|
- lib/lotus/generators/application/container/spec_helper.rb.minitest.tt
|
238
250
|
- lib/lotus/generators/application/container/spec_helper.rb.rspec.tt
|
@@ -248,6 +260,7 @@ files:
|
|
248
260
|
- lib/lotus/generators/slice/views/application_layout.rb.tt
|
249
261
|
- lib/lotus/loader.rb
|
250
262
|
- lib/lotus/logger.rb
|
263
|
+
- lib/lotus/lotusrc.rb
|
251
264
|
- lib/lotus/middleware.rb
|
252
265
|
- lib/lotus/rendering_policy.rb
|
253
266
|
- lib/lotus/routes.rb
|