eucalypt 0.5.4 → 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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/lib/eucalypt/blog/namespaces/blog/templates/controller/controller_spec.tt +5 -5
  3. data/lib/eucalypt/blog/namespaces/blog/templates/helper/helper_spec.tt +2 -2
  4. data/lib/eucalypt/core/helpers/assets.rb +12 -0
  5. data/lib/eucalypt/core/helpers/default_index.rb +62 -0
  6. data/lib/eucalypt/core/helpers/maintenance.rb +9 -17
  7. data/lib/eucalypt/core/helpers/static.rb +9 -0
  8. data/lib/eucalypt/core/templates/eucalypt/Procfile +1 -1
  9. data/lib/eucalypt/core/templates/eucalypt/app/controllers/main_controller.rb +8 -0
  10. data/lib/eucalypt/core/templates/eucalypt/app/helpers/application_helper.rb +1 -0
  11. data/lib/eucalypt/core/templates/eucalypt/app/helpers/main_helper.rb +3 -0
  12. data/lib/eucalypt/core/templates/eucalypt/app.rb +6 -3
  13. data/lib/eucalypt/core/templates/eucalypt/config/assets.rb +0 -11
  14. data/lib/eucalypt/core/templates/eucalypt/config/logging.rb +2 -2
  15. data/lib/eucalypt/core/templates/eucalypt/config.ru +2 -2
  16. data/lib/eucalypt/core/templates/eucalypt/spec/controllers/main_controller_spec.rb +9 -0
  17. data/lib/eucalypt/core/templates/eucalypt/spec/helpers/application_helper_spec.rb +2 -2
  18. data/lib/eucalypt/core/templates/eucalypt/spec/helpers/main_helper_spec.rb +9 -0
  19. data/lib/eucalypt/destroy/helpers.rb +3 -3
  20. data/lib/eucalypt/destroy/namespaces/destroy/cli/destroy-scaffold.rb +1 -1
  21. data/lib/eucalypt/generate/namespaces/generate-controller/templates/controller_spec.tt +2 -2
  22. data/lib/eucalypt/generate/namespaces/generate-helper/templates/helper_spec.tt +2 -2
  23. data/lib/eucalypt/generate/namespaces/generate-model/templates/model_spec.tt +2 -2
  24. data/lib/eucalypt/load.rb +10 -4
  25. data/lib/eucalypt/version.rb +1 -1
  26. data/lib/eucalypt.rb +0 -1
  27. metadata +8 -5
  28. data/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb +0 -13
  29. data/lib/eucalypt/core/templates/eucalypt/spec/controllers/application_controller_spec.rb +0 -9
  30. data/lib/eucalypt/guard.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 005bbb19c5ac76105fb268b6e1fe702b9578f6662090cdf00216db6d2cd3c176
4
- data.tar.gz: e57af71e2008ead2059f97c9d45486d018fdd270fdd1fdecf498e8b4f49405d3
3
+ metadata.gz: 63a4230316973e6c72642122be340698338ba605203cac4b45d136b67e470831
4
+ data.tar.gz: e195e28d876bc4f267b2247928dfb1f2989b2221c698c3b1277533505a52583d
5
5
  SHA512:
6
- metadata.gz: 21fb4ea75dd4ef56019cbf80cabdce84a16bdc7fafa0577af1ebf85fcf9f061836b8d06e7a8045faef63782e62d66450dcfdec5907c7b219059a4af695bc41a5
7
- data.tar.gz: 226b4bd5c05bb8d0305ac0a86a79452543676c9a45fd29eb8bab2a0145aeade7bce7b2642102a6b2d1668f2b2f595483cea4cb92949367a3100dd2cf69ab70d9
6
+ metadata.gz: 98e8356429004cd6c51bf8772cf7fe73ff91f30a5824f851abb81deebaef4b17c47da94106337e49dca1367f122d6e5bd7f3a078a70c0e2ad0fff05f17c1b9f8
7
+ data.tar.gz: 460de18916f03b34b1fa63f81bdebb8e33619d9937dce312addbfd9cbd8da4efb9ca61beaef892e8025695f76eff17d913e7a7bee065b07491d6403285695533
@@ -11,7 +11,7 @@ describe BlogController do
11
11
  describe 'blog page' do
12
12
  it "should display all posts" do
13
13
  get '/'
14
- expect(true).to be false
14
+ expect(true).to be true
15
15
  end
16
16
  end
17
17
 
