web_git 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48b533506b61ecf1abba4e9a4b4ee2919f6f13370f3fce0e4952f48ba190456f
4
- data.tar.gz: 228e6d06266aa69bd76f289feaf404e500e476544e6bdde41e560880d9f2ef46
3
+ metadata.gz: 89d8eef92b2c4cb8ca66b0ab374148141681c23a48546d6527f9f20142fdd53e
4
+ data.tar.gz: 1d650a1dd33ae931104e89fde068fe22de2c03f9c7baa8ef34095510493b12d9
5
5
  SHA512:
6
- metadata.gz: 819d9a708290f78ec476fad1731e86115ca91e62fe9bf889cacc2a7d540137bbd798d64916b0cfde8887b8c373e236ff0d6609c8a6ab0a9756ea1db4b18636bf
7
- data.tar.gz: 9c3499c223eaaa883b6d06e887bd75d5db3b0476a515d1360ad6dc97dd80e8b97c34ca52a3d342c5ddfad30a495ca23bd1fdb3d7df80d291738e6b375d7555d7
6
+ metadata.gz: 72a468c367e5e54661d2fed60e95b3481f20a044a16fcfb152300930d94a065937b8c5a3e8dbf6e869c3d791b25d16c18ff01983b31f52d4c54655cee681bfea
7
+ data.tar.gz: 5421ce8a8b8bf1ddbeee887850c55a0f3d6cad9ee12f6a1e425b8c624263cefeea74a6ccb9fe66eae81d66becf7841d08eaf96541dfc7df1b788f3d637e23dd2
data/Gemfile CHANGED
@@ -19,6 +19,7 @@ group :development do
19
19
  gem "pry-stack_explorer", "~> 0"
20
20
  end
21
21
 
22
+ gem "diffy"
22
23
  # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
23
24
  gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
24
25
 
