mdview 0.2.0 → 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.
data/README.md CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
  File : README.md
4
4
  Maintainer : Felix C. Stegerman <flx@obfusk.net>
5
- Date : 2013-10-24
5
+ Date : 2013-10-25
6
6
 
7
7
  Copyright : Copyright (C) 2013 Felix C. Stegerman
8
- Version : v0.2.0
8
+ Version : v0.3.0
9
9
 
10
10
  []: }}}1
11
11
 
12
+ [![Gem Version](https://badge.fury.io/rb/mdview.png)](http://badge.fury.io/rb/mdview)
13
+
12
14
  ## Description
13
15
  []: {{{1
14
16
 
@@ -2,13 +2,15 @@
2
2
  #
3
3
  # File : mdview/sinatra.rb
4
4
  # Maintainer : Felix C. Stegerman <flx@obfusk.net>
5
- # Date : 2013-10-24
5
+ # Date : 2013-10-25
6
6
  #
7
7
  # Copyright : Copyright (C) 2013 Felix C. Stegerman
8
8
  # Licence : GPLv2
9
9
  #
10
10
  # -- ; }}}1
11
11
 
12
+ require 'pathname'
13
+
12
14
  require 'haml'
13
15
  require 'sinatra/base'
14
16
 
@@ -22,11 +24,18 @@ class MDView::Sinatra < Sinatra::Base
22
24
  File.directory?(f) ? "/dir=#{f}" : "/file=#{f}"
23
25
  end
24
26
 
27
+ def subpath_of_pwd?(f)
28
+ c = Pathname.pwd.realpath.to_s
29
+ x = Pathname.new(f).realpath.to_s
30
+ "#{x}/".start_with? "#{c}/"
31
+ end
32
+
25
33
  get '/' do
26
34
  redirect "/dir=#{Dir.pwd}"
27
35
  end
28
36
 
29
37
  get '/dir=*' do |dir|
38
+ return 403 unless subpath_of_pwd? dir
30
39
  @title = dir
31
40
  @up = File.dirname dir
32
41
  @files = Dir["#{dir}/*"].select do |x|
@@ -36,8 +45,10 @@ class MDView::Sinatra < Sinatra::Base
36
45
  end
37
46
 
38
47
  get '/file=*.md' do |file|
39
- @title = file
40
- @html = MDView.md File.read "#{file}.md"
48
+ f = "#{file}.md"
49
+ return 403 unless subpath_of_pwd? f
50
+ @title = f
51
+ @html = MDView.md File.read f
41
52
  haml :md
42
53
  end
43
54
 
@@ -46,6 +57,10 @@ class MDView::Sinatra < Sinatra::Base
46
57
  MDView.css
47
58
  end
48
59
 
60
+ error 403 do
61
+ 'Access forbidden'
62
+ end
63
+
49
64
  end
50
65
 
51
66
  # vim: set tw=70 sw=2 sts=2 et fdm=marker :
@@ -1,4 +1,4 @@
1
1
  module MDView
2
- VERSION = '0.2.0'
3
- DATE = '2013-10-24'
2
+ VERSION = '0.3.0'
3
+ DATE = '2013-10-25'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-24 00:00:00.000000000 Z
12
+ date: 2013-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml
16
- requirement: &20734760 !ruby/object:Gem::Requirement
16
+ requirement: &12687660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20734760
24
+ version_requirements: *12687660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: pygments.rb
27
- requirement: &20734100 !ruby/object:Gem::Requirement
27
+ requirement: &12682780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *20734100
35
+ version_requirements: *12682780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: redcarpet
38
- requirement: &20733480 !ruby/object:Gem::Requirement
38
+ requirement: &12680580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *20733480
46
+ version_requirements: *12680580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sinatra
49
- requirement: &20732860 !ruby/object:Gem::Requirement
49
+ requirement: &12678080 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *20732860
57
+ version_requirements: *12678080
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &20732220 !ruby/object:Gem::Requirement
60
+ requirement: &12675600 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *20732220
68
+ version_requirements: *12675600
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &20731800 !ruby/object:Gem::Requirement
71
+ requirement: &12660920 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *20731800
79
+ version_requirements: *12660920
80
80
  description: ! 'markdown preview
81
81
 
82
82