@@ -22,20 +22,20 @@ describe BlogController do
22
22
  before { get "/#{subpath}/#{post[:urltitle]}" }
23
23
 
24
24
  it "should have a timestamp" do
25
- expect(true).to be false
25
+ expect(true).to be true
26
26
  end
27
27
 
28
28
  it "should have a title" do
29
- expect(true).to be false
29
+ expect(true).to be true
30
30
  end
31
31
 
32
32
  it "should have a description" do
33
- expect(true).to be false
33
+ expect(true).to be true
34
34
  end
35
35
 
36
36
  it "should have tags" do
37
37
  post[:tags].each do |tag|
38
- expect(true).to be false
38
+ expect(true).to be true
39
39
  end
40
40
  end
41
41
  end
@@ -3,7 +3,7 @@ require_relative '../spec_helper'
3
3
  describe BlogHelper do
4
4
  include BlogHelper
5
5
 
6
- it "should expect true to be false" do
7
- expect(true).to be false
6
+ it 'works' do
7
+ expect(true).to be true
8
8
  end
9
9
  end
@@ -0,0 +1,12 @@
1
+ class ApplicationController < Sinatra::Base
2
+ set :assets, Sprockets::Environment.new
3
+
4
+ Eucalypt.glob 'app', 'assets', '*' do |item|
5
+ assets.append_path item if File.directory? item
6
+ end
7
+
8
+ MainController.get '/assets/*' do
9
+ env["PATH_INFO"].sub! '/assets', ''
10
+ settings.assets.call env
11
+ end
12
+ end
@@ -0,0 +1,62 @@
1
+ class MainController < ApplicationController
2
+ unless self.routes["GET"].map {|r| r.first.to_s}.include?('/')
3
+ self.get '/' do
4
+ <<-HEREDOC
5
+ <html>
6
+ <head>
7
+ <style>
8
+ @import url('https://fonts.googleapis.com/css?family=Alegreya:400,500|Inconsolata:400,700');
9
+ body {
10
+ margin: 0;
11
+ height: 100vh;
12
+ width: 100vw;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ }
17
+ #container {
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+ #container img {
22
+ display: inline-block;
23
+ height: 200px;
24
+ padding: 30px;
25
+ }
26
+ #text {
27
+ display: inline-block;
28
+ }
29
+ #text h1 {
30
+ font-family: 'Alegreya', serif;
31
+ font-size: 2.5em;
32
+ }
33
+ #text p {
34
+ font-family: 'Inconsolata', monospace;
35
+ font-size: 1.5em;
36
+ }
37
+ #text p b {
38
+ color: rgb(120,120,120);
39
+ font-family: 'Inconsolata', monospace;
40
+ font-weight: 700;
41
+ }
42
+ #text p span {
43
+ color: #4ab37b;
44
+ }
45
+ </style>
46
+ <meta name="viewport" content="width=device-width">
47
+ </head>
48
+ <body>
49
+ <div id="container">
50
+ <img src="https://raw.githubusercontent.com/eucalypt-framework/eucalypt/master/gfx/eucalypt.png">
51
+ <div id="text">
52
+ <h1>It's alive!</h1>
53
+ <p><b>Eucalypt version</b> : <span>#{Eucalypt::VERSION}</span></p>
54
+ <p><b>Ruby version</b> : <span>#{RUBY_VERSION}</span></p>
55
+ </div>
56
+ </div>
57
+ </body>
58
+ </html>
59
+ HEREDOC
60
+ end
61
+ end
62
+ end
@@ -1,22 +1,14 @@
1
- require 'sinatra'
2
- require 'securerandom'
3
1
  class ApplicationController < Sinatra::Base
4
- if settings.methods(false).include?(:maintenance)
5
- if settings.maintenance
6
- define_singleton_method(:maintenance) do |&block|
7
- get '*', &block
8
- post '*', &block
9
- put '*', &block
10
- patch '*', &block
11
- delete '*', &block
12
- options '*', &block
13
- link '*', &block
14
- unlink '*', &block
2
+ def self.maintenance(enabled:, &block)
3
+ if enabled
4
+ MainController.get '/maintenance', &block
5
+ Eucalypt.glob('app', 'controllers', '*.rb') do |file|
6
+ controller = File.basename(file,'.*').camelize.constantize
7
+ controller.before '*' do
8
+ splat = params[:splat].reject {|param| /\/assets\/.*/.match? param}
9
+ redirect '/maintenance' unless splat.include?('/maintenance') || splat.empty?
10
+ end
15
11
  end
