siuying-gitdocs 0.4.14.md

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 (87) hide show
  1. data/.gitignore +5 -0
  2. data/CHANGELOG +79 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +20 -0
  5. data/README.md +192 -0
  6. data/Rakefile +8 -0
  7. data/bin/gitdocs +5 -0
  8. data/gitdocs.gemspec +41 -0
  9. data/lib/gitdocs/cli.rb +111 -0
  10. data/lib/gitdocs/configuration.rb +79 -0
  11. data/lib/gitdocs/docfile.rb +23 -0
  12. data/lib/gitdocs/manager.rb +96 -0
  13. data/lib/gitdocs/markdown_converter.rb +44 -0
  14. data/lib/gitdocs/markdown_template.rb +20 -0
  15. data/lib/gitdocs/migration/001_create_shares.rb +13 -0
  16. data/lib/gitdocs/migration/002_add_remote_branch.rb +10 -0
  17. data/lib/gitdocs/migration/003_create_configs.rb +11 -0
  18. data/lib/gitdocs/migration/004_add_index_for_path.rb +10 -0
  19. data/lib/gitdocs/migration/005_add_start_web_frontend.rb +9 -0
  20. data/lib/gitdocs/migration/006_add_web_port_to_config.rb +9 -0
  21. data/lib/gitdocs/public/css/app.css +51 -0
  22. data/lib/gitdocs/public/css/bootstrap.css +356 -0
  23. data/lib/gitdocs/public/css/coderay.css +41 -0
  24. data/lib/gitdocs/public/css/tilt.css +82 -0
  25. data/lib/gitdocs/public/img/error.png +0 -0
  26. data/lib/gitdocs/public/img/file.png +0 -0
  27. data/lib/gitdocs/public/img/folder.png +0 -0
  28. data/lib/gitdocs/public/img/git_logo.png +0 -0
  29. data/lib/gitdocs/public/img/info.png +0 -0
  30. data/lib/gitdocs/public/img/ok.png +0 -0
  31. data/lib/gitdocs/public/img/warning.png +0 -0
  32. data/lib/gitdocs/public/js/ace/ace-compat.js +1 -0
  33. data/lib/gitdocs/public/js/ace/ace-uncompressed.js +14202 -0
  34. data/lib/gitdocs/public/js/ace/ace.js +1 -0
  35. data/lib/gitdocs/public/js/ace/keybinding-emacs.js +1 -0
  36. data/lib/gitdocs/public/js/ace/keybinding-vim.js +1 -0
  37. data/lib/gitdocs/public/js/ace/mode-coffee.js +1 -0
  38. data/lib/gitdocs/public/js/ace/mode-css.js +1 -0
  39. data/lib/gitdocs/public/js/ace/mode-html.js +1 -0
  40. data/lib/gitdocs/public/js/ace/mode-javascript.js +1 -0
  41. data/lib/gitdocs/public/js/ace/mode-json.js +1 -0
  42. data/lib/gitdocs/public/js/ace/mode-lua.js +1 -0
  43. data/lib/gitdocs/public/js/ace/mode-markdown.js +1 -0
  44. data/lib/gitdocs/public/js/ace/mode-php.js +1 -0
  45. data/lib/gitdocs/public/js/ace/mode-python.js +1 -0
  46. data/lib/gitdocs/public/js/ace/mode-ruby.js +1 -0
  47. data/lib/gitdocs/public/js/ace/mode-scala.js +1 -0
  48. data/lib/gitdocs/public/js/ace/mode-scss.js +1 -0
  49. data/lib/gitdocs/public/js/ace/mode-sql.js +1 -0
  50. data/lib/gitdocs/public/js/ace/mode-svg.js +1 -0
  51. data/lib/gitdocs/public/js/ace/mode-textile.js +1 -0
  52. data/lib/gitdocs/public/js/ace/mode-xml.js +1 -0
  53. data/lib/gitdocs/public/js/ace/theme-tomorrow.js +1 -0
  54. data/lib/gitdocs/public/js/ace/theme-tomorrow_night.js +1 -0
  55. data/lib/gitdocs/public/js/ace/theme-tomorrow_night_blue.js +1 -0
  56. data/lib/gitdocs/public/js/ace/theme-twilight.js +1 -0
  57. data/lib/gitdocs/public/js/ace/theme-vibrant_ink.js +1 -0
  58. data/lib/gitdocs/public/js/ace/worker-coffee.js +7041 -0
  59. data/lib/gitdocs/public/js/ace/worker-css.js +9525 -0
  60. data/lib/gitdocs/public/js/ace/worker-javascript.js +9739 -0
  61. data/lib/gitdocs/public/js/app.js +107 -0
  62. data/lib/gitdocs/public/js/bootstrap-alerts.js +113 -0
  63. data/lib/gitdocs/public/js/edit.js +30 -0
  64. data/lib/gitdocs/public/js/jquery.js +4 -0
  65. data/lib/gitdocs/public/js/jquery.tablesorter.js +4 -0
  66. data/lib/gitdocs/public/js/search.js +13 -0
  67. data/lib/gitdocs/public/js/settings.js +25 -0
  68. data/lib/gitdocs/public/js/util.js +145 -0
  69. data/lib/gitdocs/runner.rb +259 -0
  70. data/lib/gitdocs/server.rb +154 -0
  71. data/lib/gitdocs/version.rb +3 -0
  72. data/lib/gitdocs/views/_ace_scripts.erb +8 -0
  73. data/lib/gitdocs/views/_header.haml +14 -0
  74. data/lib/gitdocs/views/app.haml +40 -0
  75. data/lib/gitdocs/views/dir.haml +43 -0
  76. data/lib/gitdocs/views/edit.haml +15 -0
  77. data/lib/gitdocs/views/file.haml +8 -0
  78. data/lib/gitdocs/views/home.haml +10 -0
  79. data/lib/gitdocs/views/revisions.haml +28 -0
  80. data/lib/gitdocs/views/search.haml +16 -0
  81. data/lib/gitdocs/views/settings.haml +55 -0
  82. data/lib/gitdocs.rb +37 -0
  83. data/lib/img/icon.png +0 -0
  84. data/test/configuration_test.rb +39 -0
  85. data/test/runner_test.rb +25 -0
  86. data/test/test_helper.rb +54 -0
  87. metadata +370 -0