@@ -0,0 +1,240 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ actioncable (5.2.2.1)
5
+ actionpack (= 5.2.2.1)
6
+ nio4r (~> 2.0)
7
+ websocket-driver (>= 0.6.1)
8
+ actionmailer (5.2.2.1)
9
+ actionpack (= 5.2.2.1)
10
+ actionview (= 5.2.2.1)
11
+ activejob (= 5.2.2.1)
12
+ mail (~> 2.5, >= 2.5.4)
13
+ rails-dom-testing (~> 2.0)
14
+ actionpack (5.2.2.1)
15
+ actionview (= 5.2.2.1)
16
+ activesupport (= 5.2.2.1)
17
+ rack (~> 2.0)
18
+ rack-test (>= 0.6.3)
19
+ rails-dom-testing (~> 2.0)
20
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
21
+ actionview (5.2.2.1)
22
+ activesupport (= 5.2.2.1)
23
+ builder (~> 3.1)
24
+ erubi (~> 1.4)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
27
+ activejob (5.2.2.1)
28
+ activesupport (= 5.2.2.1)
29
+ globalid (>= 0.3.6)
30
+ activemodel (5.2.2.1)
31
+ activesupport (= 5.2.2.1)
32
+ activerecord (5.2.2.1)
33
+ activemodel (= 5.2.2.1)
34
+ activesupport (= 5.2.2.1)
35
+ arel (>= 9.0)
36
+ activestorage (5.2.2.1)
37
+ actionpack (= 5.2.2.1)
38
+ activerecord (= 5.2.2.1)
39
+ marcel (~> 0.3.1)
40
+ activesupport (5.2.2.1)
41
+ concurrent-ruby (~> 1.0, >= 1.0.2)
42
+ i18n (>= 0.7, < 2)
43
+ minitest (~> 5.1)
44
+ tzinfo (~> 1.1)
45
+ addressable (2.6.0)
46
+ public_suffix (>= 2.0.2, < 4.0)
47
+ arel (9.0.0)
48
+ binding_of_caller (0.8.0)
49
+ debug_inspector (>= 0.0.1)
50
+ builder (3.2.3)
51
+ byebug (11.0.1)
52
+ coderay (1.1.2)
53
+ concurrent-ruby (1.1.5)
54
+ crass (1.0.4)
55
+ debug_inspector (0.0.3)
56
+ descendants_tracker (0.0.4)
57
+ thread_safe (~> 0.3, >= 0.3.1)
58
+ diff-lcs (1.3)
59
+ diffy (3.3.0)
60
+ docile (1.3.1)
61
+ erubi (1.8.0)
62
+ faraday (0.15.4)
63
+ multipart-post (>= 1.2, < 3)
64
+ git (1.5.0)
65
+ git_clone_url (2.0.0)
66
+ uri-ssh_git (>= 2.0)
67
+ github_api (0.18.2)
68
+ addressable (~> 2.4)
69
+ descendants_tracker (~> 0.0.4)
70
+ faraday (~> 0.8)
71
+ hashie (~> 3.5, >= 3.5.2)
72
+ oauth2 (~> 1.0)
73
+ globalid (0.4.2)
74
+ activesupport (>= 4.2.0)
75
+ hashie (3.6.0)
76
+ highline (2.0.1)
77
+ i18n (1.6.0)
78
+ concurrent-ruby (~> 1.0)
79
+ interception (0.5)
80
+ jquery-rails (4.3.3)
81
+ rails-dom-testing (>= 1, < 3)
82
+ railties (>= 4.2.0)
83
+ thor (>= 0.14, < 2.0)
84
+ json (1.8.6)
85
+ juwelier (2.1.3)
86
+ builder
87
+ bundler (>= 1.13)
88
+ git (>= 1.2.5)
89
+ github_api
90
+ highline (>= 1.6.15)
91
+ nokogiri (>= 1.5.10)
92
+ rake
93
+ rdoc
94
+ semver
95
+ jwt (2.1.0)
96
+ loofah (2.2.3)
97
+ crass (~> 1.0.2)
98
+ nokogiri (>= 1.5.9)
99
+ mail (2.7.1)
100
+ mini_mime (>= 0.1.1)
101
+ marcel (0.3.3)
102
+ mimemagic (~> 0.3.2)
103
+ method_source (0.9.2)
104
+ mimemagic (0.3.3)
105
+ mini_mime (1.0.1)
106
+ mini_portile2 (2.4.0)
107
+ minitest (5.11.3)
108
+ multi_json (1.13.1)
109
+ multi_xml (0.6.0)
110
+ multipart-post (2.0.0)
111
+ nio4r (2.3.1)
112
+ nokogiri (1.10.2)
113
+ mini_portile2 (~> 2.4.0)
114
+ oauth2 (1.4.1)
115
+ faraday (>= 0.8, < 0.16.0)
116
+ jwt (>= 1.0, < 3.0)
117
+ multi_json (~> 1.3)
118
+ multi_xml (~> 0.5)
119
+ rack (>= 1.2, < 3)
120
+ octicons (8.5.0)
121
+ nokogiri (>= 1.6.3.1)
122
+ octicons_helper (8.5.0)
123
+ octicons (= 8.5.0)
124
+ rails
125
+ pry (0.12.2)
126
+ coderay (~> 1.1.0)
127
+ method_source (~> 0.9.0)
128
+ pry-byebug (3.7.0)
129
+ byebug (~> 11.0)
130
+ pry (~> 0.10)
131
+ pry-doc (0.13.5)
132
+ pry (~> 0.11)
133
+ yard (~> 0.9.11)
134
+ pry-remote (0.1.8)
135
+ pry (~> 0.9)
136
+ slop (~> 3.0)
137
+ pry-rescue (1.5.0)
138
+ interception (>= 0.5)
139
+ pry (>= 0.12.0)
140
+ pry-stack_explorer (0.4.9.3)
141
+ binding_of_caller (>= 0.7)
142
+ pry (>= 0.9.11)
143
+ public_suffix (3.0.3)
144
+ rack (2.0.6)
145
+ rack-test (1.1.0)
146
+ rack (>= 1.0, < 3)
147
+ rails (5.2.2.1)
148
+ actioncable (= 5.2.2.1)
149
+ actionmailer (= 5.2.2.1)
150
+ actionpack (= 5.2.2.1)
151
+ actionview (= 5.2.2.1)
152
+ activejob (= 5.2.2.1)
153
+ activemodel (= 5.2.2.1)
154
+ activerecord (= 5.2.2.1)
155
+ activestorage (= 5.2.2.1)
156
+ activesupport (= 5.2.2.1)
157
+ bundler (>= 1.3.0)
158
+ railties (= 5.2.2.1)
159
+ sprockets-rails (>= 2.0.0)
160
+ rails-dom-testing (2.0.3)
161
+ activesupport (>= 4.2.0)
162
+ nokogiri (>= 1.6)
163
+ rails-html-sanitizer (1.0.4)
164
+ loofah (~> 2.2, >= 2.2.2)
165
+ railties (5.2.2.1)
166
+ actionpack (= 5.2.2.1)
167
+ activesupport (= 5.2.2.1)
168
+ method_source
169
+ rake (>= 0.8.7)
170
+ thor (>= 0.19.0, < 2.0)
171
+ rake (12.3.2)
172
+ rdoc (3.12.2)
173
+ json (~> 1.4)
174
+ rspec (3.5.0)
175
+ rspec-core (~> 3.5.0)
176
+ rspec-expectations (~> 3.5.0)
177
+ rspec-mocks (~> 3.5.0)
178
+ rspec-core (3.5.4)
179
+ rspec-support (~> 3.5.0)
180
+ rspec-expectations (3.5.0)
181
+ diff-lcs (>= 1.2.0, < 2.0)
182
+ rspec-support (~> 3.5.0)
183
+ rspec-mocks (3.5.0)
184
+ diff-lcs (>= 1.2.0, < 2.0)
185
+ rspec-support (~> 3.5.0)
186
+ rspec-support (3.5.0)
187
+ semver (1.0.1)
188
+ simplecov (0.16.1)
189
+ docile (~> 1.1)
190
+ json (>= 1.8, < 3)
191
+ simplecov-html (~> 0.10.0)
192
+ simplecov-html (0.10.2)
193
+ slop (3.6.0)
194
+ sprockets (3.7.2)
195
+ concurrent-ruby (~> 1.0)
196
+ rack (> 1, < 3)
197
+ sprockets-rails (3.2.1)
198
+ actionpack (>= 4.0)
199
+ activesupport (>= 4.0)
200
+ sprockets (>= 3.0.0)
201
+ tether-rails (1.4.0)
202
+ rails (>= 3.1)
203
+ thor (0.20.3)
204
+ thread_safe (0.3.6)
205
+ turbolinks (5.2.0)
206
+ turbolinks-source (~> 5.2)
207
+ turbolinks-source (5.2.0)
208
+ tzinfo (1.2.5)
209
+ thread_safe (~> 0.1)
210
+ uri-ssh_git (2.0.0)
211
+ websocket-driver (0.7.0)
212
+ websocket-extensions (>= 0.1.0)
213
+ websocket-extensions (0.1.3)
214
+ yard (0.9.18)
215
+
216
+ PLATFORMS
217
+ ruby
218
+
219
+ DEPENDENCIES
220
+ bundler (~> 1.0)
221
+ diffy
222
+ git_clone_url
223
+ jquery-rails
224
+ juwelier (~> 2.1.0)
225
+ octicons_helper
226
+ pry (~> 0)
227
+ pry-byebug (~> 3)
228
+ pry-doc (~> 0)
229
+ pry-remote (~> 0)
230
+ pry-rescue (~> 1)
231
+ pry-stack_explorer (~> 0)
232
+ rdoc (~> 3.12)
233
+ rspec (~> 3.5.0)
234
+ simplecov
235
+ tether-rails
236
+ turbolinks (~> 5)
237
+ tzinfo-data
238
+
239
+ BUNDLED WITH
240
+ 1.17.2
@@ -6,10 +6,6 @@ WebGit is a Rails Engine that provides an in-browser visual interface to a simpl
6
6
 