16
- else
17
- define_singleton_method(:maintenance) {|&block| get 3.times.map{"/#{SecureRandom.hex 8}"}.join(), &block}
18
12
  end
19
- else
20
- define_singleton_method(:maintenance) {|&block| get 3.times.map{"/#{SecureRandom.hex 8}"}.join(), &block}
21
13
  end
22
14
  end
@@ -44,4 +44,13 @@ class ApplicationController < Sinatra::Base
44
44
  end
45
45
  end
46
46
  end
47
+
48
+ helpers do
49
+ def render_static(file)
50
+ raise ArgumentError.new("Invalid argument #{file} for 'file' - Expected string (file path with preceding /)") unless file.is_a?(String) && file.start_with?('/')
51
+ location = File.join settings.public_folder, file.sub('/', '')
52
+ raise ArgumentError.new("Invalid argument #{file} for 'file' - File \"#{location}\" doesn't exist") unless File.file? location
53
+ send_file location
54
+ end
55
+ end
47
56
  end
@@ -1 +1 @@
1
- web: bundle exec eucalypt launch production -p $PORT
1
+ web: eucalypt launch production -p $PORT
@@ -0,0 +1,8 @@
1
+ class MainController < ApplicationController
2
+ helpers MainHelper if defined? MainHelper
3
+ # Add your main application routes here, like:
4
+ #
5
+ # get '/' do
6
+ # erb :index
7
+ # end
8
+ end
@@ -1,3 +1,4 @@
1
1
  module ApplicationHelper
2
2
  # Add your helper methods here...
3
+ # NOTE: These methods will be accessible by every controller
3
4
  end
@@ -0,0 +1,3 @@
1
+ module MainHelper
2
+ # Add your helper methods here...
3
+ end
@@ -20,11 +20,14 @@ class ApplicationController < Sinatra::Base
20
20
  # Set default ERB template
21
21
  set :erb, layout: :'layouts/main'
22
22
 
23
- # Toggle maintenance mode
24
- disable :maintenance
25
-
26
23
  # Set Hanami HTML and asset helpers
27
24
  helpers Hanami::Helpers, Hanami::Assets::Helpers
28
25
 
26
+ # Load controllers and other application files
29
27
  require 'eucalypt/load'
28
+
29
+ # Set maintenance route
30
+ maintenance enabled: false do
31
+ render_static '/maintenance.html'
32
+ end
30
33
  end
@@ -1,15 +1,4 @@
1
1
  class ApplicationController < Sinatra::Base
2
- set :assets, Sprockets::Environment.new
3
-
4
2
  assets.css_compressor = :scss
5
3
  assets.js_compressor = :uglify
6
-
7
- Eucalypt.glob 'app', 'assets', '*' do |item|
8
- assets.append_path item if File.directory? item
9
- end
10
-
11
- get '/assets/*' do
12
- env["PATH_INFO"].sub! '/assets', ''
13
- settings.assets.call env
14
- end
15
4
  end
@@ -5,12 +5,12 @@ class ApplicationController < Sinatra::Base
5
5
  end
6
6
 
7
7
  configure :development do
8
- enable :logging
8
+ set :logging, Lumberjack::Severity::DEBUG
9
9
  disable :log_file
10
10
  end
11
11
 
12
12
  configure :production do
13
- set :logging, Lumberjack::Severity::UNKNOWN
13
+ enable :logging
14
14
  enable :log_file
15
15
  end
16
16
 
@@ -2,9 +2,9 @@ require_relative 'app'
2
2
 
3
3
  Eucalypt.glob('app', 'controllers', '*.rb').each do |file|
4
4
  controller_name = File.basename(file,'.*').camelize
5
- next if controller_name == 'ApplicationController'
5
+ next if controller_name == 'MainController'
6
6
  controller = controller_name.constantize
7
7
  map(controller.router) { run controller }
8
8
  end
9
9
 
10
- map('/') { run ApplicationController }
10
+ map('/') { run MainController }
@@ -0,0 +1,9 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe MainController do
4
+ def app() MainController end
5
+
6
+ it 'works' do
7
+ expect(true).to be true
8
+ end
9
+ end
@@ -3,7 +3,7 @@ require_relative '../spec_helper'
3
3
  describe ApplicationHelper do
4
4
  include ApplicationHelper
5
5
 
6
- it "should expect true to be false" do
7
- expect(true).to be false
6
+ it 'works' do
7
+ expect(true).to be true
8
8
  end
9
9
  end
