web_git 0.0.4 → 0.1.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.
- checksums.yaml +4 -4
- data/Gemfile +6 -22
- data/Gemfile.lock +102 -177
- data/README.markdown +30 -4
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/generators/web_git/install_generator.rb +47 -0
- data/lib/scripts/heroku_login.exp +58 -0
- data/lib/views/status.erb +381 -0
- data/lib/web_git/diff.rb +207 -206
- data/lib/web_git/exceptions.rb +3 -0
- data/lib/web_git/graph.rb +114 -0
- data/lib/web_git/heroku.rb +34 -0
- data/lib/web_git/string.rb +8 -0
- data/lib/web_git.rb +204 -9
- data/web_git.gemspec +30 -76
- metadata +30 -164
- data/ansi2html.sh +0 -514
- data/app/assets/javascripts/web_git/application.js +0 -22
- data/app/assets/javascripts/web_git/bootstrap.min.js +0 -6
- data/app/assets/javascripts/web_git/popper.min.js +0 -4
- data/app/assets/stylesheets/web_git/application.scss +0 -12
- data/app/assets/stylesheets/web_git/bootstrap.min.css +0 -6
- data/app/assets/stylesheets/web_git/font-awesome.min.css +0 -4
- data/app/assets/stylesheets/web_git/octicons.css +0 -5
- data/app/controllers/web_git/application_controller.rb +0 -5
- data/app/controllers/web_git/branches_controller.rb +0 -38
- data/app/controllers/web_git/commands_controller.rb +0 -51
- data/app/controllers/web_git/commits_controller.rb +0 -46
- data/app/views/layouts/web_git/application.html.erb +0 -39
- data/app/views/web_git/commands/status.html.erb +0 -244
- data/config/routes.rb +0 -10
- data/lib/web_git/engine.rb +0 -9
data/lib/web_git.rb
CHANGED
@@ -1,12 +1,207 @@
|
|
1
|
-
|
2
|
-
require "web_git/
|
3
|
-
require "diffy"
|
4
|
-
require "jquery-rails"
|
5
|
-
require "octicons_helper"
|
6
|
-
require "tether-rails"
|
7
|
-
require "turbolinks"
|
8
|
-
require "git_clone_url"
|
1
|
+
|
2
|
+
require "web_git/version"
|
9
3
|
|
10
4
|
module WebGit
|
11
|
-
|
5
|
+
require "active_support"
|
6
|
+
require "web_git/diff"
|
7
|
+
require "web_git/graph"
|
8
|
+
require "web_git/heroku"
|
9
|
+
require "web_git/string"
|
10
|
+
require "sinatra"
|
11
|
+
require "date"
|
12
|
+
require "git"
|
13
|
+
class Server < Sinatra::Base
|
14
|
+
enable :sessions
|
15
|
+
|
16
|
+
get '/log' do
|
17
|
+
graph = WebGit::Graph.new(git)
|
18
|
+
graph.to_hash.to_json
|
19
|
+
#sha = commit.sha.slice(0..7)
|
20
|
+
# commit_date = Date.parse commit.date
|
21
|
+
# strftime("%a, %d %b %Y, %H:%M %z") -> time_ago_in_words(commit_date)
|
22
|
+
# * 76eff73 - Wed, 11 Mar 2020 19:58:21 +0000 (13 days ago) (HEAD -> current_branch)
|
23
|
+
# | blease - Jelani Woods
|
24
|
+
|
25
|
+
# " * " + sha + " - " + commit_date + " (" + time_ago_in_words(commit_date) + ") " + "\n\t| " + commit.message
|
26
|
+
end
|
27
|
+
|
28
|
+
get "/" do
|
29
|
+
initialize_flash
|
30
|
+
clear_flash
|
31
|
+
# Update git index
|
32
|
+
git.status.changed.each do
|
33
|
+
git.diff.entries
|
34
|
+
end
|
35
|
+
status = git.status
|
36
|
+
# Just need the file names
|
37
|
+
@changed_files = status.changed.keys
|
38
|
+
@deleted_files = status.added.keys
|
39
|
+
@untracked_files = status.untracked.keys
|
40
|
+
@added_files = status.deleted.keys
|
41
|
+
|
42
|
+
@statuses = [
|
43
|
+
{ name: "Changed Files:", file_list: @changed_files },
|
44
|
+
{ name: "Untracked Files:", file_list: @untracked_files },
|
45
|
+
{ name: "Deleted Files:", file_list: @deleted_files },
|
46
|
+
{ name: "Added Files:", file_list: @added_files }
|
47
|
+
]
|
48
|
+
|
49
|
+
@current_branch = git.current_branch
|
50
|
+
# g.branch(@current_branch).checkout # maybe?
|
51
|
+
# TODO use git gem for status
|
52
|
+
@status = `git status`
|
53
|
+
@diff = git.diff
|
54
|
+
@diff = Diff.diff_to_html(git.diff.to_s)
|
55
|
+
if git.log.count > 1
|
56
|
+
last_diff = git.diff("HEAD~1", "HEAD").to_s + "\n"
|
57
|
+
@last_diff_html = Diff.last_to_html(last_diff)
|
58
|
+
end
|
59
|
+
@last_diff_html = ""
|
60
|
+
@branches = git.branches.local.map(&:full)
|
61
|
+
|
62
|
+
logs = git.log
|
63
|
+
@last_commit_message = logs.first.message
|
64
|
+
@head = git.show.split("\n").first.split[1].slice(0..7)
|
65
|
+
@list = []
|
66
|
+
# (HEAD -> jw-non-sweet)
|
67
|
+
# TODO show where branches are on different remotes
|
68
|
+
@remotes = git.remotes.map {|remote| "#{remote.name}: #{remote.url}" }
|
69
|
+
# (origin/master, origin/jw-non-sweet, origin/HEAD)
|
70
|
+
# git.branches[:master].gcommit
|
71
|
+
|
72
|
+
graph = WebGit::Graph.new(git)
|
73
|
+
@graph_hash = graph.to_hash
|
74
|
+
@cli_graph_interactive = graph.cli_graph
|
75
|
+
@graph_branches = @graph_hash.sort do |branch_a, branch_b|
|
76
|
+
branch_b[:log].last[:date] <=> branch_a[:log].last[:date]
|
77
|
+
end
|
78
|
+
|
79
|
+
# TODO heroku stuff
|
80
|
+
@heroku_auth = WebGit::Heroku.whoami
|
81
|
+
erb :status
|
82
|
+
end
|
83
|
+
|
84
|
+
post "/commit" do
|
85
|
+
title = params[:title]
|
86
|
+
description = params[:description]
|
87
|
+
|
88
|
+
# TODO validate commit message
|
89
|
+
if title.nil? || title.gsub(" ", "").length == 0
|
90
|
+
session[:alert] = "You need to make a commit message."
|
91
|
+
redirect to("/")
|
92
|
+
end
|
93
|
+
|
94
|
+
unless description.nil?
|
95
|
+
title += "\n#{description}"
|
96
|
+
end
|
97
|
+
|
98
|
+
safe_git_action(:commit, args: title, notice: "Commit created successfully", alert: "Failed to create commit")
|
99
|
+
redirect to("/")
|
100
|
+
end
|
101
|
+
|
102
|
+
get "/stash" do
|
103
|
+
safe_git_action(:stash, notice: "Changes stashed.", alert: "Failed to stash changes")
|
104
|
+
redirect to("/")
|
105
|
+
end
|
106
|
+
|
107
|
+
post "/branch/checkout/new" do
|
108
|
+
# TODO validate branch name
|
109
|
+
name = params.fetch(:branch_name).downcase.gsub(" ", "_")
|
110
|
+
commit = params.fetch(:commit_hash)
|
111
|
+
|
112
|
+
safe_git_action(:checkout, args: name, notice: "Branch #{name}, created successfully.", alert: "Failed to create branch")
|
113
|
+
safe_git_action(:reset_hard, args: commit, alert: "Failed to checkout branch at #{commit}")
|
114
|
+
redirect to("/")
|
115
|
+
end
|
116
|
+
|
117
|
+
post "/branch/checkout" do
|
118
|
+
name = params.fetch(:branch_name).downcase.gsub(" ", "_")
|
119
|
+
|
120
|
+
safe_git_action(:checkout, args: name, notice: "Switched to branch: #{name} successfully.", alert: "Failed to switch branch")
|
121
|
+
redirect to("/")
|
122
|
+
end
|
123
|
+
|
124
|
+
# TODO make delete request somehow with the links
|
125
|
+
post "/branch/delete" do
|
126
|
+
name = params.fetch(:branch_name).downcase.gsub(" ", "_")
|
127
|
+
|
128
|
+
safe_git_action(:delete, args: name, notice: "Deleted branch: #{name} successfully.", alert: "Failed to delete branch")
|
129
|
+
redirect to("/")
|
130
|
+
end
|
131
|
+
|
132
|
+
post "/push" do
|
133
|
+
# TODO push to heroku eventually, multiple remotes
|
134
|
+
|
135
|
+
safe_git_action(:push, notice: "Pushed to GitHub successfully.", alert: "Failed to push")
|
136
|
+
redirect to("/")
|
137
|
+
end
|
138
|
+
|
139
|
+
post "/pull" do
|
140
|
+
safe_git_action(:pull, notice: "Pulled successfully.", alert: "Git Pull failed")
|
141
|
+
redirect to("/")
|
142
|
+
end
|
143
|
+
|
144
|
+
post "/heroku/login" do
|
145
|
+
email = params[:heroku_email]
|
146
|
+
password = params[:heroku_password]
|
147
|
+
|
148
|
+
begin
|
149
|
+
WebGit::Heroku.authenticate(email, password)
|
150
|
+
set_flash(:notice, "Successfully logged into Heroku.")
|
151
|
+
rescue => exception
|
152
|
+
set_flash(:alert, "There was a problem logging into Heroku. #{exception.message}")
|
153
|
+
end
|
154
|
+
redirect to("/")
|
155
|
+
end
|
156
|
+
|
157
|
+
protected
|
158
|
+
|
159
|
+
def git
|
160
|
+
working_dir = File.exist?(Dir.pwd + "/.git") ? Dir.pwd : Dir.pwd + "/.."
|
161
|
+
@git ||= Git.open(working_dir)
|
162
|
+
end
|
163
|
+
|
164
|
+
def safe_git_action(method, **options)
|
165
|
+
begin
|
166
|
+
case method
|
167
|
+
when :push
|
168
|
+
git.push('origin', git.current_branch)
|
169
|
+
when :pull
|
170
|
+
git.pull
|
171
|
+
when :stash
|
172
|
+
git.add(all: true)
|
173
|
+
stash_count = Git::Stashes.new(git).count
|
174
|
+
Git::Stash.new(git, "Stash #{stash_count}")
|
175
|
+
when :commit
|
176
|
+
git.add(all: true)
|
177
|
+
git.commit(options[:args])
|
178
|
+
when :checkout
|
179
|
+
git.branch(options[:args]).checkout
|
180
|
+
when :reset_hard
|
181
|
+
commit = git.gcommit(options[:args])
|
182
|
+
git.reset_hard(commit)
|
183
|
+
when :delete
|
184
|
+
git.branch(options[:args]).delete
|
185
|
+
end
|
186
|
+
set_flash(:notice, options[:notice])
|
187
|
+
rescue Git::GitExecuteError => exception
|
188
|
+
alert_message = "#{options[:alert]}: #{exception.message.split("\n").last}"
|
189
|
+
set_flash(:alert, alert_message)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def set_flash(name, message)
|
194
|
+
session[name] = message
|
195
|
+
end
|
196
|
+
|
197
|
+
def clear_flash
|
198
|
+
session[:alert] = nil
|
199
|
+
session[:notice] = nil
|
200
|
+
end
|
201
|
+
|
202
|
+
def initialize_flash
|
203
|
+
@alert = session[:alert]
|
204
|
+
@notice = session[:notice]
|
205
|
+
end
|
206
|
+
end
|
12
207
|
end
|
data/web_git.gemspec
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: web_git 0.0
|
5
|
+
# stub: web_git 0.1.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "web_git".freeze
|
9
|
-
s.version = "0.0
|
9
|
+
s.version = "0.1.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Raghu Betina".freeze, "Jelani Woods".freeze]
|
14
|
-
s.date = "
|
15
|
-
s.description = "WebGit is
|
16
|
-
s.email = "raghu@firstdraft.com".freeze
|
14
|
+
s.date = "2022-03-30"
|
15
|
+
s.description = "WebGit is an embeddable Sinatra app that provides an in-browser visual interface to a simple but effective Git workflow. For educational purposes.".freeze
|
16
|
+
s.email = ["raghu@firstdraft.com".freeze, "jelani@firstdraft.com".freeze]
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE.txt",
|
19
19
|
"README.markdown"
|
@@ -28,93 +28,47 @@ Gem::Specification.new do |s|
|
|
28
28
|
"README.markdown",
|
29
29
|
"Rakefile",
|
30
30
|
"VERSION",
|
31
|
-
"
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"app/assets/javascripts/web_git/popper.min.js",
|
35
|
-
"app/assets/stylesheets/web_git/application.scss",
|
36
|
-
"app/assets/stylesheets/web_git/bootstrap.min.css",
|
37
|
-
"app/assets/stylesheets/web_git/font-awesome.min.css",
|
38
|
-
"app/assets/stylesheets/web_git/octicons.css",
|
39
|
-
"app/controllers/web_git/application_controller.rb",
|
40
|
-
"app/controllers/web_git/branches_controller.rb",
|
41
|
-
"app/controllers/web_git/commands_controller.rb",
|
42
|
-
"app/controllers/web_git/commits_controller.rb",
|
43
|
-
"app/views/layouts/web_git/application.html.erb",
|
44
|
-
"app/views/web_git/commands/status.html.erb",
|
45
|
-
"config/routes.rb",
|
31
|
+
"lib/generators/web_git/install_generator.rb",
|
32
|
+
"lib/scripts/heroku_login.exp",
|
33
|
+
"lib/views/status.erb",
|
46
34
|
"lib/web_git.rb",
|
47
35
|
"lib/web_git/diff.rb",
|
48
|
-
"lib/web_git/
|
36
|
+
"lib/web_git/exceptions.rb",
|
37
|
+
"lib/web_git/graph.rb",
|
38
|
+
"lib/web_git/heroku.rb",
|
39
|
+
"lib/web_git/string.rb",
|
49
40
|
"lib/web_git/version.rb",
|
50
41
|
"web_git.gemspec"
|
51
42
|
]
|
52
43
|
s.homepage = "http://github.com/firstdraft/web_git".freeze
|
53
44
|
s.licenses = ["MIT".freeze]
|
54
|
-
s.rubygems_version = "3.
|
45
|
+
s.rubygems_version = "3.1.6".freeze
|
55
46
|
s.summary = "An in-browser Git GUI for your Rails project".freeze
|
56
47
|
|
57
48
|
if s.respond_to? :specification_version then
|
58
49
|
s.specification_version = 4
|
50
|
+
end
|
59
51
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
71
|
-
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
|
72
|
-
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
73
|
-
s.add_development_dependency(%q<pry>.freeze, ["~> 0"])
|
74
|
-
s.add_development_dependency(%q<pry-byebug>.freeze, ["~> 3"])
|
75
|
-
s.add_development_dependency(%q<pry-doc>.freeze, ["~> 0"])
|
76
|
-
s.add_development_dependency(%q<pry-remote>.freeze, ["~> 0"])
|
77
|
-
s.add_development_dependency(%q<pry-rescue>.freeze, ["~> 1"])
|
78
|
-
s.add_development_dependency(%q<pry-stack_explorer>.freeze, ["~> 0"])
|
79
|
-
else
|
80
|
-
s.add_dependency(%q<diffy>.freeze, [">= 0"])
|
81
|
-
s.add_dependency(%q<tzinfo-data>.freeze, [">= 0"])
|
82
|
-
s.add_dependency(%q<tether-rails>.freeze, [">= 0"])
|
83
|
-
s.add_dependency(%q<octicons_helper>.freeze, [">= 0"])
|
84
|
-
s.add_dependency(%q<turbolinks>.freeze, ["~> 5"])
|
85
|
-
s.add_dependency(%q<jquery-rails>.freeze, [">= 0"])
|
86
|
-
s.add_dependency(%q<git_clone_url>.freeze, [">= 0"])
|
87
|
-
s.add_dependency(%q<yard>.freeze, [">= 0.9.20"])
|
88
|
-
s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
|
89
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
90
|
-
s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
|
91
|
-
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
92
|
-
s.add_dependency(%q<pry>.freeze, ["~> 0"])
|
93
|
-
s.add_dependency(%q<pry-byebug>.freeze, ["~> 3"])
|
94
|
-
s.add_dependency(%q<pry-doc>.freeze, ["~> 0"])
|
95
|
-
s.add_dependency(%q<pry-remote>.freeze, ["~> 0"])
|
96
|
-
s.add_dependency(%q<pry-rescue>.freeze, ["~> 1"])
|
97
|
-
s.add_dependency(%q<pry-stack_explorer>.freeze, ["~> 0"])
|
98
|
-
end
|
52
|
+
if s.respond_to? :add_runtime_dependency then
|
53
|
+
s.add_runtime_dependency(%q<actionview>.freeze, [">= 0"])
|
54
|
+
s.add_runtime_dependency(%q<ansispan>.freeze, [">= 0"])
|
55
|
+
s.add_runtime_dependency(%q<diffy>.freeze, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<git>.freeze, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<sinatra>.freeze, [">= 0"])
|
58
|
+
s.add_runtime_dependency(%q<tzinfo-data>.freeze, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
|
60
|
+
s.add_development_dependency(%q<rdoc>.freeze, [">= 6.3.1"])
|
61
|
+
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
|
99
62
|
else
|
63
|
+
s.add_dependency(%q<actionview>.freeze, [">= 0"])
|
64
|
+
s.add_dependency(%q<ansispan>.freeze, [">= 0"])
|
100
65
|
s.add_dependency(%q<diffy>.freeze, [">= 0"])
|
66
|
+
s.add_dependency(%q<git>.freeze, [">= 0"])
|
67
|
+
s.add_dependency(%q<sinatra>.freeze, [">= 0"])
|
101
68
|
s.add_dependency(%q<tzinfo-data>.freeze, [">= 0"])
|
102
|
-
s.add_dependency(%q<tether-rails>.freeze, [">= 0"])
|
103
|
-
s.add_dependency(%q<octicons_helper>.freeze, [">= 0"])
|
104
|
-
s.add_dependency(%q<turbolinks>.freeze, ["~> 5"])
|
105
|
-
s.add_dependency(%q<jquery-rails>.freeze, [">= 0"])
|
106
|
-
s.add_dependency(%q<git_clone_url>.freeze, [">= 0"])
|
107
|
-
s.add_dependency(%q<yard>.freeze, [">= 0.9.20"])
|
108
|
-
s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
|
109
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
110
69
|
s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
|
111
|
-
s.add_dependency(%q<
|
112
|
-
s.add_dependency(%q<
|
113
|
-
s.add_dependency(%q<pry-byebug>.freeze, ["~> 3"])
|
114
|
-
s.add_dependency(%q<pry-doc>.freeze, ["~> 0"])
|
115
|
-
s.add_dependency(%q<pry-remote>.freeze, ["~> 0"])
|
116
|
-
s.add_dependency(%q<pry-rescue>.freeze, ["~> 1"])
|
117
|
-
s.add_dependency(%q<pry-stack_explorer>.freeze, ["~> 0"])
|
70
|
+
s.add_dependency(%q<rdoc>.freeze, [">= 6.3.1"])
|
71
|
+
s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
|
118
72
|
end
|
119
73
|
end
|
120
74
|
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: web_git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raghu Betina
|
8
8
|
- Jelani Woods
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: actionview
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: ansispan
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: diffy
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - ">="
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: git
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - ">="
|
@@ -68,21 +68,7 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '5'
|
77
|
-
type: :runtime
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '5'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: jquery-rails
|
71
|
+
name: sinatra
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
74
|
- - ">="
|
@@ -96,7 +82,7 @@ dependencies:
|
|
96
82
|
- !ruby/object:Gem::Version
|
97
83
|
version: '0'
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
85
|
+
name: tzinfo-data
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
88
|
- - ">="
|
@@ -109,48 +95,6 @@ dependencies:
|
|
109
95
|
- - ">="
|
110
96
|
- !ruby/object:Gem::Version
|
111
97
|
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: yard
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 0.9.20
|
119
|
-
type: :runtime
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.9.20
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: 3.5.0
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 3.5.0
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: rdoc
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - "~>"
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '3.12'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - "~>"
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '3.12'
|
154
98
|
- !ruby/object:Gem::Dependency
|
155
99
|
name: juwelier
|
156
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,106 +110,38 @@ dependencies:
|
|
166
110
|
- !ruby/object:Gem::Version
|
167
111
|
version: 2.1.0
|
168
112
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
113
|
+
name: rdoc
|
170
114
|
requirement: !ruby/object:Gem::Requirement
|
171
115
|
requirements:
|
172
116
|
- - ">="
|
173
117
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
118
|
+
version: 6.3.1
|
175
119
|
type: :development
|
176
120
|
prerelease: false
|
177
121
|
version_requirements: !ruby/object:Gem::Requirement
|
178
122
|
requirements:
|
179
123
|
- - ">="
|
180
124
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
125
|
+
version: 6.3.1
|
182
126
|
- !ruby/object:Gem::Dependency
|
183
|
-
name:
|
184
|
-
requirement: !ruby/object:Gem::Requirement
|
185
|
-
requirements:
|
186
|
-
- - "~>"
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: '0'
|
189
|
-
type: :development
|
190
|
-
prerelease: false
|
191
|
-
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
requirements:
|
193
|
-
- - "~>"
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: '0'
|
196
|
-
- !ruby/object:Gem::Dependency
|
197
|
-
name: pry-byebug
|
198
|
-
requirement: !ruby/object:Gem::Requirement
|
199
|
-
requirements:
|
200
|
-
- - "~>"
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: '3'
|
203
|
-
type: :development
|
204
|
-
prerelease: false
|
205
|
-
version_requirements: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '3'
|
210
|
-
- !ruby/object:Gem::Dependency
|
211
|
-
name: pry-doc
|
212
|
-
requirement: !ruby/object:Gem::Requirement
|
213
|
-
requirements:
|
214
|
-
- - "~>"
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
version: '0'
|
217
|
-
type: :development
|
218
|
-
prerelease: false
|
219
|
-
version_requirements: !ruby/object:Gem::Requirement
|
220
|
-
requirements:
|
221
|
-
- - "~>"
|
222
|
-
- !ruby/object:Gem::Version
|
223
|
-
version: '0'
|
224
|
-
- !ruby/object:Gem::Dependency
|
225
|
-
name: pry-remote
|
226
|
-
requirement: !ruby/object:Gem::Requirement
|
227
|
-
requirements:
|
228
|
-
- - "~>"
|
229
|
-
- !ruby/object:Gem::Version
|
230
|
-
version: '0'
|
231
|
-
type: :development
|
232
|
-
prerelease: false
|
233
|
-
version_requirements: !ruby/object:Gem::Requirement
|
234
|
-
requirements:
|
235
|
-
- - "~>"
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: '0'
|
238
|
-
- !ruby/object:Gem::Dependency
|
239
|
-
name: pry-rescue
|
240
|
-
requirement: !ruby/object:Gem::Requirement
|
241
|
-
requirements:
|
242
|
-
- - "~>"
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
version: '1'
|
245
|
-
type: :development
|
246
|
-
prerelease: false
|
247
|
-
version_requirements: !ruby/object:Gem::Requirement
|
248
|
-
requirements:
|
249
|
-
- - "~>"
|
250
|
-
- !ruby/object:Gem::Version
|
251
|
-
version: '1'
|
252
|
-
- !ruby/object:Gem::Dependency
|
253
|
-
name: pry-stack_explorer
|
127
|
+
name: rspec
|
254
128
|
requirement: !ruby/object:Gem::Requirement
|
255
129
|
requirements:
|
256
130
|
- - "~>"
|
257
131
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
132
|
+
version: 3.5.0
|
259
133
|
type: :development
|
260
134
|
prerelease: false
|
261
135
|
version_requirements: !ruby/object:Gem::Requirement
|
262
136
|
requirements:
|
263
137
|
- - "~>"
|
264
138
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
266
|
-
description: WebGit is
|
267
|
-
to a simple but effective Git workflow. For educational purposes.
|
268
|
-
email:
|
139
|
+
version: 3.5.0
|
140
|
+
description: WebGit is an embeddable Sinatra app that provides an in-browser visual
|
141
|
+
interface to a simple but effective Git workflow. For educational purposes.
|
142
|
+
email:
|
143
|
+
- raghu@firstdraft.com
|
144
|
+
- jelani@firstdraft.com
|
269
145
|
executables: []
|
270
146
|
extensions: []
|
271
147
|
extra_rdoc_files:
|
@@ -281,31 +157,22 @@ files:
|
|
281
157
|
- README.markdown
|
282
158
|
- Rakefile
|
283
159
|
- VERSION
|
284
|
-
-
|
285
|
-
-
|
286
|
-
-
|
287
|
-
- app/assets/javascripts/web_git/popper.min.js
|
288
|
-
- app/assets/stylesheets/web_git/application.scss
|
289
|
-
- app/assets/stylesheets/web_git/bootstrap.min.css
|
290
|
-
- app/assets/stylesheets/web_git/font-awesome.min.css
|
291
|
-
- app/assets/stylesheets/web_git/octicons.css
|
292
|
-
- app/controllers/web_git/application_controller.rb
|
293
|
-
- app/controllers/web_git/branches_controller.rb
|
294
|
-
- app/controllers/web_git/commands_controller.rb
|
295
|
-
- app/controllers/web_git/commits_controller.rb
|
296
|
-
- app/views/layouts/web_git/application.html.erb
|
297
|
-
- app/views/web_git/commands/status.html.erb
|
298
|
-
- config/routes.rb
|
160
|
+
- lib/generators/web_git/install_generator.rb
|
161
|
+
- lib/scripts/heroku_login.exp
|
162
|
+
- lib/views/status.erb
|
299
163
|
- lib/web_git.rb
|
300
164
|
- lib/web_git/diff.rb
|
301
|
-
- lib/web_git/
|
165
|
+
- lib/web_git/exceptions.rb
|
166
|
+
- lib/web_git/graph.rb
|
167
|
+
- lib/web_git/heroku.rb
|
168
|
+
- lib/web_git/string.rb
|
302
169
|
- lib/web_git/version.rb
|
303
170
|
- web_git.gemspec
|
304
171
|
homepage: http://github.com/firstdraft/web_git
|
305
172
|
licenses:
|
306
173
|
- MIT
|
307
174
|
metadata: {}
|
308
|
-
post_install_message:
|
175
|
+
post_install_message:
|
309
176
|
rdoc_options: []
|
310
177
|
require_paths:
|
311
178
|
- lib
|
@@ -320,9 +187,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
187
|
- !ruby/object:Gem::Version
|
321
188
|
version: '0'
|
322
189
|
requirements: []
|
323
|
-
|
324
|
-
|
325
|
-
signing_key:
|
190
|
+
rubygems_version: 3.1.6
|
191
|
+
signing_key:
|
326
192
|
specification_version: 4
|
327
193
|
summary: An in-browser Git GUI for your Rails project
|
328
194
|
test_files: []
|