7
7
  ## Installation
8
8
 
9
- You need to have the `diff2html-cli` command available on your system. You can install it with:
10
-
11
- ```
12
- npm install -g diff2html-cli
13
9
  ```
14
10
 
15
11
  Add this line to your application's Gemfile:
data/Rakefile CHANGED
@@ -19,7 +19,7 @@ Juwelier::Tasks.new do |gem|
19
19
  gem.summary = %Q{An in-browser Git GUI for your Rails project}
20
20
  gem.description = %Q{WebGit is a Rails Engine that provides an in-browser visual interface to a simple but effective Git workflow. For educational purposes.}
21
21
  gem.email = "raghu@firstdraft.com"
22
- gem.authors = ["Raghu Betina"]
22
+ gem.authors = ["Raghu Betina", "Jelani Woods"]
23
23
 
24
24
  # dependencies defined in Gemfile
25
25
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -4,7 +4,7 @@ module WebGit
4
4
 
5
5
  def status
6
6
  Dir.chdir(Rails.root) do
7
- @status = `git status`
7
+ logger.debug @status = `git status`
8
8
 
9
9
  @current_branch = `git symbolic-ref --short HEAD`.chomp
10
10
 
@@ -23,15 +23,10 @@ module WebGit
23
23
  diff = `git diff`
