equal
deleted
inserted
replaced
74 |
74 |
75 SCM toGuileSymbol(const string_t& name) { |
75 SCM toGuileSymbol(const string_t& name) { |
76 return scm_string_to_symbol(scm_from_locale_string(convertor.to_bytes(name).c_str())); |
76 return scm_string_to_symbol(scm_from_locale_string(convertor.to_bytes(name).c_str())); |
77 } |
77 } |
78 |
78 |
79 SCM evalGuileCode(const string_t& value) { |
79 /** |
80 return scm_eval_string(toGuileValue(&value, typeid (string_t), TypeId::STRING)); |
80 * @param code guile source code e.g. (+ 1 2 3) or #t |
|
81 * @param defaultReturnValue is returned if code is empty |
|
82 * @return result of code execution or defaultReturnValue |
|
83 */ |
|
84 SCM evalGuileCode(const string_t& code, SCM defaultReturnValue = SCM_BOOL_F) { |
|
85 if (code.size()) return scm_eval_string(toGuileValue(&code, typeid (string_t), TypeId::STRING)); |
|
86 else return defaultReturnValue; |
81 } |
87 } |
82 |
88 |
83 SCM toGuileValue(const void* value, const std::type_info& typeInfo, TypeId type) { |
89 SCM toGuileValue(const void* value, const std::type_info& typeInfo, TypeId type) { |
84 switch (type) { |
90 switch (type) { |
85 case TypeId::BOOLEAN: |
91 case TypeId::BOOLEAN: |
174 |
180 |
175 currentAttributeIndex++; |
181 currentAttributeIndex++; |
176 |
182 |
177 // TODO: > 0 ?: |
183 // TODO: > 0 ?: |
178 if (currentAttributeIndex > 0 && currentAttributeIndex % currentReaderMetadata.size() == 0) { |
184 if (currentAttributeIndex > 0 && currentAttributeIndex % currentReaderMetadata.size() == 0) { |
179 includeCurrentRecord = scm_to_bool(evalGuileCode(currentRelationConfiguration->guileWhere)); |
185 evalGuileCode(currentRelationConfiguration->guileForEach); |
|
186 includeCurrentRecord = scm_to_bool(evalGuileCode(currentRelationConfiguration->guileWhere, SCM_BOOL_T)); |
180 if (includeCurrentRecord) for (auto attribute : currentWriterMetadata) writeGuileValueToAttribute(attribute); |
187 if (includeCurrentRecord) for (auto attribute : currentWriterMetadata) writeGuileValueToAttribute(attribute); |
181 includeCurrentRecord = false; |
188 includeCurrentRecord = false; |
182 } |
189 } |
183 |
190 |
184 currentAttributeIndex = currentAttributeIndex % currentReaderMetadata.size(); |
191 currentAttributeIndex = currentAttributeIndex % currentReaderMetadata.size(); |