@@ -0,0 +1,9 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe MainHelper do
4
+ include MainHelper
5
+
6
+ it 'works' do
7
+ expect(true).to be true
8
+ end
9
+ end
@@ -13,7 +13,7 @@ module Eucalypt
13
13
  directory = File.expand_path('.')
14
14
  if Eucalypt.app? directory
15
15
  files = Dir[File.join directory, 'app', "#{mvc_file}s", '*.rb']
16
- file_names = files.map{|c| File.basename(c).split(?_).first}.reject{|n| n=='application'}
16
+ file_names = files.map{|c| File.basename(c).split(?_).first}.reject{|n| n == 'main' }
17
17
 
18
18
  if files.empty?
19
19
  Eucalypt::Error.no_mvc(mvc_file)
@@ -28,13 +28,13 @@ module Eucalypt
28
28
  file_name = mvc_file == :model ? "#{name}.rb" : "#{name}_#{mvc_file}.rb"
29
29
  spec_file_name = mvc_file == :model ? "#{name}_spec.rb" : "#{name}_#{mvc_file}_spec.rb"
30
30
 
31
- unless file_names.include? file_name
31
+ unless file_names.include? name
32
32
  Eucalypt::Error.no_mvc(mvc_file)
33
33
  return
34
34
  end
35
35
  else
36
36
  # If name not given
37
- files = Dir[File.join directory, 'app', "#{mvc_file}s", "*.rb"].reject{|f| File.basename(f).include? 'application'}
37
+ files = Dir[File.join directory, 'app', "#{mvc_file}s", "*.rb"].reject{|f| File.basename(f) == 'main_controller.rb' }
38
38
  if files.empty?
39
39
  Eucalypt::Error.no_mvc(mvc_file)
40
40
  return
@@ -17,7 +17,7 @@ module Eucalypt
17
17
  File.basename(f).split(?_).first.split(?.).first
18
18
  end
19
19
 
20
- scaffolds.reject!{|f|f == 'application'}
20
+ scaffolds.reject!{|f|f == 'main'}
21
21
  scaffolds.uniq!
22
22
 
23
23
  if scaffolds.empty?
@@ -3,7 +3,7 @@ require_relative '../spec_helper'
3
3
  describe <%= config[:class_name] %> do
4
4
  def app() <%= config[:class_name] %> end
5
5
 
6
- it "should expect true to be false" do
7
- expect(true).to be false
6
+ it 'works' do
7
+ expect(true).to be true
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ require_relative '../spec_helper'
3
3
  describe <%= config[:class_name] %> do
4
4
  include <%= config[:class_name] %>
5
5
 
6
- it "should expect true to be false" do
7
- expect(true).to be false
6
+ it 'works' do
7
+ expect(true).to be true
8
8
  end
9
9
  end
@@ -2,7 +2,7 @@ require_relative '../spec_helper'
2
2
 
3
3
  describe <%= config[:class_name] %>, type: :model do
4
4
 
5
- it "should expect true to be false" do
6
- expect(true).to be false
5
+ it 'works' do
6
+ expect(true).to be true
7
7
  end
8
8
  end
data/lib/eucalypt/load.rb CHANGED
@@ -1,12 +1,18 @@
1
+ class MainController < ApplicationController; end
2
+
3
+ require 'eucalypt/core/helpers/assets'
1
4
  Eucalypt.require 'config', '*.rb'
2
5
  Eucalypt.require 'config', 'initializers', '*.rb'
3
6
 
4
- require 'eucalypt/core/helpers/maintenance'
5
7
  require 'eucalypt/core/helpers/static'
6
-
7
8
  Eucalypt.require 'app', 'helpers', '{application_helper.rb}'
8
- Eucalypt.require 'app', 'controllers', 'application_controller.rb'
9
+ ApplicationController.helpers ApplicationHelper if defined? ApplicationHelper
10
+
11
+ Eucalypt.require 'app', 'helpers', '{main_helper.rb}'
12
+ Eucalypt.require 'app', 'controllers', 'main_controller.rb'
9
13
  Eucalypt.require 'app', '{models}', '{roles}', '*.rb'
10
14
  Eucalypt.require 'app', '{models,policies,helpers,controllers}', '*.rb'
11
15
 
12
- require 'eucalypt/security/permissions'
16
+ require 'eucalypt/security/permissions'
17
+ require 'eucalypt/core/helpers/default_index'
18
+ require 'eucalypt/core/helpers/maintenance'
@@ -1,3 +1,3 @@
1
1
  module Eucalypt