24
24
 
25
25
  unless diff.blank?
26
- @diff_html = `diff2html --style=side --output=stdout`.
27
- gsub("<h1>Diff to HTML by <a href=\"https://github.com/rtfpessoa\">rtfpessoa</a></h1>", "").
28
- gsub("<a class=\"d2h-file-switch d2h-hide\">hide</a>", "").
29
- gsub("<a class=\"d2h-file-switch d2h-show\">show</a>", "")
26
+ @diff_html = WebGit::Diff.diff_to_html(diff)
30
27
  else
31
- @last_diff_html = `diff2html --style=line --output=stdout -- -M HEAD~1`.
32
- gsub("<h1>Diff to HTML by <a href=\"https://github.com/rtfpessoa\">rtfpessoa</a></h1>", "").
33
- gsub("<a class=\"d2h-file-switch d2h-hide\">hide</a>", "").
34
- gsub("<a class=\"d2h-file-switch d2h-show\">show</a>", "")
28
+ last_diff = WebGit::Diff.get_last_diff
29
+ @last_diff_html = WebGit::Diff.last_to_html(last_diff)
35
30
 
36
31
  @last_commit_message = `git log -1 --pretty=%B`
37
32
  end
@@ -40,11 +35,13 @@ module WebGit
40
35
 
41
36
  # @log = `git log --branches --remotes --tags --graph --oneline --decorate --pretty=format:"#%h %d %s - %cr"`
42
37
  shell_script_path = WebGit::Engine.root.to_s + "/ansi2html.sh"
43
-
44
- @log_html = `git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --branches --remotes --tags | sh #{shell_script_path} --bg=dark`
38
+ logger.debug @log_html = `git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n%C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --branches --remotes --tags | sh #{shell_script_path} --bg=dark`
45
39
  end
46
-
47
- render layout: "web_git/application"
40
+ # render layout: "web_git/application"
41
+ # render "web_git/commands/hello.html.erb"
42
+ render "web_git/commands/status.html.erb", layout: "web_git/application"
48
43
  end
44
+
49
45
  end
46
+
50
47
  end
@@ -0,0 +1 @@
1
+ We made it!
@@ -25,8 +25,7 @@
25
25
  <% end %>
26
26
 
27
27
  <% if @diff_html.present? %>
28
- <iframe srcdoc="<%= @diff_html %>" width="100%" height="400" class="mb-3">
29
- </iframe>
28
+ <%= @diff_html.html_safe %>
30
29
  <% end %>
31
30
 
32
31
  <p class="h4 mb-3 text-center">
@@ -1,4 +1,6 @@
1
1
  require "web_git/engine"
2
+ require "web_git/diff"
3
+ require "diffy"
2
4
  require "jquery-rails"
3
5
  require "octicons_helper"
4
6
  require "tether-rails"
