gast 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +10 -0
- data/README.md +7 -2
- data/lib/gast/app.rb +9 -6
- data/lib/gast/memo.rb +7 -7
- data/lib/gast/repository.rb +1 -1
- data/lib/gast/templates/error.haml +3 -1
- data/lib/gast/templates/not_found.haml +4 -0
- data/lib/gast/version.rb +1 -1
- data/lib/gast.rb +12 -2
- data/spec/controller_spec.rb +24 -0
- metadata +4 -3
- data/lib/gast/assets/stylesheets/application.sass +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62f0f0b4b03eaf63cbfb2e6ddb5d41137b174ddd
|
4
|
+
data.tar.gz: 5d18e8c2a79ade92fb5c3ca3881a24f75d0549c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: beee6f573bde844c995656b335571892c1e7a45fdff0679b18b4c23fc1c07acf2527ed636f956272769eab887084345eb1ea239a26bf9e49967dbf39629b88f1
|
7
|
+
data.tar.gz: f42392c4a42e9f6cde24c7a98b08fdf600663b0f3aeb51c49874d58538b9c9627ba918f6eca3a42a0ab164ead6bc830d63bbc1af1a071671fbe534488578206e
|
data/.travis.yml
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
language: ruby
|
2
|
+
before_install:
|
3
|
+
- travis_retry gem install bundler
|
4
|
+
before_script:
|
5
|
+
- git config --global user.name "travis.ci"
|
6
|
+
- git config --global user.email "travis-test@example.com"
|
7
|
+
rvm:
|
8
|
+
- 2.1
|
9
|
+
bundler_args: --path vendor/bundle
|
10
|
+
script: bundle ex rspec
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Gast
|
2
2
|
|
3
|
-
|
3
|
+
[![Build Status](https://travis-ci.org/futoase/gast.svg?branch=feature/support-travis)](https://travis-ci.org/futoase/gast)
|
4
|
+
|
5
|
+
memo application of using git.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -18,7 +20,10 @@ Or install it yourself as:
|
|
18
20
|
|
19
21
|
## Usage
|
20
22
|
|
21
|
-
|
23
|
+
```
|
24
|
+
> gast
|
25
|
+
> open http://localhost:4567/
|
26
|
+
```
|
22
27
|
|
23
28
|
## Contributing
|
24
29
|
|
data/lib/gast/app.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
require 'sinatra/base'
|
2
|
-
require 'sinatra/reloader'
|
3
|
-
require 'sprockets'
|
4
|
-
require 'sprockets-helpers'
|
5
|
-
require 'gast/memo'
|
6
1
|
require 'gast'
|
7
2
|
|
8
3
|
module Gast
|
@@ -23,7 +18,7 @@ module Gast
|
|
23
18
|
config.environment = sprockets
|
24
19
|
config.prefix = assets_prefix
|
25
20
|
config.digest = digest_assets
|
26
|
-
|
21
|
+
config.public_path = '/public'
|
27
22
|
|
28
23
|
config.debug = true
|
29
24
|
end
|
@@ -41,6 +36,14 @@ module Gast
|
|
41
36
|
end
|
42
37
|
end
|
43
38
|
|
39
|
+
not_found do
|
40
|
+
haml :not_found
|
41
|
+
end
|
42
|
+
|
43
|
+
error do
|
44
|
+
haml :error
|
45
|
+
end
|
46
|
+
|
44
47
|
get '/' do
|
45
48
|
haml :index, locals: { new_post: true }
|
46
49
|
end
|
data/lib/gast/memo.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'date'
|
3
|
-
require 'digest/sha2'
|
4
|
-
require 'gast/repository'
|
1
|
+
require 'gast'
|
5
2
|
|
6
3
|
module Gast
|
7
4
|
|
@@ -9,15 +6,16 @@ module Gast
|
|
9
6
|
|
10
7
|
def self.save(content)
|
11
8
|
@repo = Gast::Repository.new
|
12
|
-
@repo.content = content.to_s
|
9
|
+
@repo.content = CGI.unescapeHTML(content.to_s)
|
13
10
|
@repo.publish
|
14
11
|
@repo.commit!
|
15
12
|
@repo.dir_name
|
16
13
|
end
|
17
14
|
|
18
15
|
def self.update(id, content)
|
16
|
+
return id if content.to_s.chomp == item(id).chomp
|
19
17
|
@repo = Gast::Repository.new(id)
|
20
|
-
@repo.content = content.to_s
|
18
|
+
@repo.content = CGI.unescapeHTML(content.to_s)
|
21
19
|
@repo.publish
|
22
20
|
@repo.commit!
|
23
21
|
@repo.dir_name
|
@@ -34,7 +32,9 @@ module Gast
|
|
34
32
|
end
|
35
33
|
|
36
34
|
def self.item(id)
|
37
|
-
|
35
|
+
CGI.escapeHTML(
|
36
|
+
File.read(File.expand_path(Gast::PATH + "/#{id}/content"))
|
37
|
+
)
|
38
38
|
end
|
39
39
|
|
40
40
|
def initialize; end
|
data/lib/gast/repository.rb
CHANGED
data/lib/gast/version.rb
CHANGED
data/lib/gast.rb
CHANGED
@@ -1,5 +1,15 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'digest/sha2'
|
2
|
+
require 'sinatra/base'
|
3
|
+
require 'sinatra/reloader'
|
4
|
+
require 'sprockets'
|
5
|
+
require 'sprockets-helpers'
|
6
|
+
require 'gast/memo'
|
7
|
+
require 'gast/app'
|
8
|
+
require 'gast/repository'
|
9
|
+
require 'haml'
|
10
|
+
require 'sass'
|
11
|
+
require 'git'
|
12
|
+
require 'cgi'
|
3
13
|
|
4
14
|
module Gast
|
5
15
|
PATH = '/tmp/gast'
|
data/spec/controller_spec.rb
CHANGED
@@ -14,6 +14,7 @@ describe Gast::App do
|
|
14
14
|
|
15
15
|
let(:hello_world) { "Hello World" }
|
16
16
|
let(:welcome_to_underground) { "Welcome to underground" }
|
17
|
+
let(:inline_html) { "<script>alert('Hello world!');</script>" }
|
17
18
|
let(:view_path) { /.+\/posts\/view\/[a-z0-9]+/ }
|
18
19
|
|
19
20
|
it "should be get index" do
|
@@ -81,4 +82,27 @@ describe Gast::App do
|
|
81
82
|
expect(File.read(repository + '/content')).to eq welcome_to_underground
|
82
83
|
end
|
83
84
|
|
85
|
+
it "should be get not found" do
|
86
|
+
get "/posts/hoge"
|
87
|
+
|
88
|
+
expect(last_response).not_to be_ok
|
89
|
+
expect(last_response.status).to be 404
|
90
|
+
expect(last_response.body).to match(/Not Found/)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should be get content is escaped by HTML" do
|
94
|
+
|
95
|
+
post '/posts/new', { content: inline_html }
|
96
|
+
|
97
|
+
repository = File.expand_path(Dir.glob(repo_dir + '/**').first)
|
98
|
+
|
99
|
+
expect(File.read(repository + '/content')).to eq inline_html
|
100
|
+
|
101
|
+
get "/posts/view/#{repository.split('/').last}"
|
102
|
+
|
103
|
+
expect(last_response).to be_ok
|
104
|
+
expect(last_response.body).to include(CGI.escapeHTML(inline_html))
|
105
|
+
|
106
|
+
end
|
107
|
+
|
84
108
|
end
|
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.2
|
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-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -244,6 +244,7 @@ extra_rdoc_files: []
|
|
244
244
|
files:
|
245
245
|
- ".gitignore"
|
246
246
|
- ".rspec"
|
247
|
+
- ".travis.yml"
|
247
248
|
- Gemfile
|
248
249
|
- Guardfile
|
249
250
|
- LICENSE.txt
|
@@ -254,7 +255,6 @@ files:
|
|
254
255
|
- gast.gemspec
|
255
256
|
- lib/gast.rb
|
256
257
|
- lib/gast/app.rb
|
257
|
-
- lib/gast/assets/stylesheets/application.sass
|
258
258
|
- lib/gast/memo.rb
|
259
259
|
- lib/gast/repository.rb
|
260
260
|
- lib/gast/templates/edit.haml
|
@@ -266,6 +266,7 @@ files:
|
|
266
266
|
- lib/gast/templates/layout.haml
|
267
267
|
- lib/gast/templates/list.haml
|
268
268
|
- lib/gast/templates/navbar.haml
|
269
|
+
- lib/gast/templates/not_found.haml
|
269
270
|
- lib/gast/templates/save.haml
|
270
271
|
- lib/gast/templates/view.haml
|
271
272
|
- lib/gast/version.rb
|
File without changes
|