ClsRuby 1.0.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.
- data/LICENSE +26 -0
- data/README +55 -0
- data/THANKS +0 -0
- data/docs/base_formatting_methods +89 -0
- data/docs/base_parsing_methods +79 -0
- data/docs/constructor_params +131 -0
- data/docs/examples/log_single_line_format +3 -0
- data/docs/examples/service_description +3 -0
- data/docs/examples/sms-hist +3 -0
- data/docs/examples/tag_any +3 -0
- data/docs/fragments/custom_tag_field.rb +20 -0
- data/docs/fragments/custom_tag_include.rb +21 -0
- data/docs/fragments/field.cls +2 -0
- data/docs/fragments/include.cls +4 -0
- data/docs/fragments/inherit_tag_params.rb +21 -0
- data/docs/fragments/message.cls +6 -0
- data/docs/fragments/tag_field.rb +24 -0
- data/docs/fragments/tag_message.rb +74 -0
- data/docs/fragments/tags_order.rb +41 -0
- data/docs/principles +402 -0
- data/docs/std_tags_short_description +278 -0
- data/docs/syntax +227 -0
- data/docs/why_cls +178 -0
- data/examples/hex_stream.txt +1 -0
- data/examples/log_single_line_formatter.rb +79 -0
- data/examples/service_description.day_time.cfg +11 -0
- data/examples/service_description.rb +119 -0
- data/examples/sms-hist.rb +164 -0
- data/examples/space_concat.txt +3 -0
- data/examples/tag_any.rb +28 -0
- data/lib/cls-ruby/basic_scalars.rb +270 -0
- data/lib/cls-ruby/constraints/one_of.rb +36 -0
- data/lib/cls-ruby/default_formatter.rb +50 -0
- data/lib/cls-ruby/ex.rb +121 -0
- data/lib/cls-ruby/formatter.rb +31 -0
- data/lib/cls-ruby/lexers/char_classifier.rb +157 -0
- data/lib/cls-ruby/lexers/first_stage.rb +112 -0
- data/lib/cls-ruby/lexers/lexer.rb +74 -0
- data/lib/cls-ruby/oneline_formatter.rb +35 -0
- data/lib/cls-ruby/parser.rb +249 -0
- data/lib/cls-ruby/tag.rb +428 -0
- data/lib/cls-ruby/tag_any.rb +111 -0
- data/lib/cls-ruby/tag_no_value.rb +55 -0
- data/lib/cls-ruby/tag_scalar.rb +197 -0
- data/lib/cls-ruby/tag_scalar_helpers.rb +70 -0
- data/lib/cls-ruby/tag_scalar_vector.rb +148 -0
- data/lib/cls-ruby/tag_vector_of_different_tags.rb +172 -0
- data/lib/cls-ruby/tag_vector_of_tags.rb +116 -0
- data/lib/cls-ruby/vector_of_tags_impl.rb +129 -0
- data/lib/cls-ruby.rb +5 -0
- data/tests/tc_child_tag.rb +51 -0
- data/tests/tc_constraint_one_of.rb +47 -0
- data/tests/tc_format_helper.rb +27 -0
- data/tests/tc_formatters.rb +125 -0
- data/tests/tc_lexer.rb +124 -0
- data/tests/tc_lexer_char_classifier.rb +121 -0
- data/tests/tc_lexer_first_stage.rb +72 -0
- data/tests/tc_parser_simple.rb +93 -0
- data/tests/tc_scalar_parsers.rb +189 -0
- data/tests/tc_tag.rb +68 -0
- data/tests/tc_tag_no_value.rb +46 -0
- data/tests/tc_tag_scalar_int.rb +83 -0
- data/tests/tc_tag_scalar_nonspace_string.rb +46 -0
- data/tests/tc_tag_scalar_string.rb +47 -0
- data/tests/tc_tag_scalar_vector_int.rb +88 -0
- data/tests/tc_tag_scalar_vector_string.rb +48 -0
- data/tests/tc_tag_scalar_vector_string_empty.rb +40 -0
- data/tests/tc_tag_vector_of_different_tags.rb +109 -0
- data/tests/tc_tag_vector_of_tags.rb +103 -0
- data/tests/ts_cls_ruby.rb +7 -0
- metadata +140 -0
data/docs/principles
ADDED
@@ -0,0 +1,402 @@
|
|
1
|
+
= �������� ������ � Cls. ��������.
|
2
|
+
|
3
|
+
== �������� �� ������� ������� Cls ��������
|
4
|
+
|
5
|
+
Cls-��������� ������� ����� �� ���� ������ ��������� -- ����� � ��������:
|
6
|
+
|
7
|
+
|| ��� ���
|
8
|
+
{tag_name
|
9
|
+
|| ��� �������� ���� nonspace (:tok_nonspace)
|
10
|
+
nonspace-value
|
11
|
+
|| ��� �������� ���� string (:tok_string)
|
12
|
+
"string-value"
|
13
|
+
}
|
14
|
+
|
15
|
+
�������� ������� �� ��� ����: nonspace, ������� �� ����� ��������� � ����
|
16
|
+
���������� ��������, � string (������� ����������� � ������� ������� � �����
|
17
|
+
��������� �������). �������� ������ ����� � ���� ����� ��
|
18
|
+
���������, �.�. ����� � ���� ����� ���� ������ �������� nonspace, ���� ������
|
19
|
+
�������� string.
|
20
|
+
|
21
|
+
��� ����� ����� ���� ���� ��������:
|
22
|
+
{name "my name" }
|
23
|
+
���� ��������� ��������:
|
24
|
+
{names "first" "second" ... "last" }
|
25
|
+
|
26
|
+
������� � ����������� (������� �������������� � ��������) ��� �� ��������
|
27
|
+
����������, �� ������ ��� �� ������������.
|
28
|
+
|
29
|
+
== ���������������� ���������� � ���� Cls ���������
|
30
|
+
|
31
|
+
�����������, ��� ����� ����������� � ���� Cls ��������� �������� ���������
|
32
|
+
������� ������ (��. ������
|
33
|
+
{service_description}[link://files/docs/examples/service_description.html]).
|
34
|
+
������ ����������� ������, ������� IP-�������, ������� ��� ����� ������������,
|
35
|
+
� ���������� ���������, ������� ��� �������� ������������. ������ ���������
|
36
|
+
����� ��� � ����� �����, ��� � ������� ���� ���� ����������� ��� � ��� ����,
|
37
|
+
�������� �������� ����� ��������� � ���� ����.
|
38
|
+
|
39
|
+
����� ������ ������ ��������� ��� {service}:
|
40
|
+
{service ...}
|
41
|
+
�������� ���� �������� ����� ��������� ��������� ������ ��������.
|
42
|
+
|
43
|
+
��� ������ ����� ����������� ����� {name}, � ������� ����������� ������������
|
44
|
+
�������� ���� string (� ��� ������ ����� ������� �������):
|
45
|
+
{name <str> }
|
46
|
+
|
47
|
+
IP-������ ����� �������� ����� ���������. ��-������, � ���� ���������� ����
|
48
|
+
{ip} �� ������ IP-�����. ��-������, � ���� ������ ���� {ips}, � ������� �����
|
49
|
+
��������� �������� -- ��� ����������� ������ ������. ����� ������������ ���
|
50
|
+
{ips} � ����������� ���������� ���� nonspace (��������� � IP ������� �� ������
|
51
|
+
���� ��������, �� ���������� ����� nonspace):
|
52
|
+
{ips <nonspace>+ }
|
53
|
+
|
54
|
+
������ ��������� ����������� ��������� ����� {message} ������� �����
|
55
|
+
��������� ���� �������� ���� nonspace -- ��� ��������� (��������� ���
|
56
|
+
�������������, � ������� �������� �� ����� ����) � �������������� ���� {field}
|
57
|
+
��� �������� ����� ���������:
|
58
|
+
{message <nonspace> {field ...}* }
|
59
|
+
��� {field} � ���� ������� ����� ����� �������� ���� {name} � {type}:
|
60
|
+
{field {name <str>} {type <nonspace>}}
|
61
|
+
|
62
|
+
� ���������� ���������� ���������:
|
63
|
+
{service
|
64
|
+
{name <str> }
|
65
|
+
{ips <nonspace>+ }
|
66
|
+
{message <nonspace>
|
67
|
+
{field
|
68
|
+
{name <str> }
|
69
|
+
{type <nonspace }
|
70
|
+
}*
|
71
|
+
}*
|
72
|
+
}
|
73
|
+
��������, ��������� �������� ������������� ���� ���������:
|
74
|
+
{service
|
75
|
+
{name "Remote Service Manager" }
|
76
|
+
{ips 0.0.0.0:3333 localhost:4444 }
|
77
|
+
{message GetServicesList}
|
78
|
+
{message StartService
|
79
|
+
{field {name "service"} {type String}}
|
80
|
+
{field {name "mode"} {type StartMode}}
|
81
|
+
}
|
82
|
+
{message StopService
|
83
|
+
{field {name "service"} {type String}}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
{service
|
87
|
+
{name "Test Service" }
|
88
|
+
{ips localhost:5000 }
|
89
|
+
}
|
90
|
+
|
91
|
+
== �������� ������� �������� Cls ���������
|
92
|
+
|
93
|
+
������� �������� ������ �������� �� ���, ��� ������� ���� �� ������� ������
|
94
|
+
������������� ������-����������, ����������� �� ���� ClsRuby::Tag. �������
|
95
|
+
(ClsRuby#parse_io, ClsRuby#parse_string, ClsRuby#parse_file) �������� �����
|
96
|
+
��������-������������ �������� ������ -- ��������������� �� ���� ��������
|
97
|
+
������ ���������������� ������ �������� ������ (�.�. � ��� ��� ���������).
|
98
|
+
|
99
|
+
����� ������ ������� �� ������� ������ ��� ����, �� ������������� ���
|
100
|
+
��������� ��� ����������� � ���� ���� �����������, ������� �������� ����������
|
101
|
+
��������� ��� (��� ����� ������������ ClsRuby::Tag#tag_compare_name). ����
|
102
|
+
���������� ������, ��:
|
103
|
+
* ��� ����� ����������� ���������� ����� ClsRuby::Tag#tag_on_start;
|
104
|
+
* ���� ���������� ���������� ������� ���������� ��������.
|
105
|
+
���� ���������� �� ������, �� ����������� ������ (����������� ����������
|
106
|
+
ClsRuby::ParsingErrorEx).
|
107
|
+
|
108
|
+
����� ������ ��������� ������� ����� ��������� �������� ��� � ��������
|
109
|
+
�������� ���������. ����� ������ ������� �� ������� ������ �����
|
110
|
+
:tok_nonspace, �� �������, ��� ������� �������� ���� nonspace � �������� ���
|
111
|
+
�������� ��������� ����� ClsRuby::Tag#tag_on_tok_nonspace. ���� ������ �������
|
112
|
+
����� :tok_string, �� ��� �������� ��������� ���������� �����
|
113
|
+
ClsRuby#tag_on_tok_string. ��������������, ���������� ����� ������������ ���
|
114
|
+
������ ��� ����, �����:
|
115
|
+
* ��������� �������� �� ������������;
|
116
|
+
* ��������� ���������� ��������;
|
117
|
+
* ��������� �����-�� ������ ��������.
|
118
|
+
|
119
|
+
���� ������ ������������ ��� ����, �� ����������� � �������� ��������� ������
|
120
|
+
�������� ����� (ClsRuby::Tag#tag_tags) � ���� ����� ��� ���������� ���
|
121
|
+
��������� ���� (����������� ClsRuby::Tag#tag_compare_name). ���� ����������
|
122
|
+
������, ��:
|
123
|
+
* ��� ����� ����������� ���������� ����� ClsRuby::Tag#tag_on_start;
|
124
|
+
* ������� �������� ����������� � ����� �������;
|
125
|
+
* �������� ���������� ���������� ������� ���������� �������.
|
126
|
+
|
127
|
+
� �.�. �� ��� ���, ���� ������ �� ������ ����������� �������� ������, �������
|
128
|
+
�������� ���������� �������� ����. ����� ������:
|
129
|
+
* ��� �������� ��������� �������� ����� ClsRuby::Tag#tag_on_finsh;
|
130
|
+
* ��������� �� ����� ���������� ������� �������� � ��������������� ��� �
|
131
|
+
�������� �������� ���������;
|
132
|
+
* ��� ���������������� �������� ��������� �������� �����
|
133
|
+
ClsRuby::Tag#tag_on_tag.
|
134
|
+
|
135
|
+
����� ������� ������������ �� ��� ���, ���� ������ �� �������� ����������
|
136
|
+
�������� ������. ��� ���� ������ ���������, ��� ���� ���������� ���� �
|
137
|
+
�������� ��������� ��� (�.�. ���������� ����������� �������� ������ ������
|
138
|
+
�������� � ����������� ����������� �������� ������).
|
139
|
+
|
140
|
+
����� ��� ���� ���������� ����� tag_on_finish, �� ���������, ��� ��� ����
|
141
|
+
<i>������������</i> -- �.�. ������������ �������, ��� ��� ���������� ��
|
142
|
+
������� ������ ���� �� ���� ���. ���������, ��� ��� ��� ��������� ����� �
|
143
|
+
������� ������ ClsRuby::Tag#tag_defined?, ����� ClsRuby::Tag#tag_make_defined
|
144
|
+
������������ ��� ����, ����� ������� ����, ��� �� ��������� (��� ����� ���
|
145
|
+
����, ����� ��� ��� ��������� �������������� � �������� �����).
|
146
|
+
|
147
|
+
���� ������� �� ������������ (mandatory) � �������������� (optional). ���� ���
|
148
|
+
�������� ������������ (�.�. ��� ����� ClsRuby::Tag#tag_mandatory? ����������
|
149
|
+
true), �� � ��������� ������� ���������������� ��������� ���� ��� ������ ����
|
150
|
+
��������� (�.�. ��� ����� ClsRuby::Tag#tag_defined? ������ ���������� true).
|
151
|
+
����� ������ ������������ ���������� �������� ���� (�.�. ��� ���������� ��
|
152
|
+
������� ������ ����������� �������� ������) �� ������������� ��� �������� ����
|
153
|
+
������������ ����. ���� ����� ��� ���� ������������ ����, ������� �� ����
|
154
|
+
����������, �� ������ ���������� ������ �������� ����������. �����������
|
155
|
+
�������� ������ ������ ��� ���������� �������� ������.
|
156
|
+
|
157
|
+
= ��������� �������� ���������� ����������� ��������
|
158
|
+
|
159
|
+
��� ���� �������� ����, ��� ������� Cls-���������� ����������
|
160
|
+
����������� ����� ��������, �������������� �� ������ ClsRuby::Tag. ClsRuby
|
161
|
+
������������� ��������� ������� ������� �����, ������� ��������� ���������
|
162
|
+
������� ���������� ������� Cls-���������� ��� �������� ������������ �������
|
163
|
+
�����.
|
164
|
+
|
165
|
+
�� ������ ����������� � ���, ��� � ��� ��������� ����������� �� Cls-���������
|
166
|
+
��������. ����� �������� ��������� ��������.
|
167
|
+
|
168
|
+
== �������� ����������� ����� ��� ���������� �������� ����-������
|
169
|
+
|
170
|
+
����� ����������� ����������� ����������� ������ ClsRuby::Tag �����
|
171
|
+
�������, ����� � ������� Tag#tag_on_finish, Tag#tag_on_tok_nonspace �
|
172
|
+
Tag#tag_on_tok_string ��������� ����������� �������� � �����-�� �������.
|
173
|
+
��������, ���� ���������� �������� ������ ������, �������� ������:
|
174
|
+
{include <str>}+
|
175
|
+
�� ����� ������� ����������� ���:
|
176
|
+
:include: docs/fragments/custom_tag_include.rb
|
177
|
+
������, ����� ���� �� ����� ������. ��������� ��������� ������ �����������
|
178
|
+
����, � ������� �� �� �������������. ���, ������ ���������� ���� TagInclude ��
|
179
|
+
��������� ��-�� ����, ��� ��� ��������� ��������� ��������� �������� � ����
|
180
|
+
{include} � �� �������� �� ������� � ������ ����������� nonspace ��������.
|
181
|
+
�������� ����� ���������� ���������� ������� ������ �������� � ����������
|
182
|
+
���������������� ��� ������������� ������ ClsRuby::TagStringScalar.
|
183
|
+
|
184
|
+
== ������������� ����� ClsRuby ��� �������� ��������
|
185
|
+
|
186
|
+
����� ������������ ������� ���� ClsRuby � ��� �������� � ��� ��������
|
187
|
+
��������. ��������, �����������:
|
188
|
+
{field {name <str>} {type <nonspace>}}
|
189
|
+
����� ����������� � ���� ���������� ������ TagField:
|
190
|
+
:include: docs/fragments/custom_tag_field.rb
|
191
|
+
|
192
|
+
������ ������ ����� ��������������, ��� ����������, �� ��� ��� �������������
|
193
|
+
����� ������������� �������� ������������� ������� getter-�� ��� �������
|
194
|
+
����������� �����. ����� ����, ���������� ������������ ���������� ����������
|
195
|
+
(�.�. �������� �� Cls-���������) � ������� �� �������� -- ��-�� ����, ���
|
196
|
+
����� ��� �������� ���������� �� ���� {field} ����������� ����������� ��
|
197
|
+
ClsRuby::TagNoValue.
|
198
|
+
|
199
|
+
== �������� ������������ �������� �������
|
200
|
+
|
201
|
+
������������� Cls-������� � C++ ��������, ��� ������� ��������� ��� ��������
|
202
|
+
�������. ���� ������������ ��� �������� ���������� ����������, � ������ -- ���
|
203
|
+
�������� Cls-����������.
|
204
|
+
|
205
|
+
���, ����� ������� ��������� Field, ������� ����� ������� ���������� �� ����
|
206
|
+
{field}:
|
207
|
+
Field = Struct.new( :name, :type )
|
208
|
+
� ����� ��� TagField, ������� ����� �������� �� ������� ���� {field} �
|
209
|
+
������������ ������� ���� Field:
|
210
|
+
:include: docs/fragments/tag_field.rb
|
211
|
+
|
212
|
+
������ ������ ������ ���, ��� ���������� ������ ���������� �� ���������������
|
213
|
+
������� �����. �������, ��� ������������� ����� ������ ��������� Cls ���������
|
214
|
+
��� ���� ���������� �� ������������� Cls � ������ XML, YAML ��� JSON, �� ����
|
215
|
+
���������� ������ �� ���������.
|
216
|
+
|
217
|
+
��� �� ����� ������ ������ ��� ������������� ���������� ���������� � Cls
|
218
|
+
������. � ���� ������ ����������� ��������� ������ �������� � ����������
|
219
|
+
�������, � ��������������� ������ ���� �������� �� ���� ������ ��������������
|
220
|
+
���������� ���������� � Cls-������.
|
221
|
+
|
222
|
+
��������, ���� ��������� �������� � ��������:
|
223
|
+
{message {field ...}* }
|
224
|
+
�� ��� ����� ��������� ��������� �������:
|
225
|
+
:include: docs/fragments/tag_message.rb
|
226
|
+
|
227
|
+
=== ����� ����� ��������� ����������� ������ �����
|
228
|
+
|
229
|
+
������� ������� -- ��������� �������������. ����� ��� �������� � ����
|
230
|
+
������������ ������ ��� ����� ������������ ��������. ���, ��������, �����
|
231
|
+
����, ������� ��������� �������� ��������� ���������� �� ����� �����. � ���
|
232
|
+
������� ����� ����� ��������� ���������� �����, ����� � ������. ������ ����:
|
233
|
+
{<name>
|
234
|
+
[{hours <unit:1..24>}]
|
235
|
+
[{minutes <uint:1..59>}]
|
236
|
+
[{seconds <uint:1..59>}]
|
237
|
+
}
|
238
|
+
� ��� ����������:
|
239
|
+
class TagTimePeriod < ClsRuby::TagNoValue
|
240
|
+
child_tag :hours, ClsRuby::TagUintScalar,
|
241
|
+
:constraint => 1..24
|
242
|
+
|
243
|
+
child_tag :minutes, ClsRuby::TagUintScalar,
|
244
|
+
:constraint => 1...60
|
245
|
+
|
246
|
+
child_tag :seconds, ClsRuby::TagUintScalar,
|
247
|
+
:constraint => 1...60
|
248
|
+
|
249
|
+
# ���� ����� ���� :value, �� ����� ������ ��� �����������,
|
250
|
+
# ���������� ��� ��������. ��� ���� ���������, ��� ������
|
251
|
+
# �������� � ��������.
|
252
|
+
def initialize( params = {} )
|
253
|
+
super( params )
|
254
|
+
|
255
|
+
tag_handle_opt_param( :value ) do |v| self.value = v end
|
256
|
+
end
|
257
|
+
|
258
|
+
def tag_on_finish
|
259
|
+
super
|
260
|
+
|
261
|
+
fail 'at least one tag ({hours}/{minutes}/{seconds}) ' +
|
262
|
+
"must be defined for {#{tag_name}}" unless
|
263
|
+
@hours.tag_defined? ||
|
264
|
+
@minutes.tag_defined? ||
|
265
|
+
@seconds.tag_defined?
|
266
|
+
end
|
267
|
+
|
268
|
+
def value
|
269
|
+
@hours.fetch( 0 ) * 3600 + @minutes.fetch( 0 ) * 60 + @seconds.fetch( 0 )
|
270
|
+
end
|
271
|
+
|
272
|
+
def value=( seconds )
|
273
|
+
tag_reset
|
274
|
+
|
275
|
+
h = seconds / 3600; seconds %= 3600
|
276
|
+
@hours.value = h if 0 != h
|
277
|
+
|
278
|
+
m = seconds / 60; seconds %= 60
|
279
|
+
@minutes.value = m if 0 != m
|
280
|
+
|
281
|
+
@seconds.value = seconds if 0 != seconds
|
282
|
+
|
283
|
+
tag_make_defined if @hours.tag_defined? || @minutes.tag_defined? ||
|
284
|
+
@seconds.tag_defined?
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
���� ��� ����� �������������� � ������ ����������. ��������:
|
289
|
+
{service
|
290
|
+
{config-reload-period <TagTimePeriod> }
|
291
|
+
{channel-params
|
292
|
+
{ping-timeout <TagTimePeriod> }
|
293
|
+
...
|
294
|
+
}
|
295
|
+
{request-processing
|
296
|
+
{max-wait-time <TagTimePeriod> }
|
297
|
+
...
|
298
|
+
}
|
299
|
+
}
|
300
|
+
���� {config-reload-period}, {ping-timeout} � {max-wait-time} ����� ����
|
301
|
+
����������� � ������� TagTimePeriod:
|
302
|
+
class TagChannelParams < ClsRuby::TagNoValue
|
303
|
+
mandatory_child_tag :ping_timeout, TagTimePeriod,
|
304
|
+
:name => 'ping-timeout'
|
305
|
+
...
|
306
|
+
end
|
307
|
+
class TagRequestProcessing < ClsRuby::TagNoValue
|
308
|
+
mandatory_child_tag :max_wait_time, TagTimePeriod,
|
309
|
+
:name => 'max-wait-time'
|
310
|
+
...
|
311
|
+
end
|
312
|
+
class TagService < ClsRuby::TagNoValue
|
313
|
+
mandatory_child_tag :config_reload_period, TagTimePeriod,
|
314
|
+
:name => 'config-reload-period'
|
315
|
+
mandatory_child_tag :channel_params, TagChannelParams,
|
316
|
+
:name => 'channel-params'
|
317
|
+
mandatory_child_tag :requiest_processing, TagRequestProcessing,
|
318
|
+
:name => 'request-processing'
|
319
|
+
...
|
320
|
+
end
|
321
|
+
|
322
|
+
��� ���� ������� -- ��������� ������������� ���� �� ������� ��� ������������
|
323
|
+
Cls-���������. ����� ������ �������������� ���������� �������� � Cls ����
|
324
|
+
������ � ���������� ������-�� ������ �� ����� �������� � ��������� ��
|
325
|
+
��������. ����� ����, ����� ������� ��� �������� � ���� ���������� ������, ��
|
326
|
+
����� ������ ��� �� �������� (���� ��� ���������� ��� �������������
|
327
|
+
������������).
|
328
|
+
|
329
|
+
� ��� ���� ������� -- ��������� ������ � �������������� ������. ��� �
|
330
|
+
���������� ���� ������� � ������ {field} ������ ���� {message}. ������ �����
|
331
|
+
������������� ��� -- ��� ��������� TagField. �� ����� TagMessage
|
332
|
+
�������� ��� �� ������������, �������� �����������, ��� ���� ������ �����
|
333
|
+
�������� Field � ������ ������.
|
334
|
+
|
335
|
+
== ������� ���������� ����� �� ������� ������
|
336
|
+
|
337
|
+
�������� � ������ ClsRuby ������� ���� �� ��������� �� ���������� ������
|
338
|
+
������� ���������� ����� �� ������� ������. ���, ���������� ���� ����������
|
339
|
+
���� TagTimePeriod �� ������� �� ����, � ����� ������� ����� ������
|
340
|
+
�������� ����� {hours}, {minutes} � {seconds}:
|
341
|
+
{config-reload-period {hours 3} {seconds 15} {minutes 40}}
|
342
|
+
{config-reload-period {minutes 40} {seconds 15} {hours 3}}
|
343
|
+
{config-reload-period {minutes 40} {hours 3} {seconds 15}}
|
344
|
+
��� ��� ������ �������� � ������ � ���� �� ����������.
|
345
|
+
|
346
|
+
����� ��������� ������� ����������, ��������� �������� ���������� ClsRuby --
|
347
|
+
������ ���������������� ������, ������� �������� ������������� �������. ����
|
348
|
+
���������������� ���� �� �������� ����������� �� �������� ������������ �����
|
349
|
+
������ ������, �� ���������� ����� ���������������� ���� ������� �����.
|
350
|
+
|
351
|
+
� ��������� ������� ������� ���� ClsRuby �������� ��������������� � �������
|
352
|
+
���������� �������� �� ������� ������. ��� ��������� � �����
|
353
|
+
ClsRuby::TagVectorOfTags (������������������ ����� � ���������� ������) �
|
354
|
+
ClsRuby::TagScalarVector (������������������ �������� � ����� ����). ��� ���
|
355
|
+
�� �������� ������ ������� ClsRuby, ��������� ������ ���� ������������� ���
|
356
|
+
��������� �������������������, � ������� ������� ���������� ��������� �����:
|
357
|
+
{compilation-params
|
358
|
+
|| ���� {include-path} �������������� � ������� TagVectorOfTags.
|
359
|
+
|| �� �������� ������� ���������� �����, �.�. �������� �������
|
360
|
+
|| �������� ����� ������� ���������.
|
361
|
+
{include-path "/home/eao197" }
|
362
|
+
{include-path "/usr/share/include" }
|
363
|
+
...
|
364
|
+
|| ��� {copyright-info} �������������� � ������� TagScalarVector.
|
365
|
+
|| ������� ���������� �������� � ��� �����, �.�. ��������� �������
|
366
|
+
|| �������� � ��������� ������ ������������� ����������.
|
367
|
+
{copyright-info
|
368
|
+
"Copyright (C) 2006, 2007 The ClsRuby Project. All rights reserved."
|
369
|
+
"Redistribution and use in source and ..."
|
370
|
+
}
|
371
|
+
...
|
372
|
+
}
|
373
|
+
|
374
|
+
����������� ���� ClsRuby::TagVectorOfTags � ���, ��� �� ���������
|
375
|
+
������������� ������� ���������� ������ ����� � ���������� ������. ���� ��
|
376
|
+
����� ����� ������ ����� ��������� ������ ���� �� ������� ������, ��
|
377
|
+
���������� � �������� ������������ ����� � ������� ������� �
|
378
|
+
ClsRuby::TagVectorOfTags �� ����������� -- ����������� ������ ���������� �
|
379
|
+
�������� ������������ ����� � ����������� �������:
|
380
|
+
:include: docs/fragments/tags_order.rb
|
381
|
+
� ���������� ������ ����� ������� ����������:
|
382
|
+
{compilation-params
|
383
|
+
{include-path "/home/eao197" }
|
384
|
+
{include-path "/usr/share/include" }
|
385
|
+
{include-path "/usr/local/include" }
|
386
|
+
{define "NDEBUG" }
|
387
|
+
{define "X86_ARCH" }
|
388
|
+
{define "STATIC_LIB" } }
|
389
|
+
�.�. ���������� ������� ���������� ����� � ����������� �������, �� ��
|
390
|
+
����������� �� ��������� �������� ������������.
|
391
|
+
|
392
|
+
��� ��� ���� �������, �������� ������������� ��������� ������������ ����� �
|
393
|
+
������� ������� �������� ������ ������� ClsRuby. ���� ��� ������� ��������
|
394
|
+
������ ��������� ��������� ���� ������������ �������, �� �������� ���������
|
395
|
+
����������� ���� ��� ������������ ��� ClsRuby::TagAny.
|
396
|
+
|
397
|
+
���������� ��� �� ��� ClsRuby::TagVectorOfDifferentTags. �� �� ����� ����
|
398
|
+
�������� �������� ClsRuby::TagVectorOfTags ��� ������, ����� ����� ���������
|
399
|
+
������������� ������� ���������� ������������ ����� � ������� �������.
|
400
|
+
|
401
|
+
# vim:ts=2:sts=2:sw=2:expandtab:ft=txt:tw=78
|
402
|
+
|