@@ -0,0 +1,233 @@
1
+ module WebGit
2
+ class Diff
3
+ def self.get_diff
4
+ Dir.chdir(Rails.root) do
5
+ `git diff`
6
+ end
7
+ end
8
+
9
+ def self.get_each_left(diff)
10
+ filenames = get_file_names("")
11
+ files = file_diffs(diff)
12
+ lefts = {}
13
+ files.each_with_index do |file, i|
14
+ file_content = ""
15
+ lines = file.split("\n").drop(4)
16
+ start_line = 0
17
+ current_line_index = 0
18
+ line_number = start_line + current_line_index
19
+ lines.each do |line|
20
+ if !line.match?(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/)
21
+ if line.first != "+"
22
+ file_content += "#{line_number}| " + line + "\n"
23
+ line_number += 1
24
+ end
25
+ else
26
+ current_line_index = 0
27
+ # The line numbers in the output of a git diff match this regex
28
+ numbers = line.scan(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/).map(&:join)
29
+ # If left, starting line number is the first one in a split Array
30
+ start_line = numbers.first.split(" ").first.
31
+ split(",").first.to_i.abs
32
+ line_number = start_line + current_line_index
33
+ file_content += "\n"
34
+ end
35
+ end
36
+ lefts[filenames[i]] = file_content.chomp "\n"
37
+ end
38
+ lefts
39
+ end
40
+
41
+ def self.get_each_right(diff)
42
+ filenames = get_file_names("")
43
+ files = file_diffs(diff)
44
+ rights = {}
45
+ files.each_with_index do |file, i|
46
+ file_content = ""
47
+ lines = file.split("\n").drop(4)
48
+ start_line = 0
49
+ current_line_index = 0
50
+ line_number = start_line + current_line_index
51
+ lines.each do |line|
52
+ # The line numbers in the output of a git diff match this regex
53
+ # @@ -61,18 +61,15 @@
54
+ if !line.match?(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/)
55
+ if line.first != "-"
56
+ file_content += "#{line_number}| " + line + "\n"
57
+ line_number += 1
58
+ end
59
+ else
60
+ current_line_index = 0
61
+ numbers = line.scan(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/).map(&:join)
62
+ # If right, start line is the second in a split Array
63
+ start_line = numbers.first.split(" ").second.
64
+ split(",").first.to_i.abs
65
+ line_number = start_line + current_line_index
66
+ file_content += "\n"
67
+ end
68
+ end
69
+ rights[filenames[i]] = file_content.chomp "\n"
70
+ end
71
+ rights
72
+ end
73
+
74
+ def self.get_last_commit_hash
75
+ Dir.chdir(Rails.root) do
76
+ log = `git log -1 --oneline`
77
+ log.split.first
78
+ end
79
+ end
80
+
81
+ def self.file_diffs(diff)
82
+ diff.scan(/diff --git.*?(?=diff --git|\z)/m)
83
+ end
84
+
85
+ def self.match_other_files(line, file, filenames)
86
+ filenames.each do |other_file|
87
+ if file != other_file
88
+ # It looks like:
89
+ # --- a/<path-to-file>
90
+ # +++ b/<path-to-file>
91
+ if line.include?('diff --git a/' + other_file + ' b/' + other_file)
92
+ return true
93
+ end
94
+ end
95
+ end
96
+ false
97
+ end
98
+
99
+ def self.get_file_names(commit)
100
+ Dir.chdir(Rails.root) do
101
+ if commit.blank?
102
+ filenames = `git diff --name-only`
103
+ else
104
+ filenames = `git diff-tree --no-commit-id --name-only -r #{commit}`
105
+ end
106
+ filenames.split("\n")
107
+ end
108
+ end
109
+
110
+ def self.get_last_diff
111
+ Dir.chdir(Rails.root) do
112
+ `git diff -M HEAD~1`
113
+ end
114
+ end
115
+
116
+ def self.get_last_left(diff)
117
+ filenames = get_file_names(get_last_commit_hash)
118
+ files = file_diffs(diff)
119
+ ones = {}
120
+ files.each_with_index do |file, i|
121
+ file_content = ""
122
+ lines = file.split("\n").drop(4)
123
+ lines.each do |line|
124
+ # The line numbers in the output of a git diff match this regex
125
+ # @@ -61,18 +61,15 @@
126
+ if !line.match?(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/)
127
+ if line.first != "+"
128
+ line.slice!(0)
129
+ file_content += line + "\n"
130
+ end
131
+ else
132
+ file_content += "\n"
133
+ end
134
+ end
135
+ ones[filenames[i]] = file_content.chomp "\n"
136
+ end
137
+ ones
138
+ end
139
+
140
+ def self.get_last_right(diff)
141
+ filenames = get_file_names(get_last_commit_hash)
142
+ files = file_diffs(diff)
143
+ ones = {}
144
+ files.each_with_index do |file, i|
145
+ file_content = ""
146
+ lines = file.split("\n").drop(4)
147
+ lines.each do |line|
148
+ if !line.match?(/@@ ([-]\d+,\d+\s[+]\d+,\d+) @@/)
149
+ if line.first != "+"
150
+ elsif line.first == "+"
151
+ line.slice!(0)
152
+ file_content += line + "\n"
153
+ end
154
+ else
155
+ file_content += "\n"
156
+ end
157
+ end
158
+ ones[filenames[i]] = file_content.chomp "\n"
159
+ end
160
+ ones
161
+ end
162
+
163
+ def self.last_to_html(diff)
164
+ left_hash = get_last_left(diff)
165
+ right_hash = get_last_right(diff)
166
+
167
+ html_output = '<link rel="stylesheet"' +
168
+ 'href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/' +
169
+ 'bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/' +
170
+ '1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">'
171
+ html_output += '<style>'
172
+ html_output += Diffy::CSS
173
+ html_output += '</style>'
174
+ html_output += '<div class="card">'
175
+ left_hash.keys.each do |file|
176
+ html_output += '<div class="file mb-4 p-3">'
177
+ html_output += '<h4>' + file + '</h4>'
178
+ html_output += Diffy::Diff.new(
179
+ left_hash[file],
180
+ right_hash[file],
181
+ :include_plus_and_minus_in_html => true
182
+ ).to_s(:html)
183
+ html_output += '</div>'
184
+ end
185
+ html_output += '</div>'
186
+ html_output
187
+ end
188
+
189
+ def self.diff_to_html(diff)
190
+ left_hash = get_each_left(diff)
191
+ right_hash = get_each_right(diff)
192
+ html_output = '<div style="overflow-y: scroll;height:400px">'
193
+ html_output += '<style>'
194
+ html_output += Diffy::CSS
195
+ html_output += '</style>'
196
+ html_output += '<div class="row mb-3">'
197
+ html_output += '<div class="col-md-12 offset" style="overflow-y: scroll;">'
198
+
199
+ left_hash.keys.each do |file|
200
+ html_output += '<div class="row text-center">
201
+ <div class="col-12">
202
+ <h4>'
203
+ html_output+= file.to_s
204
+ html_output += '</h4>
205
+ </div>
206
+ </div>
207
+ <div class="row mb-4">
208
+ <div class="col-6">'
209
+ html_output += Diffy::SplitDiff.new(
210
+ left_hash[file],
211
+ right_hash[file],
212
+ :format => :html
213
+ ).left
214
+
215
+ html_output +=
216
+ '</div>
217
+ <div class="col-6">'
218
+ html_output += Diffy::SplitDiff.new(
219
+ left_hash[file],
220
+ right_hash[file],
221
+ :format => :html
222
+ ).right
223
+
224
+ html_output += '</div></div>'
225
+ end
226
+ html_output += "</div>"
227
+ html_output += "</div>"
228
+ html_output += "</div>"
229
+ html_output
230
+
231
+ end
232
+ end
233
+ end
Binary file
@@ -10,8 +10,8 @@ Gem::Specification.new do |s|
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
- s.authors = ["Raghu Betina".freeze]
14
- s.date = "2017-06-20"
13
+ s.authors = ["Raghu Betina".freeze, "Jelani Woods".freeze]
14
+ s.date = "2019-05-06"
15
15
  s.description = "WebGit is a Rails Engine that provides an in-browser visual interface to a simple but effective Git workflow. For educational purposes.".freeze
