hikiutils 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9492b7b31d9c2a5a7338eca035a0a7dd65b9af35
4
- data.tar.gz: 00f1ddcb7217a5740ae632d223e2193fd80201ec
3
+ metadata.gz: 98e94f886226df5e6dbf7972f48d5bc49aa5a43e
4
+ data.tar.gz: abfa5748c2135c2f5b5db18450b21bc85cae26fc
5
5
  SHA512:
6
- metadata.gz: d3a3f51153fbdaa283749051b9f06055902a9199ae1ab7375acda471f7f365fd71a194d1c54242998dce8d3b5ecc5a5e380196459a3f8c31564649d56f75f8a3
7
- data.tar.gz: 0dbec68d969a50edba9f0bb4ca183f0466f3eb1404a78a6e84dd3384cc848bdd409459d50be4386db9962aa953bef0d24d51821878470cce59554bf6f075f40d
6
+ metadata.gz: 169a79cc8844092d95bbcdfc3e3e77239872c263f468aeb628952db79721ec1c273619f3a8a9c233f322ee18fcae404c4158e0833c416826b7dc10770641291b
7
+ data.tar.gz: 86246ddc6ed0caf021840246168e0013dbec29f9c5f75953ee85c513c2a5a3326672e5943754aec14de9af6b81b1ac038416da2250f8b651297bc3ab6148fe72
data/README.md CHANGED
@@ -1,41 +1,59 @@
1
- # Hikiutils
2
-
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/hikiutils`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
1
+ # hikiutils
2
+ Utilities for helping hiki editing.
3
+
4
+ # Discriptions
5
+ Direct file handling utility for hiki text, cache and rsync of local ang global hiki sites.
6
+
7
+
8
+ # Operation
9
+ "hiki" is the command name.
10
+
11
+ ```tcsh
12
+ bob% hiki
13
+ hiki says 'Hello world'.
14
+ Usage: hiki [options]
15
+ -v, --version show program Version.
16
+ -s, --show show sources
17
+ -a, --add add sources info
18
+ -t, --target [VAL] set target number
19
+ -o, --open [FILE] open file
20
+ -l, --list [FILE] list files
21
+ -u, --update [FILE] update file
22
+ -r, --rsync rsync files
23
+ ```
6
24
 
7
25
  ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'hikiutils'
26
+ Installed by
13
27
  ```
28
+ $ gem install hikimode
29
+ ```
30
+ At the first time of hiki operation, hikirc file is created at home dir.
31
+ ```
32
+ bob% cat ~/.hikirc
33
+ ---
34
+ :target: 0
35
+ :editor_command: emacs
36
+ :srcs:
37
+ - :nick_name: hoge
38
+ :local_dir: hogehoge
39
+ :local_uri: http://localhost/~hoge
40
+ :global_dir: hoge@global_host:/hoge
41
+ :global_uri: http://hoge
42
+ ```
43
+ The directly editing of hikirc file is much easier than using -a option.
44
+ Each hiki utility option runs, assuming the editing files lacating locally.
14
45
 
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install hikiutils
22
-
23
- ## Usage
24
-
25
- TODO: Write usage instructions here
46
+ Enjoy hiki world!!
26
47
 
27
48
  ## Development
28
49
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec hikiutils` to use the gem in this directory, ignoring other installed copies of this gem.
30
-
31
50
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
51
 
33
52
  ## Contributing
34
53
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hikiutils. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
54
+ Bug reports and pull requests are welcome on GitHub at https://github.com/daddygongon/shunkuntype. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
55
 
37
56
 
38
57
  ## License
39
58
 
40
59
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
data/Rakefile CHANGED
@@ -10,8 +10,7 @@ end
10
10
 
11
11
  desc "make documents by yard"
12
12
  task :yard do
13
- system "hiki2md docs/readme.hiki > docs/README.en.md"
14
- system "hiki2md docs/readme.ja.hiki > docs/README.ja.md"
13
+ system "hiki2md docs/README.hiki > README.md"
15
14
  YARD::Rake::YardocTask.new
