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.
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
|
# File 'lib/a-commons.rb', line 1038
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
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
|
# File 'lib/a-commons.rb', line 1119
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) ⇒ Object
1061
1062
1063
|
# File 'lib/a-commons.rb', line 1061
def Application.conf(_property)
@@instance['conf'][_property] if @@instance
end
|
.conf_array(_name) ⇒ Object
1112
1113
1114
1115
1116
1117
|
# File 'lib/a-commons.rb', line 1112
def Application.conf_array(_name)
res = []
value = @@instance['conf'][_name]
res.concat(value.split(',')) if value
res
end
|
.del_conf(_k) ⇒ Object
1108
1109
1110
|
# File 'lib/a-commons.rb', line 1108
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
1099
1100
1101
1102
1103
1104
1105
1106
|
# File 'lib/a-commons.rb', line 1099
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
1057
1058
1059
|
# File 'lib/a-commons.rb', line 1057
def Application.instance
@@instance
end
|
.local_dir ⇒ Object
1069
1070
1071
|
# File 'lib/a-commons.rb', line 1069
def Application.local_dir
@@instance.local_dir if @@instance
end
|
.sys_info ⇒ Object
1077
1078
1079
|
# File 'lib/a-commons.rb', line 1077
def Application.sys_info
"[Platform = #{RUBY_PLATFORM}]\n[Ruby version = #{RUBY_VERSION}]"
end
|
.version ⇒ Object
1065
1066
1067
|
# File 'lib/a-commons.rb', line 1065
def Application.version
@@instance['applicationParams'].version if @@instance
end
|
Instance Method Details
#[](_name) ⇒ Object
1243
1244
1245
1246
1247
1248
1249
1250
|
# File 'lib/a-commons.rb', line 1243
def [](_name)
if @objs[_name]
return @objs[_name]
else
return nil
end
end
|
#[]=(_name, _value) ⇒ Object
1252
1253
1254
1255
1256
1257
|
# File 'lib/a-commons.rb', line 1252
def []=(_name, _value)
@objs[_name] = _value
end
|
#conf(_property) ⇒ Object
1073
1074
1075
|
# File 'lib/a-commons.rb', line 1073
def conf(_property)
self['conf'][_property]
end
|
#create(_name, _class) ⇒ Object
1235
1236
1237
|
# File 'lib/a-commons.rb', line 1235
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
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
|
# File 'lib/a-commons.rb', line 1175
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
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
|
# File 'lib/a-commons.rb', line 1202
def load_theme(_name=nil)
_theme_file = "conf/theme-#{_name}.conf" if !_name.nil?
if _theme_file && File.exist?(_theme_file)
self['conf_theme'] = self.properties_file2hash(_theme_file)
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
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
|
# File 'lib/a-commons.rb', line 1219
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
1145
1146
1147
|
# File 'lib/a-commons.rb', line 1145
def local_file_config
File.join(local_dir, File.basename(self['applicationParams'].config_file))
end
|
#objects(_name) ⇒ Object
1239
1240
1241
|
# File 'lib/a-commons.rb', line 1239
def objects(_name)
return @objs[_name]
end
|
#prepare ⇒ Object
1133
1134
|
# File 'lib/a-commons.rb', line 1133
def prepare
end
|
#publish(_name, _obj) ⇒ Object
1136
1137
1138
1139
1140
1141
1142
1143
|
# File 'lib/a-commons.rb', line 1136
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
1260
1261
|
# File 'lib/a-commons.rb', line 1260
def run
end
|
#update_local_config ⇒ Object
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
|
# File 'lib/a-commons.rb', line 1149
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
|