gast 0.0.5 → 0.0.7
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/lib/gast/app.rb +17 -75
- data/lib/gast/base.rb +95 -0
- data/lib/gast/memo.rb +4 -1
- data/lib/gast/repository.rb +14 -10
- data/lib/gast/templates/edit.haml +1 -1
- data/lib/gast/templates/view.haml +1 -1
- data/lib/gast/version.rb +1 -1
- data/lib/gast.rb +3 -0
- data/spec/repository_spec.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec83adad16b7da1940d4ad7dcb4de850b804b7b1
|
4
|
+
data.tar.gz: 854a253b2bdc656cb92d63e8256cdee8246f09fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4443e060971ee973f8b4484fc55c91126e7914ee170b78a1aeddd027b91fa8a608bfb8ad8d9f3ad42a80b2927508edec82f1ee357c679cc8c14b3df520757826
|
7
|
+
data.tar.gz: 26f036921b25862629e282781319a34bf65420868ca66de0c0a30e4ae6cb0f64914a964ee372f4e5df9c0595631ee28a169c2f96bf89a7b403d0de8d5b1129fd
|
data/lib/gast/app.rb
CHANGED
@@ -1,89 +1,31 @@
|
|
1
1
|
require 'gast'
|
2
2
|
|
3
3
|
module Gast
|
4
|
-
class App <
|
5
|
-
enable :method_override
|
6
|
-
set :sprockets, Sprockets::Environment.new(root)
|
7
|
-
set :assets_prefix, '/assets'
|
8
|
-
set :digest_assets, false
|
9
|
-
set :views, settings.root + '/templates'
|
10
|
-
|
11
|
-
configure do
|
12
|
-
sprockets.append_path File.join(root, 'assets', 'stylesheets')
|
13
|
-
sprockets.append_path File.join(root, 'assets', 'javascripts')
|
14
|
-
sprockets.append_path File.join(root, 'assets', 'images')
|
15
|
-
|
16
|
-
Sprockets::Helpers.configure do |config|
|
17
|
-
config.environment = sprockets
|
18
|
-
config.prefix = assets_prefix
|
19
|
-
config.digest = digest_assets
|
20
|
-
config.public_path = '/public'
|
21
|
-
|
22
|
-
config.debug = true
|
23
|
-
end
|
24
|
-
|
25
|
-
register Sinatra::Reloader
|
26
|
-
end
|
27
|
-
|
28
|
-
helpers do
|
29
|
-
include Sprockets::Helpers
|
30
|
-
end
|
31
|
-
|
32
|
-
before do
|
33
|
-
@languages = Gast::LANGUAGES
|
34
|
-
end
|
35
|
-
|
36
|
-
before %r{/posts/\w+/(\w+)} do |id|
|
37
|
-
unless /[a-zA-Z0-9]{30}/ =~ id.to_s
|
38
|
-
halt haml(:error, locals: { message: 'error is format of id' })
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
not_found do
|
43
|
-
haml :not_found
|
44
|
-
end
|
45
|
-
|
46
|
-
error do
|
47
|
-
haml :error
|
48
|
-
end
|
49
|
-
|
4
|
+
class App < Gast::Base
|
50
5
|
get '/' do
|
51
6
|
haml :index, locals: { new_post: true }
|
52
7
|
end
|
53
8
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
9
|
+
namespace '/posts' do
|
10
|
+
get '/list' do
|
11
|
+
haml :list
|
12
|
+
end
|
58
13
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
@content_hash = params[:content_id].to_s
|
63
|
-
haml :view
|
64
|
-
end
|
14
|
+
get '/view/:content_id' do
|
15
|
+
haml :view
|
16
|
+
end
|
65
17
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
haml :edit
|
70
|
-
end
|
18
|
+
get '/edit/:content_id' do
|
19
|
+
haml :edit
|
20
|
+
end
|
71
21
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
params[:content].to_s,
|
76
|
-
params[:language].to_s
|
77
|
-
)
|
78
|
-
redirect to("/posts/view/#{params[:content_id]}")
|
79
|
-
end
|
22
|
+
put '/update/:content_id' do
|
23
|
+
redirect to("/posts/view/#{@content_id}")
|
24
|
+
end
|
80
25
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
params[:language].to_s
|
85
|
-
)
|
86
|
-
redirect to("/posts/view/#{results[:content_id]}")
|
26
|
+
post '/new' do
|
27
|
+
redirect to("/posts/view/#{@content_id}")
|
28
|
+
end
|
87
29
|
end
|
88
30
|
end
|
89
31
|
end
|
data/lib/gast/base.rb
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'gast'
|
2
|
+
|
3
|
+
module Gast
|
4
|
+
class Base < Sinatra::Base
|
5
|
+
register Sinatra::Namespace
|
6
|
+
enable :method_override
|
7
|
+
set :sprockets, Sprockets::Environment.new(root)
|
8
|
+
set :assets_prefix, '/assets'
|
9
|
+
set :digest_assets, false
|
10
|
+
set :views, settings.root + '/templates'
|
11
|
+
|
12
|
+
configure do
|
13
|
+
sprockets.append_path File.join(root, 'assets', 'stylesheets')
|
14
|
+
sprockets.append_path File.join(root, 'assets', 'javascripts')
|
15
|
+
sprockets.append_path File.join(root, 'assets', 'images')
|
16
|
+
|
17
|
+
Sprockets::Helpers.configure do |config|
|
18
|
+
config.environment = sprockets
|
19
|
+
config.prefix = assets_prefix
|
20
|
+
config.digest = digest_assets
|
21
|
+
config.public_path = '/public'
|
22
|
+
|
23
|
+
config.debug = true
|
24
|
+
end
|
25
|
+
|
26
|
+
register Sinatra::Reloader
|
27
|
+
end
|
28
|
+
|
29
|
+
helpers do
|
30
|
+
include Sprockets::Helpers
|
31
|
+
end
|
32
|
+
|
33
|
+
before do
|
34
|
+
@languages = Gast::LANGUAGES
|
35
|
+
@content_id = params[:content_id].to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
not_found do
|
39
|
+
haml :not_found
|
40
|
+
end
|
41
|
+
|
42
|
+
error do
|
43
|
+
haml :error
|
44
|
+
end
|
45
|
+
|
46
|
+
namespace '/posts' do
|
47
|
+
before %r{/\w+/(\w+)} do |id|
|
48
|
+
unless /[a-zA-Z0-9]{30}/ =~ id.to_s
|
49
|
+
halt haml(:error, locals: {
|
50
|
+
message: 'error is format of id'
|
51
|
+
})
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
before '/new' do
|
56
|
+
@content = params[:content].to_s
|
57
|
+
@language = params[:language].to_s
|
58
|
+
|
59
|
+
if @content.length == 0
|
60
|
+
halt haml(:error, locals: {
|
61
|
+
message: 'require of content!'
|
62
|
+
})
|
63
|
+
end
|
64
|
+
|
65
|
+
result = Gast::Memo.save(@content, @language)
|
66
|
+
@content_id = result[:content_id]
|
67
|
+
end
|
68
|
+
|
69
|
+
before '/list' do
|
70
|
+
@lists = Gast::Memo.lists
|
71
|
+
end
|
72
|
+
|
73
|
+
before '/*/:content_id' do
|
74
|
+
if %w[view edit update].include? request.path_info.split('/')[2]
|
75
|
+
@content_id = params[:content_id].to_s
|
76
|
+
@content = params[:content].to_s
|
77
|
+
@language = params[:language].to_s
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
before '/view/:content_id' do
|
82
|
+
@item = Gast::Memo.item(@content_id)
|
83
|
+
@language = Gast::Memo.language(@content_id)
|
84
|
+
end
|
85
|
+
|
86
|
+
before '/edit/:content_id' do
|
87
|
+
@item = Gast::Memo.item(@content_id)
|
88
|
+
end
|
89
|
+
|
90
|
+
before '/update/:content_id' do
|
91
|
+
Gast::Memo.update(@content_id, @content, @language)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/lib/gast/memo.rb
CHANGED
@@ -4,6 +4,7 @@ module Gast
|
|
4
4
|
class Memo
|
5
5
|
def self.save(content, language = 'no-highlight')
|
6
6
|
@repo = Gast::Repository.new
|
7
|
+
@repo.create
|
7
8
|
@repo.content = CGI.unescapeHTML(content.to_s)
|
8
9
|
@repo.language = CGI.unescapeHTML(language.to_s)
|
9
10
|
@repo.publish
|
@@ -16,7 +17,9 @@ module Gast
|
|
16
17
|
|
17
18
|
def self.update(content_id, content, language = 'no-highlight')
|
18
19
|
return content_id if content.to_s.chomp == item(content_id).chomp
|
19
|
-
@repo = Gast::Repository.new
|
20
|
+
@repo = Gast::Repository.new
|
21
|
+
@repo.dir_name = content_id
|
22
|
+
@repo.create
|
20
23
|
@repo.content = CGI.unescapeHTML(content.to_s)
|
21
24
|
@repo.language = CGI.unescapeHTML(language.to_s)
|
22
25
|
@repo.publish
|
data/lib/gast/repository.rb
CHANGED
@@ -2,20 +2,16 @@ require 'gast'
|
|
2
2
|
|
3
3
|
module Gast
|
4
4
|
class Repository
|
5
|
-
attr_reader :path
|
5
|
+
attr_reader :path
|
6
6
|
attr_writer :content, :language
|
7
|
+
attr_accessor :dir_name
|
7
8
|
|
8
|
-
def initialize
|
9
|
-
if dir_name.nil?
|
10
|
-
@dir_name = Digest::SHA512.new.update(rand.to_s).to_s[0..30]
|
11
|
-
else
|
12
|
-
@dir_name = dir_name.to_s
|
13
|
-
end
|
14
|
-
|
15
|
-
@path = File.expand_path(File.join(Gast::PATH, @dir_name))
|
9
|
+
def initialize; end
|
16
10
|
|
11
|
+
def create
|
12
|
+
@dir_name = new_name_of_repository if @dir_name.nil?
|
13
|
+
@path = path_of_repository
|
17
14
|
create_dir
|
18
|
-
|
19
15
|
@git = Git.init(@path)
|
20
16
|
end
|
21
17
|
|
@@ -63,5 +59,13 @@ module Gast
|
|
63
59
|
io.flock(File::LOCK_UN)
|
64
60
|
end
|
65
61
|
end
|
62
|
+
|
63
|
+
def new_name_of_repository
|
64
|
+
Digest::SHA512.new.update(rand.to_s).to_s[0..30]
|
65
|
+
end
|
66
|
+
|
67
|
+
def path_of_repository
|
68
|
+
File.expand_path(File.join(Gast::PATH, @dir_name))
|
69
|
+
end
|
66
70
|
end
|
67
71
|
end
|
data/lib/gast/version.rb
CHANGED
data/lib/gast.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'digest/sha2'
|
2
2
|
require 'sinatra/base'
|
3
3
|
require 'sinatra/reloader'
|
4
|
+
require 'sinatra/contrib'
|
5
|
+
require 'sinatra/namespace'
|
4
6
|
require 'sprockets'
|
5
7
|
require 'sprockets-helpers'
|
6
8
|
require 'gast/memo'
|
7
9
|
require 'gast/app'
|
8
10
|
require 'gast/repository'
|
11
|
+
require 'gast/base'
|
9
12
|
require 'haml'
|
10
13
|
require 'sass'
|
11
14
|
require 'git'
|
data/spec/repository_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- futoase
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -243,6 +243,7 @@ files:
|
|
243
243
|
- gast.gemspec
|
244
244
|
- lib/gast.rb
|
245
245
|
- lib/gast/app.rb
|
246
|
+
- lib/gast/base.rb
|
246
247
|
- lib/gast/memo.rb
|
247
248
|
- lib/gast/repository.rb
|
248
249
|
- lib/gast/templates/edit.haml
|