s2container 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Apache_Software_License_2.0.txt +202 -0
- data/ChangeLog +1 -0
- data/ChangeLog.ja +64 -0
- data/README +9 -0
- data/Rakefile +51 -0
- data/example/example01/example.rb +13 -0
- data/example/example01/run.rb +20 -0
- data/example/example02/example.rb +30 -0
- data/example/example02/run.rb +8 -0
- data/example/example03/example.rb +8 -0
- data/example/example03/run.rb +12 -0
- data/example/example04/example.rb +9 -0
- data/example/example04/run.rb +15 -0
- data/example/example05/example.rb +9 -0
- data/example/example05/run.rb +21 -0
- data/example/example06/example.rb +9 -0
- data/example/example06/run.rb +8 -0
- data/example/example07/example.rb +8 -0
- data/example/example07/run.rb +15 -0
- data/example/example08/example.rb +9 -0
- data/example/example08/run.rb +19 -0
- data/example/example09/example.rb +7 -0
- data/example/example09/run.rb +11 -0
- data/example/example10/example.rb +9 -0
- data/example/example10/run.rb +10 -0
- data/example/example11/example.rb +18 -0
- data/example/example11/run.rb +10 -0
- data/example/example12/example.rb +9 -0
- data/example/example12/run.rb +8 -0
- data/example/example13/example.rb +18 -0
- data/example/example13/example.sql +4 -0
- data/example/example13/run.rb +22 -0
- data/example/example13/sample.db +0 -0
- data/example/example14/example.db +0 -0
- data/example/example14/example.rb +57 -0
- data/example/example14/example.sql +50 -0
- data/example/example14/run1.rb +23 -0
- data/example/example14/run2.rb +28 -0
- data/example/example14/run3.rb +25 -0
- data/example/example14/run4.rb +23 -0
- data/example/example14/run5.rb +35 -0
- data/example/example15/example.rb +20 -0
- data/example/example15/run.rb +28 -0
- data/example/example16/example.rb +15 -0
- data/example/example16/run.rb +24 -0
- data/example/quickstart/quickstart1/quickstart.rb +10 -0
- data/example/quickstart/quickstart2/quickstart.rb +9 -0
- data/example/quickstart/quickstart3/quickstart.rb +9 -0
- data/example/quickstart/quickstart4/quickstart.rb +14 -0
- data/example/quickstart/quickstart5/quickstart.rb +21 -0
- data/example/quickstart/quickstart6/quickstart.rb +28 -0
- data/example/quickstart/quickstart7/quickstart.rb +18 -0
- data/lib/s2container.rb +25 -0
- data/lib/seasar/aop/aspect.rb +30 -0
- data/lib/seasar/aop/interceptor/trace-interceptor.rb +48 -0
- data/lib/seasar/aop/method-invocation.rb +57 -0
- data/lib/seasar/aop/pointcut.rb +53 -0
- data/lib/seasar/aop/s2aop-factory.rb +125 -0
- data/lib/seasar/aop.rb +29 -0
- data/lib/seasar/beans/abstract-property-desc.rb +59 -0
- data/lib/seasar/beans/attribute-accessor-desc.rb +60 -0
- data/lib/seasar/beans/bean-desc-factory.rb +68 -0
- data/lib/seasar/beans/bean-desc.rb +232 -0
- data/lib/seasar/beans/instance-variable-desc.rb +58 -0
- data/lib/seasar/beans.rb +29 -0
- data/lib/seasar/container/arg-def.rb +51 -0
- data/lib/seasar/container/aspect-def.rb +60 -0
- data/lib/seasar/container/aspect-info-def.rb +94 -0
- data/lib/seasar/container/assembler/abstract-assembler.rb +68 -0
- data/lib/seasar/container/assembler/auto-property-assembler.rb +57 -0
- data/lib/seasar/container/assembler/autobinding-auto-def.rb +55 -0
- data/lib/seasar/container/assembler/autobinding-def-factory.rb +57 -0
- data/lib/seasar/container/assembler/autobinding-none-def.rb +53 -0
- data/lib/seasar/container/assembler/manual-constructor-assembler.rb +67 -0
- data/lib/seasar/container/assembler/manual-property-assembler.rb +68 -0
- data/lib/seasar/container/autobinding-def.rb +36 -0
- data/lib/seasar/container/component-def.rb +229 -0
- data/lib/seasar/container/component-info-def.rb +117 -0
- data/lib/seasar/container/deployer/abstract-component-deployer.rb +47 -0
- data/lib/seasar/container/deployer/instance-def-factory.rb +56 -0
- data/lib/seasar/container/deployer/instance-outer-def.rb +44 -0
- data/lib/seasar/container/deployer/instance-prototype-def.rb +44 -0
- data/lib/seasar/container/deployer/instance-singleton-def.rb +42 -0
- data/lib/seasar/container/deployer/outer-component-deployer.rb +47 -0
- data/lib/seasar/container/deployer/prototype-component-deployer.rb +51 -0
- data/lib/seasar/container/deployer/singleton-component-deployer.rb +54 -0
- data/lib/seasar/container/exception/component-notfound-runtime-exception.rb +44 -0
- data/lib/seasar/container/exception/cyclic-reference-runtime-exception.rb +43 -0
- data/lib/seasar/container/exception/illegal-autobinding-def-runtime-exception.rb +43 -0
- data/lib/seasar/container/exception/illegal-instance-def-runtime-exception.rb +44 -0
- data/lib/seasar/container/exception/toomany-registration-runtime-exception.rb +46 -0
- data/lib/seasar/container/instance-def.rb +37 -0
- data/lib/seasar/container/outer-component-def.rb +34 -0
- data/lib/seasar/container/property-def.rb +43 -0
- data/lib/seasar/container/s2application-context.rb +447 -0
- data/lib/seasar/container/s2container-component-def.rb +41 -0
- data/lib/seasar/container/s2container.rb +308 -0
- data/lib/seasar/container/simple-component-def.rb +45 -0
- data/lib/seasar/container/toomany-registration-component-def.rb +69 -0
- data/lib/seasar/container.rb +143 -0
- data/lib/seasar/dbi/dbi-interceptor.rb +97 -0
- data/lib/seasar/dbi/paginate.rb +215 -0
- data/lib/seasar/dbi.rb +26 -0
- data/lib/seasar/exception/notyet-implemented-exception.rb +25 -0
- data/lib/seasar/exception/property-notfound-runtime-exception.rb +48 -0
- data/lib/seasar/exception/s2runtime-exception.rb +35 -0
- data/lib/seasar/exception/unsupported-operation-exception.rb +25 -0
- data/lib/seasar/exception.rb +27 -0
- data/lib/seasar/log/s2logger.rb +75 -0
- data/lib/seasar/log.rb +38 -0
- data/lib/seasar/util/class-util.rb +116 -0
- data/lib/seasar/util.rb +24 -0
- data/setup.rb +1585 -0
- data/test/seasar/aop/test_pointcut.rb +25 -0
- data/test/seasar/aop/test_s2aop_factory.rb +90 -0
- data/test/seasar/beans/test_bean-desc.rb +179 -0
- data/test/seasar/container/assembler/test_auto_property_assembler.rb +87 -0
- data/test/seasar/container/assembler/test_autobinding_def_factory.rb +22 -0
- data/test/seasar/container/assembler/test_manual_property_assembler.rb +59 -0
- data/test/seasar/container/assembler/test_manula_constructor_assembler.rb +59 -0
- data/test/seasar/container/assembler/test_proc_constructor_assembler.rb +61 -0
- data/test/seasar/container/deployer/test_instance_def_factory.rb +24 -0
- data/test/seasar/container/deployer/test_prototype-deployer.rb +25 -0
- data/test/seasar/container/deployer/test_singleton-component-deployer.rb +24 -0
- data/test/seasar/container/s2app_load_sample.rb +6 -0
- data/test/seasar/container/test_arg-def.rb +34 -0
- data/test/seasar/container/test_aspect-info-def.rb +85 -0
- data/test/seasar/container/test_component-def.rb +91 -0
- data/test/seasar/container/test_component-info-def.rb +88 -0
- data/test/seasar/container/test_s2application-context.rb +290 -0
- data/test/seasar/container/test_s2container.rb +268 -0
- data/test/seasar/dbi/test_paginate.rb +265 -0
- data/test/seasar/test_log.rb +20 -0
- data/test/seasar/test_util.rb +46 -0
- data/test/test-suite.rb +7 -0
- metadata +211 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module DBI
|
22
|
+
class Paginate
|
23
|
+
|
24
|
+
# - args
|
25
|
+
# - none
|
26
|
+
#
|
27
|
+
def initialize
|
28
|
+
@offset = 0
|
29
|
+
@limit = 10
|
30
|
+
@page = 1
|
31
|
+
@window_size = 5
|
32
|
+
@total = nil
|
33
|
+
@data = nil
|
34
|
+
end
|
35
|
+
attr_accessor :page, :offset, :limit, :total
|
36
|
+
|
37
|
+
#
|
38
|
+
# - args
|
39
|
+
# 1. Array <em>data</em>
|
40
|
+
# - return
|
41
|
+
# - Integer
|
42
|
+
#
|
43
|
+
def data=(data)
|
44
|
+
@total = data.size
|
45
|
+
@data = data
|
46
|
+
return @total
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# - args
|
51
|
+
# - none
|
52
|
+
# - return
|
53
|
+
# - Array
|
54
|
+
#
|
55
|
+
def data
|
56
|
+
if @offset + @limit < @total
|
57
|
+
len = @limit
|
58
|
+
else
|
59
|
+
len = @total - @offset
|
60
|
+
end
|
61
|
+
return @data[@offset, len]
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# - args
|
66
|
+
# - none
|
67
|
+
# - return
|
68
|
+
# - Integer
|
69
|
+
#
|
70
|
+
def get_total_page
|
71
|
+
return (@total.to_f / @limit.to_f).ceil
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# - args
|
76
|
+
# 1. Integer <em>page</em>
|
77
|
+
# - return
|
78
|
+
# - none
|
79
|
+
#
|
80
|
+
def page= (page)
|
81
|
+
if page < 1 or self.get_total_page < page
|
82
|
+
raise RangeError.new("#{page} is out of range 1-#{self.get_total_page}")
|
83
|
+
end
|
84
|
+
if @page < page
|
85
|
+
@offset = @offset + @limit * (page - @page)
|
86
|
+
elsif @page > page
|
87
|
+
@offset = @offset - @limit * (@page - page)
|
88
|
+
end
|
89
|
+
@page = page
|
90
|
+
end
|
91
|
+
|
92
|
+
#
|
93
|
+
# - args
|
94
|
+
# - none
|
95
|
+
# - return
|
96
|
+
# - none
|
97
|
+
#
|
98
|
+
def init_offset
|
99
|
+
@offset = 0
|
100
|
+
end
|
101
|
+
|
102
|
+
#
|
103
|
+
# - args
|
104
|
+
# - none
|
105
|
+
# - return
|
106
|
+
# - Integer
|
107
|
+
#
|
108
|
+
def total
|
109
|
+
if @total.nil?
|
110
|
+
raise 'total not set.'
|
111
|
+
end
|
112
|
+
return @total
|
113
|
+
end
|
114
|
+
|
115
|
+
#
|
116
|
+
# - args
|
117
|
+
# 1. Integer <em>size</em>
|
118
|
+
# - return
|
119
|
+
# - Integer
|
120
|
+
#
|
121
|
+
def window_size=(size)
|
122
|
+
size = 2 if size < 2
|
123
|
+
@window_size = size
|
124
|
+
end
|
125
|
+
|
126
|
+
#
|
127
|
+
# - args
|
128
|
+
# - none
|
129
|
+
# - return
|
130
|
+
# - none
|
131
|
+
#
|
132
|
+
def next
|
133
|
+
return if self.get_total_page == @page
|
134
|
+
@offset = @offset + @limit
|
135
|
+
@page += 1
|
136
|
+
end
|
137
|
+
|
138
|
+
#
|
139
|
+
# - args
|
140
|
+
# - none
|
141
|
+
# - return
|
142
|
+
# - Boolean
|
143
|
+
#
|
144
|
+
def next?
|
145
|
+
return @page < self.get_total_page
|
146
|
+
end
|
147
|
+
|
148
|
+
#
|
149
|
+
# - args
|
150
|
+
# - none
|
151
|
+
# - return
|
152
|
+
# - none
|
153
|
+
#
|
154
|
+
def prev
|
155
|
+
return if @page == 1
|
156
|
+
@page -= 1
|
157
|
+
@offset = @offset - @limit
|
158
|
+
end
|
159
|
+
|
160
|
+
#
|
161
|
+
# - args
|
162
|
+
# - none
|
163
|
+
# - return
|
164
|
+
# - Boolean
|
165
|
+
#
|
166
|
+
def prev?
|
167
|
+
return 1 < @page
|
168
|
+
end
|
169
|
+
|
170
|
+
#
|
171
|
+
# - args
|
172
|
+
# - none
|
173
|
+
# - return
|
174
|
+
# - Range
|
175
|
+
#
|
176
|
+
def page_range
|
177
|
+
total_page = self.get_total_page
|
178
|
+
if total_page <= @window_size
|
179
|
+
return 1..total_page
|
180
|
+
else
|
181
|
+
start = @page - (@window_size.to_f / 2.0).floor
|
182
|
+
if start < 1
|
183
|
+
return 1..@window_size
|
184
|
+
end
|
185
|
+
last = start + @window_size -1
|
186
|
+
if total_page < last
|
187
|
+
return (total_page - @window_size + 1) .. total_page
|
188
|
+
end
|
189
|
+
return start..last
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
#
|
194
|
+
# - args
|
195
|
+
# 1. Symbol <em>action</em>
|
196
|
+
# 2. Integer <em>index</em>
|
197
|
+
# - return
|
198
|
+
# - nil
|
199
|
+
#
|
200
|
+
def move(action, index = nil)
|
201
|
+
return if action.nil?
|
202
|
+
case action.to_sym
|
203
|
+
when :n, :next
|
204
|
+
self.next
|
205
|
+
when :p, :prev
|
206
|
+
self.prev
|
207
|
+
when :g, :goto
|
208
|
+
self.page = index.to_i
|
209
|
+
else
|
210
|
+
raise ArgumentError.new("invalid action [#{action}]")
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
data/lib/seasar/dbi.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
require 'dbi'
|
21
|
+
require 'seasar/dbi/dbi-interceptor'
|
22
|
+
module Seasar
|
23
|
+
module DBI
|
24
|
+
autoload :Paginate, 'seasar/dbi/paginate'
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Exception
|
22
|
+
class NotYetImplementedException < S2RuntimeException
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Exception
|
22
|
+
# プロパティが存在しない場合にスローされる例外です。
|
23
|
+
class PropertyNotFoundRuntimeException < S2RuntimeException
|
24
|
+
|
25
|
+
# PropertyNotFoundRuntimeExceptionを構築します。
|
26
|
+
#
|
27
|
+
# - args
|
28
|
+
# 1. Class <em>bean_class</em>
|
29
|
+
# 2. Symbol <em>attribute</em>
|
30
|
+
#
|
31
|
+
def initialize(bean_class, attribute)
|
32
|
+
@bean_class = bean_class
|
33
|
+
@attribute = attribute
|
34
|
+
end
|
35
|
+
|
36
|
+
# 文字列表現を返します。
|
37
|
+
#
|
38
|
+
# - args
|
39
|
+
# - none
|
40
|
+
# - return
|
41
|
+
# - String
|
42
|
+
#
|
43
|
+
def to_s
|
44
|
+
return "class : #{@bean_class}, attribute : #{@attribute}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Exception
|
22
|
+
# seasar用の例外です。
|
23
|
+
class S2RuntimeException < ::StandardError
|
24
|
+
|
25
|
+
# S2RuntimeExceptionを構築します。
|
26
|
+
#
|
27
|
+
# - args
|
28
|
+
# - none
|
29
|
+
#
|
30
|
+
def initialize
|
31
|
+
super
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Exception
|
22
|
+
class UnsupportedOperationException < S2RuntimeException
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Exception
|
22
|
+
autoload :S2RuntimeException, 'seasar/exception/s2runtime-exception'
|
23
|
+
autoload :PropertyNotFoundRuntimeException, 'seasar/exception/property-notfound-runtime-exception'
|
24
|
+
autoload :NotYetImplementedException, 'seasar/exception/notyet-implemented-exception'
|
25
|
+
autoload :UnsupportedOperationException, 'seasar/exception/unsupported-operation-exception'
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
require "logger"
|
20
|
+
|
21
|
+
module Seasar
|
22
|
+
module Log
|
23
|
+
class S2Logger
|
24
|
+
@@logger = nil
|
25
|
+
@@logdev = STDERR
|
26
|
+
class << self
|
27
|
+
|
28
|
+
#
|
29
|
+
# - args
|
30
|
+
# - none
|
31
|
+
# - return
|
32
|
+
# - Logger
|
33
|
+
#
|
34
|
+
def get
|
35
|
+
if @@logger.nil?
|
36
|
+
@@logger = Logger.new(@@logdev)
|
37
|
+
@@logger.datetime_format = "%Y-%m-%d %H:%M:%S"
|
38
|
+
end
|
39
|
+
return @@logger
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# - args
|
44
|
+
# 1. Logger <em>logger</em>
|
45
|
+
# - return
|
46
|
+
# - nil
|
47
|
+
#
|
48
|
+
def set(logger = nil)
|
49
|
+
@@logger = logger
|
50
|
+
end
|
51
|
+
|
52
|
+
#
|
53
|
+
# - args
|
54
|
+
# 1. Object <em>logdev</em>
|
55
|
+
# - return
|
56
|
+
# - nil
|
57
|
+
#
|
58
|
+
def logdev=(logdev)
|
59
|
+
@@logdev = logdev
|
60
|
+
@@logger = nil
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# - args
|
65
|
+
# - none
|
66
|
+
# - return
|
67
|
+
# - Logger
|
68
|
+
#
|
69
|
+
def logger
|
70
|
+
return @@logger
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/lib/seasar/log.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
#
|
21
|
+
# - args
|
22
|
+
# 1. IO _logdev_
|
23
|
+
# - return
|
24
|
+
# - Logger
|
25
|
+
#
|
26
|
+
def s2logger(logdev = nil)
|
27
|
+
if not logdev.nil?
|
28
|
+
Seasar::Log::S2Logger.set
|
29
|
+
Seasar::Log::S2Logger.logdev = logdev
|
30
|
+
end
|
31
|
+
return Seasar::Log::S2Logger.get
|
32
|
+
end
|
33
|
+
|
34
|
+
module Seasar
|
35
|
+
module Log
|
36
|
+
autoload :S2Logger, 'seasar/log/s2logger'
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Util
|
22
|
+
|
23
|
+
# クラスに関するユーティリティクラスです。
|
24
|
+
class ClassUtil
|
25
|
+
class << self
|
26
|
+
# 値がメソッドではない属性を返します。属性名が「_」ではじまる属性は無視されます。
|
27
|
+
#
|
28
|
+
# - args
|
29
|
+
# 1. Class <em>target</em>
|
30
|
+
# - return
|
31
|
+
# - Array
|
32
|
+
#
|
33
|
+
def get_instance_attributes(target)
|
34
|
+
attributes = {}
|
35
|
+
target.instance_variables.each {|name|
|
36
|
+
next if name[1, 1] == "_"
|
37
|
+
next if name[-1, 1] == "_"
|
38
|
+
attributes[name.to_sym] = target.instance_variable_get(name)
|
39
|
+
}
|
40
|
+
return attributes
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
# - args
|
45
|
+
# 1. Class <em>target</em>
|
46
|
+
# - return
|
47
|
+
# - Array
|
48
|
+
#
|
49
|
+
def get_accessor_attributes(target)
|
50
|
+
#method_names = (target.public_methods - Object.public_methods).map {|method_name| method_name.to_s}
|
51
|
+
method_names = target.public_methods(false).map {|method_name| method_name.to_s}
|
52
|
+
attributes = []
|
53
|
+
method_names.each {|name|
|
54
|
+
next if name.match(/^==+$/)
|
55
|
+
if name.match(/^(.+)=$/) && method_names.member?($1)
|
56
|
+
attributes << "@#{$1}".to_sym
|
57
|
+
end
|
58
|
+
}
|
59
|
+
return attributes
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
# - args
|
64
|
+
# 1. Class <em>clazz</em>
|
65
|
+
# - return
|
66
|
+
# - Array
|
67
|
+
#
|
68
|
+
def get_aspectable_methods(clazz)
|
69
|
+
#methods = clazz.instance_methods - Kernel.instance_methods - Object.instance_methods
|
70
|
+
methods = clazz.instance_methods - Kernel.instance_methods
|
71
|
+
return methods
|
72
|
+
=begin
|
73
|
+
result = []
|
74
|
+
methods.each {|method_name|
|
75
|
+
next if method_name[0, 1] == "_"
|
76
|
+
next if method_name[-1, 1] == "_"
|
77
|
+
next if method_name[-1, 1] == "?"
|
78
|
+
result << method_name
|
79
|
+
}
|
80
|
+
return result
|
81
|
+
=end
|
82
|
+
end
|
83
|
+
|
84
|
+
#
|
85
|
+
# When Class name is 'AbcDef', return 'abc_def'
|
86
|
+
#
|
87
|
+
# - args
|
88
|
+
# 1. Class _clazz_
|
89
|
+
# - return
|
90
|
+
# - Symbol
|
91
|
+
#
|
92
|
+
def ub_name(clazz)
|
93
|
+
name = clazz.name.split(/::/).last
|
94
|
+
name.gsub!(/([A-Z]+)/) { '_' + $1 }
|
95
|
+
return name[1..name.length].downcase.to_sym
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# return the module name.
|
100
|
+
# When Class name is 'A::B::C', return 'A::B'
|
101
|
+
# When Class name is 'A', return ''
|
102
|
+
#
|
103
|
+
# - args
|
104
|
+
# 1. Class _clazz_
|
105
|
+
# - return
|
106
|
+
# - String
|
107
|
+
#
|
108
|
+
def module_name(clazz)
|
109
|
+
return '' unless clazz.name.match(/::/)
|
110
|
+
return clazz.name.sub(/::\w+$/, '')
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
data/lib/seasar/util.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#--
|
3
|
+
# +----------------------------------------------------------------------+
|
4
|
+
# | Copyright 2005-2008 the Seasar Foundation and the Others. |
|
5
|
+
# +----------------------------------------------------------------------+
|
6
|
+
# | Licensed under the Apache License, Version 2.0 (the "License"); |
|
7
|
+
# | you may not use this file except in compliance with the License. |
|
8
|
+
# | You may obtain a copy of the License at |
|
9
|
+
# | |
|
10
|
+
# | http://www.apache.org/licenses/LICENSE-2.0 |
|
11
|
+
# | |
|
12
|
+
# | Unless required by applicable law or agreed to in writing, software |
|
13
|
+
# | distributed under the License is distributed on an "AS IS" BASIS, |
|
14
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
|
15
|
+
# | either express or implied. See the License for the specific language |
|
16
|
+
# | governing permissions and limitations under the License. |
|
17
|
+
# +----------------------------------------------------------------------+
|
18
|
+
#++
|
19
|
+
|
20
|
+
module Seasar
|
21
|
+
module Util
|
22
|
+
autoload :ClassUtil, 'seasar/util/class-util'
|
23
|
+
end
|
24
|
+
end
|