File: demo_app.rb

package info (click to toggle)
ruby-diffy 3.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 208 kB
  • sloc: ruby: 1,006; makefile: 2
file content (46 lines) | stat: -rw-r--r-- 1,597 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
require 'rubygems'
require 'sinatra'
require 'json'
require 'diffy'

blk = proc do
  Diffy::Diff.default_options.merge! JSON.parse(params[:options]) rescue {}
  haml "- d = Diffy::Diff.new(params[:one].to_s, params[:two].to_s)\n%div= d.to_s(:html)\n%pre= d.to_s"
end
post '/', &blk
get '/', &blk
__END__

@@ layout
%html
  %head
    :css
      .diff{overflow:auto;}
      .diff ul{background:#fff;overflow:auto;font-size:13px;list-style:none;margin:0;padding:0;display:table;width:100%;}
      .diff del, .diff ins{display:block;text-decoration:none;}
      .diff li{padding:0; display:table-row;margin: 0;height:1em;}
      .diff li.ins{background:#dfd; color:#080}
      .diff li.del{background:#fee; color:#b00}
      .diff li:hover{background:#ffc}
      .diff del, .diff ins, .diff span{white-space:pre-wrap;font-family:courier;}
      .diff del strong{font-weight:normal;background:#fcc;}
      .diff ins strong{font-weight:normal;background:#9f9;}
      .diff li.diff-comment { display: none; }
      .diff li.diff-block-info { background: none repeat scroll 0 0 gray; }
    %body
      = yield
      %form{:action => '', :method => 'post'}
        %label JSON diff options
        %textarea{:name => 'options', :style => 'width:100%;height:250px;'}= params[:options]
        %label One
        %textarea{:name => 'one', :style => 'width:100%;height:250px;'}= params[:one]
        %br/
        %label Two
        %textarea{:name => 'two', :style => 'width:100%;height:250px;'}= params[:two]
        %br/
        %input{:type => 'submit'}
        %br/

@@ index
%div.title Hello world!!!!!