2
- VERSION = '0.5.4'
2
+ VERSION = '0.6.0'
3
3
  end
data/lib/eucalypt.rb CHANGED
@@ -15,5 +15,4 @@ require 'eucalypt/core/helpers/partial'
15
15
 
16
16
  Eucalypt::CLI.extend Eucalypt::List
17
17
 
18
- class ApplicationController < Sinatra::Base; end
19
18
  def app() ApplicationController end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eucalypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Onuonga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-02 00:00:00.000000000 Z
11
+ date: 2019-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -233,6 +233,8 @@ files:
233
233
  - lib/eucalypt/core/cli/rake.rb
234
234
  - lib/eucalypt/core/cli/test.rb
235
235
  - lib/eucalypt/core/cli/version.rb
236
+ - lib/eucalypt/core/helpers/assets.rb
237
+ - lib/eucalypt/core/helpers/default_index.rb
236
238
  - lib/eucalypt/core/helpers/logging.rb
237
239
  - lib/eucalypt/core/helpers/maintenance.rb
238
240
  - lib/eucalypt/core/helpers/manifest.rb
@@ -250,8 +252,9 @@ files:
250
252
  - lib/eucalypt/core/templates/eucalypt/app/assets/stylesheets/__partials__.scss
251
253
  - lib/eucalypt/core/templates/eucalypt/app/assets/stylesheets/application.scss
252
254
  - lib/eucalypt/core/templates/eucalypt/app/assets/stylesheets/partials/_mixins.scss
253
- - lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb
255
+ - lib/eucalypt/core/templates/eucalypt/app/controllers/main_controller.rb
254
256
  - lib/eucalypt/core/templates/eucalypt/app/helpers/application_helper.rb
257
+ - lib/eucalypt/core/templates/eucalypt/app/helpers/main_helper.rb
255
258
  - lib/eucalypt/core/templates/eucalypt/app/models/.empty_directory
256
259
  - lib/eucalypt/core/templates/eucalypt/app/static/public/maintenance.html
257
260
  - lib/eucalypt/core/templates/eucalypt/app/views/index.erb
@@ -263,8 +266,9 @@ files:
263
266
  - lib/eucalypt/core/templates/eucalypt/config/initializers/.empty_directory
264
267
  - lib/eucalypt/core/templates/eucalypt/config/logging.rb
265
268
  - lib/eucalypt/core/templates/eucalypt/logs/.empty_directory
266
- - lib/eucalypt/core/templates/eucalypt/spec/controllers/application_controller_spec.rb
269
+ - lib/eucalypt/core/templates/eucalypt/spec/controllers/main_controller_spec.rb
267
270
  - lib/eucalypt/core/templates/eucalypt/spec/helpers/application_helper_spec.rb
271
+ - lib/eucalypt/core/templates/eucalypt/spec/helpers/main_helper_spec.rb
268
272
  - lib/eucalypt/core/templates/eucalypt/spec/models/.empty_directory
269
273
  - lib/eucalypt/core/templates/eucalypt/spec/spec_helper.rb
270
274
  - lib/eucalypt/destroy/helpers.rb
@@ -291,7 +295,6 @@ files:
291
295
  - lib/eucalypt/generate/namespaces/generate-model/templates/model_spec.tt
292
296
  - lib/eucalypt/generate/namespaces/generate/cli/generate-scaffold.rb
293
297
  - lib/eucalypt/generate/namespaces/generate/cli/generate.rb
294
- - lib/eucalypt/guard.rb
295
298
  - lib/eucalypt/helpers.rb
296
299
  - lib/eucalypt/helpers/colorize.rb
297
300
  - lib/eucalypt/helpers/gemfile.rb
@@ -1,13 +0,0 @@
1
- class ApplicationController < Sinatra::Base
2
- helpers ApplicationHelper if defined? ApplicationHelper
3
-
4
- static '/maintenance.html', aliases: %w[/maintenance]
5
-
6
- maintenance do
7
- redirect '/maintenance'
8
- end
9
-
10
- get '/' do
11
- erb :index
12
- end
13
- end
@@ -1,9 +0,0 @@
1
- require_relative '../spec_helper'
2
-
3
- describe ApplicationController do
4
- def app() ApplicationController end
5
-
6
- it "should expect true to be false" do
7
- expect(true).to be false
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- class ApplicationController < Sinatra::Base
2
- helpers do
3
- def guard
4
- settings.guard
5
- end
6
- end
7
- end