@@ -0,0 +1,15 @@
1
+ - @title = root
2
+
3
+ = partial("header", :locals => { :parent => parent, :file => true, :idx => idx })
4
+
5
+ %form{ :class => "edit", :action => "/#{idx}#{request.path_info}?mode=save", :method => "post", :style => "display:none;" }
6
+ #editor
7
+ %textarea{ :id => 'data', :name => "data" }= preserve contents
8
+ .clearfix
9
+ %textarea{ :id => 'message', :name => 'message', :class => 'span16', :placeholder => 'Optional commit message.' }
10
+ %input{ :type => 'submit', :value => "Save", :class => "btn primary" }
11
+ %a{ :href => "/#{idx}#{request.path_info}", :class => "btn secondary" } Cancel
12
+ %input{ :type => 'hidden', :class => 'filename', :value => request.path_info }
13
+
14
+ = partial("ace_scripts")
15
+
@@ -0,0 +1,8 @@
1
+ - @title = root
2
+ - @css = pygments_css
3
+
4
+ = partial("header", :locals => { :parent => parent, :file => true, :idx => idx })
5
+
6
+ .contents
7
+ = preserve contents
8
+
@@ -0,0 +1,10 @@
1
+ - @title = "Pick a Share"
2
+
3
+ %p Select a share to browse:
4
+
5
+ %table
6
+ - conf.shares.each_with_index do |share, idx|
7
+ %tr
8
+ %td
9
+ %a{ :href => "/#{idx}" }
10
+ = share.path
@@ -0,0 +1,28 @@
1
+ - @title = root
2
+
3
+ = partial("header", :locals => { :parent => parent, :file => true, :idx => idx })
4
+
5
+ - if revisions && revisions.any?
6
+ %table.condensed-table.zebra-striped
7
+ %thead
8
+ %tr
9
+ %th Commit
10
+ %th Subject
11
+ %th Author
12
+ %th Committed
13
+ %th Revert
14
+
15
+ %tbody
16
+ - revisions.each_with_index do |r, i|
17
+ %tr
18
+ %td.commit
19
+ %a{ :href => "?revision=#{r[:commit]}" }
20
+ = r[:commit]
21
+ %td.subject= r[:subject]
22
+ %td.author= r[:author]
23
+ %td.date.reldate= r[:date]
24
+ %td.revert
25
+ %a{ :href => "?mode=revert&revision=#{r[:commit]}", :onclick => "javascript:return confirm('Are you sure?')" }
26
+ = r[:commit]
27
+ - if revisions.empty?
28
+ %p No revisions for this file could be found.
@@ -0,0 +1,16 @@
1
+ - @title = "Matches for #{request.params['q'].inspect}"
2
+ %script{ :src => "/js/search.js", :type => "text/javascript", :charset => "utf-8" }
3
+
4
+ .results{ "data-query" => request.params['q'] }
5
+ -if results.empty?
6
+ %h2 No results
7
+ -else
8
+ - results.each do |repo, search_results|
9
+ %h2= repo.name
10
+ %dl
11
+ - search_results.each do |res|
12
+ %dt
13
+ %a{:href => "/#{repo.index}/#{res.file}"}
14
+ = "/#{res.file}"
15
+ %dd
16
+ = res.context
@@ -0,0 +1,55 @@
1
+ - @title = "Settings"
2
+ %script{ :src => "/js/settings.js", :type => "text/javascript", :charset => "utf-8" }
3
+
4
+ %form#settings{:method => 'POST', :action => '/settings'}
5
+ %h2 Gitdocs
6
+ #config.field.config
7
+ %dl
8
+ %dt Web Frontend Port
9
+ %dd
10
+ %input{:type =>'input', :name=>"config[web_frontend_port]", :value => conf.global.web_frontend_port }
11
+ %p
12
+ %input{:type =>'hidden', :value => '0', :name=>"config[load_browser_on_startup]"}
13
+ %input{:type =>'checkbox', :value => '1', :name=>"config[load_browser_on_startup]", :checked => conf.global.load_browser_on_startup ? 'checked' : nil}
14
+ %span Open browser on startup?
15
+
16
+ %h2 Shares
17
+ - conf.shares.each_with_index do |share, idx|
18
+ %div{:id => "share-#{idx}", :class => "share #{idx % 2 == 0 ? 'even' : 'odd'}"}
19
+ %dl
20
+ %dt Path
21
+ %dd
22
+ %input{:name=>"share[#{idx}][path]", :value => share.path, :class => "path" }
23
+ %dl
24
+ %dt Polling interval
25
+ %dd
26
+ %input{:name=>"share[#{idx}][polling_interval]", :value => share.polling_interval}
27
+
28
+ - if share.available_remotes
29
+ %dl
30
+ %dt Remote
31
+ %dd
32
+ %select{:name=>"share[#{idx}][remote_branch]"}
33
+ - share.available_remotes.each do |remote|
34
+ %option{:value => remote, :selected => remote == "#{share.remote_name}/#{share.branch_name}" ? 'selected' : nil}
35
+ = remote
36
+ - else
37
+
38
+ %dl
39
+ %dt Remote
40
+ %dd
41
+ %input{:name=>"share[#{idx}][remote_name]", :value => share.remote_name}
42
+ %dl
43
+ %dt Branch
44
+ %dd
45
+ %input{:name=>"share[#{idx}][branch_name]", :value => share.branch_name}
46
+ .notify.field
47
+ %input{:type =>'hidden', :value => '0', :name=>"share[#{idx}][notification]"}
48
+ %input{:type =>'checkbox', :value => '1', :name=>"share[#{idx}][notification]", :checked => share.notification ? 'checked' : nil}
49
+ %span Notifications?
50
+ .delete
51
+ %a{ :href => "/shares/#{share.id}", :class => "btn remove_share danger", :"data-method" => "delete"}
52
+ Delete
53
+
54
+ %input{:value => 'Save', :type => 'submit', :class => "btn primary" }
55
+ %a{ :class => "btn secondary new-share", :href => "/shares", :"data-method" => "post" } Add Share
data/lib/gitdocs.rb ADDED
@@ -0,0 +1,37 @@
1
+ require 'thread'
2
+ require 'yajl'
3
+ require 'dante'
4
+ require 'socket'
5
+ require 'shell_tools'
6
+ require 'guard'
7
+
8
+ require 'gitdocs/markdown_converter'
9
+ require 'gitdocs/markdown_template'
10
+ require 'gitdocs/version'
11
+ require 'gitdocs/configuration'
12
+ require 'gitdocs/runner'
13
+ require 'gitdocs/server'
14
+ require 'gitdocs/cli'
15
+ require 'gitdocs/manager'
16
+ require 'gitdocs/docfile'
17
+
18
+ module Gitdocs
19
+
20
+ DEBUG = ENV['DEBUG']
21
+
22
+ # Gitdocs.start(:config_root => "...", :debug => true)
23
+ def self.start(options={}, &blk)
24
+ options = { :debug => DEBUG, :config_root => nil }.merge(options)
25
+ @manager.stop if @manager
26
+ @manager = Manager.new(options[:config_root], options[:debug], &blk)
27
+ @manager.start(options[:port])
28
+ end
29
+
30
+ def self.restart
31
+ @manager.restart
32
+ end
33
+
34
+ def self.stop
35
+ @manager.stop
36
+ end
37
+ end
data/lib/img/icon.png ADDED
Binary file
@@ -0,0 +1,39 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ describe "gitdocs configuration" do
4
+ before do
5
+ ShellTools.capture { @config = Gitdocs::Configuration.new("/tmp/gitdocs") }
6
+ end
7
+
8
+ it "has sensible default config root" do
9
+ assert_equal "/tmp/gitdocs", @config.config_root
10
+ end
11
+
12
+ it "can retrieve empty shares" do
13
+ assert_equal [], @config.shares
14
+ end
15
+
16
+ it "can have a path added" do
17
+ @config.add_path('/my/../my/path') # normalized test
18
+ assert_equal "/my/path", @config.shares.first.path
19
+ assert_equal 15.0, @config.shares.first.polling_interval
20
+ end
21
+
22
+ it "can have a path removed" do
23
+ @config.add_path('/my/path')
24
+ @config.add_path('/my/path/2')
25
+ @config.remove_path('/my/../my/path/2') # normalized test
26
+ assert_equal ["/my/path"], @config.shares.map(&:path)
27
+ end
28
+
29
+ it "can clear paths" do
30
+ @config.add_path('/my/path')
31
+ @config.add_path('/my/path/2')
32
+ @config.clear
33
+ assert_equal [], @config.shares.map(&:path)
34
+ end
35
+
36
+ it "can normalize paths" do
37
+ assert_equal File.expand_path("../test_helper.rb", Dir.pwd), @config.normalize_path("../test_helper.rb")
38
+ end
39
+ end
@@ -0,0 +1,25 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ describe "gitdocs runner" do
4
+ it "should clone files" do
5
+ with_clones(3) do |clone1, clone2, clone3|
6
+ File.open(File.join(clone1, "test"), 'w') { |f| f << "testing" }
7
+ sleep 3
8
+ assert_equal "testing", File.read(File.join(clone1, "test"))
9
+ assert_equal "testing", File.read(File.join(clone2, "test"))
10
+ assert_equal "testing", File.read(File.join(clone3, "test"))
11
+ end
12
+ end
13
+
14
+ it "should resolve conflicts files" do
15
+ with_clones(3) do |clone1, clone2, clone3|
16
+ File.open(File.join(clone1, "test.txt"), 'w') { |f| f << "testing" }
17
+ sleep 3
18
+ File.open(File.join(clone1, "test.txt"), 'w') { |f| f << "testing\n1" }
19
+ File.open(File.join(clone2, "test.txt"), 'w') { |f| f << "testing\n2" }
20
+ sleep 3
21
+ assert_includes 2..3, Dir[File.join(clone2, "*.txt")].to_a.size
22
+ assert_includes 2..3, Dir[File.join(clone3, "*.txt")].to_a.size
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,54 @@
1
+ ENV["TEST"] = 'true'
2
+ require 'rubygems'
3
+ require 'minitest/autorun'
4
+ $:.unshift File.expand_path("../../lib")
5
+ require 'gitdocs'
6
+ require 'fakeweb'
7
+ require 'mocha'
8
+
9
+ FakeWeb.allow_net_connect = false
10
+
11
+ ## Kernel Extensions
12
+ require 'stringio'
13
+
14
+ class MiniTest::Spec
15
+ def with_clones(count = 3)
16
+ FileUtils.rm_rf("/tmp/gitdocs")
17
+ master_path = "/tmp/gitdocs/master"
18
+ FileUtils.mkdir_p("/tmp/gitdocs/master")
19
+ ShellTools.capture { `git init /tmp/gitdocs/master --bare` }
20
+ sub_paths = count.times.map do |c|
21
+ ShellTools.capture { `cd /tmp/gitdocs && git clone file://#{master_path} #{c}` }
22
+ conf_path = "/tmp/gitdocs/config/#{c}"
23
+ FileUtils.mkdir_p(conf_path)
24
+ ["/tmp/gitdocs/#{c}", conf_path]
25
+ end
26
+ pids = sub_paths.map do |(path, conf_path)|
27
+ fork do
28
+ unless ENV['DEBUG']
29
+ STDOUT.reopen(File.open("/dev/null", 'w'))
30
+ STDERR.reopen(File.open("/dev/null", 'w'))
31
+ end
32
+ begin
33
+ puts "RUNNING!"
34
+ Gitdocs.start(:config_path => conf_path) do |conf|
35
+ conf.global.update_attributes(:load_browser_on_startup => false, :start_web_frontend => false)
36
+ conf.add_path(path, :polling_interval => 0.1, :notification => false)
37
+ end
38
+ rescue
39
+ puts "RATHER BAD ~~~~~"
40
+ puts $!.message
41
+ puts $!.backtrace.join("\n ")
42
+ end
43
+ end
44
+ end
45
+ begin
46
+ sleep 1
47
+ yield sub_paths.map{|sp| sp.first}
48
+ ensure
49
+ pids.each { |pid| Process.kill("INT", pid) rescue nil }
50
+ end
51
+ ensure
52
+ FileUtils.rm_rf("/tmp/gitdocs") unless ENV['DEBUG']
53
+ end
54
+ end
metadata ADDED
@@ -0,0 +1,370 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: siuying-gitdocs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.14.md
5
+ prerelease: 7
6
+ platform: ruby
7
+ authors:
8
+ - Josh Hull
9
+ - Nathan Esquenazi
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-01-27 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: joshbuddy-guard
17
+ requirement: &70209005243520 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.10.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70209005243520
26
+ - !ruby/object:Gem::Dependency
27
+ name: thin
28
+ requirement: &70209005243020 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *70209005243020
37
+ - !ruby/object:Gem::Dependency
38
+ name: renee
39
+ requirement: &70209005242560 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 0.3.7
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *70209005242560
48
+ - !ruby/object:Gem::Dependency
49
+ name: redcarpet
50
+ requirement: &70209005242100 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 2.0.0
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *70209005242100
59
+ - !ruby/object:Gem::Dependency
60
+ name: thor
61
+ requirement: &70209005241640 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 0.14.6
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *70209005241640
70
+ - !ruby/object:Gem::Dependency
71
+ name: coderay
72
+ requirement: &70209005241180 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.4
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: *70209005241180
81
+ - !ruby/object:Gem::Dependency
82
+ name: dante
83
+ requirement: &70209005240720 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 0.1.2
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: *70209005240720
92
+ - !ruby/object:Gem::Dependency
93
+ name: growl
94
+ requirement: &70209005240260 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: 1.0.3
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: *70209005240260
103
+ - !ruby/object:Gem::Dependency
104
+ name: yajl-ruby
105
+ requirement: &70209005239800 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.1.0
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: *70209005239800
114
+ - !ruby/object:Gem::Dependency
115
+ name: haml
116
+ requirement: &70209005239340 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ~>
120
+ - !ruby/object:Gem::Version
121
+ version: 3.1.4
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: *70209005239340
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: &70209005238880 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ~>
131
+ - !ruby/object:Gem::Version
132
+ version: 1.3.4
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: *70209005238880
136
+ - !ruby/object:Gem::Dependency
137
+ name: activerecord
138
+ requirement: &70208992173860 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ~>
142
+ - !ruby/object:Gem::Version
143
+ version: 3.1.0
144
+ type: :runtime
145
+ prerelease: false
146
+ version_requirements: *70208992173860
147
+ - !ruby/object:Gem::Dependency
148
+ name: grit
149
+ requirement: &70208992168960 !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ~>
153
+ - !ruby/object:Gem::Version
154
+ version: 2.4.1
155
+ type: :runtime
156
+ prerelease: false
157
+ version_requirements: *70208992168960
158
+ - !ruby/object:Gem::Dependency
159
+ name: shell_tools
160
+ requirement: &70208992166400 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.1.0
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: *70208992166400
169
+ - !ruby/object:Gem::Dependency
170
+ name: mimetype-fu
171
+ requirement: &70208999966100 !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ~>
175
+ - !ruby/object:Gem::Version
176
+ version: 0.1.2
177
+ type: :runtime
178
+ prerelease: false
179
+ version_requirements: *70208999966100
180
+ - !ruby/object:Gem::Dependency
181
+ name: eventmachine
182
+ requirement: &70208999965640 !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: 1.0.0.beta.3
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: *70208999965640
191
+ - !ruby/object:Gem::Dependency
192
+ name: pygments.rb
193
+ requirement: &70208999965260 !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ type: :runtime
200
+ prerelease: false
201
+ version_requirements: *70208999965260
202
+ - !ruby/object:Gem::Dependency
203
+ name: minitest
204
+ requirement: &70208999964720 !ruby/object:Gem::Requirement
205
+ none: false
206
+ requirements:
207
+ - - ~>
208
+ - !ruby/object:Gem::Version
209
+ version: 2.6.1
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: *70208999964720
213
+ - !ruby/object:Gem::Dependency
214
+ name: rake
215
+ requirement: &70208999964300 !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - ! '>='
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: *70208999964300
224
+ - !ruby/object:Gem::Dependency
225
+ name: mocha
226
+ requirement: &70208999963840 !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: *70208999963840
235
+ - !ruby/object:Gem::Dependency
236
+ name: fakeweb
237
+ requirement: &70208999963420 !ruby/object:Gem::Requirement
238
+ none: false
239
+ requirements:
240
+ - - ! '>='
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: *70208999963420
246
+ description: Open-source Dropbox using Ruby and Git (my fork with github favoured
247
+ markdown support).
248
+ email:
249
+ - joshbuddy@gmail.com
250
+ - nesquena@gmail.com
251
+ executables:
252
+ - gitdocs
253
+ extensions: []
254
+ extra_rdoc_files: []
255
+ files:
256
+ - .gitignore
257
+ - CHANGELOG
258
+ - Gemfile
259
+ - LICENSE
260
+ - README.md
261
+ - Rakefile
262
+ - bin/gitdocs
263
+ - gitdocs.gemspec
264
+ - lib/gitdocs.rb
265
+ - lib/gitdocs/cli.rb
266
+ - lib/gitdocs/configuration.rb
267
+ - lib/gitdocs/docfile.rb
268
+ - lib/gitdocs/manager.rb
269
+ - lib/gitdocs/markdown_converter.rb
270
+ - lib/gitdocs/markdown_template.rb
271
+ - lib/gitdocs/migration/001_create_shares.rb
272
+ - lib/gitdocs/migration/002_add_remote_branch.rb
273
+ - lib/gitdocs/migration/003_create_configs.rb
274
+ - lib/gitdocs/migration/004_add_index_for_path.rb
275
+ - lib/gitdocs/migration/005_add_start_web_frontend.rb
276
+ - lib/gitdocs/migration/006_add_web_port_to_config.rb
277
+ - lib/gitdocs/public/css/app.css
278
+ - lib/gitdocs/public/css/bootstrap.css
279
+ - lib/gitdocs/public/css/coderay.css
280
+ - lib/gitdocs/public/css/tilt.css
281
+ - lib/gitdocs/public/img/error.png
282
+ - lib/gitdocs/public/img/file.png
283
+ - lib/gitdocs/public/img/folder.png
284
+ - lib/gitdocs/public/img/git_logo.png
285
+ - lib/gitdocs/public/img/info.png
286
+ - lib/gitdocs/public/img/ok.png
287
+ - lib/gitdocs/public/img/warning.png
288
+ - lib/gitdocs/public/js/ace/ace-compat.js
289
+ - lib/gitdocs/public/js/ace/ace-uncompressed.js
290
+ - lib/gitdocs/public/js/ace/ace.js
291
+ - lib/gitdocs/public/js/ace/keybinding-emacs.js
292
+ - lib/gitdocs/public/js/ace/keybinding-vim.js
293
+ - lib/gitdocs/public/js/ace/mode-coffee.js
294
+ - lib/gitdocs/public/js/ace/mode-css.js
295
+ - lib/gitdocs/public/js/ace/mode-html.js
296
+ - lib/gitdocs/public/js/ace/mode-javascript.js
297
+ - lib/gitdocs/public/js/ace/mode-json.js
298
+ - lib/gitdocs/public/js/ace/mode-lua.js
299
+ - lib/gitdocs/public/js/ace/mode-markdown.js
300
+ - lib/gitdocs/public/js/ace/mode-php.js
301
+ - lib/gitdocs/public/js/ace/mode-python.js
302
+ - lib/gitdocs/public/js/ace/mode-ruby.js
303
+ - lib/gitdocs/public/js/ace/mode-scala.js
304
+ - lib/gitdocs/public/js/ace/mode-scss.js
305
+ - lib/gitdocs/public/js/ace/mode-sql.js
306
+ - lib/gitdocs/public/js/ace/mode-svg.js
307
+ - lib/gitdocs/public/js/ace/mode-textile.js
308
+ - lib/gitdocs/public/js/ace/mode-xml.js
309
+ - lib/gitdocs/public/js/ace/theme-tomorrow.js
310
+ - lib/gitdocs/public/js/ace/theme-tomorrow_night.js
311
+ - lib/gitdocs/public/js/ace/theme-tomorrow_night_blue.js
312
+ - lib/gitdocs/public/js/ace/theme-twilight.js
313
+ - lib/gitdocs/public/js/ace/theme-vibrant_ink.js
314
+ - lib/gitdocs/public/js/ace/worker-coffee.js
315
+ - lib/gitdocs/public/js/ace/worker-css.js
316
+ - lib/gitdocs/public/js/ace/worker-javascript.js
317
+ - lib/gitdocs/public/js/app.js
318
+ - lib/gitdocs/public/js/bootstrap-alerts.js
319
+ - lib/gitdocs/public/js/edit.js
320
+ - lib/gitdocs/public/js/jquery.js
321
+ - lib/gitdocs/public/js/jquery.tablesorter.js
322
+ - lib/gitdocs/public/js/search.js
323
+ - lib/gitdocs/public/js/settings.js
324
+ - lib/gitdocs/public/js/util.js
325
+ - lib/gitdocs/runner.rb
326
+ - lib/gitdocs/server.rb
327
+ - lib/gitdocs/version.rb
328
+ - lib/gitdocs/views/_ace_scripts.erb
329
+ - lib/gitdocs/views/_header.haml
330
+ - lib/gitdocs/views/app.haml
331
+ - lib/gitdocs/views/dir.haml
332
+ - lib/gitdocs/views/edit.haml
333
+ - lib/gitdocs/views/file.haml
334
+ - lib/gitdocs/views/home.haml
335
+ - lib/gitdocs/views/revisions.haml
336
+ - lib/gitdocs/views/search.haml
337
+ - lib/gitdocs/views/settings.haml
338
+ - lib/img/icon.png
339
+ - test/configuration_test.rb
340
+ - test/runner_test.rb
341
+ - test/test_helper.rb
342
+ homepage: https://github.com/siuying/gitdocs
343
+ licenses: []
344
+ post_install_message:
345
+ rdoc_options: []
346
+ require_paths:
347
+ - lib
348
+ required_ruby_version: !ruby/object:Gem::Requirement
349
+ none: false
350
+ requirements:
351
+ - - ! '>='
352
+ - !ruby/object:Gem::Version
353
+ version: '0'
354
+ required_rubygems_version: !ruby/object:Gem::Requirement
355
+ none: false
356
+ requirements:
357
+ - - ! '>'
358
+ - !ruby/object:Gem::Version
359
+ version: 1.3.1
360
+ requirements: []
361
+ rubyforge_project:
362
+ rubygems_version: 1.8.15
363
+ signing_key:
364
+ specification_version: 3
365
+ summary: Open-source Dropbox using Ruby and Git (my fork with github favoured markdown
366
+ support)
367
+ test_files:
368
+ - test/configuration_test.rb
369
+ - test/runner_test.rb
370
+ - test/test_helper.rb