YkLib 0.1.0

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.
Files changed (125) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +6 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +7 -0
  7. data/Gemfile.lock +34 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +44 -0
  10. data/Rakefile +6 -0
  11. data/YkLib.gemspec +29 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/lib/YkLib/Yk/__advance__.rb +151 -0
  15. data/lib/YkLib/Yk/__defun__.rb +44 -0
  16. data/lib/YkLib/Yk/__hook__.rb +244 -0
  17. data/lib/YkLib/Yk/__minmax__.rb +123 -0
  18. data/lib/YkLib/Yk/__stdlog.rb +329 -0
  19. data/lib/YkLib/Yk/adhocLiterals/email.rb +119 -0
  20. data/lib/YkLib/Yk/adhocLiterals/path.rb +402 -0
  21. data/lib/YkLib/Yk/adhocLiterals/tag.rb +19 -0
  22. data/lib/YkLib/Yk/adhocLiterals/url.rb +36 -0
  23. data/lib/YkLib/Yk/adhocLiterals.rb +199 -0
  24. data/lib/YkLib/Yk/auto_escseq.rb +5 -0
  25. data/lib/YkLib/Yk/auto_pstore.rb +179 -0
  26. data/lib/YkLib/Yk/bsearch.rb +120 -0
  27. data/lib/YkLib/Yk/clambda.rb +309 -0
  28. data/lib/YkLib/Yk/confLine.rb +423 -0
  29. data/lib/YkLib/Yk/create_tty_width_available.rb +24 -0
  30. data/lib/YkLib/Yk/crypt.rb +26 -0
  31. data/lib/YkLib/Yk/debug2 +1 -0
  32. data/lib/YkLib/Yk/debug2.rb +473 -0
  33. data/lib/YkLib/Yk/debugout.rb +139 -0
  34. data/lib/YkLib/Yk/email_tz.rb +533 -0
  35. data/lib/YkLib/Yk/enum_expect.rb +170 -0
  36. data/lib/YkLib/Yk/errlog.rb +5 -0
  37. data/lib/YkLib/Yk/escseq.rb +59 -0
  38. data/lib/YkLib/Yk/eval_alt.rb +281 -0
  39. data/lib/YkLib/Yk/expector.rb +93 -0
  40. data/lib/YkLib/Yk/fetch.rb +556 -0
  41. data/lib/YkLib/Yk/fetch_old.rb +290 -0
  42. data/lib/YkLib/Yk/fib.rb +158 -0
  43. data/lib/YkLib/Yk/file_aux.rb +843 -0
  44. data/lib/YkLib/Yk/file_aux2.rb +919 -0
  45. data/lib/YkLib/Yk/file_aux_old.rb +160 -0
  46. data/lib/YkLib/Yk/filemod.rb +19 -0
  47. data/lib/YkLib/Yk/force_escseq.rb +3 -0
  48. data/lib/YkLib/Yk/generator__.rb +144 -0
  49. data/lib/YkLib/Yk/generator__.rb.org +139 -0
  50. data/lib/YkLib/Yk/indenter/argless_case.rb +46 -0
  51. data/lib/YkLib/Yk/indenter/each_token.rb +671 -0
  52. data/lib/YkLib/Yk/indenter/free_case.rb +313 -0
  53. data/lib/YkLib/Yk/indenter/if_less.rb +53 -0
  54. data/lib/YkLib/Yk/indenter/independent_ensure.rb +23 -0
  55. data/lib/YkLib/Yk/indenter/independent_rescue.rb +23 -0
  56. data/lib/YkLib/Yk/indenter/operand_circumflex.rb +0 -0
  57. data/lib/YkLib/Yk/indenter/operand_period.rb +16 -0
  58. data/lib/YkLib/Yk/indenter/parenless_and.rb +37 -0
  59. data/lib/YkLib/Yk/indenter/post_test.rb +48 -0
  60. data/lib/YkLib/Yk/indenter/token.rb +1525 -0
  61. data/lib/YkLib/Yk/indenter.rb +1382 -0
  62. data/lib/YkLib/Yk/inot.rb +265 -0
  63. data/lib/YkLib/Yk/intf.rb +815 -0
  64. data/lib/YkLib/Yk/io_aux.rb +1332 -0
  65. data/lib/YkLib/Yk/ioctl.rb +60 -0
  66. data/lib/YkLib/Yk/ipcc.rb +87 -0
  67. data/lib/YkLib/Yk/ipcountry.rb +207 -0
  68. data/lib/YkLib/Yk/ipv4adr.rb +318 -0
  69. data/lib/YkLib/Yk/localmail.rb +276 -0
  70. data/lib/YkLib/Yk/method_chain.rb +359 -0
  71. data/lib/YkLib/Yk/misc_tz.rb +1716 -0
  72. data/lib/YkLib/Yk/missing_method.rb +50 -0
  73. data/lib/YkLib/Yk/mojiConv.rb +257 -0
  74. data/lib/YkLib/Yk/nostdlog.rb +4 -0
  75. data/lib/YkLib/Yk/on_marshal.rb +20 -0
  76. data/lib/YkLib/Yk/overrider.rb +47 -0
  77. data/lib/YkLib/Yk/path.rb +293 -0
  78. data/lib/YkLib/Yk/path_aux.rb +883 -0
  79. data/lib/YkLib/Yk/path_aux_alt.rb +0 -0
  80. data/lib/YkLib/Yk/path_rep.rb +1267 -0
  81. data/lib/YkLib/Yk/pg_setup.rb +917 -0
  82. data/lib/YkLib/Yk/procinfo.rb +314 -0
  83. data/lib/YkLib/Yk/proclist.rb +492 -0
  84. data/lib/YkLib/Yk/property.rb +863 -0
  85. data/lib/YkLib/Yk/ranger.rb +606 -0
  86. data/lib/YkLib/Yk/resolv_tz.rb +88 -0
  87. data/lib/YkLib/Yk/rlprompt.rb +73 -0
  88. data/lib/YkLib/Yk/rootexec.rb +48 -0
  89. data/lib/YkLib/Yk/rpm-packageproxy.rb +784 -0
  90. data/lib/YkLib/Yk/rpm-packageproxy2.rb +1430 -0
  91. data/lib/YkLib/Yk/rwhen.rb +21 -0
  92. data/lib/YkLib/Yk/selector.rb +124 -0
  93. data/lib/YkLib/Yk/set.rb +170 -0
  94. data/lib/YkLib/Yk/shellquote.rb +300 -0
  95. data/lib/YkLib/Yk/sio.rb +1001 -0
  96. data/lib/YkLib/Yk/sio0.rb +835 -0
  97. data/lib/YkLib/Yk/sio_aux.rb +1524 -0
  98. data/lib/YkLib/Yk/sio_inot.rb +86 -0
  99. data/lib/YkLib/Yk/sock_aux.rb +42 -0
  100. data/lib/YkLib/Yk/spipe.rb +843 -0
  101. data/lib/YkLib/Yk/sql_table.rb +565 -0
  102. data/lib/YkLib/Yk/stdlog.rb +4 -0
  103. data/lib/YkLib/Yk/syscommand.rb +173 -0
  104. data/lib/YkLib/Yk/sysinit.rb +75 -0
  105. data/lib/YkLib/Yk/ttyFontWidth.rb +46113 -0
  106. data/lib/YkLib/Yk/tty_char.dump +0 -0
  107. data/lib/YkLib/Yk/tty_char.rb +47 -0
  108. data/lib/YkLib/Yk/tty_char_create.rb +437031 -0
  109. data/lib/YkLib/Yk/tty_char_static.rb +437016 -0
  110. data/lib/YkLib/Yk/tty_rewrite.rb +142 -0
  111. data/lib/YkLib/Yk/tty_str.rb +461 -0
  112. data/lib/YkLib/Yk/tty_width.dat.rb +114 -0
  113. data/lib/YkLib/Yk/tty_width.rb +180 -0
  114. data/lib/YkLib/Yk/tty_width_available +569 -0
  115. data/lib/YkLib/Yk/tty_width_list +0 -0
  116. data/lib/YkLib/Yk/tty_width_list.linux +280 -0
  117. data/lib/YkLib/Yk/tty_width_list.windows +324 -0
  118. data/lib/YkLib/Yk/tz_tty +0 -0
  119. data/lib/YkLib/Yk/tz_tty.rb +0 -0
  120. data/lib/YkLib/Yk/uprepos.rb +94 -0
  121. data/lib/YkLib/Yk/userinfo.rb +91 -0
  122. data/lib/YkLib/Yk/with.rb +109 -0
  123. data/lib/YkLib/version.rb +3 -0
  124. data/lib/YkLib.rb +6 -0
  125. metadata +170 -0
