kanamei-kanamei-keystone 0.0.10 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,34 +1,22 @@
1
1
  require 'rubygems'
2
2
  require 'keystone'
3
- require 'keystone/batch_base'
4
- require 'keystone/mail'
5
3
 
6
- include Keystone::BatchBase
4
+ include Keystone::Batch::Base
7
5
 
8
6
  if ARGV[0] == nil
9
7
  puts "set mail addr"
10
8
  exit
11
9
  end
12
10
 
13
- MAIL_FROM = ARGV[0]
14
- MAIL_TO = [ARGV[0]]
15
- MAIL_SUBJECT = 'テストメール~~'
16
- MAIL_BODY = <<BODY
17
- こんにちは
18
- どないでしょう??
19
- 〜〜〜
20
- #{Keystone::Environment.dump}
21
- BODY
11
+ # ERROR_MAIL_TOを設定しておけば自動でエラーメールが送信される
12
+ ERROR_MAIL_TO = ARGV[0]
13
+ # ●定数
14
+ # ERROR_MAIL_TO (エラーメール送信先) 設定しておけば自動でエラーメールを送信してくれる
15
+ # ERROR_MAIL_FROM (エラーメール送信元) 設定されてない場合はERROR_MAIL_TOを使用
16
+ # ERROR_MAIL_STMP_ADDR (エラーメール送信SMTPアドレス) 設定されてない場合は"127.0.0.1"
17
+ # ERROR_MAIL_STMP_PORT (エラーメール送信SMTPポート) 設定されてない場合は25
22
18
 
23
- execute do
19
+ execute() do
24
20
  info "batch process01"
25
- sleep 1.2
26
-
27
- begin
28
- raise 'error occur'
29
- rescue => e
30
- error e
31
- Keystone::Mail::Send.new().send(MAIL_FROM,MAIL_TO,MAIL_SUBJECT,MAIL_BODY)
32
- Keystone::Mail::Send.send(MAIL_FROM,MAIL_TO,MAIL_SUBJECT,MAIL_BODY)
33
- end
21
+ raise 'error occur'
34
22
  end
data/example/os.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'keystone'
3
+
4
+ puts Keystone::Os.get().dump
data/lib/keystone.rb CHANGED
@@ -11,12 +11,12 @@ autoload :Moji , 'moji'
11
11
 
12
12
  module Keystone
13
13
 
14
- VERSION = '0.0.10'
14
+ VERSION = '0.0.12'
15
15
 
16
- autoload :StringUtil , 'keystone/string_util'
17
- autoload :BatchUtil , 'keystone/batch_util'
18
- autoload :Environment , 'keystone/environment'
19
- autoload :Mail , 'keystone/mail'
16
+ autoload :StringUtil , 'keystone/string_util'
17
+ autoload :Batch , 'keystone/batch'
18
+ autoload :Os , 'keystone/os'
19
+ autoload :Mail , 'keystone/mail'
20
20
 
21
21
  module Rails
22
22
  #autoload :ActiveSupportExt, 'keystone/rails/active_support_ext'
data/lib/keystone/base.rb CHANGED
@@ -14,9 +14,9 @@ module Keystone
14
14
 
15
15
  def error(message)
16
16
  if message.is_a? Exception
17
- log(:ERROR," #{message.message}")
17
+ log(:ERROR,"#{message.message}")
18
18
  message.backtrace.each_with_index {|line, i|
19
- log(:ERROR," #{line})",false)
19
+ log(:ERROR,"#{line})",false)
20
20
  }
21
21
  else
22
22
  log(:ERROR,message.to_s)
