예제 #1
0
파일: action.go 프로젝트: sbinet/fubsy
func logFunctionCall(callable types.FuCallable, args types.ArgSource) {
	argstrings := make([]string, len(args.Args()))
	for i, arg := range args.Args() {
		argstrings[i] = arg.String()
	}
	log.Info("%s(%s)", callable.Name(), strings.Join(argstrings, ", "))
}
예제 #2
0
파일: python_test.go 프로젝트: sbinet/fubsy
func Test_PythonCallable(t *testing.T) {
	var callable types.FuCallable
	callable = MakePythonCallable("fred", nil)
	assert.Equal(t, "fred", callable.Name())
	assert.Equal(t, "python:fred()", callable.String())
	assert.Equal(t, "fred", callable.ValueString())

	_ = callable.Code()
}
예제 #3
0
파일: execute.go 프로젝트: sbinet/fubsy
func (self *Runtime) evaluateCall(
	callable types.FuCallable,
	args RuntimeArgs,
	precall func(types.FuCallable, types.ArgSource)) (
	types.FuObject, []error) {

	if precall != nil {
		precall(callable, args)
	}
	err := callable.CheckArgs(args)
	if err != nil {
		return nil, []error{err}
	}
	return callable.Code()(args)
}