16
15
  end
17
16
 
@@ -1,14 +1,14 @@
1
- # hikimode
2
- hikiの編集を助けるhelper.
1
+ !hikiutils
2
+ Utilities for helping hiki editing.
3
3
 
4
- ## 【特徴】
5
- hiki-mode.elがうまく動かせなかったので,cliで自作してみた.
4
+ !Discriptions
5
+ Direct file handling utility for hiki text, cache and rsync of local ang global hiki sites.
6
6
 
7
7
 
8
- ## 【操作法】
9
- コマンド名が違うので注意.
8
+ !Operation
9
+ "hiki" is the command name.
10
10
 
11
- ```tcsh
11
+ <<< tcsh
12
12
  bob% hiki
13
13
  hiki says 'Hello world'.
14
14
  Usage: hiki [options]
@@ -20,15 +20,15 @@ Usage: hiki [options]
20
20
  -l, --list [FILE] list files
21
21
  -u, --update [FILE] update file
22
22
  -r, --rsync rsync files
23
- ```
23
+ >>>
24
24
 
25
- ## Installation
26
-
27
- ```
25
+ !! Installation
26
+ Installed by
27
+ <<<
28
28
  $ gem install hikimode
29
- ```
30
- でinstallされます.最初に起動した時に
31
- ```
29
+ >>>
30
+ At the first time of hiki operation, hikirc file is created at home dir.
31
+ <<<
32
32
  bob% cat ~/.hikirc
33
33
  ---
34
34
  :target: 0
@@ -39,21 +39,22 @@ bob% cat ~/.hikirc
39
39
  :local_uri: http://localhost/~hoge
40
40
  :global_dir: hoge@global_host:/hoge
41
41
  :global_uri: http://hoge
42
- ```
43
- というファイルがhome dirに作成されます.hikimodeはこのように,localでの編集・閲覧と,globalへの同期を前提に動作します.sourcesを追加するには-aで追加できますが,適当にいれてファイルを直接編集する方が
44
- 間違いが少ないです.
42
+ >>>D
43
+ The directly editing of hikirc file is much easier than using -a option.
44
+ Each hiki utility option runs, assuming the editing files lacating locally.
45
45
 
46
46
  Enjoy hiki world!!
47
47
 
48
- ## Development
48
+ !! Development
49
49
 
50
50
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
51
51
 
52
- ## Contributing
52
+ !! Contributing
53
53
 
54
54
  Bug reports and pull requests are welcome on GitHub at https://github.com/daddygongon/shunkuntype. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
55
55
 
56
56
 
57
- ## License
57
+ !! License
58
58
 
59
59
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
60
+
data/docs/README.ja.hiki CHANGED
@@ -1,12 +1,12 @@
1
- !hikimode
2
- hikiの編集を助けるhelper.
1
+ !hikiutils
2
+ Utilities for helping hiki editing.
3
3
 
4
- !!【特徴】
5
- hiki-mode.elがうまく動かせなかったので,cliで自作してみた.
4
+ !Features
5
+ Direct file handling utility for hiki text, cache and rsync of local ang global hiki sites.
6
6
 
7
7
 
8
- !!【操作法】
9
- コマンド名が違うので注意.
8
+ !Operation
9
+ "hiki" is the command name.
10
10
 
11
11
  <<< tcsh
12
12
  bob% hiki
@@ -23,11 +23,11 @@ Usage: hiki [options]
23
23
  >>>
24
24
 
25
25
  !! Installation
26
-
26
+ Installed by
27
27
  <<<
28
28
  $ gem install hikimode
29
29
  >>>
30
- でinstallされます.最初に起動した時に
30
+ At the first time of hiki operation, hikirc file is created at home dir.
31
31
  <<<
32
32
  bob% cat ~/.hikirc
33
33
  ---
@@ -39,9 +39,9 @@ bob% cat ~/.hikirc
39
39
  :local_uri: http://localhost/~hoge
40
40
  :global_dir: hoge@global_host:/hoge
41
41
  :global_uri: http://hoge
42
- >>>
43
- というファイルがhome dirに作成されます.hikimodeはこのように,localでの編集・閲覧と,globalへの同期を前提に動作します.sourcesを追加するには-aで追加できますが,適当にいれてファイルを直接編集する方が
44
- 間違いが少ないです.
42
+ >>>D
43
+ The directly editing of hikirc file is much easier than using -a option.
44
+ Each hiki utility option runs, assuming the editing files lacating locally.
45
45
 
46
46
  Enjoy hiki world!!
47
47
 
data/hikiutils.gemspec CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
+ spec.required_ruby_version = ">= 2.0.0"
30
31
  spec.add_development_dependency "bundler", "~> 1.11"
31
32
  spec.add_development_dependency "rake", "~> 10.0"
32
33
  spec.add_development_dependency "minitest", "~> 5.0"
@@ -34,6 +35,5 @@ Gem::Specification.new do |spec|
34
35
  spec.add_development_dependency "yard", "~> 0.8"
35
36
  spec.add_development_dependency "hiki2md"
36
37
  spec.add_runtime_dependency "systemu"
37
- spec.add_runtime_dependency "hikidoc","~>0.1.0"
38
-
38
+ spec.add_runtime_dependency "hikidoc", "~> 0.1.0"
39
39
  end
@@ -0,0 +1,278 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'nkf'
3
+ require "hikiutils/version"
4
+ require "hikiutils/tmarshal"
5
+ require "hikiutils/infodb"
6
+ require 'systemu'
7
+ require 'optparse'
8
+ require 'fileutils'
9
+ require 'yaml'
10
+ require 'pp'
11
+
12
+ module HikiUtils
13
+ DATA_FILE=File.join(ENV['HOME'],'.hikirc')
14
+ attr_accessor :src, :target, :data_name, :l_dir
15
+
16
+ class Command
17
+ def self.run(argv=[])
18
+ print "hiki says 'Hello world'.\n"
19
+ new(argv).execute
20
+ end
21
+
22
+ def initialize(argv=[])
23
+ @argv = argv
24
+ @data_name=['nick_name','local_dir','local_uri','global_dir','global_uri']
25
+ data_path = File.join(ENV['HOME'], '.hikirc')
26
+ DataFiles.prepare(data_path)
27
+ read_sources
28
+ end
29
+
30
+ def execute
31
+ @argv << '--help' if @argv.size==0
32
+ command_parser = OptionParser.new do |opt|
33
+ opt.on('-v', '--version','show program Version.') { |v|
34
+ opt.version = HikiUtils::VERSION
35
+ puts opt.ver
36
+ }
37
+ opt.on('-s', '--show','show sources') {show_sources}
38
+ opt.on('-a', '--add','add sources info') {add_sources }
39
+ opt.on('-t', '--target VAL','set target id') {|val| set_target(val) }
40
+ opt.on('-e', '--edit FILE','open file') {|file| edit_file(file) }
41
+ opt.on('-l', '--list [FILE]','list files') {|file| list_files(file) }
42
+ opt.on('-u', '--update FILE','update file') {|file| update_file(file) }
43
+ opt.on('-r', '--rsync','rsync files') {rsync_files}
44
+ opt.on('-d', '--database FILE','read database file') {|file| db_file(file)}
45
+ opt.on('-c', '--checkdb','check database file') {check_db}
46
+ opt.on('--remove FILE','remove file') {|file| remove_file(file)}
47
+ opt.on('--move FILES','move file1,file2',Array) {|files| move_file(files)}
48
+ end
49
+ command_parser.parse!(@argv)
50
+ dump_sources
51
+ exit
52
+ end
53
+
54
+ def move_file(files)
55
+ begin
56
+ p file1_path = File.join(@l_dir,'text',files[0])
57
+ p file2_path = File.join(@l_dir,'text',files[1])
58
+ rescue => evar
59
+ puts evar.to_s
60
+ puts "error on move_files, check the input format, especially comma separation."
61
+ exit
62
+ end
63
+ return if file1_path==file2_path
64
+ if File.exist?(file2_path) then
65
+ print ("moving target #{files[1]} exists.\n")
66
+ print ("first remove #{files[1]}.\n")
67
+ return
68
+ else
69
+ File.rename(file1_path,file2_path)
70
+ end
71
+
72
+ info=InfoDB.new(@l_dir)
73
+
74
+ db = info.db
75
+
76
+ # pp file0=db[files[0]]
77
+ # db.delete(files[0])
78
+ # db[files[1]]=file0
79
+ # db[files[1]][:title]=files[1] if db[files[1]][:title]==files[0]
80
+ # pp db[files[1]]
81
+
82
+ db.each{|ele|
83
+ ref = ele[1][:references]
84
+ if ref.include?(files[0]) then
85
+ p link_file=ele[0]
86
+ link_path = File.join(@l_dir,'text',link_file)
87
+
88
+ target=File.open(link_path,'r')
89
+ cont = target.read
90
+ target.close
91
+ if NKF.guess(cont)==NKF::EUC then
92
+ print "Don\'t support EUC-JP, change link manually.\n"
93
+ else
94
+
95
+ cont.gsub!(/\[\[#{files[0]}\]\]/,"\[\[#{files[1]}\]\]")
96
+ target=File.open(link_path,'w')
97
+ target.print cont
98
+ target.close
99
+
100
+ ref.delete(files[0])
101
+ ref << files[1]
102
+
103
+ p cache_path = File.join(@l_dir,'cache/parser',link_file)
104
+ begin
105
+ File.delete(cache_path)
106
+ rescue => evar
107
+ puts evar.to_s
108
+ end
109
+ end
110
+ end
111
+ }
112
+
113
+ info.dump
114
+ end
115
+
116
+ def remove_file(file_name)
117
+ p text_path = File.join(@l_dir,'text',file_name)
118
+ p attach_path = File.join(@l_dir,'cache/attach',file_name)
119
+ begin
120
+ File.delete(text_path)
121
+ rescue => evar
122
+ puts evar.to_s
123
+ end
124
+ begin
125
+ Dir.rmdir(attach_path)
126
+ rescue => evar
127
+ puts evar.to_s
128
+ end
129
+
130
+ info=InfoDB.new(@l_dir)
131
+ p "delete "
132
+ del_file=info.delete(file_name)
133
+
134
+ info.dump
135
+ end
136
+
137
+ def check_db
138
+ result= InfoDB.new(@l_dir).show_inconsist
139
+ print (result=='') ? "db agrees with text dir.\n" : result
140
+ end
141
+
142
+ def db_file(file_name)
143
+ info=InfoDB.new(@l_dir)
144
+ p info.show(file_name)
145
+ end
146
+
147
+ def rsync_files
148
+ p local = @l_dir
149
+ p global = @src[:srcs][@target][:global_dir]
150
+ p command="rsync -auvz --delete -e ssh #{local}/ #{global}"
151
+ system command
152
+ end
153
+
154
+ def update_file(file0)
155
+ file = (file0==nil) ? 'FrontPage' : file0
156
+ #rm cache file
157
+ t_file=File.join(@l_dir,'cache/parser',file)
158
+ p command="rm #{t_file}"
159
+ system command
160
+
161
+ #update info file
162
+ info=InfoDB.new(@l_dir)
163
+ info.update(file0)
164
+
165
+ #open file on browser
166
+ l_path = @src[:srcs][@target][:local_uri]
167
+ l_file=l_path+"/?"+file
168
+ p command="open \'#{l_file}\'"
169
+ system command
170
+ end
171
+
172
+ def list_files(file)
173
+ file ='' if file==nil
174
+ t_file=File.join(@l_dir,'text')
175
+ print "target_dir : "+t_file+"\n"
176
+ print `cd #{t_file} ; ls -lt #{file}*`
177
+ end
178
+
179
+ def edit_file(file)
180
+ t_file=File.join(@l_dir,'text',file)
181
+ if !File.exist?(t_file) then
182
+ file=File.open(t_file,'w')
183
+ file.close
184
+ File.chmod(0777,t_file)
185
+ end
186
+ p command="open -a mi #{t_file}"
187
+ system command
188
+ end
189
+
190
+ def dump_sources
191
+ file = File.open(DATA_FILE,'w')
192
+ YAML.dump(@src, file)
193
+ file.close
194
+ end
195
+
196
+ def set_target(val)
197
+ @src[:target] = val.to_i
198
+ show_sources
199
+ end
200
+
201
+ def show_sources()
202
+ printf("target_no:%i\n",@src[:target])
203
+ printf("editor_command:%s\n",@src[:editor_command])
204
+ header = display_format('id','nick name','local directory','global uri')
205
+
206
+ puts header
207
+ puts '-' * header.size
208
+
209
+ @src[:srcs].each_with_index{|src,i|
210
+ target = i==@src[:target] ? '*':' '
211
+ id = target+i.to_s
212
+ name=src[:nick_name]
213
+ local=src[:local_dir]
214
+ global=src[:global_uri]
215
+ puts display_format(id,name,local,global)
216
+ }
217
+
218
+ end
219
+
220
+ def display_format(id, name, local, global)
221
+ name_length = 10-full_width_count(name)
222
+ local_length = 40-full_width_count(local)
223
+ [id.to_s.rjust(3), name.ljust(name_length),local.ljust(local_length), global.center(10)].join(' | ')
224
+ end
225
+
226
+ def full_width_count(string)
227
+ string.each_char.select{|char| !(/[ -~��-��]/.match(char))}.count
228
+ end
229
+
230
+ def add_sources
231
+ cont = {}
232
+ @data_name.each{|name|
233
+ printf("%s ? ", name)
234
+ tmp = gets.chomp
235
+ cont[name.to_sym] = tmp
236
+ }
237
+ @src[:srcs] << cont
238
+ show_sources
239
+ end
240
+
241
+ def read_sources
242
+ file = File.open(DATA_FILE,'r')
243
+ @src = YAML.load(file.read)
244
+ file.close
245
+ @target = @src[:target]
246
+ @l_dir=@src[:srcs][@target][:local_dir]
247
+ end
248
+ end
249
+ end
250
+
251
+ module DataFiles
252
+ def self.prepare(data_path)
253
+ create_file_if_not_exists(data_path)
254
+ end
255
+
256
+ def self.create_file_if_not_exists(data_path)
257
+ return if File::exists?(data_path)
258
+ create_data_file(data_path)
259
+ end
260
+
261
+ def self.create_data_file(data_path)
262
+ print "make #{data_path}\n"
263
+ init_data_file(data_path)
264
+ end
265
+
266
+ # initialize source file by dummy data
267
+ def self.init_data_file(data_path)
268
+ @src = {:target => 0, :editor_command => 'open -a mi',
269
+ :srcs=>[{:nick_name => 'hoge', :local_dir => 'hogehoge', :local_uri => 'http://localhost/~hoge',
270
+ :global_dir => 'hoge@global_host:/hoge', :global_uri => 'http://hoge'}]}
271
+ file = File.open(data_path,'w')
272
+ YAML.dump(@src,file)
273
+ file.close
274
+ end
275
+ private_class_method :create_file_if_not_exists, :create_data_file, :init_data_file
276
+ end
277
+
278
+
@@ -0,0 +1 @@
1
+ bob@bob.local.8100
@@ -1,13 +1,43 @@
1
- class CleanDB
1
+ require 'nkf'
2
+
3
+ class InfoDB
2
4
  attr_accessor :file_path, :db, :text_dir
3
5
  def initialize(file_path)
6
+ @file_path=File.join(file_path,"info.db")
4
7
  @db = Hash.new
5
- file = File.read(File.join(file_path,"info.db"))
8
+ file = File.read(@file_path)
9
+ if NKF.guess(file)==NKF::EUC then
10
+ print "Don\'t support EUC-JP for info.db.\n"
11
+ exit
12
+ end
6
13
  @db = TMarshal::load(file)
7
- @text_dir = Dir::entries(File.join(file_path,"text"))[3..-1]
14
+ end
15
+
16
+ def show(name)
17
+ @db[name]
18
+ end
19
+
20
+ def delete(name)
21
+ p @db.delete(name)
22
+ end
23
+
24
+ def update(name)
25
+ if @db[name]==nil then
26
+ puts "no info"
27
+ exit
28
+ end
29
+ p @db[name][:last_modified] = Time.now
30
+ self.dump
31
+ end
32
+
33
+ def dump
34
+ dump_file = File.open(@file_path,'w')
35
+ TMarshal::dump(@db,dump_file)
36
+ dump_file.close
8
37
  end
9
38
 
10
39
  def show_inconsist
40
+ @text_dir = Dir::entries(File.join(file_path,"text"))[3..-1]
11
41
  cont = ""
12
42
  @text_dir.each { |ent|
13
43
  if @db[ent]==nil then
@@ -1,3 +1,3 @@
1
1
  module HikiUtils
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/hikiutils.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
+ require 'nkf'
2
3
  require "hikiutils/version"
3
4
  require "hikiutils/tmarshal"
4
- require "hikiutils/cleandb"
5
+ require "hikiutils/infodb"
5
6
  require 'systemu'
6
7
  require 'optparse'
7
8
  require 'fileutils'
@@ -49,9 +50,16 @@ module HikiUtils
49
50
  dump_sources
50
51
  exit
51
52
  end
53
+
52
54
  def move_file(files)
53
- p file1_path = File.join(@l_dir,'text',files[0])
54
- p file2_path = File.join(@l_dir,'text',files[1])
55
+ begin
56
+ p file1_path = File.join(@l_dir,'text',files[0])
57
+ p file2_path = File.join(@l_dir,'text',files[1])
58
+ rescue => evar
59
+ puts evar.to_s
60
+ puts "error on move_files, check the input format, especially comma separation."
61
+ exit
62
+ end
55
63
  return if file1_path==file2_path
56
64
  if File.exist?(file2_path) then
57
65
  print ("moving target #{files[1]} exists.\n")
@@ -61,18 +69,15 @@ module HikiUtils
61
69
  File.rename(file1_path,file2_path)
62
70
  end
63
71
 
64
- db = Hash.new
65
- p db_path = File.join(@l_dir,'info.db')
66
- file = File.open(db_path,'r')
67
- cont = file.read
68
- db = TMarshal::load(cont)
69
- file.close
72
+ info=InfoDB.new(@l_dir)
73
+
74
+ db = info.db
70
75
 
71
- pp file0=db[files[0]]
72
- db.delete(files[0])
73
- db[files[1]]=file0
74
- db[files[1]][:title]=files[1] if db[files[1]][:title]==files[0]
75
- pp db[files[1]]
76
+ # pp file0=db[files[0]]
77
+ # db.delete(files[0])
78
+ # db[files[1]]=file0
79
+ # db[files[1]][:title]=files[1] if db[files[1]][:title]==files[0]
80
+ # pp db[files[1]]
76
81
 
77
82
  db.each{|ele|
78
83
  ref = ele[1][:references]
@@ -83,27 +88,29 @@ module HikiUtils
83
88
  target=File.open(link_path,'r')
84
89
  cont = target.read
85
90
  target.close
86
- cont.gsub!(/\[\[#{files[0]}\]\]/,"\[\[#{files[1]}\]\]")
87
- target=File.open(link_path,'w')
88
- target.print cont
89
- target.close
90
-
91
- ref.delete(files[0])
92
- ref << files[1]
93
-
94
- p cache_path = File.join(@l_dir,'cache/parser',link_file)
95
- begin
96
- File.delete(cache_path)
97
- rescue => evar
98
- puts evar.to_s
91
+ if NKF.guess(cont)==NKF::EUC then
92
+ print "Don\'t support EUC-JP, change link manually.\n"
93
+ else
94
+
95
+ cont.gsub!(/\[\[#{files[0]}\]\]/,"\[\[#{files[1]}\]\]")
96
+ target=File.open(link_path,'w')
97
+ target.print cont
98
+ target.close
99
+
100
+ ref.delete(files[0])
101
+ ref << files[1]
102
+
103
+ p cache_path = File.join(@l_dir,'cache/parser',link_file)
104
+ begin
105
+ File.delete(cache_path)
106
+ rescue => evar
107
+ puts evar.to_s
108
+ end
99
109
  end
100
-
101
110
  end
102
111
  }
103
112
 
104
- file = File.open(db_path,'w')
105
- TMarshal::dump(db,file)
106
- file.close
113
+ info.dump
107
114
  end
108
115
 
109
116
  def remove_file(file_name)
@@ -120,32 +127,21 @@ module HikiUtils
120
127
  puts evar.to_s
121
128
  end
122
129
 
123
- db = Hash.new
124
- p db_path = File.join(@l_dir,'info.db')
125
- file = File.open(db_path,'r')
126
- cont = file.read
127
- db = TMarshal::load(cont)
128
- file.close
129
-
130
- db.delete(file_name)
131
-
132
- file = File.open(db_path,'w')
133
- TMarshal::dump(db,file)
134
- file.close
130
+ info=InfoDB.new(@l_dir)
131
+ p "delete "
132
+ del_file=info.delete(file_name)
135
133
 
134
+ info.dump
136
135
  end
137
136
 
138
137
  def check_db
139
- result= CleanDB.new(@l_dir).show_inconsist
138
+ result= InfoDB.new(@l_dir).show_inconsist
140
139
  print (result=='') ? "db agrees with text dir.\n" : result
141
140
  end
142
141
 
143
142
  def db_file(file_name)
144
- db = Hash.new
145
- p file_path = File.join(@l_dir,'info.db')
146
- cont = File.read(file_path)
147
- db = TMarshal::load(cont)
148
- p db[file_name]
143
+ info=InfoDB.new(@l_dir)
144
+ p info.show(file_name)
149
145
  end
150
146
 
151
147
  def rsync_files
@@ -157,9 +153,16 @@ module HikiUtils
157
153
 
158
154
  def update_file(file0)
159
155
  file = (file0==nil) ? 'FrontPage' : file0
156
+ #rm cache file
160
157
  t_file=File.join(@l_dir,'cache/parser',file)
161
158
  p command="rm #{t_file}"
162
159
  system command
160
+
161
+ #update info file
162
+ info=InfoDB.new(@l_dir)
163
+ info.update(file0)
164
+
165
+ #open file on browser
163
166
  l_path = @src[:srcs][@target][:local_uri]
164
167
  l_file=l_path+"/?"+file
165
168
  p command="open \'#{l_file}\'"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hikiutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shigeto R. Nishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-22 00:00:00.000000000 Z
11
+ date: 2016-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -140,13 +140,14 @@ files:
140
140
  - Rakefile
141
141
  - bin/console
142
142
  - bin/setup
143
- - docs/README.en.md
143
+ - docs/README.hiki
144
144
  - docs/README.ja.hiki
145
- - docs/README.ja.md
146
145
  - exe/hiki
147
146
  - hikiutils.gemspec
147
+ - lib/#hikiutils.rb#
148
+ - lib/.#hikiutils.rb
148
149
  - lib/hikiutils.rb
149
- - lib/hikiutils/cleandb.rb
150
+ - lib/hikiutils/infodb.rb
150
151
  - lib/hikiutils/tmarshal.rb
151
152
  - lib/hikiutils/version.rb
152
153
  homepage: http://github.org/daddygongon/hikiutils.
@@ -161,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
162
  requirements:
162
163
  - - ">="
163
164
  - !ruby/object:Gem::Version
164
- version: '0'
165
+ version: 2.0.0
165
166
  required_rubygems_version: !ruby/object:Gem::Requirement
166
167
  requirements:
167
168
  - - ">="
data/docs/README.en.md DELETED
File without changes