@@ -0,0 +1,5 @@
1
+ module Keystone
2
+ module Batch
3
+ autoload :Base , 'keystone/batch/base'
4
+ end
5
+ end
@@ -0,0 +1,118 @@
1
+
2
+ require 'digest/md5'
3
+
4
+ module Keystone::Batch
5
+ #
6
+ # = バッチをざくっと書きたい時用モジュール
7
+ #
8
+ # 基本的にはexecuteメソッドにバッチ処理をブロックで渡す
9
+ #
10
+ # == 定数
11
+ #
12
+ # ERROR_MAIL_TO (エラーメール送信先) 設定しておけば自動でエラーメールを送信してくれる
13
+ #
14
+ # ERROR_MAIL_FROM (エラーメール送信元) 設定されてない場合はERROR_MAIL_TOを使用
15
+ #
16
+ # ERROR_MAIL_STMP_ADDR (エラーメール送信SMTPアドレス) 設定されてない場合は"127.0.0.1"
17
+ #
18
+ # ERROR_MAIL_STMP_PORT (エラーメール送信SMTPポート) 設定されてない場合は25
19
+ #
20
+ module Base
21
+ # [double_process_check]
22
+ # 2重起動チェック
23
+ # [auto_recover]
24
+ # 2重起動チェック用のpidファイルがすでに存在しているがプロセスは見あたらない
25
+ # そんな時、そのまま実行を続けるかどうか
26
+ #
27
+ #
28
+ # バッチの主処理をこのメソッドへのブロック引数として定義してください
29
+ #
30
+ # require 'rubygems'
31
+ # require 'keystone'
32
+ #
33
+ # include Keystone::Batch::Base
34
+ #
35
+ # # ERROR_MAIL_TOを設定しておけば自動でエラーメールが送信される
36
+ # ERROR_MAIL_TO = ARGV[0]
37
+ #
38
+ # execute() do
39
+ # info "batch process01"
40
+ # end
41
+ #
42
+ def execute(double_process_check = true,auto_recover = true,&process)
43
+ info "start script(#{File.expand_path($0)})"
44
+ warn "ERROR_MAIL_TO not defined.if you want error mail automatically,set this value." unless Module.constants.include?("ERROR_MAIL_TO")
45
+ script_started_at = Time.now
46
+ double_process_check_worked = false
47
+ begin
48
+ # double process check
49
+ if double_process_check
50
+ pg_path = File.expand_path($0)
51
+ pg_name = File.basename(pg_path)
52
+ hash = Digest::MD5.hexdigest(pg_path)
53
+ pid_file = "/tmp/.#{pg_name}.#{hash}.pid"
54
+ debug pid_file
55
+ if File.exists?(pid_file)
56
+ pid = File.open(pid_file).read.chomp
57
+ pid_list = `ps -e | awk '{print $1}'`
58
+ if pid_list =~ /#{pid}/
59
+ warn "pid:#{pid} still running"
60
+ double_process_check_worked = true
61
+ return nil
62
+ else
63
+ if auto_recover
64
+ warn "pid file still exists,but process does not found.so process continues"
65
+ else
66
+ double_process_check_worked = true
67
+ raise "pid file still exists,but process does not found"
68
+ end
69
+ end
70
+ end
71
+ File.open(pid_file, "w"){|file|
72
+ file.write $$
73
+ }
74
+ end
75
+ return (yield process)
76
+ rescue => e
77
+ error e
78
+ send_error_mail(e)
79
+ ensure
80
+ unless double_process_check_worked
81
+ File.delete(pid_file) if double_process_check
82
+ end
83
+ info "finish script (%1.3fsec)" % (Time.now - script_started_at)
84
+ end
85
+ end
86
+
87
+ #
88
+ # = エラーメール送信メソッド
89
+ # エクセプションを何も考えずにメールにて送信する
90
+ #  各種メール送信属性は定数にて渡す
91
+ #
92
+ # [exception]
93
+ # エクセプションクラスインスタンス
94
+ #
95
+ def send_error_mail(exception)
96
+ if Module.constants.include?("ERROR_MAIL_TO")
97
+ host = Keystone::Os.get()
98
+ title = %|error occur at "#{host.hostname}" [#{error.message}]|
99
+
100
+ mail_to = ERROR_MAIL_TO
101
+ mail_to = [mail_to] if mail_to.is_a?(String)
102
+ mail_from = Module.constants.include?("ERROR_MAIL_FROM") ? ERROR_MAIL_FROM : mail_to[0]
103
+ smtp_addr = Module.constants.include?("ERROR_MAIL_STMP_ADDR") ? ERROR_MAIL_STMP_ADDR : '127.0.0.1'
104
+ smtp_port = Module.constants.include?("ERROR_MAIL_STMP_PORT") ? ERROR_MAIL_STMP_PORT : 25
105
+
106
+ body = <<-BODY
107
+ ==== error message ====
108
+ #{exception.message}
109
+ ====== backtrace ======
110
+ #{exception.backtrace.join("\n")}
111
+ ===== environment =====
112
+ #{host.dump}
113
+ BODY
114
+ Keystone::Mail::Send.send(mail_from,mail_to,title,body,smtp_addr,smtp_port)
115
+ end
116
+ end
117
+ end
118
+ end
@@ -1,76 +1,17 @@
1
-
2
- require 'tempfile'
3
-
4
- class Uri
5
- #
6
- def self.escape_raw(st)
7
- st.gsub(/([^a-zA-Z0-9_\-\.~])/) { "%#{$1.unpack('H*')[0].scan(/../).join('%').upcase }" }
8
- end
9
-
10
- #
11
- # usage
12
- # @search_tag = Uri.unescape_raw(params[:tag]).toutf8
13
- #
14
- #
15
- def self.unescape_raw(st)
16
- st.tr('+',' ').gsub(/%([A-Fa-f0-9][A-Fa-f0-9])/) { [$1.hex].pack('C') }
1
+ module Keystone
2
+ module CoreExt
3
+ require 'keystone/core_ext/blank'
4
+ require 'keystone/core_ext/uri'
5
+ require 'keystone/core_ext/tempfile'
6
+ require 'keystone/core_ext/dir'
7
+ require 'keystone/core_ext/object'
8
+ require 'keystone/core_ext/array'
17
9
  end
18
10
  end
19
11
 
20
- class Tempfile
21
- def self.open_with_block(name = nil, dir = nil)
22
- name ||= (0..8).map{rand(36).to_s(36)}.join
23
- args = dir ? [name, dir] : [name]
24
- tmp = Tempfile.open *args
25
- begin
26
- yield tmp
27
- ensure
28
- tmp.close true
29
- end
30
- end
31
- end
32
12
 
33
- class Dir
34
- def self.mkdir_r(dirPath)
35
- folders = dirPath.split('/')
36
- folderToCreate = ''
37
- folders.each do |folder|
38
- folderToCreate += folder + '/'
39
- if !File.directory?(folderToCreate)
40
- Dir.mkdir(folderToCreate)
41
- end
42
- end
43
- end
44
- end
45
13
 
46
- class Object
47
- # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
48
- def metaclass
49
- class << self
50
- self
51
- end
52
- end
53
-
54
- # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
55
- def meta_eval(&blk)
56
- metaclass.instance_eval(&blk)
57
- end
58
-
59
- # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
60
- def meta_def(name, &blk)
61
- meta_eval { define_method name, &blk }
62
- end
63
-
64
- # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
65
- def class_def(name, &blk)
66
- class_eval { define_method name, &blk }
67
- end
68
-
69
- # 1.8.7 エミュレート
70
- def tap
71
- yield(self)
72
- self
73
- end
74
- end
14
+
15
+
75
16
 
76
17
 
@@ -0,0 +1,16 @@
1
+ class Array
2
+ #
3
+ # TODO
4
+ # active_supportに同様のメソッドが無いかどうかの確認
5
+ #
6
+ def split_by(num)
7
+ ret = [[]]
8
+ counter = 0
9
+ self.each do |val|
10
+ (counter = 0;ret << []) if counter >= num
11
+ ret[-1] << val
12
+ counter += 1
13
+ end
14
+ return ret
15
+ end
16
+ end
@@ -0,0 +1,44 @@
1
+ class Object
2
+ # copy from activesupport
3
+ def blank?
4
+ respond_to?(:empty?) ? empty? : !self
5
+ end
6
+ end
7
+
8
+ class NilClass #:nodoc:
9
+ def blank?
10
+ true
11
+ end
12
+ end
13
+
14
+ class FalseClass #:nodoc:
15
+ def blank?
16
+ true
17
+ end
18
+ end
19
+
20
+ class TrueClass #:nodoc:
21
+ def blank?
22
+ false
23
+ end
24
+ end
25
+
26
+ class Array #:nodoc:
27
+ alias_method :blank?, :empty?
28
+ end
29
+
30
+ class Hash #:nodoc:
31
+ alias_method :blank?, :empty?
32
+ end
33
+
34
+ class String #:nodoc:
35
+ def blank?
36
+ self !~ /\S/
37
+ end
38
+ end
39
+
40
+ class Numeric #:nodoc:
41
+ def blank?
42
+ false
43
+ end
44
+ end
@@ -0,0 +1,12 @@
1
+ class Dir
2
+ def self.mkdir_r(dirPath)
3
+ folders = dirPath.split('/')
4
+ folderToCreate = ''
5
+ folders.each do |folder|
6
+ folderToCreate += folder + '/'
7
+ if !File.directory?(folderToCreate)
8
+ Dir.mkdir(folderToCreate)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ class Object
2
+ # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
3
+ def metaclass
4
+ class << self
5
+ self
6
+ end
7
+ end
8
+
9
+ # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
10
+ def meta_eval(&blk)
11
+ metaclass.instance_eval(&blk)
12
+ end
13
+
14
+ # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
15
+ def meta_def(name, &blk)
16
+ meta_eval { define_method name, &blk }
17
+ end
18
+
19
+ # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
20
+ def class_def(name, &blk)
21
+ class_eval { define_method name, &blk }
22
+ end
23
+
24
+ # 1.8.7 エミュレート
25
+ def tap
26
+ yield(self)
27
+ self
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ require 'tempfile'
2
+
3
+ class Tempfile
4
+ def self.open_with_block(name = nil, dir = nil)
5
+ name ||= (0..8).map{rand(36).to_s(36)}.join
6
+ args = dir ? [name, dir] : [name]
7
+ tmp = Tempfile.open *args
8
+ begin
9
+ yield tmp
10
+ ensure
11
+ tmp.close true
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ class Uri
2
+ #
3
+ def self.escape_raw(st)
4
+ st.gsub(/([^a-zA-Z0-9_\-\.~])/) { "%#{$1.unpack('H*')[0].scan(/../).join('%').upcase }" }
5
+ end
6
+
7
+ #
8
+ # usage
9
+ # @search_tag = Uri.unescape_raw(params[:tag]).toutf8
10
+ #
11
+ def self.unescape_raw(st)
12
+ st.tr('+',' ').gsub(/%([A-Fa-f0-9][A-Fa-f0-9])/) { [$1.hex].pack('C') }
13
+ end
14
+ end
@@ -14,8 +14,16 @@ module Keystone
14
14
 
15
15
  def self.send(from,to,title,body,smtp_addr="127.0.0.1",smtp_port=25)
16
16
  from_addr,from_addr_4_header = create_addr_and_header(from)
17
- title = Kconv.tojis(title)
18
- title = title.split(//,1).pack('m'); title = title.chomp
17
+ title.gsub!(/(\r|\n)/,"")
18
+
19
+ subject_header = ""
20
+ title.split(//).split_by(10).each do |subject|
21
+ st = subject.join('')
22
+ st = Kconv.tojis(st)
23
+ st = st.split(//,1).pack('m'); st = st.chomp
24
+ subject_header += " =?ISO-2022-JP?B?#{st}?=\n"
25
+ end
26
+
19
27
  if to.class.to_s == 'Array'
20
28
  tomany = to.join(',')
21
29
  else
@@ -23,13 +31,13 @@ module Keystone
23
31
  end
24
32
 
25
33
  head = <<HEAD
26
- Subject: =?ISO-2022-JP?B?#{title}?=
27
- To: #{tomany}
34
+ Subject: #{subject_header}To: #{tomany}
28
35
  From: #{from_addr_4_header}
29
36
  Mime-Version: 1.0
30
37
  Content-Transfer-Encoding: 7bit
31
38
  Content-Type: Text/Plain; charset=iso-2022-jp
32
39
  HEAD
40
+
33
41
  src = head + "\n" + Kconv.tojis(body)
34
42
  # puts src
35
43
  m = Net::SMTPSession.new(smtp_addr, smtp_port)
@@ -37,7 +45,7 @@ HEAD
37
45
  m.sendmail(src, from_addr, to)
38
46
  m.finish
39
47
  end
40
-
48
+
41
49
  def send(from,to,title,body)
42
50
  self.class.send(from,to,title,body,@smtp_addr,@smtp_port)
43
51
  end
@@ -0,0 +1,26 @@
1
+ require 'keystone/os/abstract_os'
2
+
3
+ module Keystone::Os
4
+ autoload :Centos, 'keystone/os/centos'
5
+ autoload :Linux, 'keystone/os/linux'
6
+ autoload :Darwin, 'keystone/os/darwin'
7
+ autoload :Osx, 'keystone/os/osx'
8
+ autoload :Unix, 'keystone/os/unix'
9
+ # autoload :Windows, 'keystone/env/windows.rb' # fu*k windows
10
+ def self.oses
11
+ @oses ||= constants
12
+ end
13
+
14
+ def self.get
15
+ case RUBY_PLATFORM
16
+ when /linux/
17
+ # TODO only centos impremented
18
+ Keystone::Os::Linux.get()
19
+ when /darwin/
20
+ # TODO only osx impremented
21
+ Keystone::Os::Osx.new
22
+ else
23
+ # TODO
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,34 @@
1
+ module Keystone
2
+ module Os
3
+ class AbstractOs
4
+
5
+ attr_accessor :version
6
+
7
+ def ip_address
8
+ end
9
+
10
+ def hostname
11
+ end
12
+
13
+ def disk
14
+ end
15
+
16
+ def process_list
17
+ end
18
+
19
+ def netstat
20
+ end
21
+
22
+ def dump
23
+ self_methods = self.methods - Class.methods
24
+ self_methods.delete("version=")
25
+ self_methods.delete("dump")
26
+ st = ""
27
+ self_methods.each do |method|
28
+ st << "== #{method} ==\n #{self.__send__(method).to_s.split("\n").join("\n ")}\n"
29
+ end
30
+ return st
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,6 @@
1
+ module Keystone
2
+ module Os
3
+ class Centos < Linux
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module Keystone
2
+ module Os
3
+ class Darwin < Unix
4
+ def process_list
5
+ `/bin/ps -aux`.chomp
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module Keystone::Os
2
+ class Linux < Unix
3
+ def self.get
4
+ Dir.glob("/etc/*{-release,_version}").each do |file|
5
+ content = File.open(file).read
6
+ if content =~ /CentOS release (\d*)/
7
+ os = Centos.new
8
+ os.version = $1.to_i
9
+ return os
10
+ end
11
+ end
12
+ return Linux.new
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module Keystone
2
+ module Os
3
+ class Osx < Darwin
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,34 @@
1
+ module Keystone
2
+ module Os
3
+ class Unix < AbstractOs
4
+ def ip_address
5
+ ifconfig = `/sbin/ifconfig`
6
+ ips = []
7
+
8
+ # TODO mac
9
+ ifconfig.gsub(/inet addr:(\d+\.\d+\.\d+\.\d+)/){|ip|
10
+ if $1 != '127.0.0.1'
11
+ ips << $1
12
+ end
13
+ }
14
+ return ips
15
+ end
16
+
17
+ def hostname
18
+ `/bin/hostname`.chomp
19
+ end
20
+
21
+ def disk
22
+ `/bin/df -h`.chomp
23
+ end
24
+
25
+ def process_list
26
+ `/bin/ps -ef`.chomp
27
+ end
28
+
29
+ def netstat
30
+ `/usr/sbin/netstat -an`.chomp
31
+ end
32
+ end
33
+ end
34
+ end
@@ -59,7 +59,7 @@ module Keystone
59
59
  #
60
60
  # TODO
61
61
  def self.downcase_roma_number(st)
62
- st.tr("ⅠⅡⅢⅣ", "ⅰⅱⅲⅳ")
62
+ st.tr("ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ", "ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ")
63
63
  end
64
64
 
65
65
  #
@@ -67,7 +67,8 @@ module Keystone
67
67
  #
68
68
  def self.to_searchtext(str)
69
69
  self.downcase_roma_number(Moji.han_to_zen(
70
- Moji.zen_to_han(str,Moji::ZEN_ALNUM | Moji::ZEN_SYMBOL).downcase,Moji::HAN_KATA | Moji::HAN_JSYMBOL).tr("ー~/","ー~/")
70
+ #Moji.zen_to_han(str,Moji::ZEN_ALNUM | Moji::ZEN_SYMBOL).downcase,Moji::HAN_KATA | Moji::HAN_JSYMBOL).tr("ー~/","ー~/")
71
+ Moji.zen_to_han(str,Moji::ZEN_ALNUM | Moji::ZEN_SYMBOL).downcase,Moji::HAN_KATA | Moji::HAN_JSYMBOL)
71
72
  )
72
73
  end
73
74
  end
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'redgreen'
3
- require 'lib/keystone'
3
+ require 'vendor/moji'
4
+ require 'vendor/flag_set_maker'
4
5
  require 'lib/keystone/string_util'
5
6
 
6
7
  $KCODE='u'
@@ -47,10 +48,13 @@ class TestStringUtilBase < Test::Unit::TestCase
47
48
  assert_equal(Keystone::StringUtil.to_searchtext("スープ"),"スープ")
48
49
  assert_equal(Keystone::StringUtil.to_searchtext("スープ"),"スープ") # ハンカク半濁点
49
50
  assert_equal(Keystone::StringUtil.to_searchtext("コズミックラナウェイ"),"コズミックラナウェイ") # ハンカク濁点
50
- assert_equal(Keystone::StringUtil.to_searchtext("句読点。、・/"),"句読点。、・/") # ??? ここおかしくない??
51
+ assert_equal(Keystone::StringUtil.to_searchtext("ー―-‐"),"ー―-‐") # ハンカク濁点
52
+
53
+
54
+
51
55
  # TODO
52
56
  assert_equal(Keystone::StringUtil.to_searchtext("!”$%&¥’()*+,-./:;<=>?@[¥]^_‘{|}~#"),"!\"$%&\\'()*+,-./:;<=>?@[\\]^_`{|}~#") # 半角全角変換可能記号
53
57
  assert_equal(Keystone::StringUtil.to_searchtext("。「」、ー゙゚・"),"。「」、ー゛゜・")
54
- assert_equal(Keystone::StringUtil.to_searchtext("ⅠⅡⅢⅣ"),"ⅰⅱⅲⅳ")
58
+ assert_equal(Keystone::StringUtil.to_searchtext("ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ"),"ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ")
55
59
  end
56
60
  end
data/vendor/moji.rb CHANGED
@@ -298,7 +298,8 @@ module Moji
298
298
  module Detail
299
299
 
300
300
  HAN_ASYMBOL_LIST= ' !"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~'
301
- ZEN_ASYMBOL_LIST= ' !”#$%&’()*+,-./:;<=>?@[¥]^_‘{|} ̄'
301
+ # ZEN_ASYMBOL_LIST= ' !”#$%&’()*+,-./:;<=>?@[¥]^_‘{|} ̄' # Keystone replaced
302
+ ZEN_ASYMBOL_LIST= ' !”#$%&’()*+,-./:;<=>?@[¥]^_‘{|}~'
302
303
  HAN_JSYMBOL1_LIST= '。「」、ー゙゚・'
303
304
  ZEN_JSYMBOL1_LIST= '。「」、ー゛゜・'
304
305
  ZEN_JSYMBOL_LIST= '、。・゛゜´`¨ヽヾゝゞ〃仝々〆〇ー―‐\~〜∥…‥“〔〕〈〉《》「」『』【】'+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kanamei-kanamei-keystone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - kanamei
@@ -23,16 +23,33 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - example/batch_sample.rb
26
+ - example/os.rb
26
27
  - example/string_util.rb
27
28
  - test/test_string_util.rb
28
29
  - lib/keystone
29
30
  - lib/keystone/base.rb
30
- - lib/keystone/batch_base.rb
31
+ - lib/keystone/batch
32
+ - lib/keystone/batch/base.rb
33
+ - lib/keystone/batch.rb
34
+ - lib/keystone/core_ext
35
+ - lib/keystone/core_ext/array.rb
36
+ - lib/keystone/core_ext/blank.rb
37
+ - lib/keystone/core_ext/dir.rb
38
+ - lib/keystone/core_ext/object.rb
39
+ - lib/keystone/core_ext/tempfile.rb
40
+ - lib/keystone/core_ext/uri.rb
31
41
  - lib/keystone/core_ext.rb
32
- - lib/keystone/environment.rb
33
42
  - lib/keystone/mail
34
43
  - lib/keystone/mail/send.rb
35
44
  - lib/keystone/mail.rb
45
+ - lib/keystone/os
46
+ - lib/keystone/os/abstract_os.rb
47
+ - lib/keystone/os/centos.rb
48
+ - lib/keystone/os/darwin.rb
49
+ - lib/keystone/os/linux.rb
50
+ - lib/keystone/os/osx.rb
51
+ - lib/keystone/os/unix.rb
52
+ - lib/keystone/os.rb
36
53
  - lib/keystone/string_util.rb
37
54
  - lib/keystone.rb
38
55
  - vendor/flag_set_maker.rb
@@ -1,17 +0,0 @@
1
- module Keystone
2
- module BatchBase
3
- def execute(&process)
4
- info "start script"
5
- script_started_at = Time.now
6
- begin
7
- return (yield process)
8
- rescue => e
9
- error e
10
- Skutil::Mail.send_error(ERROR_MAIL_FROM,ERROR_MAIL_TO,ERROR_MAIL_SUBJECT,e)
11
- return e
12
- ensure
13
- info "finish script (%1.3fsec)" % (Time.now - script_started_at)
14
- end
15
- end
16
- end
17
- end
@@ -1,47 +0,0 @@
1
- module Keystone
2
- class Environment
3
- def self.ip_address
4
- ifconfig = `/sbin/ifconfig`
5
- ips = []
6
-
7
- # TODO mac
8
- ifconfig.gsub(/inet addr:(\d+\.\d+\.\d+\.\d+)/){|ip|
9
- if $1 != '127.0.0.1'
10
- ips << $1
11
- end
12
- }
13
- return ips
14
- end
15
-
16
- def self.hostname
17
- `/bin/hostname`.chomp
18
- end
19
-
20
- def self.df
21
- `/bin/df -h`.chomp
22
- end
23
-
24
- def self.ps
25
- `/bin/ps -ef`.chomp
26
- end
27
-
28
- def self.netstat
29
- `/usr/sbin/netstat -an`.chomp
30
- end
31
-
32
- def self.execute(command)
33
- `#{command}`.chomp
34
- end
35
-
36
- def self.dump
37
- self_methods = self.methods - Class.methods
38
- self_methods.delete("dump")
39
- self_methods.delete("execute")
40
- st = ""
41
- self_methods.each do |method|
42
- st << "#{method}:\n #{self.__send__(method).to_s.split("\n").join("\n ")}\n"
43
- end
44
- return st
45
- end
46
- end
47
- end