elexis-wiki-interface 0.4.5 → 0.4.6
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/History.txt +6 -0
- data/README.textile +7 -4
- data/lib/elexis/wiki/interface/version.rb +1 -1
- data/lib/elexis/wiki/interface/workspace.rb +23 -22
- data/spec/data/push/ch.elexis.core.application/doc/ChElexisViewsBestellblatt.mediawiki +19 -0
- data/spec/pull_spec.rb +3 -3
- data/spec/update_images_spec.rb +22 -12
- metadata +4 -8
- data/spec/run/push/ch.elexis.icpc/doc/icpc3.png +0 -0
- data/spec/run/push/ch.elexis.icpc/doc/icpc4.png +0 -0
- data/spec/run/push/ch.elexis.icpc/doc/icpc5.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1af9634489e62b4b68be7683c5711ea4f29cf403
|
4
|
+
data.tar.gz: f8d6689239f46763698749f8b4dd0e2a575dcaf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 791b7f0da48c69730dabde66490ec12fdca8a509cdb5f1987c41e9216045615156e077f20aa9334cec519da207bbbb0054b12546dc031453105d43fadedf1551
|
7
|
+
data.tar.gz: 6c1ac1fdb2cd40507b3cfcd811d9d4df77311afcd70bb3c2c3b9e98d5731b7c7e4028f8919e5daf9d074023c4877736d5304b0f6cd35b4e5a8ef170e349dae0f
|
data/Gemfile.lock
CHANGED
data/History.txt
CHANGED
data/README.textile
CHANGED
@@ -45,7 +45,6 @@ workspace.pull # get actual mediawiki content and place it under doc inside the
|
|
45
45
|
workspace.info.show
|
46
46
|
pp workspace.views_missing_documentation # returns an array of plugin-ids
|
47
47
|
pp workspace.perspectives_missing_documentation # returns an array of plugin-ids
|
48
|
-
pp workspace.plugins_missing_documentation # returns an array of plugis
|
49
48
|
workspace.push # push doc/*.mediwiki files to the wiki
|
50
49
|
|
51
50
|
Or you can inspire you from the spec/*_spec.rb files to see tested examples.
|
@@ -69,13 +68,20 @@ h3. Conventions
|
|
69
68
|
|
70
69
|
* You must create a directory config with a file hosts.yml containing the mediawiki-gateway configuration (host, username, password)
|
71
70
|
|
71
|
+
* Use tag File
|
72
|
+
We decided to use only the tag file as https://www.mediawiki.org/wiki/Help:Images/de recommends, even when the legacy tag Image is still supported.
|
73
|
+
Also we don't use the tag Datei, as this one is not supported by the Mylin Wikitext extension of Eclipse.
|
74
|
+
|
72
75
|
* The push/pull methods use the convention
|
73
76
|
** in page names all '.' are removed
|
74
77
|
** a plugin plugin.name has a page plugin.name
|
75
78
|
** a view view.name with a localized name localized_name has a page <plugin.name>Views<localized_name>
|
76
79
|
** a perspective perspective.name with a localized name localized_name has a page P_<localized_name>
|
80
|
+
** an image file must be lowercase (files which differ only by the case will be deleted)
|
81
|
+
** use syntax @[[File:@, not [[Datei: or @[[Image:@
|
77
82
|
** png files should start with their plugin/feature-name followed by '/' by a name or a globally unique name
|
78
83
|
** png files resides inside the 'doc' sub-directory of each plugin/feature
|
84
|
+
** inside the doc directoy we create a logical link of the plugin|feature name to the directory. This allows us to edit and preview the mediawiki files using the Mylin Wikitext extension of Eclipse.
|
79
85
|
|
80
86
|
h3. Limitations/TODO
|
81
87
|
|
@@ -89,9 +95,6 @@ h3. Limitations/TODO
|
|
89
95
|
*** ch.elexis.core.application/plugin.xml: name="%elexis.articleSelectorView">
|
90
96
|
** Missing line [[Datei:Ch.elexis:Artikelauswahl.png]] in http://wiki.elexis.info/ChElexisViewsArtikelArtikelselektor
|
91
97
|
* Perspektives: were not uploaded to doc_de
|
92
|
-
* No images are pulled/pushed at the moment.
|
93
|
-
* Check whether a link to the view exists on the wiki.elexis.info/Hauptseite
|
94
|
-
* No support for features at the moment
|
95
98
|
* No multilingual support at the moment
|
96
99
|
|
97
100
|
|
@@ -15,14 +15,6 @@ module Elexis
|
|
15
15
|
TestPattern = /[\._]test[s]*$/i
|
16
16
|
$ws_errors = []
|
17
17
|
|
18
|
-
# All images under wiki.elexis.info must have images corresponding to the following scheme
|
19
|
-
# directory (optional): id of the plugin/feature (with feature.feature.group removed)
|
20
|
-
# imagename:
|
21
|
-
# Therefore you find und http://wiki.elexis.info/index.php?title=Ch.elexis.connect.mythic&action=edit the line
|
22
|
-
# [[Image:ch.elexis.connect.mythic_kabel.png|image]] [fig:kabel]
|
23
|
-
# and under http://wiki.elexis.info/index.php?title=Com.hilotec.elexis.opendocument.feature.feature.group&action=edit
|
24
|
-
# [[Image:com.hilotec.elexis.opendocument/anleitung_opendocument_1.png|frame|none]]
|
25
|
-
|
26
18
|
def Interface.return_canonical_image_name(pagename, filename)
|
27
19
|
pagename = pagename.sub('.feature.feature.group', '')
|
28
20
|
short = File.basename(filename.downcase.sub(ImagePrefix, ''))
|
@@ -30,12 +22,23 @@ module Elexis
|
|
30
22
|
/[:\/]/.match(filename) ? pagename + '/' + short : short
|
31
23
|
end
|
32
24
|
|
25
|
+
def Interface.remove_image_ignoring_case(filename)
|
26
|
+
files = Dir.glob(filename, File::FNM_CASEFOLD)
|
27
|
+
return if files.size == 1
|
28
|
+
files.each{
|
29
|
+
|file|
|
30
|
+
next if File.basename(file).eql?(File.basename(filename))
|
31
|
+
cmd = "git rm -f #{file}"
|
32
|
+
res = system(cmd)
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
33
36
|
def Interface.fix_image_locations(filename, pagename)
|
34
37
|
return unless File.exists?(filename)
|
35
38
|
pagename = pagename.sub('.feature.feature.group', '')
|
36
39
|
lines = IO.readlines(filename)
|
37
40
|
dirName = File.dirname(filename)
|
38
|
-
newLines =
|
41
|
+
newLines = ''
|
39
42
|
showDetails = $VERBOSE
|
40
43
|
if /icpc.mediawiki/i.match(filename)
|
41
44
|
showDetails = true
|
@@ -43,26 +46,27 @@ module Elexis
|
|
43
46
|
lines.each{
|
44
47
|
|line|
|
45
48
|
unless m =ImagePattern.match(line)
|
46
|
-
newLines
|
49
|
+
newLines += line
|
47
50
|
else
|
48
51
|
new_name = Interface.return_canonical_image_name(pagename, m[2])
|
49
52
|
unless new_name.eql?(File.basename(new_name))
|
50
53
|
FileUtils.ln_s('.', File.dirname(new_name), :verbose => true) unless File.exists?(File.dirname(new_name))
|
51
54
|
end
|
52
55
|
simpleName = File.join(dirName, File.basename(new_name))
|
53
|
-
if files = Dir.glob(simpleName, File::FNM_CASEFOLD) and files.size
|
56
|
+
if files = Dir.glob(simpleName, File::FNM_CASEFOLD) and files.size >= 1
|
54
57
|
new_line = line.sub(m[2], new_name)
|
55
|
-
newLines
|
58
|
+
newLines += new_line
|
59
|
+
Interface.remove_image_ignoring_case(simpleName)
|
56
60
|
else
|
57
61
|
next if defined?(RSpec)
|
58
|
-
msg = "Could not find image for #{m[0]} searched for #{simpleName} in #{Dir.pwd}"
|
62
|
+
msg = "Could not find image for #{m[0]} searched for #{simpleName} in #{Dir.pwd}. files are #{files}"
|
59
63
|
puts msg
|
60
64
|
$ws_errors << msg
|
61
|
-
newLines
|
65
|
+
newLines += line.sub(ImagePattern, "#{m[1]}#{m[2].sub(':', '_')}")
|
62
66
|
end
|
63
67
|
end
|
64
68
|
}
|
65
|
-
File.open(filename, "w
|
69
|
+
File.open(filename, "w") {|f| f.write newLines.gsub(/\[\[Datei:|\[\[Image:/i, '[[File:')}
|
66
70
|
end
|
67
71
|
|
68
72
|
class Workspace
|
@@ -195,8 +199,9 @@ module Elexis
|
|
195
199
|
|
196
200
|
def remove_image_files_with_id(id, info, docDir = nil)
|
197
201
|
docDir ||= File.join(@info.workspace_dir, id, 'doc')
|
198
|
-
files = Dir.glob(File.join(docDir, "#{id}_*
|
199
|
-
|
202
|
+
files = Dir.glob(File.join(docDir, "#{id}_*jpg"), File::FNM_CASEFOLD) +
|
203
|
+
Dir.glob(File.join(docDir, "#{id}_*gif"), File::FNM_CASEFOLD) +
|
204
|
+
Dir.glob(File.join(docDir, "#{id}_*png"), File::FNM_CASEFOLD)
|
200
205
|
system("git rm #{files.join(' ')}") if files.size > 0
|
201
206
|
end
|
202
207
|
|
@@ -316,11 +321,7 @@ module Elexis
|
|
316
321
|
file.write(open(image_url).read)
|
317
322
|
end
|
318
323
|
files = Dir.glob(downloaded_image, File::FNM_CASEFOLD)
|
319
|
-
|
320
|
-
|file|
|
321
|
-
next if file.eql?(downloaded_image)
|
322
|
-
FileUtils.rm_f(file, :verbose => true)
|
323
|
-
}
|
324
|
+
Interface.remove_image_ignoring_case(downloaded_image)
|
324
325
|
else
|
325
326
|
puts "skipping image #{image} for page #{pageName}"
|
326
327
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
[[Kategorie:Basis-System]]
|
2
|
+
== View: Bestellblatt==
|
3
|
+
{{PluginInfo
|
4
|
+
|plugin=ch.elexis
|
5
|
+
| category=ch.elexis.datenKategorie
|
6
|
+
| wikiName=ChElexisViewsBestellblatt
|
7
|
+
| Iatrix-Hilfe=nicht vorhanden
|
8
|
+
| view_name=View
|
9
|
+
| name=elexis
|
10
|
+
| description=Elexis Basismodul
|
11
|
+
| category=invisible
|
12
|
+
| license=EPL
|
13
|
+
| first_commit_date=2007-06-24
|
14
|
+
| first_commit_author=rgw_ch
|
15
|
+
| responsible=weirich@elexis.ch
|
16
|
+
| type=Basis-System
|
17
|
+
|
18
|
+
|
19
|
+
}}
|
data/spec/pull_spec.rb
CHANGED
@@ -80,10 +80,10 @@ describe 'Plugin' do
|
|
80
80
|
name = File.join(@dataDir, "ch.elexis.icpc", "doc", "Ch.elexis.icpc.mediawiki")
|
81
81
|
expect(Dir.glob(name).size).to eq 1
|
82
82
|
content = IO.read(name)
|
83
|
-
m = /(
|
83
|
+
m = /(File:[\w\.]+)[:_](\w+.png)/.match(content)
|
84
84
|
expect(m).to eq nil
|
85
|
-
m = /(
|
86
|
-
expect(m[0]).to eq '
|
85
|
+
m = /(File:[\w\.]+)\/(icpc0.png)/i.match(content)
|
86
|
+
expect(m[0]).to eq 'File:Ch.elexis.icpc/icpc0.png'
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should show all users" do
|
data/spec/update_images_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe 'ImageHandling' do
|
|
11
11
|
@dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'run', 'push'))
|
12
12
|
FileUtils.rm_rf(@dataDir)
|
13
13
|
FileUtils.makedirs(@dataDir)
|
14
|
-
FileUtils.cp_r(@originDir, @dataDir, :
|
14
|
+
FileUtils.cp_r(@originDir, @dataDir, :preserve => true)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should return corret canonical_names for a plugin" do
|
@@ -53,18 +53,13 @@ describe 'ImageHandling' do
|
|
53
53
|
]
|
54
54
|
original = IO.read(wiki_file)
|
55
55
|
before.each{|string| expect(original).to include string }
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should adapt correctly the image name being in #{@dataDir}" do
|
59
|
-
wiki_file = File.join(@dataDir, 'ch.elexis.icpc', 'doc', 'test.mediawiki')
|
60
|
-
Dir.chdir(@dataDir)
|
61
56
|
|
62
57
|
Elexis::Wiki::Interface.fix_image_locations(wiki_file, 'ch.elexis.icpc')
|
63
|
-
after =['tag_one [[
|
64
|
-
'tag_two [[
|
65
|
-
'tag_three [[
|
66
|
-
'tag_four [[
|
67
|
-
'tag_five [[
|
58
|
+
after =['tag_one [[File:ch.elexis.icpc/icpc1.png|image]]',
|
59
|
+
'tag_two [[File:ch.elexis.icpc/icpc2.png|image]]',
|
60
|
+
'tag_three [[File:icpc3.png|image]]',
|
61
|
+
'tag_four [[File:ch.elexis.icpc/icpc4.png|image]]',
|
62
|
+
'tag_five [[File:ch.elexis.icpc/icpc5.png|image]]',
|
68
63
|
]
|
69
64
|
changed = IO.read(wiki_file)
|
70
65
|
after.each{|string| expect(changed).to include string }
|
@@ -75,11 +70,26 @@ describe 'ImageHandling' do
|
|
75
70
|
Dir.chdir(@dataDir)
|
76
71
|
|
77
72
|
Elexis::Wiki::Interface.fix_image_locations(wiki_file, 'ch.elexis.icpc')
|
78
|
-
after =['tag_three [[
|
73
|
+
after =['tag_three [[File:icpc3.png|image]]',
|
79
74
|
]
|
80
75
|
changed = IO.read(wiki_file)
|
81
76
|
after.each{|string| expect(changed).to include string }
|
82
77
|
end
|
83
78
|
|
79
|
+
it "should not add an EOL if nothing changed" do
|
80
|
+
id = 'ch.elexis.core.application'
|
81
|
+
@originDir = File.expand_path(File.join(File.dirname(__FILE__), 'data', 'push', id))
|
82
|
+
@dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'run', 'push'))
|
83
|
+
FileUtils.rm_rf(@dataDir)
|
84
|
+
FileUtils.makedirs(@dataDir)
|
85
|
+
FileUtils.cp_r(@originDir, @dataDir, :preserve => true)
|
86
|
+
wiki_file = File.join(@dataDir, id, 'doc', 'ChElexisViewsBestellblatt.mediawiki')
|
87
|
+
orig_content = IO.read(wiki_file)
|
88
|
+
Dir.chdir(@dataDir)
|
89
|
+
Elexis::Wiki::Interface.fix_image_locations(wiki_file, id)
|
90
|
+
changed = IO.read(wiki_file)
|
91
|
+
expect(changed).to eql orig_content
|
92
|
+
end
|
93
|
+
|
84
94
|
end
|
85
95
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elexis-wiki-interface
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Niklaus Giger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- spec/data/pull/ch.elexis.notes/plugin_en.properties
|
172
172
|
- spec/data/pull/ch.elexis.notes/plugin_fr.properties
|
173
173
|
- spec/data/pull/doc_de/.project
|
174
|
+
- spec/data/push/ch.elexis.core.application/doc/ChElexisViewsBestellblatt.mediawiki
|
174
175
|
- spec/data/push/ch.elexis.icpc/.project
|
175
176
|
- spec/data/push/ch.elexis.icpc/META-INF/MANIFEST.MF
|
176
177
|
- spec/data/push/ch.elexis.icpc/doc/ch.elexis.icpc_icpc1.png
|
@@ -185,9 +186,6 @@ files:
|
|
185
186
|
- spec/data/push/ch.elexis.icpc/plugin.xml
|
186
187
|
- spec/pull_spec.rb
|
187
188
|
- spec/push_spec.rb
|
188
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc3.png
|
189
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc4.png
|
190
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc5.png
|
191
189
|
- spec/spec_helper.rb
|
192
190
|
- spec/update_images_spec.rb
|
193
191
|
- spec/user_spec.rb
|
@@ -240,6 +238,7 @@ test_files:
|
|
240
238
|
- spec/data/pull/ch.elexis.notes/plugin_en.properties
|
241
239
|
- spec/data/pull/ch.elexis.notes/plugin_fr.properties
|
242
240
|
- spec/data/pull/doc_de/.project
|
241
|
+
- spec/data/push/ch.elexis.core.application/doc/ChElexisViewsBestellblatt.mediawiki
|
243
242
|
- spec/data/push/ch.elexis.icpc/.project
|
244
243
|
- spec/data/push/ch.elexis.icpc/META-INF/MANIFEST.MF
|
245
244
|
- spec/data/push/ch.elexis.icpc/doc/ch.elexis.icpc_icpc1.png
|
@@ -254,9 +253,6 @@ test_files:
|
|
254
253
|
- spec/data/push/ch.elexis.icpc/plugin.xml
|
255
254
|
- spec/pull_spec.rb
|
256
255
|
- spec/push_spec.rb
|
257
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc3.png
|
258
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc4.png
|
259
|
-
- spec/run/push/ch.elexis.icpc/doc/icpc5.png
|
260
256
|
- spec/spec_helper.rb
|
261
257
|
- spec/update_images_spec.rb
|
262
258
|
- spec/user_spec.rb
|
Binary file
|
Binary file
|
Binary file
|