@@ -0,0 +1,160 @@
1
+ # old style funcs
2
+ def File.l_open (f, mode = "r")
3
+ fw = nil
4
+ begin
5
+ case mode
6
+ when "w"
7
+ fw = File.open f, File::WRONLY|File::CREAT|File::NONBLOCK
8
+ fw.flock File::LOCK_EX
9
+ fw.truncate 0
10
+ when "a"
11
+ fw = File.open f, File::WRONLY|File::CREAT|File::APPEND|File::NONBLOCK
12
+ fw.flock File::LOCK_EX
13
+ when "r"
14
+ fw = File.open f, File::RDONLY|File::NONBLOCK
15
+ fw.flock File::LOCK_SH
16
+ when "w+"
17
+ fw = File.open f, File::RDWR|File::CREAT|File::NONBLOCK
18
+ fw.flock File::LOCK_EX
19
+ fw.truncate 0
20
+ when "a+"
21
+ fw = File.open f, File::RDWR|File::CREAT|File::APPEND|File::NONBLOCK
22
+ fw.flock File::LOCK_EX
23
+ when "r+"
24
+ fw = File.open f, File::RDWR|File::NONBLOCK
25
+ fw.flock File::LOCK_EX
26
+ end
27
+ if block_given?
28
+ yield fw
29
+ end
30
+ ensure
31
+ if block_given?
32
+ if fw
33
+ fw.close
34
+ end
35
+ end
36
+ end
37
+ fw
38
+ end
39
+ def IO.pread (f)
40
+ IO.popen(f).read
41
+ end
42
+ def IO.write (f, *c)
43
+ File.open(f, "w") do |fw|
44
+ c.each do |e|
45
+ fw.write e
46
+ end
47
+ end
48
+ end
49
+ def IO.pwrite (f, *c)
50
+ IO.popen f, "w" do |fw|
51
+ c.each do |e|
52
+ fw.write e
53
+ end
54
+ end
55
+ end
56
+ def IO.pwriteln (f, *c)
57
+ IO.popen f, "w" do |fw|
58
+ fw.writeln *c
59
+ end
60
+ end
61
+ def IO.writeln (f, *args)
62
+ File.open(f, "w") do |fw|
63
+ fw.writeln *args
64
+ end
65
+ end
66
+ def IO.l_write (f, *c)
67
+ File.l_open(f, "w") do |fw|
68
+ c.each do |e|
69
+ fw.write e
70
+ end
71
+ end
72
+ end
73
+ def IO.l_read (f)
74
+ c = nil
75
+ File.l_open(f, "r") do |fr|
76
+ c= fr.read
77
+ end
78
+ return c
79
+ end
80
+ def File.rewrite_each_line (fName, lock = false)
81
+ File.open fName, File::RDWR|File::CREAT|File::NONBLOCK do |fw|
82
+ lock && fw.flock(File::LOCK_EX)
83
+ begin
84
+ newLines = []
85
+ modPos = nil
86
+ ln = nil
87
+ lnNew = nil
88
+ pushNewLine = Proc.new do
89
+ lnNew != "" && lnNew[-1] != ?\n && lnNew += "\n"
90
+ newLines.push lnNew
91
+ end
92
+ fw.each_line do |ln|
93
+ lnNew = yield ln
94
+ if newLines.size == 0
95
+ if lnNew != ln
96
+ modPos = fw.pos - ln.size
97
+ pushNewLine.call
98
+ end
99
+ else
100
+ pushNewLine.call
101
+ end
102
+ end
103
+ if (lnNew = yield("")) != ""
104
+ if modPos == nil
105
+ modPos = fw.pos
106
+ end
107
+ if ln != nil && ln[-1] != ?\n
108
+ lnNew = "\n" + lnNew
109
+ end
110
+ pushNewLine.call
111
+ end
112
+ if newLines.size > 0
113
+ fw.seek modPos
114
+ newLines.each do |e|
115
+ fw.write e
116
+ end
117
+ fw.truncate fw.pos
118
+ end
119
+ ensure
120
+ lock && fw.flock(File::LOCK_UN)
121
+ end
122
+ end
123
+ end
124
+ class File
125
+ def File.nb_open (fName, flg = "r", &bl)
126
+ open fName, IO::FMode.new(flg).to_i | File::NONBLOCK, &bl
127
+ end
128
+ end
129
+ class IO
130
+ def IO.nb_popen (cmd, flg = "r", &bl)
131
+ IO.popen cmd, IO::FMode.new(flg).to_i | File::NONBLOCK, &bl
132
+ end
133
+ end
134
+ class Array
135
+ def nb_open (flg = "r", &bl)
136
+ IO.nb_open condSQuote, flg
137
+ end
138
+ def nb_popen (flg = "r", &bl)
139
+ IO.popen condSQuote, IO::FMode.new(flg).to_i | File::NONBLOCK, &bl
140
+ end
141
+ end
142
+ def nb_open (flg, &bl)
143
+ File.nb_open(flg, &bl)
144
+ end
145
+ class Tempfile
146
+ class TempFifo < String
147
+ def initialize
148
+ super "/var/tmp/#{File.basename($0)}.#{rand(10000000000).to_s}.#{$$}.fifo"
149
+ system "mkfifo /var/tmp/#{File.basename($0)}.#{rand(10000000000).to_s}.#{$$}.fifo"
150
+ at_exit do
151
+ rm_f
152
+ end
153
+ end
154
+ end
155
+ def self.mkfifo
156
+ TempFifo.new
157
+ end
158
+ end
159
+
160
+
@@ -0,0 +1,19 @@
1
+ require 'Yk/auto_pstore'
2
+
3
+ class FileMod
4
+ AutoPstore.fileMod ||= {}
5
+ @@fList = {}
6
+ def FileMod.updated? (fName)
7
+ m = AutoPstore.fileMod[fName]
8
+ AutoPstore.setFinalizer(:fileMod, fName) do |obj|
9
+ if fName.exist?
10
+ obj[fName] = fName.mtime
11
+ else
12
+ obj.delete fName
13
+ end
14
+ end
15
+ m || m < fName.mtime
16
+ end
17
+ end
18
+
19
+
@@ -0,0 +1,3 @@
1
+ $__force_escseq__ = true
2
+ require 'Yk/auto_escseq'
3
+
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ class Object
5
+ class Generator_
6
+ def inc
7
+ @cnt += 1
8
+ if @nextIsEnd
9
+ @current = nil
10
+ @currentIsEnd = true
11
+ # @block.call
12
+ else
13
+ @current = @next
14
+ begin
15
+ @next = @enum.next
16
+ rescue StopIteration
17
+ @next = nil
18
+ @nextIsEnd = true
19
+ end
20
+ end
21
+ if @currentIsEnd
22
+ if @fin
23
+ @fin.call
24
+ end
25
+ end
26
+ self
27
+ end
28
+ def next?
29
+ !@nextIsEnd
30
+ end
31
+ def next
32
+ if @nextIsEnd
33
+ raise StopIteration
34
+ end
35
+ @next
36
+ end
37
+ def +@
38
+ if @currentIsEnd
39
+ raise StopIteration
40
+ end
41
+ @current
42
+ end
43
+ def current?
44
+ !@currentIsEnd
45
+ end
46
+ def current
47
+ if @currentIsEnd
48
+ raise StopIteration
49
+ end
50
+ @current
51
+ end
52
+ def index
53
+ @cnt
54
+ end
55
+ def initialize (m, args, fin = nil, &block)
56
+ if !m.is_a? Method
57
+ m = m.method(:each)
58
+ end
59
+ @block = block
60
+ @cnt = 0
61
+ @fin = fin
62
+ @enum = m.receiver.to_enum #*args
63
+ begin
64
+ @current = @enum.next
65
+ rescue StopIteration
66
+ @currentIsEnd = true
67
+ @nextIsEnd = true
68
+ @fin.call if @fin
69
+ return nil
70
+ else
71
+ @currentIsEnd = false
72
+ begin
73
+ @next = @enum.next
74
+ rescue StopIteration
75
+ @nextIsEnd = true
76
+ else
77
+ @nextIsEnd = false
78
+ end
79
+ end
80
+ ret = nil
81
+ if block
82
+ begin
83
+ begin
84
+ ret = block.call self
85
+ rescue StopIteration
86
+ break
87
+ end
88
+ inc
89
+ end until @currentIsEnd
90
+ end
91
+ @fin = fin
92
+ ret
93
+ end
94
+ end
95
+ def each__ (mName = :each)
96
+ m = self.method(mName)
97
+ Generator_.new m, [] do |g|
98
+ yield g
99
+ end
100
+ end
101
+ def Object.generateEach (m, *args)
102
+ Generator_.new m, args do |g|
103
+ yield g
104
+ end
105
+ end
106
+ def generator__ (mName = :each, &fin)
107
+ m = self.method(mName)
108
+ Generator_.new m, [], fin
109
+ end
110
+ end
111
+
112
+
113
+ def generateEach__ (m, *args)
114
+ Object.generateEach(m, *args) do |g|
115
+ yield g
116
+ end
117
+ end
118
+
119
+
120
+ #argv = []
121
+ #subArgs = Hash.new
122
+
123
+
124
+ #ARGV.each__ do |g|
125
+ # if (+g)[0..1] == "--"
126
+ # subArgNum = 0
127
+ # switch = +g
128
+ # case switch
129
+ # when "--with1SubArg"
130
+ # subArgNum = 2
131
+ # end
132
+ # subArgNum.times do
133
+ # (subArgs[switch] ||= Array.new).push +g.inc
134
+ # end
135
+ # else
136
+ # argv.push +g
137
+ # end
138
+ #end
139
+
140
+
141
+ #p argv
142
+ #p subArgs
143
+
144
+
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ #require 'continuation'
5
+
6
+
7
+ class Object
8
+ class Generator_
9
+ def inc
10
+ if @currentIsEnd
11
+ raise StopIteration
12
+ end
13
+ @cnt += 1
14
+ if @nextIsEnd
15
+ @current = nil
16
+ @currentIsEnd = true
17
+ else
18
+ @current = @next
19
+ begin
20
+ @next = @enum.next
21
+ rescue StopIteration
22
+ @next = nil
23
+ @nextIsEnd = true
24
+ end
25
+ end
26
+ self
27
+ end
28
+ def next?
29
+ !@nextIsEnd
30
+ end
31
+ def next
32
+ if @nextIsEnd
33
+ raise StopIteration
34
+ end
35
+ @next
36
+ end
37
+ def +@
38
+ if @currentIsEnd
39
+ raise StopIteration
40
+ end
41
+ @current
42
+ end
43
+ def current?
44
+ !@currentIsEnd
45
+ end
46
+ def current
47
+ if @currentIsEnd
48
+ raise StopIteration
49
+ end
50
+ @current
51
+ end
52
+ def index
53
+ @cnt
54
+ end
55
+ def initialize (m, args, fin = nil, &block)
56
+ if !m.is_a? Method
57
+ m = m.method(:each)
58
+ end
59
+ @block = block
60
+ @cnt = 0
61
+ @enum = m.receiver.to_enum *args
62
+ begin
63
+ @current = @enum.next
64
+ rescue StopIteration
65
+ @currentIsEnd = true
66
+ @nextIsEnd = true
67
+ return nil
68
+ else
69
+ @currentIsEnd = false
70
+ begin
71
+ @next = @enum.next
72
+ rescue StopIteration
73
+ @nextIsEnd = true
74
+ else
75
+ @nextIsEnd = false
76
+ end
77
+ end
78
+ ret = nil
79
+ begin
80
+ begin
81
+ ret = block.call self
82
+ rescue StopIteration
83
+ break
84
+ end
85
+ inc
86
+ end until @currentIsEnd
87
+ ret
88
+ end
89
+ end
90
+ def each__ (mName = :each)
91
+ m = self.method(mName)
92
+ Generator_.new m, [] do |g|
93
+ yield g
94
+ end
95
+ end
96
+ def Object.generateEach (m, *args)
97
+ Generator_.new m, args do |g|
98
+ yield g
99
+ end
100
+ end
101
+ def generator__ (mName = :each, &fin)
102
+ m = self.method(mName)
103
+ Generator_.new m, [], fin
104
+ end
105
+ end
106
+
107
+
108
+ def generateEach__ (m, *args)
109
+ Object.generateEach(m, *args) do |g|
110
+ yield g
111
+ end
112
+ end
113
+
114
+
115
+ #argv = []
116
+ #subArgs = Hash.new
117
+
118
+
119
+ #ARGV.each__ do |g|
120
+ # if (+g)[0..1] == "--"
121
+ # subArgNum = 0
122
+ # switch = +g
123
+ # case switch
124
+ # when "--with1SubArg"
125
+ # subArgNum = 2
126
+ # end
127
+ # subArgNum.times do
128
+ # (subArgs[switch] ||= Array.new).push +g.inc
129
+ # end
130
+ # else
131
+ # argv.push +g
132
+ # end
133
+ #end
134
+
135
+
136
+ #p argv
137
+ #p subArgs
138
+
139
+
@@ -0,0 +1,46 @@
1
+
2
+
3
+ class Token
4
+ module ArglessCaseLower
5
+ attr_accessor :arglessCaseUpper
6
+
7
+ def addArglessCaseLower pi
8
+ (@arglessCaseLowers ||= []).push pi
9
+ pi.kind = :argless_case_lower
10
+ pi.arglessCaseUpper = self
11
+ end
12
+ def closeBeginner pi
13
+ if !lines
14
+ raise Error.new("empty line under argless case")
15
+ end
16
+ lines.each_with_index do |item, i|
17
+ Token.addMod item.first.first, "#{i == 0 ? "#{')&&(' if parent.kind == :argless_case_lower}(" : ') ||'}("
18
+ end
19
+ # case
20
+ # x ( x
21
+ # a ) ||( a
22
+ # b )&&( ( b
23
+ # c ) ||( c
24
+ # d ) ||( d )
25
+ # e ) ||( e
26
+ # f ) ||( f )
27
+ ")"
28
+ end
29
+ end
30
+ module ArglessCase
31
+ def closeBeginner pi
32
+ Token.addMod s.range, ""
33
+ ""
34
+ end
35
+ end
36
+ module Case
37
+ MethodChain.override do
38
+ def onClassify
39
+ if [:on_nl, :on_semicolon].include? next.kind
40
+ kind = :argless_case
41
+ end
42
+ super
43
+ end
44
+ end
45
+ end
46
+ end