seznam_slovnik 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/lib/seznam_slovnik/translate.rb +41 -20
- data/lib/seznam_slovnik/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec8ffdf5a7d87aeef0258e35d5a4585c004ee17d92f751416ba2fdf730b47bfd
|
4
|
+
data.tar.gz: 814d94edeaaf9b1297896a7333c98be888de54741a5fc8fb9e7278f59e8ada83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bc16b54c4d7203ae864b55f20d409c5075daabe832f8cf1ec400f51f98597449972941ad323d3283d07c3f44f0e4c3f119ea37e9c144e3646b3582a2388177e
|
7
|
+
data.tar.gz: 88e230d60c48498fe1b2a1c0017fbd821a889bec559604badd386aa2eff0ce7b4a7679f6ccf204813dfa8c7eeb38df4e77b6d17be1e13a0f5577445c74758077
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.5
|
1
|
+
ruby-2.6.5
|
@@ -39,11 +39,10 @@ module SeznamSlovnik
|
|
39
39
|
|
40
40
|
doc = Nokogiri::HTML(html)
|
41
41
|
|
42
|
-
title = doc.css('
|
43
|
-
|
44
|
-
.css('
|
45
|
-
.map(&method(:
|
46
|
-
.reject(&:empty?)
|
42
|
+
title = doc.css('h1').text
|
43
|
+
parts = doc
|
44
|
+
.css('.TranslatePage-results .Box--partOfSpeech')
|
45
|
+
.map(&method(:build_part_of_speech))
|
47
46
|
|
48
47
|
_, columns = IO.console.winsize
|
49
48
|
out = <<~OUT
|
@@ -51,12 +50,26 @@ module SeznamSlovnik
|
|
51
50
|
Results for: #{title.colorize(color: :light_blue, mode: :bold)}
|
52
51
|
#{"=" * (title.length + 13)}
|
53
52
|
|
54
|
-
|
55
|
-
|
53
|
+
Definitions
|
54
|
+
===========
|
55
|
+
|
56
56
|
OUT
|
57
57
|
|
58
|
-
|
59
|
-
out <<
|
58
|
+
parts.each do |part|
|
59
|
+
out << part[:name]
|
60
|
+
out << "\n"
|
61
|
+
out << "-" * part[:name].length
|
62
|
+
out << "\n"
|
63
|
+
part[:definitions].each_with_index do |definition, i|
|
64
|
+
out << " #{i + 1})"
|
65
|
+
needs_padding = false
|
66
|
+
definition[:lines].each do |line|
|
67
|
+
out << " " * part[:definition_pad] if needs_padding
|
68
|
+
out << " * #{line}\n"
|
69
|
+
needs_padding = true
|
70
|
+
end
|
71
|
+
end
|
72
|
+
out << "\n"
|
60
73
|
end
|
61
74
|
out << "\n"
|
62
75
|
out << "-" * columns.to_i
|
@@ -64,17 +77,25 @@ module SeznamSlovnik
|
|
64
77
|
puts(color ? out : out.uncolorize)
|
65
78
|
end
|
66
79
|
|
67
|
-
private def
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
80
|
+
private def build_part_of_speech(part)
|
81
|
+
pos = {}
|
82
|
+
pos[:name] = part.at_css('.Box-header-title').text
|
83
|
+
pos[:definitions] = part.css('li').map(&method(:build_definition))
|
84
|
+
pos[:definition_pad] = pos[:definitions].length.to_s.length + 2 # " 1)"
|
85
|
+
pos
|
86
|
+
end
|
87
|
+
|
88
|
+
private def build_definition(definition)
|
89
|
+
df = {}
|
90
|
+
df[:lines] = definition.css('.Box-content-line').map(&method(:clean_line))
|
91
|
+
df
|
92
|
+
end
|
93
|
+
|
94
|
+
private def clean_line(line)
|
95
|
+
line.children.map do |part|
|
96
|
+
next '->' if part['class'].to_s == "Box-content-pointer"
|
97
|
+
part.text
|
98
|
+
end.map(&:strip).reject(&:empty?).join(' ')
|
78
99
|
end
|
79
100
|
end
|
80
101
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seznam_slovnik
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jphager2
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -139,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
requirements: []
|
142
|
-
|
143
|
-
rubygems_version: 2.7.7
|
142
|
+
rubygems_version: 3.0.6
|
144
143
|
signing_key:
|
145
144
|
specification_version: 4
|
146
145
|
summary: CLI for Seznam's Slovnik
|