16
16
  s.email = "raghu@firstdraft.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  ".document",
23
23
  ".rspec",
24
24
  "Gemfile",
25
+ "Gemfile.lock",
25
26
  "LICENSE.txt",
26
27
  "MIT-LICENSE",
27
28
  "README.markdown",
@@ -43,73 +44,77 @@ Gem::Specification.new do |s|
43
44
  "app/views/web_git/commands/status.html.erb",
44
45
  "config/routes.rb",
45
46
  "lib/web_git.rb",
47
+ "lib/web_git/diff.rb",
46
48
  "lib/web_git/engine.rb",
47
49
  "lib/web_git/version.rb",
48
50
  "web_git.gemspec"
49
51
  ]
50
52
  s.homepage = "http://github.com/firstdraft/web_git".freeze
51
53
  s.licenses = ["MIT".freeze]
52
- s.rubygems_version = "2.6.11".freeze
54
+ s.rubygems_version = "3.0.1".freeze
53
55
  s.summary = "An in-browser Git GUI for your Rails project".freeze
54
56
 
55
57
  if s.respond_to? :specification_version then
56
58
  s.specification_version = 4
57
59
 
58
60
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- s.add_runtime_dependency(%q<tzinfo-data>, [">= 0"])
60
- s.add_runtime_dependency(%q<tether-rails>, [">= 0"])
61
- s.add_runtime_dependency(%q<octicons_helper>, [">= 0"])
62
- s.add_runtime_dependency(%q<turbolinks>, ["~> 5"])
63
- s.add_runtime_dependency(%q<jquery-rails>, [">= 0"])
64
- s.add_runtime_dependency(%q<git_clone_url>, [">= 0"])
65
- s.add_development_dependency(%q<rspec>, ["~> 3.5.0"])
66
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
67
- s.add_development_dependency(%q<bundler>, ["~> 1.0"])
68
- s.add_development_dependency(%q<juwelier>, ["~> 2.1.0"])
69
- s.add_development_dependency(%q<simplecov>, [">= 0"])
70
- s.add_development_dependency(%q<pry>, ["~> 0"])
71
- s.add_development_dependency(%q<pry-byebug>, ["~> 3"])
72
- s.add_development_dependency(%q<pry-doc>, ["~> 0"])
73
- s.add_development_dependency(%q<pry-remote>, ["~> 0"])
74
- s.add_development_dependency(%q<pry-rescue>, ["~> 1"])
75
- s.add_development_dependency(%q<pry-stack_explorer>, ["~> 0"])
61
+ s.add_runtime_dependency(%q<diffy>.freeze, [">= 0"])
62
+ s.add_runtime_dependency(%q<tzinfo-data>.freeze, [">= 0"])
63
+ s.add_runtime_dependency(%q<tether-rails>.freeze, [">= 0"])
64
+ s.add_runtime_dependency(%q<octicons_helper>.freeze, [">= 0"])
65
+ s.add_runtime_dependency(%q<turbolinks>.freeze, ["~> 5"])
66
+ s.add_runtime_dependency(%q<jquery-rails>.freeze, [">= 0"])
67
+ s.add_runtime_dependency(%q<git_clone_url>.freeze, [">= 0"])
68
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
69
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
70
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
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"])
76
79
  else
77
- s.add_dependency(%q<tzinfo-data>, [">= 0"])
78
- s.add_dependency(%q<tether-rails>, [">= 0"])
79
- s.add_dependency(%q<octicons_helper>, [">= 0"])
80
- s.add_dependency(%q<turbolinks>, ["~> 5"])
81
- s.add_dependency(%q<jquery-rails>, [">= 0"])
82
- s.add_dependency(%q<git_clone_url>, [">= 0"])
83
- s.add_dependency(%q<rspec>, ["~> 3.5.0"])
84
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
85
- s.add_dependency(%q<bundler>, ["~> 1.0"])
86
- s.add_dependency(%q<juwelier>, ["~> 2.1.0"])
87
- s.add_dependency(%q<simplecov>, [">= 0"])
88
- s.add_dependency(%q<pry>, ["~> 0"])
89
- s.add_dependency(%q<pry-byebug>, ["~> 3"])
90
- s.add_dependency(%q<pry-doc>, ["~> 0"])
91
- s.add_dependency(%q<pry-remote>, ["~> 0"])
92
- s.add_dependency(%q<pry-rescue>, ["~> 1"])
93
- s.add_dependency(%q<pry-stack_explorer>, ["~> 0"])
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<rspec>.freeze, ["~> 3.5.0"])
88
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
89
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
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"])
94
98
  end
