veda 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e04be53378e0b8539793c26e62127201dd51bb4f
4
+ data.tar.gz: 289a7989e1a727b1aaae77374c0991e2f0a6c123
5
+ SHA512:
6
+ metadata.gz: 5572792b0220c831e9ab008f7734cd83a5b0bcadb1bca3fe0175c2587e41f2835e48da95788efca4b928ae147879698818605792283de0ad86a25eff694548b7
7
+ data.tar.gz: d631f6aa80433988b016a5675c85ab2b9f03030b73677087e7154dffd7d0158c27dfde1a3547f745a10b3d6b6f8fc72996acbc6f4698995bba1768818c9dee16
data/README.md ADDED
@@ -0,0 +1,89 @@
1
+ # Veda
2
+
3
+ Collaborate documentation and WIKI
4
+
5
+ ## What is Veda?
6
+
7
+ Veda is Git based documentation system, it aims to simplify writing documentation and text using
8
+ the same methodologies as writing code. Everyone can fork and contribute documentation.
9
+
10
+ ## Getting Veda
11
+
12
+ Veda is still in prerelease. But you can get a sneak peek by running:
13
+
14
+ ``` ruby
15
+ gem install veda --pre
16
+ ```
17
+
18
+ In case you use RBENV type ``rbenv rehash`` to make the ``veda`` command available.
19
+ Then go in to a directory with markdown and type:
20
+
21
+ ``` shell
22
+ veda
23
+ ```
24
+
25
+ to start the veda server. You can then browse to ``http://localhost:4567`` to read the
26
+ documentation.
27
+
28
+ ## Installing Veda documentation
29
+
30
+ Veda makes it easy to download and view documentation written on github.
31
+
32
+ ```
33
+ veda install emilebosch/guides
34
+ ```
35
+
36
+ It will clone the repo from github, install it in ``~/.veda/library/emilebosch/guides``.
37
+
38
+ To view a list of locally installed documentation type:
39
+
40
+ ```
41
+ veda list
42
+ ```
43
+
44
+ ## Mounting Veda in Rails apps
45
+
46
+ You can mount Veda also in your rails app like any other rack app. This allows you
47
+ to expose your documentation fast and easy. Just put this baby in your ``routes.rb``
48
+
49
+ ``` ruby
50
+ mount Veda::Server.new("my-haikus", Rails.root) => "/haiku"
51
+ ```
52
+
53
+ ## Extending Veda
54
+
55
+ You can extend veda by placing a ``Vedafile`` in a directory. This will be loaded runtime.
56
+
57
+ You can then freedompatch Veda into awesomeness.
58
+
59
+ ### Providing your own views
60
+
61
+ For instance, u can provide your own views, u can just patch the ``Veda::Server``.
62
+
63
+ ``` ruby
64
+ class Veda::Server
65
+ set :root, File.dirname(__FILE__)
66
+ end
67
+ ```
68
+
69
+ ## Hacking on Veda
70
+
71
+ Yes, please help out and make Veda awesome! I need your mad skills to take this further.
72
+
73
+ Fork, clone and cd this repo:
74
+
75
+ ```
76
+ git@github.com:emilebosch/veda.git
77
+ cd veda
78
+ ```
79
+
80
+ Now, because Veda, relies on git, there is a git repo in a git repo. (GITCEPTION! OMG!) Anyway,
81
+ since, i haven't found an elegant way to do this yet (Please PR one!) You need
82
+ to run ``rake unzip`` to unzip the test repo.
83
+
84
+ So in short, to test:
85
+
86
+ ```
87
+ rake unzip
88
+ rake
89
+ ```
data/bin/veda ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'veda'
3
+ Veda::Cli.start(ARGV)
data/config.ru ADDED
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ Bundler.setup
4
+ require 'veda'
5
+
6
+ run Veda::Library.new
data/lib/veda.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'veda/version'
2
+ require 'veda/server'
3
+ require 'veda/cli'
4
+ require 'veda/documentation'
5
+ require 'veda/scm'
6
+
7
+ eval(File.read "Vedafile") if File.exists? "Vedafile"
data/lib/veda/cli.rb ADDED
@@ -0,0 +1,80 @@
1
+ require 'thor'
2
+
3
+ module Veda
4
+ class Cli < Thor
5
+ default_task :start
6
+
7
+ desc "start", "Start the veda webserver"
8
+ def start
9
+ start_server
10
+ end
11
+
12
+ desc "install [REPO]", "Install and view documentation from github, i.e. `veda install emilebosch/guides`"
13
+ def install(repo)
14
+ path = library_path(repo)
15
+ unless File.exist? path
16
+ `mkdir -p #{path}`
17
+ `git clone git@github.com:#{repo}.git #{path}`
18
+ end
19
+ Dir.chdir(path)
20
+ start_server
21
+ end
22
+
23
+ desc "list","List locally installed vedas"
24
+ def list
25
+ puts "Installed vedas in #{library_path}"
26
+ for path in Dir.glob "#{library_path}*/*"
27
+ base, name = path.split(library_path)
28
+ puts "- #{name}"
29
+ end
30
+ end
31
+
32
+ desc "version", "Shows version information"
33
+ def version
34
+ puts Veda::VERSION
35
+ end
36
+
37
+ desc "update [REPO]", "Update a locally installed veda"
38
+ def update(repo)
39
+ puts `cd #{library_path(repo)} && git pull`
40
+ end
41
+
42
+ desc "library", "Run in veda library mode"
43
+ def library
44
+ start_library
45
+ end
46
+
47
+ desc "powify [NAME]", "Installs veda under Pow (defaults to veda.dev)"
48
+ def powify(domain='veda', force=false)
49
+ abort("Hmm.. pow doesn't seem to be installed. Can't find the directory #{pow_dir}") unless File.exists? pow_dir
50
+
51
+ dir = File.join(pow_dir, domain)
52
+ abort("Link already exists #{dir} -> #{File.readlink(dir)}, use -force=true to relink!") if File.exists? dir unless force
53
+
54
+ FileUtils.rm_f(dir) if force
55
+ FileUtils.ln_s(gem_dir, dir)
56
+ end
57
+
58
+ private
59
+
60
+ def gem_dir
61
+ File.dirname(File.dirname(File.dirname(__FILE__)))
62
+ end
63
+
64
+ def pow_dir
65
+ File.join(Dir.home, ".pow")
66
+ end
67
+
68
+ def start_library
69
+ Veda::Library.run!
70
+ end
71
+
72
+ def start_server
73
+ Veda::Server.run!
74
+ end
75
+
76
+ def library_path(guide=nil)
77
+ path = "#{Dir.home}/.veda/library/#{guide}"
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,38 @@
1
+ require 'yaml'
2
+ require 'hashie'
3
+
4
+ module Veda
5
+ class Documentation
6
+
7
+ def initialize(directory = nil, repo = nil)
8
+ @directory = directory
9
+ @repo = repo
10
+ end
11
+
12
+ def fetch(file)
13
+ path = make_path("#{file}.md")
14
+
15
+ data = { title: file }
16
+ contents = File.read path
17
+ match = contents.match /---(.*?)---(.*)/m
18
+ if match
19
+ data = YAML::load(match[1])
20
+ contents = match[2]
21
+ end
22
+
23
+ pages = contents.split '<!-- break -->'
24
+ scm_file = ScmFile.new @repo, path
25
+
26
+ Hashie::Mash.new(data.merge!(pages: pages, scm_file: scm_file, contents: contents, id: File.basename(file, '.md')))
27
+ end
28
+
29
+ def make_path(file)
30
+ @directory ? "#{@directory}/#{file}" : file
31
+ end
32
+
33
+ def collection
34
+ files = Dir.glob make_path("*.md")
35
+ files.collect { |file| fetch(File.basename(file,'.md')) }
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,124 @@
1
+ .CodeRay pre {
2
+ margin: 0px;
3
+ }
4
+
5
+ span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
6
+ table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
7
+ table.CodeRay td { padding: 2px 4px; vertical-align: top; }
8
+
9
+ .CodeRay .line-numbers {
10
+ background-color: hsl(180,65%,90%);
11
+ color: gray;
12
+ text-align: right;
13
+ -webkit-user-select: none;
14
+ -moz-user-select: none;
15
+ user-select: none;
16
+ }
17
+ .CodeRay .line-numbers a {
18
+ background-color: hsl(180,65%,90%) !important;
19
+ color: gray !important;
20
+ text-decoration: none !important;
21
+ }
22
+ .CodeRay .line-numbers pre {
23
+ word-break: normal;
24
+ }
25
+ .CodeRay .line-numbers a:target { color: blue !important; }
26
+ .CodeRay .line-numbers .highlighted { color: red !important; }
27
+ .CodeRay .line-numbers .highlighted a { color: red !important; }
28
+ .CodeRay span.line-numbers { padding: 0px 4px; }
29
+ .CodeRay .line { display: block; float: left; width: 100%; }
30
+ .CodeRay .code { width: 100%; }
31
+
32
+ .CodeRay .debug { color: white !important; background: blue !important; }
33
+
34
+ .CodeRay .annotation { color:#007 }
35
+ .CodeRay .attribute-name { color:#b48 }
36
+ .CodeRay .attribute-value { color:#700 }
37
+ .CodeRay .binary { color:#549 }
38
+ .CodeRay .binary .char { color:#325 }
39
+ .CodeRay .binary .delimiter { color:#325 }
40
+ .CodeRay .char { color:#D20 }
41
+ .CodeRay .char .content { color:#D20 }
42
+ .CodeRay .char .delimiter { color:#710 }
43
+ .CodeRay .class { color:#B06; }
44
+ .CodeRay .class-variable { color:#369 }
45
+ .CodeRay .color { color:#0A0 }
46
+ .CodeRay .comment { color:#777 }
47
+ .CodeRay .comment .char { color:#444 }
48
+ .CodeRay .comment .delimiter { color:#444 }
49
+ .CodeRay .constant { color:#036; }
50
+ .CodeRay .decorator { color:#B0B }
51
+ .CodeRay .definition { color:#099; }
52
+ .CodeRay .delimiter { color:black }
53
+ .CodeRay .directive { color:#088; }
54
+ .CodeRay .docstring { color:#D42; }
55
+ .CodeRay .doctype { color:#34b }
56
+ .CodeRay .done { text-decoration: line-through; color: gray }
57
+ .CodeRay .entity { color:#800; }
58
+ .CodeRay .error { color:#F00; background-color:#FAA }
59
+ .CodeRay .escape { color:#666 }
60
+ .CodeRay .exception { color:#C00; }
61
+ .CodeRay .float { color:#60E }
62
+ .CodeRay .function { color:#06B; }
63
+ .CodeRay .function .delimiter { color:#024; }
64
+ .CodeRay .global-variable { color:#d70 }
65
+ .CodeRay .hex { color:#02b }
66
+ .CodeRay .id { color:#33D; }
67
+ .CodeRay .include { color:#B44; }
68
+ .CodeRay .inline { background-color: hsla(0,0%,0%,0.07); color: black }
69
+ .CodeRay .inline-delimiter { font-weight: bold; color: #666 }
70
+ .CodeRay .instance-variable { color:#33B }
71
+ .CodeRay .integer { color:#00D }
72
+ .CodeRay .imaginary { color:#f00 }
73
+ .CodeRay .important { color:#D00 }
74
+ .CodeRay .key { color: #606 }
75
+ .CodeRay .key .char { color: #60f }
76
+ .CodeRay .key .delimiter { color: #404 }
77
+ .CodeRay .keyword { color:#080; }
78
+ .CodeRay .label { color:#970; }
79
+ .CodeRay .local-variable { color:#950 }
80
+ .CodeRay .map .content { color:#808 }
81
+ .CodeRay .map .delimiter { color:#40A}
82
+ .CodeRay .map { background-color:hsla(200,100%,50%,0.06); }
83
+ .CodeRay .namespace { color:#707; }
84
+ .CodeRay .octal { color:#40E }
85
+ .CodeRay .operator { }
86
+ .CodeRay .predefined { color:#369; }
87
+ .CodeRay .predefined-constant { color:#069 }
88
+ .CodeRay .predefined-type { color:#0a8; }
89
+ .CodeRay .preprocessor { color:#579 }
90
+ .CodeRay .pseudo-class { color:#00C; }
91
+ .CodeRay .regexp { background-color:hsla(300,100%,50%,0.06); }
92
+ .CodeRay .regexp .content { color:#808 }
93
+ .CodeRay .regexp .delimiter { color:#404 }
94
+ .CodeRay .regexp .modifier { color:#C2C }
95
+ .CodeRay .reserved { color:#080; }
96
+ .CodeRay .shell { background-color:hsla(120,100%,50%,0.06); }
97
+ .CodeRay .shell .content { color:#2B2 }
98
+ .CodeRay .shell .delimiter { color:#161 }
99
+ .CodeRay .string { background-color:hsla(0,100%,50%,0.05); }
100
+ .CodeRay .string .char { color: #b0b }
101
+ .CodeRay .string .content { color: #D20 }
102
+ .CodeRay .string .delimiter { color: #710 }
103
+ .CodeRay .string .modifier { color: #E40 }
104
+ .CodeRay .symbol { color:#A60 }
105
+ .CodeRay .symbol .content { color:#A60 }
106
+ .CodeRay .symbol .delimiter { color:#740 }
107
+ .CodeRay .tag { color:#070; }
108
+ .CodeRay .type { color:#339; }
109
+ .CodeRay .value { color: #088 }
110
+ .CodeRay .variable { color:#037 }
111
+
112
+ .CodeRay .insert { background: hsla(120,100%,50%,0.12) }
113
+ .CodeRay .delete { background: hsla(0,100%,50%,0.12) }
114
+ .CodeRay .change { color: #bbf; background: #007 }
115
+ .CodeRay .head { color: #f8f; background: #505 }
116
+ .CodeRay .head .filename { color: white; }
117
+
118
+ .CodeRay .delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; }
119
+ .CodeRay .insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }
120
+
121
+ .CodeRay .insert .insert { color: #0c0; background:transparent; }
122
+ .CodeRay .delete .delete { color: #c00; background:transparent; }
123
+ .CodeRay .change .change { color: #88f }
124
+ .CodeRay .head .head { color: #f4f }
@@ -0,0 +1,134 @@
1
+ .last-commit {
2
+ background-color:#efefef;
3
+ padding:10px;
4
+ border-radius:3px;
5
+ margin:10px 0px;
6
+ }
7
+
8
+ body {
9
+ padding:20px;
10
+ font-family:helvetica;
11
+ font-size:13px;
12
+ background-color:#f9f8f6;
13
+ line-height: 1.6
14
+ }
15
+
16
+ .nav {
17
+ border-bottom:1px solid #efefef;
18
+ padding-bottom:15px;
19
+ margin-bottom:10px;
20
+ }
21
+
22
+ a {
23
+ color:#a0a0a0;
24
+ }
25
+
26
+ .authors {
27
+ margin:0px;
28
+ padding:0px;
29
+ margin-top:-10px;
30
+ list-style:none;
31
+ margin-bottom:5px;
32
+ }
33
+
34
+ .authors li {
35
+ display:inline-block;
36
+ margin-left:5px;
37
+ }
38
+
39
+ .authors img {
40
+ border-radius:3px;
41
+ height:30px;
42
+ width:30px;
43
+ }
44
+
45
+ .page {
46
+ width:900px; margin:0 auto;
47
+ border:1px solid #efefef;
48
+ padding:20px;
49
+ background-color:white;
50
+ border-radius:3px;
51
+ }
52
+
53
+ h1 {
54
+ margin-top:0px;
55
+ }
56
+
57
+ pre>code {
58
+ padding:10px;
59
+ display:block;
60
+ border:1px solid rgb(255,233,186);
61
+ border-radius:3px;
62
+ background-color:#fef9ec;
63
+ }
64
+
65
+ code {
66
+ color:orange;
67
+ border: 1px solid #ebe8e0;
68
+ background: #f9f8f6;
69
+ color:#454545;
70
+ padding:1px 3px;
71
+ border-radius:2px;
72
+ }
73
+
74
+ .email, .comment, .rev, .date {
75
+ display:inline-block;
76
+ }
77
+
78
+ .date {
79
+ width:90px;
80
+ }
81
+
82
+ .rev {
83
+ width: 60px;
84
+ background-color: #efefef;
85
+ border-radius: 3px;
86
+ text-align: center;
87
+ color: #404040;
88
+ background-color:#fef9ec;
89
+ margin-right: 10px;
90
+ }
91
+
92
+ .commits {
93
+ border-top:1px solid #efefef;
94
+ margin:0px;
95
+ margin-top:20px;
96
+ padding:0px;
97
+ list-style:none;
98
+ padding:20px;
99
+ padding-bottom:0px;
100
+ }
101
+
102
+ .commits li {
103
+ margin:0px;
104
+ padding:0px;
105
+ margin-bottom: 2px;
106
+ }
107
+
108
+ .commits img {
109
+ margin-right: 5px;
110
+ width: 19px;
111
+ height: 19px;
112
+ border-radius: 2px;
113
+ vertical-align: top;
114
+ }
115
+
116
+ .warn {
117
+ background-color:#FFF5D1;
118
+ padding:10px;
119
+ border-radius:3px;
120
+ }
121
+
122
+ pre {
123
+ margin:0px;
124
+ padding:0px;
125
+ }
126
+
127
+ .CodeRay {
128
+ padding:10px;
129
+ display:block;
130
+ border:1px solid rgb(255,233,186);
131
+ border-radius:3px;
132
+ background-color:#fef9ec;
133
+ color:#454545;
134
+ }
data/lib/veda/scm.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'git'
2
+
3
+ module Veda
4
+ class ScmFile
5
+
6
+ def initialize(repo, file)
7
+ @git = Git.open(repo || '.')
8
+ @log = @git.log(20).object(file)
9
+ @status = @git.status[file]
10
+ end
11
+
12
+ def log
13
+ @log.collect { | c | Hashie::Mash.new({ rev: c.sha[0,7], author: c.author.name, email: c.author.email, comment: c.message, date: c.date }) }
14
+ end
15
+
16
+ def status
17
+ @status
18
+ end
19
+
20
+ def authors
21
+ log.sort_by { |x| x[:date] }
22
+ .reverse
23
+ .group_by { |x| x[:author] }
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,87 @@
1
+ require 'sinatra/base'
2
+ require "sinatra/reloader"
3
+ require 'slim'
4
+ require 'coderay'
5
+ require 'redcarpet'
6
+
7
+ module Veda
8
+ class MarkdownRenderer < Redcarpet::Render::HTML
9
+ def block_code(code, language)
10
+ CodeRay.highlight(code, language || 'none')
11
+ end
12
+ end
13
+
14
+ module Helpers
15
+ def date(date)
16
+ date.strftime('%b %e, %Y')
17
+ end
18
+
19
+ def markdown(text)
20
+ rndr = MarkdownRenderer.new(:filter_html => true)
21
+ options = {
22
+ :fenced_code_blocks => true,
23
+ :no_intra_emphasis => true,
24
+ :autolink => true,
25
+ :strikethrough => true,
26
+ :lax_html_blocks => true,
27
+ :superscript => true
28
+ }
29
+ markdown_to_html = Redcarpet::Markdown.new(rndr, options)
30
+ markdown_to_html.render(text)
31
+ end
32
+
33
+ def gravatar(email)
34
+ gravatar_id = Digest::MD5.hexdigest(email.downcase)
35
+ "http://gravatar.com/avatar/#{gravatar_id}.png"
36
+ end
37
+ end
38
+
39
+ class Server < Sinatra::Base
40
+ helpers Veda::Helpers
41
+ register Sinatra::Reloader if development?
42
+
43
+ def initialize(path=nil, repo=nil)
44
+ @documentation = Veda::Documentation.new(path, repo)
45
+ super()
46
+ end
47
+
48
+ get '/' do
49
+ slim :index
50
+ end
51
+
52
+ get '/:file' do
53
+ @page = @documentation.fetch params[:file]
54
+ slim :show
55
+ end
56
+ end
57
+
58
+ class Library < Sinatra::Base
59
+ register Sinatra::Reloader if development?
60
+
61
+ get '/' do
62
+ @files = Dir.glob("#{home}/*/*").collect { |f| f.gsub home, '' }
63
+ slim :library
64
+ end
65
+
66
+ get '/*' do
67
+ parts = env['PATH_INFO'].split('/').reject(&:empty?)
68
+ return unless parts.length >= 2
69
+
70
+ dir = "#{parts[0]}/#{parts[1]}"
71
+
72
+ env['PATH_INFO'] = env['PATH_INFO'].gsub(dir,'')
73
+ env['SCRIPT_NAME'] = dir
74
+
75
+ path = File.join(home, dir)
76
+
77
+ Dir.chdir(path)
78
+ Server.new.call(env)
79
+ end
80
+
81
+ private
82
+
83
+ def home
84
+ "#{Dir.home}/.veda/Library"
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,3 @@
1
+ module Veda
2
+ VERSION = '0.0.1.pre'
3
+ end
@@ -0,0 +1,3 @@
1
+ - @title = 'Index'
2
+ - for a in @documentation.collection
3
+ li: a(href=url(a.id))=a.title
@@ -0,0 +1,9 @@
1
+ doctype html
2
+ html
3
+ head
4
+ link rel="stylesheet" type="text/css" href=url('/css/coderay.css')
5
+ link rel="stylesheet" type="text/css" href=url('/css/style.css')
6
+ title=@title
7
+ body
8
+ .page
9
+ == yield
@@ -0,0 +1,5 @@
1
+ .warn Want to install more veda's? Just type `veda install [REPO]`
2
+
3
+ ul.list
4
+ - for a in @files
5
+ li: a(href=url(a))=a
@@ -0,0 +1,33 @@
1
+ - @title = @page.title
2
+
3
+ .nav
4
+ a(href=url('/')) Go to index
5
+
6
+ h1=@page.title
7
+
8
+ - if @page.scm_file.status.sha_repo=="0000000000000000000000000000000000000000"
9
+ .warn Heya, this file is staged but not commited! You can commit this via `git commit`
10
+
11
+ - if @page.scm_file.status.untracked
12
+ .warn Heya, this file is untracked! You can add it to the git repository via `git add`
13
+
14
+ - unless @page.scm_file.status.untracked
15
+ ul.authors
16
+ - for name, y in @page.scm_file.authors
17
+ li: img width=40 height=40 src=gravatar(y[0].email) title="#{name} (#{y[0].email})"
18
+
19
+ - unless @page.scm_file.log.length == 0
20
+ span Created by #{@page.scm_file.log.last.author} on #{date(@page.scm_file.log.last.date)}, latest edit #{@page.scm_file.log.first.date.strftime('%b %e, %Y')} by #{@page.scm_file.log.first.author}.
21
+
22
+ .last-commit #{@page.scm_file.log.first.comment} - #{date(@page.scm_file.log.first.date)}
23
+
24
+ ==markdown(@page.contents)
25
+
26
+ - unless @page.scm_file.log.length == 0
27
+ ul.commits
28
+ - for log in @page.scm_file.log
29
+ li
30
+ .email: img src=gravatar(log.email)
31
+ .rev=log.rev
32
+ .date=date(log.date)
33
+ .comment=log.comment
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: veda
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre
5
+ platform: ruby
6
+ authors:
7
+ - Emile Bosch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sinatra
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: slim
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: hashie
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: git
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sinatra-contrib
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coderay
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: redcarpet
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: guard-shell
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: Collaborative git based documentation
182
+ email: emilebosch@me.com
183
+ executables:
184
+ - veda
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - lib/veda/cli.rb
189
+ - lib/veda/documentation.rb
190
+ - lib/veda/public/css/coderay.css
191
+ - lib/veda/public/css/style.css
192
+ - lib/veda/scm.rb
193
+ - lib/veda/server.rb
194
+ - lib/veda/version.rb
195
+ - lib/veda/views/index.slim
196
+ - lib/veda/views/layout.slim
197
+ - lib/veda/views/library.slim
198
+ - lib/veda/views/show.slim
199
+ - lib/veda.rb
200
+ - README.md
201
+ - config.ru
202
+ - bin/veda
203
+ homepage: https://github.com/emilebosch/veda
204
+ licenses:
205
+ - MIT
206
+ metadata: {}
207
+ post_install_message:
208
+ rdoc_options: []
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - '>'
219
+ - !ruby/object:Gem::Version
220
+ version: 1.3.1
221
+ requirements: []
222
+ rubyforge_project:
223
+ rubygems_version: 2.0.2
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: Veda
227
+ test_files: []
228
+ has_rdoc: