Class: Precious::Views::Compare
- Includes:
- HasPage
- Defined in:
- lib/gollum/views/compare.rb
Direct Known Subclasses
Constant Summary
Constants included from RouteHelpers
Constants included from LocaleHelpers
LocaleHelpers::NO_METHOD_MESSAGE, LocaleHelpers::YAML_VARIABLE_REGEXP
Instance Attribute Summary collapse
-
#allow_editing ⇒ Object
readonly
Returns the value of attribute allow_editing.
-
#diff ⇒ Object
readonly
Returns the value of attribute diff.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#page ⇒ Object
readonly
Returns the value of attribute page.
-
#versions ⇒ Object
readonly
Returns the value of attribute versions.
Attributes inherited from Layout
Instance Method Summary collapse
- #after ⇒ Object
- #before ⇒ Object
- #git_line?(line) ⇒ Boolean
- #left_diff_line_number(line) ⇒ Object
-
#line_class(line) ⇒ Object
private.
- #lines(diff = @diff) ⇒ Object
- #right_diff_line_number(line) ⇒ Object
- #show_revert ⇒ Object
- #title ⇒ Object
Methods included from HasPage
#escaped_url_path, #format, #id, #path
Methods inherited from Layout
#base_url, #critic_markup, #css, #custom_css, #custom_js, #custom_path, #escaped_name, #has_path, #history, #js, #latest_changes, #mathjax_config_path, #mathjax_js, #overview, #partial, #per_page_uploads, #search, #show_local_time
Methods included from TemplateCascade
#first_path_available, #template_file, #template_priority_path, #template_priority_path=
Methods included from OcticonHelpers
included, #octicon, #rocticon, #rocticon_css
Methods included from RouteHelpers
#clean_url, included, #page_route, parse_routes
Methods included from SprocketsHelpers
included, #sprockets_asset_path, #sprockets_image_path, #sprockets_javascript_tag, #sprockets_stylesheet_tag
Methods included from LocaleHelpers
Methods included from AppHelpers
Instance Attribute Details
#allow_editing ⇒ Object (readonly)
Returns the value of attribute allow_editing.
6 7 8 |
# File 'lib/gollum/views/compare.rb', line 6 def allow_editing @allow_editing end |
#diff ⇒ Object (readonly)
Returns the value of attribute diff.
6 7 8 |
# File 'lib/gollum/views/compare.rb', line 6 def diff @diff end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
6 7 8 |
# File 'lib/gollum/views/compare.rb', line 6 def @message end |
#page ⇒ Object (readonly)
Returns the value of attribute page.
6 7 8 |
# File 'lib/gollum/views/compare.rb', line 6 def page @page end |
#versions ⇒ Object (readonly)
Returns the value of attribute versions.
6 7 8 |
# File 'lib/gollum/views/compare.rb', line 6 def versions @versions end |
Instance Method Details
#after ⇒ Object
16 17 18 |
# File 'lib/gollum/views/compare.rb', line 16 def after @versions[1][0..6] end |
#before ⇒ Object
12 13 14 |
# File 'lib/gollum/views/compare.rb', line 12 def before @versions[0][0..6] end |
#git_line?(line) ⇒ Boolean
104 105 106 |
# File 'lib/gollum/views/compare.rb', line 104 def git_line?(line) !!(line =~ /^(\\ No newline|Binary files|@@)/) end |
#left_diff_line_number(line) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/gollum/views/compare.rb', line 62 def left_diff_line_number(line) if git_line?(line) m, li = *line.match(/\-(\d+)/) @left_diff_line_number = li.to_i @current_line_number = @left_diff_line_number ret = '...' elsif line[0] == ?- ret = @left_diff_line_number.to_s @left_diff_line_number += 1 @current_line_number = @left_diff_line_number - 1 elsif line[0] == ?+ ret = ' ' else ret = @left_diff_line_number.to_s @left_diff_line_number += 1 @current_line_number = @left_diff_line_number - 1 end ret end |
#line_class(line) ⇒ Object
private
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/gollum/views/compare.rb', line 46 def line_class(line) if line =~ /^@@/ 'gc' elsif git_line?(line) 'gg' elsif line =~ /^\+/ 'gi' elsif line =~ /^\-/ 'gd' else '' end end |
#lines(diff = @diff) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gollum/views/compare.rb', line 20 def lines(diff = @diff) lines = [] lines_to_parse = diff.split("\n")[3..-1] lines_to_parse = lines_to_parse[2..-1] if lines_to_parse[0] =~ /^(---|rename to )/ if lines_to_parse.nil? || lines_to_parse.empty? lines_to_parse = [] # File is created without content else lines_to_parse = lines_to_parse[1..-1] if lines_to_parse[0].start_with?('+++') end lines_to_parse.each_with_index do |line, line_index| lines << { :line => line, :class => line_class(line), :ldln => left_diff_line_number(line), :rdln => right_diff_line_number(line) } end lines end |
#right_diff_line_number(line) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/gollum/views/compare.rb', line 84 def right_diff_line_number(line) if git_line?(line) m, ri = *line.match(/\+(\d+)/) @right_diff_line_number = ri.to_i @current_line_number = @right_diff_line_number ret = '...' elsif line[0] == ?- ret = ' ' elsif line[0] == ?+ ret = @right_diff_line_number.to_s @right_diff_line_number += 1 @current_line_number = @right_diff_line_number - 1 else ret = @right_diff_line_number.to_s @right_diff_line_number += 1 @current_line_number = @right_diff_line_number - 1 end ret end |
#show_revert ⇒ Object
40 41 42 |
# File 'lib/gollum/views/compare.rb', line 40 def show_revert !@message end |
#title ⇒ Object
8 9 10 |
# File 'lib/gollum/views/compare.rb', line 8 def title "Comparison of #{@page.title}" end |