95
99
  else
96
- s.add_dependency(%q<tzinfo-data>, [">= 0"])
97
- s.add_dependency(%q<tether-rails>, [">= 0"])
98
- s.add_dependency(%q<octicons_helper>, [">= 0"])
99
- s.add_dependency(%q<turbolinks>, ["~> 5"])
100
- s.add_dependency(%q<jquery-rails>, [">= 0"])
101
- s.add_dependency(%q<git_clone_url>, [">= 0"])
102
- s.add_dependency(%q<rspec>, ["~> 3.5.0"])
103
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
104
- s.add_dependency(%q<bundler>, ["~> 1.0"])
105
- s.add_dependency(%q<juwelier>, ["~> 2.1.0"])
106
- s.add_dependency(%q<simplecov>, [">= 0"])
107
- s.add_dependency(%q<pry>, ["~> 0"])
108
- s.add_dependency(%q<pry-byebug>, ["~> 3"])
109
- s.add_dependency(%q<pry-doc>, ["~> 0"])
110
- s.add_dependency(%q<pry-remote>, ["~> 0"])
111
- s.add_dependency(%q<pry-rescue>, ["~> 1"])
112
- s.add_dependency(%q<pry-stack_explorer>, ["~> 0"])
100
+ s.add_dependency(%q<diffy>.freeze, [">= 0"])
101
+ 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<rspec>.freeze, ["~> 3.5.0"])
108
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
109
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
110
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
111
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
112
+ s.add_dependency(%q<pry>.freeze, ["~> 0"])
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"])
113
118
  end
114
119
  end
115
120
 
metadata CHANGED
@@ -1,15 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raghu Betina
8
+ - Jelani Woods
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-06-20 00:00:00.000000000 Z
12
+ date: 2019-07-09 00:00:00.000000000 Z
12
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: diffy
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
13
28
  - !ruby/object:Gem::Dependency
14
29
  name: tzinfo-data
15
30
  requirement: !ruby/object:Gem::Requirement
@@ -260,6 +275,7 @@ files:
260
275
  - ".document"
261
276
  - ".rspec"
262
277
  - Gemfile
278
+ - Gemfile.lock
263
279
  - LICENSE.txt
264
280
  - MIT-LICENSE
265
281
  - README.markdown
@@ -278,11 +294,14 @@ files:
278
294
  - app/controllers/web_git/commands_controller.rb
279
295
  - app/controllers/web_git/commits_controller.rb
280
296
  - app/views/layouts/web_git/application.html.erb
297
+ - app/views/web_git/commands/hello.html.erb
281
298
  - app/views/web_git/commands/status.html.erb
282
299
  - config/routes.rb
283
300
  - lib/web_git.rb
301
+ - lib/web_git/diff.rb
284
302
  - lib/web_git/engine.rb
285
303
  - lib/web_git/version.rb
304
+ - web_git-0.0.1.gem
286
305
  - web_git.gemspec
287
306
  homepage: http://github.com/firstdraft/web_git
288
307
  licenses:
@@ -303,7 +322,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
303
322
  - !ruby/object:Gem::Version
304
323
  version: '0'
305
324
  requirements: []
306
- rubygems_version: 3.0.1
325
+ rubyforge_project:
326
+ rubygems_version: 2.7.8
307
327
  signing_key:
308
328
  specification_version: 4
309
329
  summary: An in-browser Git GUI for your Rails project