Class: Application
Defined Under Namespace
Classes: ApplicationParams
Constant Summary
Configurable::ADD_SYMBOL, Configurable::FONT_TYPE_SYMBOL, Configurable::LC_SYMBOL, Configurable::LINK_SYMBOL
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from EventBus
attach_listener, broadcast_event, detach_listener, process_event
#append_persistent_property, #override_persistent
clear_properties_group_cache, #hash2properties_file, #make_locale_value, #make_value, #properties_file2hash, properties_group, #resolve_locale_value, #resolve_properties_link, #resolve_value
Constructor Details
#initialize(_ap = ApplicationParams.new) {|_self| ... } ⇒ Application
Returns a new instance of Application.
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
|
# File 'lib/a-commons.rb', line 1059
def initialize(_ap=ApplicationParams.new)
@@instance = self
eval('$'+_ap.name+'=self') publish('applicationParams', _ap)
publish(_ap.name,self)
@first_run = false
self['applicationParams'].persistent_file = File.join(local_dir, self['applicationParams'].name+'.pers')
if !File.exists?(self['applicationParams'].persistent_file)
File.new(self['applicationParams'].persistent_file, File::CREAT).close
end
publish('conf', properties_file2hash(self['applicationParams'].config_file)) if self['applicationParams'].config_file
publish('origin_conf', Hash.new.update(self['conf'])) if self['conf']
publish('local_conf', Hash.new)
publish('conf_without_local', Hash.new.update(self['conf'])) if self['conf']
publish('pers', properties_file2hash(self['applicationParams'].persistent_file)) if self['applicationParams'].persistent_file
yield(self) if block_given?
end
|
Class Method Details
.array_conf(_name, _array) ⇒ Object
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
|
# File 'lib/a-commons.rb', line 1143
def Application.array_conf(_name, _array)
value = ''
_array.each{|e|
if value.length > 0
value = "#{value},#{e}"
else
value = "#{e}"
end
}
@@instance['conf'][_name]=value
value
end
|
.conf(_property, _value = nil) ⇒ Object
1082
1083
1084
|
# File 'lib/a-commons.rb', line 1082
def Application.conf(_property, _value=nil)
@@instance.conf(_property, _value) if @@instance
end
|
.conf_array(_name) ⇒ Object
1136
1137
1138
1139
1140
1141
|
# File 'lib/a-commons.rb', line 1136
def Application.conf_array(_name)
res = []
value = @@instance['conf'][_name]
res.concat(value.split(',')) if value
res
end
|
.del_conf(_k) ⇒ Object
1132
1133
1134
|
# File 'lib/a-commons.rb', line 1132
def Application.del_conf(_k)
@@instance['conf'].delete(_k)
end
|
.del_conf_group(_conf_hash, _group) ⇒ Object
def Application.conf_group(_group, _suff = ‘conf’)
group_key="#{_suff}.#{_group}"
@@conf_groups = Hash.new if !defined?(@@conf_groups)
if @@conf_groups[group_key].nil?
@@conf_groups[group_key] = Hash.new
glen=_group.length
@@instance['conf'].keys.sort.each{|k|
if k[0..glen] == "#{_group}."
@@conf_groups[group_key][k[glen+1..-1]]=@@instance['conf'][k]
elsif @@conf_groups[group_key].length > 0
break
end
}
end
@@conf_groups[_group]
end
1123
1124
1125
1126
1127
1128
1129
1130
|
# File 'lib/a-commons.rb', line 1123
def Application.del_conf_group(_conf_hash, _group)
glen=_group.length
_conf_hash.keys.sort.each{|k|
if k[0..glen] == "#{_group}."
_conf_hash.delete(k)
end
}
end
|
.instance ⇒ Object
1078
1079
1080
|
# File 'lib/a-commons.rb', line 1078
def Application.instance
@@instance
end
|
.local_dir ⇒ Object
1090
1091
1092
|
# File 'lib/a-commons.rb', line 1090
def Application.local_dir
@@instance.local_dir if @@instance
end
|
.sys_info ⇒ Object
1101
1102
1103
|
# File 'lib/a-commons.rb', line 1101
def Application.sys_info
"[Platform = #{RUBY_PLATFORM}]\n[Ruby version = #{RUBY_VERSION}]"
end
|
.version ⇒ Object
1086
1087
1088
|
# File 'lib/a-commons.rb', line 1086
def Application.version
@@instance['applicationParams'].version if @@instance
end
|
Instance Method Details
#[](_name) ⇒ Object
1273
1274
1275
1276
1277
1278
1279
1280
|
# File 'lib/a-commons.rb', line 1273
def [](_name)
if @objs[_name]
return @objs[_name]
else
return nil
end
end
|
#[]=(_name, _value) ⇒ Object
1282
1283
1284
1285
1286
1287
|
# File 'lib/a-commons.rb', line 1282
def []=(_name, _value)
@objs[_name] = _value
end
|
#conf(_property, _value = nil) ⇒ Object
1094
1095
1096
1097
1098
1099
|
# File 'lib/a-commons.rb', line 1094
def conf(_property, _value=nil)
if !_value.nil?
self['conf'][_property] = _value
end
self['conf'][_property]
end
|
#create(_name, _class) ⇒ Object
1265
1266
1267
|
# File 'lib/a-commons.rb', line 1265
def create(_name, _class)
register(_name,_class.new)
end
|
#load_local_config(_create_if_not_exist = true) ⇒ Object
this method load config file from local directory for personalizations
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
|
# File 'lib/a-commons.rb', line 1199
def load_local_config(_create_if_not_exist=true)
if FileTest.exist?(local_file_config)
self['local_conf']= self.properties_file2hash(local_file_config)
self['conf'].update(self['local_conf'])
elsif _create_if_not_exist
if FileTest.writable?(local_dir)
f = File.new(local_file_config, "w")
begin
if f
p = self['conf']
if p
p.keys.sort.each{|key|
f.syswrite('#'+key+'='+self['conf'][key]+"\n")
}
end
end
ensure
f.close unless f.nil?
end
else
msg = Arcadia.text('main.e.dir_not_writable.msg', [local_dir])
Arcadia.dialog(self, 'type'=>'ok','title' => Arcadia.text('main.e.dir_not_writable.title', ['(Arcadia)']), 'msg' => msg, 'level'=>'error')
exit
end
end
end
|
#load_theme(_name = nil) ⇒ Object
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
|
# File 'lib/a-commons.rb', line 1226
def load_theme(_name=nil)
_theme_file = "conf/theme-#{_name}.conf" if !_name.nil?
if _theme_file && File.exist?(_theme_file)
thash = self.properties_file2hash(_theme_file)
if thash.has_key?('parent')
load_theme(thash['parent'])
self['conf_theme'].update(thash)
else
self['conf_theme'] = thash
end
self['conf'].update(self['conf_theme'])
self['conf_without_local'].update(self['conf_theme'])
_theme_res_file = "#{Dir.pwd}/conf/theme-#{_name}.res.rb"
if _theme_res_file && File.exist?(_theme_res_file)
begin
require _theme_res_file
rescue Exception => e
end
end
end
end
|
#local_dir ⇒ Object
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
|
# File 'lib/a-commons.rb', line 1249
def local_dir
home = File.expand_path '~'
_local_dir = File.join(home,'.'+self['applicationParams'].name) if home
if _local_dir && !File.exist?(_local_dir)
if FileTest.exist?(home)
Dir.mkdir(_local_dir)
@first_run = true
else
msg = Arcadia.text('main.e.dir_not_writable.msg', [home])
Arcadia.dialog(self, 'type'=>'ok', 'title' => Arcadia.text('main.e.dir_not_writable.title', [self['applicationParams'].name]), 'msg' => msg, 'level'=>'error')
exit
end
end
return _local_dir
end
|
#local_file_config ⇒ Object
1169
1170
1171
|
# File 'lib/a-commons.rb', line 1169
def local_file_config
File.join(local_dir, File.basename(self['applicationParams'].config_file))
end
|
#objects(_name) ⇒ Object
1269
1270
1271
|
# File 'lib/a-commons.rb', line 1269
def objects(_name)
return @objs[_name]
end
|
#prepare ⇒ Object
1157
1158
|
# File 'lib/a-commons.rb', line 1157
def prepare
end
|
#publish(_name, _obj) ⇒ Object
1160
1161
1162
1163
1164
1165
1166
1167
|
# File 'lib/a-commons.rb', line 1160
def publish(_name, _obj)
@objs = Hash.new if !defined?(@objs)
if @objs[_name] == nil
@objs[_name] = _obj
else
raise("The name #{_name} already exist")
end
end
|
#run ⇒ Object
1290
1291
|
# File 'lib/a-commons.rb', line 1290
def run
end
|
#update_local_config ⇒ Object
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
|
# File 'lib/a-commons.rb', line 1173
def update_local_config
if FileTest.exist?(local_file_config)
if FileTest.writable?(local_dir)
f = File.new(local_file_config, "w")
begin
if f
properties = self['conf']
if properties
properties.keys.sort.each{|key|
if self['conf_without_local'][key] == self['conf'][key] || (self['origin_conf'][key] && self['origin_conf'][key].include?('>>>')) f.syswrite("# #{key}=#{self['origin_conf'][key]}\n") elsif self['conf'][key]
f.syswrite("#{key}=#{self['conf'][key]}\n")
end
}
end
end
ensure
f.close unless f.nil?
end
end
end
end
|