Lines Matching full:setting
13 static VALUE rconfig_wrap_value(config_setting_t* setting) in rconfig_wrap_value() argument
15 switch(config_setting_type(setting)) { in rconfig_wrap_value()
17 return LONG2FIX(config_setting_get_int(setting)); in rconfig_wrap_value()
20 return rb_ll2inum(config_setting_get_int64(setting)); in rconfig_wrap_value()
23 return rb_float_new(config_setting_get_float(setting)); in rconfig_wrap_value()
26 return rb_str_new2(config_setting_get_string(setting)); in rconfig_wrap_value()
29 return config_setting_get_bool(setting) ? Qtrue : Qfalse; in rconfig_wrap_value()
32 rb_bug("unknown value type %d", config_setting_type(setting)); in rconfig_wrap_value()
36 static void rconfig_free_setting(config_setting_t* setting) in rconfig_free_setting() argument
41 static VALUE rconfig_prepare_setting(config_setting_t* setting) in rconfig_prepare_setting() argument
43 VALUE wrapper = Data_Wrap_Struct(rb_cObject, 0, rconfig_free_setting, setting); in rconfig_prepare_setting()
44 config_setting_set_hook(setting, (void*) wrapper); in rconfig_prepare_setting()
52 rb_iv_set(wrapper, "@setting", Qnil); in rconfig_destroy_setting()
56 static VALUE rconfig_wrap_setting(config_setting_t* setting) in rconfig_wrap_setting() argument
58 VALUE rbSetting = rconfig_prepare_setting(setting); in rconfig_wrap_setting()
60 switch(config_setting_type(setting)) { in rconfig_wrap_setting()
62 …return rb_funcall(cConfigFixnum, rb_intern("new"), 2, LONG2FIX(config_setting_get_int(setting)), r… in rconfig_wrap_setting()
65 …call(cConfigBignum, rb_intern("new"), 2, rb_ll2inum(config_setting_get_int64(setting)), rbSetting); in rconfig_wrap_setting()
68 …all(cConfigFloat, rb_intern("new"), 2, rb_float_new(config_setting_get_float(setting)), rbSetting); in rconfig_wrap_setting()
71 …ll(cConfigString, rb_intern("new"), 2, rb_str_new2(config_setting_get_string(setting)), rbSetting); in rconfig_wrap_setting()
74 …return rb_funcall(cConfigBoolean, rb_intern("new"), 2, config_setting_get_bool(setting) ? Qtrue : … in rconfig_wrap_setting()
86 rb_bug("[r] unknown setting type %d", config_setting_type(setting)); in rconfig_wrap_setting()
90 static void rconfig_update_setting(config_setting_t* setting, VALUE value) in rconfig_update_setting() argument
92 switch(config_setting_type(setting)) { in rconfig_update_setting()
94 config_setting_set_int(setting, FIX2LONG(value)); in rconfig_update_setting()
99 config_setting_set_int64(setting, rb_big2ll(value)); in rconfig_update_setting()
101 config_setting_set_int64(setting, FIX2INT(value)); in rconfig_update_setting()
107 config_setting_set_float(setting, RFLOAT_VALUE(value)); in rconfig_update_setting()
109 config_setting_set_float(setting, RFLOAT_VALUE(value)); in rconfig_update_setting()
114 config_setting_set_string(setting, RSTRING_PTR(value)); in rconfig_update_setting()
118 config_setting_set_bool(setting, value == Qtrue); in rconfig_update_setting()
122 rb_bug("[w] unknown setting type %d", config_setting_type(setting)); in rconfig_update_setting()
141 rb_raise(rb_eException, "never use Config::Setting itself"); in rconfig_check_setting_type()
145 static int rconfig_do_append(config_setting_t* setting, VALUE target, VALUE name) in rconfig_do_append() argument
165 rb_bug("unknown setting class %s", rb_obj_classname(target)); in rconfig_do_append()
169 new_setting = config_setting_add(setting, NULL, type); in rconfig_do_append()
172 new_setting = config_setting_add(setting, RSTRING_PTR(name), type); in rconfig_do_append()
179 rb_iv_set(target, "@setting", rbNewSetting); in rconfig_do_append()
205 static VALUE rbConfigBaseSetting_initialize(VALUE self, VALUE setting) in rbConfigBaseSetting_initialize() argument
207 if(setting != Qnil) in rbConfigBaseSetting_initialize()
208 Check_Type(setting, T_DATA); in rbConfigBaseSetting_initialize()
209 rb_iv_set(self, "@setting", setting); in rbConfigBaseSetting_initialize()
216 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigBaseSetting_name()
217 config_setting_t* setting = NULL; in rbConfigBaseSetting_name() local
218 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigBaseSetting_name()
219 return rb_str_new2(config_setting_name(setting)); in rbConfigBaseSetting_name()
227 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigBaseSetting_parent()
228 config_setting_t* setting = NULL; in rbConfigBaseSetting_parent() local
229 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigBaseSetting_parent()
230 return rconfig_wrap_setting(config_setting_parent(setting)); in rbConfigBaseSetting_parent()
238 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigBaseSetting_is_root()
239 config_setting_t* setting = NULL; in rbConfigBaseSetting_is_root() local
240 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigBaseSetting_is_root()
241 return config_setting_is_root(setting) ? Qtrue : Qfalse; in rbConfigBaseSetting_is_root()
249 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigBaseSetting_index()
250 config_setting_t* setting = NULL; in rbConfigBaseSetting_index() local
251 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigBaseSetting_index()
252 return INT2FIX(config_setting_index(setting)); in rbConfigBaseSetting_index()
260 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigBaseSetting_line()
261 config_setting_t* setting = NULL; in rbConfigBaseSetting_line() local
262 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigBaseSetting_line()
263 return INT2FIX(config_setting_source_line(setting)); in rbConfigBaseSetting_line()
271 VALUE value, setting; in rbConfigSetting_initialize() local
272 rb_scan_args(argc, argv, "11", &value, &setting); in rbConfigSetting_initialize()
274 rb_call_super(1, &setting); in rbConfigSetting_initialize()
279 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigSetting_initialize()
281 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, c_setting); in rbConfigSetting_initialize()
292 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigSetting_get_value()
293 config_setting_t* setting; in rbConfigSetting_get_value() local
294 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigSetting_get_value()
295 return rconfig_wrap_value(setting); in rbConfigSetting_get_value()
305 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigSetting_set_value()
306 config_setting_t* setting; in rbConfigSetting_set_value() local
307 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigSetting_set_value()
308 rconfig_update_setting(setting, new_value); in rbConfigSetting_set_value()
318 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigSetting_get_format()
319 config_setting_t* setting; in rbConfigSetting_get_format() local
320 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigSetting_get_format()
321 return INT2FIX(config_setting_get_format(setting)); in rbConfigSetting_get_format()
329 if(rb_iv_get(self, "@setting") != Qnil) { in rbConfigSetting_set_format()
330 config_setting_t* setting; in rbConfigSetting_set_format() local
331 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigSetting_set_format()
332 if(!config_setting_set_format(setting, FIX2INT(new_format))) in rbConfigSetting_set_format()
333 rb_raise(eSettingFormatError, "invalid setting format %d", FIX2INT(new_format)); in rbConfigSetting_set_format()
345 VALUE setting = Qnil; in rbConfigAggregate_initialize() local
347 rb_scan_args(argc, argv, "01", &setting); in rbConfigAggregate_initialize()
350 rb_scan_args(argc, argv, "02", &type, &setting); in rbConfigAggregate_initialize()
353 rb_raise(rb_eTypeError, "invalid setting array type %s", rb_class2name(type)); in rbConfigAggregate_initialize()
360 rb_call_super(1, &setting); in rbConfigAggregate_initialize()
366 if(setting != Qnil && rb_obj_class(self) == cConfigArray) { in rbConfigAggregate_initialize()
368 Data_Get_Struct(setting, config_setting_t, c_setting); in rbConfigAggregate_initialize()
378 config_setting_t* setting = NULL; in rbConfigAggregate_size() local
379 if(rb_iv_get(self, "@setting") != Qnil) in rbConfigAggregate_size()
380 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigAggregate_size()
382 if(setting) in rbConfigAggregate_size()
383 return INT2FIX(config_setting_length(setting)); in rbConfigAggregate_size()
390 config_setting_t* setting = NULL; in rbConfigAggregate_get() local
391 if(rb_iv_get(self, "@setting") != Qnil) in rbConfigAggregate_get()
392 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigAggregate_get()
397 if(setting) { in rbConfigAggregate_get()
398 config_setting_t* target = config_setting_get_member(setting, RSTRING_PTR(index)); in rbConfigAggregate_get()
405 if(setting) { in rbConfigAggregate_get()
406 config_setting_t* target = config_setting_get_elem(setting, FIX2INT(index)); in rbConfigAggregate_get()
418 rb_raise(eSettingNotFoundError, "setting `%s' not found", RSTRING_PTR(index)); in rbConfigAggregate_get()
420 rb_raise(eSettingNotFoundError, "setting [%d] not found", FIX2INT(index)); in rbConfigAggregate_get()
427 config_setting_t* setting = NULL; in rbConfigAggregate_append() local
428 if(rb_iv_get(self, "@setting") != Qnil) in rbConfigAggregate_append()
429 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigAggregate_append()
438 rb_raise(rb_eTypeError, "invalid setting array type %s", rb_obj_classname(target)); in rbConfigAggregate_append()
442 if(setting) in rbConfigAggregate_append()
443 rconfig_do_append(setting, target, Qnil); in rbConfigAggregate_append()
460 config_setting_t* setting = NULL; in rbConfigGroup_append() local
461 if(rb_iv_get(self, "@setting") != Qnil) in rbConfigGroup_append()
462 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigGroup_append()
466 … rb_raise(eSettingNameError, "setting name `%s' contains invalid characters", RSTRING_PTR(name)); in rbConfigGroup_append()
467 if(setting) { in rbConfigGroup_append()
468 if(!rconfig_do_append(setting, target, name)) in rbConfigGroup_append()
469 rb_raise(eSettingNameError, "setting `%s' already exists", RSTRING_PTR(name)); in rbConfigGroup_append()
471 rb_raise(eSettingNameError, "setting `%s' already exists", RSTRING_PTR(name)); in rbConfigGroup_append()
484 config_setting_t* setting = NULL; in rbConfigAggregate_delete() local
485 if(rb_iv_get(self, "@setting") != Qnil) in rbConfigAggregate_delete()
486 Data_Get_Struct(rb_iv_get(self, "@setting"), config_setting_t, setting); in rbConfigAggregate_delete()
491 if(setting) in rbConfigAggregate_delete()
492 config_setting_remove(setting, RSTRING_PTR(target)); in rbConfigAggregate_delete()
498 if(setting) in rbConfigAggregate_delete()
499 config_setting_remove_elem(setting, index); in rbConfigAggregate_delete()
506 if(setting) in rbConfigAggregate_delete()
507 config_setting_remove(setting, RSTRING_PTR(name)); in rbConfigAggregate_delete()
599 config_setting_t* setting; in rbConfig_lookup() local
600 setting = config_lookup(config, RSTRING_PTR(handle)); in rbConfig_lookup()
602 if(setting == NULL) in rbConfig_lookup()
603 rb_raise(eSettingNotFoundError, "setting `%s' not found", RSTRING_PTR(handle)); in rbConfig_lookup()
605 return rconfig_wrap_setting(setting); in rbConfig_lookup()
651 cConfigSetting = rb_define_class_under(cConfig, "Setting", cConfigBaseSetting); in Init_rconfig()