llt-review 0.0.1 → 0.0.2

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.
@@ -0,0 +1,113 @@
1
+ @mixin bg-transition($duration) {
2
+ transition: background-color $duration ease-out;
3
+ -webkit-transition: background-color $duration ease-out;
4
+ -moz-transition: background-color $duration ease-out;
5
+ -o-transition: background-color $duration ease-out;
6
+
7
+ }
8
+ .container {
9
+ max-width: 1000px;
10
+ margin: 20px auto;
11
+ }
12
+
13
+ .center {
14
+ text-align: center;
15
+ }
16
+
17
+ .right {
18
+ text-align: right;
19
+ }
20
+
21
+ .underline {
22
+ text-decoration: underline;
23
+ }
24
+
25
+ strong {
26
+ font-weight: bold;
27
+ }
28
+
29
+ .small {
30
+ font-size: small;
31
+ }
32
+
33
+ td.first {
34
+ text-align: left;
35
+ padding: 5px 10px;
36
+ /*border-bottom: 1px solid #434343;*/
37
+ color: #b6b6b6;
38
+ font-family: 'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;
39
+ font-weight: normal;
40
+ }
41
+
42
+ .success {
43
+ color: rgb(106, 243, 106);
44
+ }
45
+
46
+ .success-bg {
47
+ background-color: green;
48
+ @include bg-transition(200ms);
49
+ }
50
+
51
+ .error-bg {
52
+ background-color: darkred;
53
+ @include bg-transition(200ms);
54
+ }
55
+
56
+ .error {
57
+ color: red;
58
+ }
59
+
60
+ .yellow {
61
+ color: yellow;
62
+ }
63
+
64
+ .big{
65
+ font-size: x-large;
66
+ }
67
+
68
+ .tooltipsy {
69
+ background: rgba(0,0,0,.9);
70
+ border-radius: 5px;
71
+ margin-bottom: 5px;
72
+ color: #fff;
73
+ white-space: pre;
74
+ padding: 5px 15px;
75
+ z-index: 98;
76
+ max-width: 220px;
77
+ }
78
+
79
+ sup.tiny {
80
+ color: #b6b6b6;
81
+ font-size: 50%;
82
+ top: -0.8em;
83
+ left: -0.4em;
84
+ }
85
+
86
+ table.word-diff-table {
87
+ @extend table.subtable;
88
+
89
+ width: 72%;
90
+ margin-left: 14%;
91
+ margin-right: 14%;
92
+
93
+ td {
94
+ &.large {
95
+ width: 24%;
96
+ }
97
+ &.small {
98
+ width: 19%;
99
+ border-left: 1px solid #434343;
100
+ }
101
+ &.postag {
102
+ font-family: "Lucida Console", Monaco, monospace;
103
+ }
104
+ }
105
+ }
106
+
107
+ table.subtable {
108
+ font-size: .8rem;
109
+ }
110
+
111
+ .clickable {
112
+ cursor: pointer;
113
+ }
@@ -0,0 +1 @@
1
+ .container{max-width:1000px;margin:20px auto}.center{text-align:center}.right{text-align:right}.underline{text-decoration:underline}strong{font-weight:bold}.small{font-size:small}td.first{text-align:left;padding:5px 10px;color:#b6b6b6;font-family:'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}.success{color:#6af36a}.success-bg{background-color:green;transition:background-color 200ms ease-out;-webkit-transition:background-color 200ms ease-out;-moz-transition:background-color 200ms ease-out;-o-transition:background-color 200ms ease-out}.error-bg{background-color:darkred;transition:background-color 200ms ease-out;-webkit-transition:background-color 200ms ease-out;-moz-transition:background-color 200ms ease-out;-o-transition:background-color 200ms ease-out}.error{color:red}.yellow{color:yellow}.big{font-size:x-large}.tooltipsy{background:rgba(0,0,0,0.9);border-radius:5px;margin-bottom:5px;color:#fff;white-space:pre;padding:5px 15px;z-index:98;max-width:220px}sup.tiny{color:#b6b6b6;font-size:50%;top:-0.8em;left:-0.4em}table.word-diff-table{width:72%;margin-left:14%;margin-right:14%}table.word-diff-table td.large{width:24%}table.word-diff-table td.small{width:19%;border-left:1px solid #434343}table.word-diff-table td.postag{font-family:"Lucida Console", Monaco, monospace}table.subtable,table.word-diff-table{font-size:.8rem}.clickable{cursor:pointer}
@@ -189,34 +189,41 @@ describe LLT::Review::Treebank do
189
189
  pos['v'].total.should == 2
190
190
 
191
191
  persons = datapoints[:persons]
192
- persons.total.should == 2
192
+ persons.total.should == 10
193
193
  persons['3'].total.should == 2
194
+ persons['-'].total.should == 8
194
195
 
195
196
  numbers = datapoints[:numbers]
196
- numbers.total.should == 8
197
+ numbers.total.should == 10
197
198
  numbers['s'].total.should == 8
199
+ numbers['-'].total.should == 2
198
200
 
199
201
  tenses = datapoints[:tenses]
200
- tenses.total.should == 2
202
+ tenses.total.should == 10
201
203
  tenses['i'].total.should == 2
204
+ tenses['-'].total.should == 8
202
205
 
203
206
  moods = datapoints[:moods]
204
- moods.total.should == 2
207
+ moods.total.should == 10
205
208
  moods['i'].total.should == 2
209
+ moods['-'].total.should == 8
206
210
 
207
211
  voices= datapoints[:voices]
208
- voices.total.should == 2
212
+ voices.total.should == 10
209
213
  voices['a'].total.should == 2
214
+ voices['-'].total.should == 8
210
215
 
211
216
  genders = datapoints[:genders]
212
- genders.total.should == 6
217
+ genders.total.should == 10
213
218
  genders['n'].total.should == 4
214
219
  genders['m'].total.should == 2
220
+ genders['-'].total.should == 4
215
221
 
216
222
  cases = datapoints[:cases]
217
- cases.total.should == 6
223
+ cases.total.should == 10
218
224
  cases['b'].total.should == 4
219
225
  cases['n'].total.should == 2
226
+ cases['-'].total.should == 4
220
227
  end
221
228
  end
222
229
  end
@@ -0,0 +1,12 @@
1
+ %div.comparison_toggle{ c_id: combined_extracted_id(comparison)}
2
+ - percentage = comparison.report[:words].percentage
3
+ %span
4
+
5
+ %span{title: "Percentage of identical tokens"}
6
+ = haml :percentage, locals: { percentage: percentage }
7
+ %span -
8
+ %strong
9
+ = origin(comparison.reviewable)
10
+ %span against
11
+ %strong
12
+ = origin(comparison.gold)
data/views/index.haml ADDED
@@ -0,0 +1,99 @@
1
+ %h3.center.underline LLT Review
2
+
3
+ - diff.all_diffs.each do |c|
4
+ - rev = c.reviewable
5
+ - gold = c.gold
6
+ %p
7
+ = haml :comparison_header, locals: { comparison: c }
8
+ %div.comparison{id: combined_extracted_id(c)}
9
+ %h4.center.underline Report
10
+
11
+ %table
12
+ %tr
13
+ = haml :report_headers
14
+ - c.report.each do |category, rep|
15
+ - cl = category == :relations ? 'clickable' : ''
16
+
17
+ %tr.toggler{toggler: category, class: cl}
18
+ = haml :report_columns, locals: { label: category.capitalize, report: rep}
19
+
20
+ - if category == :relations
21
+ %tr{id: category}
22
+ %td{colspan: 6}
23
+ %table.subtable
24
+ %tr
25
+ = haml :report_headers
26
+ - sorted = rep.each_with_object([]) do |(k, v), h|
27
+ - h << [v.percentage, k, v]
28
+ - sorted.sort.each do |percent, label, obj|
29
+ %tr
30
+ = haml :report_columns, locals: { label: label, report: obj }
31
+
32
+ %h4.center.underline Diff
33
+ - c.each do |s_id, s_diff|
34
+ - next if s_id == :report
35
+ - sentence = rev.sentences[s_id]
36
+
37
+ .sentence
38
+ %p
39
+ %strong.big.yellow
40
+ = s_id
41
+ - sentence.each do |w_id, w|
42
+ - attrs = { id: to_id(s_id, w_id), class: 'token' }
43
+ - if w_diff = s_diff[w_id]
44
+ - attrs[:tooltip] = w_diff.map { |k, v| to_tooltip(k, v) }.join("\n")
45
+ - if heads = extract_heads(w_diff, s_id)
46
+ - attrs[:hr] = heads[0]
47
+ - attrs[:hw] = heads[1]
48
+ - attrs[:class] << ' head-error'
49
+ - attrs[:class] << ' error tooltip'
50
+ %span{attrs}
51
+ = haml :token, locals: { form: w.form, id: w_id }
52
+
53
+ %div.word-diff-container
54
+ .h4.clickable.underline{style: 'margin-left: 20px'} Diffs per Word
55
+ %table.word-diff-table
56
+ %tr{style: 'width: 28%'}
57
+ %th.center
58
+ %th.center head
59
+ %th.center relation
60
+ %th.center lemma
61
+ %th.center postag
62
+ - sentence.each do |w_id, w|
63
+ %tr
64
+ - w_diff = s_diff[w_id]
65
+ - errors = w_diff ? w_diff.container : {}
66
+ %td.first.large
67
+ - icon, cl = errors.empty? ? ['✔', :success] : ['✘', :error]
68
+ %span{class: cl}
69
+ = icon
70
+ = haml :token, locals: { form: w.form, id: w_id }
71
+
72
+ - tds = { head: [], relation: [], lemma: [], postag: ['center', 'postag'] }
73
+ - tds.each do |category, classes|
74
+
75
+ - error = errors[category]
76
+ - cl = error ? 'error-bg' : 'success-bg'
77
+ %td{class: [cl, 'small'] + classes}
78
+ - val = (error ? error.new : w[category]).to_s
79
+ - if category == :head
80
+ - parsed_head = sentence[val.to_i]
81
+ - f, id = parsed_head ? [parsed_head.form, parsed_head.id] : ["ROOT", 0]
82
+ = haml :token, locals: { form: f, id: id }
83
+ - else
84
+ %span
85
+ = val
86
+ %tr
87
+ - total = sentence.container.length
88
+ - wrongs = [s_diff.container.length]
89
+ - categories = %i{ head relation lemma postag };
90
+ - wrongs += categories.map do |cat|
91
+ - s_diff.container.inject(0) { |m, (_, w_diff)| m += w_diff[cat] ? 1 : 0 }
92
+ - wrongs.each do |wrong|
93
+ - percent = to_percent(total, total - wrong)
94
+ %td.center
95
+ = haml :percentage, locals: { percentage: percent }
96
+
97
+ .center.small
98
+ %a{ href: arethusa(extracted_id(rev.id), extracted_id(gold.id), gold.sentences.lang, s_id)}
99
+ View in Arethusa
data/views/layout.haml ADDED
@@ -0,0 +1,12 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title LLT Review
5
+ %link{ rel: 'stylesheet', href: url('/stylesheets/default_styles.css') }
6
+ %link{ rel: 'stylesheet', href: url('/stylesheets/style.css') }
7
+ %body
8
+ .container= yield
9
+
10
+ %script{ src: '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'}
11
+ %script{ src: url('/javascripts/tooltipsy.min.js') }
12
+ %script{ src: url('/javascripts/script.js') }
@@ -0,0 +1,2 @@
1
+ %span.percentage{percentage: percentage}
2
+ = percentage
@@ -0,0 +1,13 @@
1
+ %td.first
2
+ = label
3
+ %td
4
+ = report.total
5
+ %td
6
+ = report.right
7
+ %td
8
+ = report.wrong
9
+ %td
10
+ = report.unique
11
+ %td
12
+ = haml :percentage, locals: { percentage: report.percentage }
13
+
@@ -0,0 +1,7 @@
1
+ %th
2
+ %th Total
3
+ %th.success{title: 'right'} ✔
4
+ %th.error{title: 'wrong'} ✘
5
+ %th.yellow{title: 'unique'} 1
6
+ %th{title: 'Percentage'} %
7
+
data/views/token.haml ADDED
@@ -0,0 +1,5 @@
1
+ %span
2
+ = form
3
+ %sup.tiny<
4
+ = id
5
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llt-review
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
  - LFDM
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-19 00:00:00.000000000 Z
11
+ date: 2014-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '2.14'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '2.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sass
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: haml
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'
69
97
  description: Reviews annotations
70
98
  email:
71
99
  - 1986gh@gmail.com
@@ -104,6 +132,7 @@ files:
104
132
  - lib/llt/review/alignment/translation.rb
105
133
  - lib/llt/review/alignment/word.rb
106
134
  - lib/llt/review/api.rb
135
+ - lib/llt/review/api/helpers.rb
107
136
  - lib/llt/review/common.rb
108
137
  - lib/llt/review/common/comparison.rb
109
138
  - lib/llt/review/common/difference.rb
@@ -118,6 +147,8 @@ files:
118
147
  - lib/llt/review/helpers/diff_reporter.rb
119
148
  - lib/llt/review/helpers/parsing.rb
120
149
  - lib/llt/review/helpers/parsing/helper.rb
150
+ - lib/llt/review/helpers/parsing/helper/annotator.rb
151
+ - lib/llt/review/helpers/parsing/helper/annotators.rb
121
152
  - lib/llt/review/helpers/parsing/helper/for_nokogiri.rb
122
153
  - lib/llt/review/helpers/parsing/result.rb
123
154
  - lib/llt/review/helpers/reportable.rb
@@ -152,6 +183,11 @@ files:
152
183
  - lib/llt/review/treebank/word.rb
153
184
  - lib/llt/review/version.rb
154
185
  - llt-review.gemspec
186
+ - public/javascripts/script.js
187
+ - public/javascripts/tooltipsy.min.js
188
+ - public/stylesheets/default_styles.css
189
+ - public/stylesheets/sass/style.scss
190
+ - public/stylesheets/style.css
155
191
  - spec/lib/llt/review/alignment/parser_spec.rb
156
192
  - spec/lib/llt/review/alignment_spec.rb
157
193
  - spec/lib/llt/review/helpers/reportable_spec.rb
@@ -160,6 +196,13 @@ files:
160
196
  - spec/lib/llt/review/treebank_spec.rb
161
197
  - spec/lib/llt/review_spec.rb
162
198
  - spec/spec_helper.rb
199
+ - views/comparison_header.haml
200
+ - views/index.haml
201
+ - views/layout.haml
202
+ - views/percentage.haml
203
+ - views/report_columns.haml
204
+ - views/report_headers.haml
205
+ - views/token.haml
163
206
  homepage: ''
164
207
  licenses:
165
208
  - MIT