mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-22 03:56:22 +00:00
un poco de overhaul y listar sitios
This commit is contained in:
parent
0c05a8123b
commit
3ac158cc93
9 changed files with 99 additions and 20 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
|||
vendor/
|
||||
node_modules/
|
||||
.sass-cache/
|
||||
_sites/
|
||||
|
|
1
_config.yml
Normal file
1
_config.yml
Normal file
|
@ -0,0 +1 @@
|
|||
sites_dir: '_sites'
|
0
_sites/.keep
Normal file
0
_sites/.keep
Normal file
38
lib/sutty.rb
38
lib/sutty.rb
|
@ -1,25 +1,31 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rack-flash'
|
||||
require 'sinatra/base'
|
||||
require 'sinatra_warden'
|
||||
require_relative 'sutty/login'
|
||||
require 'yaml'
|
||||
require_relative 'sutty/models/jekyll'
|
||||
|
||||
# Sutty
|
||||
module Sutty
|
||||
# Sutty
|
||||
class App < Sinatra::Base
|
||||
use Rack::Flash
|
||||
use Sutty::Login
|
||||
register Sinatra::Warden
|
||||
|
||||
set :root, File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
||||
# La raíz
|
||||
def self.root
|
||||
@root ||= File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
||||
end
|
||||
|
||||
before do
|
||||
authorize! '/login'
|
||||
end
|
||||
# La configuración
|
||||
def self.settings
|
||||
@settings ||= YAML.load(File.read(Sutty.config_file))
|
||||
end
|
||||
|
||||
get '/' do
|
||||
haml :index
|
||||
end
|
||||
def self.config_file
|
||||
@config_file ||= File.join(Sutty.root, '_config.yml')
|
||||
end
|
||||
|
||||
def self.sites_dir
|
||||
@sites_dir ||= File.join(Sutty.root, Sutty.settings['sites_dir'])
|
||||
end
|
||||
|
||||
def self.sites
|
||||
binding.pry
|
||||
@sites ||= Jekyll.all
|
||||
end
|
||||
end
|
||||
|
|
26
lib/sutty/app.rb
Normal file
26
lib/sutty/app.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rack-flash'
|
||||
require 'sinatra/base'
|
||||
require 'sinatra_warden'
|
||||
require_relative 'login'
|
||||
require_relative '../sutty'
|
||||
|
||||
module Sutty
|
||||
# Sutty
|
||||
class App < Sinatra::Base
|
||||
use Rack::Flash
|
||||
use Sutty::Login
|
||||
register Sinatra::Warden
|
||||
|
||||
set :root, Sutty.root
|
||||
|
||||
before do
|
||||
authorize! '/login'
|
||||
end
|
||||
|
||||
get '/' do
|
||||
haml :index
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,12 +4,15 @@ require 'net/imap'
|
|||
require 'rack-flash'
|
||||
require 'sinatra/base'
|
||||
require 'sinatra_warden'
|
||||
require_relative '../sutty'
|
||||
require_relative '../warden/imap'
|
||||
require_relative 'models/usuaria'
|
||||
|
||||
module Sutty
|
||||
# Login
|
||||
class Login < Sinatra::Base
|
||||
set :root, Sutty.root
|
||||
|
||||
use Rack::Flash
|
||||
register Sinatra::Warden
|
||||
|
||||
|
@ -32,8 +35,6 @@ module Sutty
|
|||
config.failure_app = self
|
||||
end
|
||||
|
||||
set :root, File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
||||
|
||||
before do
|
||||
@has_cover = true
|
||||
end
|
||||
|
|
39
lib/sutty/models/jekyll.rb
Normal file
39
lib/sutty/models/jekyll.rb
Normal file
|
@ -0,0 +1,39 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Sutty
|
||||
# Un sitio jekyll
|
||||
class Jekyll
|
||||
# Devuelve todos los sitios dentro de sites_dir como instancias de
|
||||
# Jekyll
|
||||
def self.all
|
||||
Dir.entries(Sutty.sites_dir).map do |j|
|
||||
# no queremos . ni .. ni archivos ocultos
|
||||
next if j.start_with? '.'
|
||||
|
||||
_j = File.realpath(File.join(Sutty.sites_dir, j))
|
||||
next unless Jekyll.is_jekyll? _j
|
||||
|
||||
Jekyll.new(_j, j)
|
||||
end.compact
|
||||
end
|
||||
|
||||
# Comprueba que el directorio parezca ser de jekyll
|
||||
def self.is_jekyll?(dir)
|
||||
File.directory?(dir) && File.exists?(File.join(dir, '_config.yml'))
|
||||
end
|
||||
|
||||
def initialize(dir, name = nil)
|
||||
@root = dir
|
||||
@name = name if name
|
||||
end
|
||||
|
||||
def config
|
||||
@config ||= YAML.load(File.read(File.join(@root, '_config.yml')))
|
||||
end
|
||||
|
||||
def name
|
||||
@name ||= File.basename(@root)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
2
sutty.rb
2
sutty.rb
|
@ -1,4 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'pry' unless ENV['RACK_ENV'] == 'production'
|
||||
require_relative 'lib/sutty'
|
||||
require_relative 'lib/sutty/app'
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
%h1
|
||||
Hola
|
||||
= current_user.username
|
||||
|
||||
%table.table.table-striped.table-condensed
|
||||
%tbody
|
||||
- Sutty.sites.each do |site|
|
||||
%tr
|
||||
%td= site.name
|
||||
|
|
Loading…
Reference in a new issue