Skip to content
Merged

Embed #948

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,6 @@ step_*.md*
stepi_*md*
stepi_*csv*
step*-*.md
examples/archive
evaldo/archive
_sandbox
15 changes: 8 additions & 7 deletions evaldo/builtins_bcrypt.go → batteries/builtins_bcrypt.go
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
//go:build !no_bcrypt
// +build !no_bcrypt

package evaldo
package batteries

import (
"crypto/rand"
"encoding/hex"

"github.com/refaktor/rye/env"
"github.com/refaktor/rye/evaldo"

"golang.org/x/crypto/bcrypt"
)
Expand All @@ -18,12 +19,12 @@ func __bcrypt_hash(ps *env.ProgramState, arg0 env.Object, arg1 env.Object, arg2
bytes, err := bcrypt.GenerateFromPassword([]byte(str.Value), bcrypt.DefaultCost)
if err != nil {
ps.FailureFlag = true
return MakeBuiltinError(ps, "Problem in hashing.", "__bcrypt_hash")
return evaldo.MakeBuiltinError(ps, "Problem in hashing.", "__bcrypt_hash")
}
return env.NewString(string(bytes))
default:
ps.FailureFlag = true
return MakeArgError(ps, 1, []env.Type{env.StringType}, "__bcrypt_hash")
return evaldo.MakeArgError(ps, 1, []env.Type{env.StringType}, "__bcrypt_hash")
}
}

Expand All @@ -40,11 +41,11 @@ func __bcrypt_check(ps *env.ProgramState, arg0 env.Object, arg1 env.Object, arg2
}
default:
ps.FailureFlag = true
return MakeArgError(ps, 1, []env.Type{env.StringType}, "__bcrypt_check")
return evaldo.MakeArgError(ps, 1, []env.Type{env.StringType}, "__bcrypt_check")
}
default:
ps.FailureFlag = true
return MakeArgError(ps, 2, []env.Type{env.StringType}, "__bcrypt_check")
return evaldo.MakeArgError(ps, 2, []env.Type{env.StringType}, "__bcrypt_check")
}
}

Expand All @@ -53,12 +54,12 @@ func __generate_token(ps *env.ProgramState, arg0 env.Object, arg1 env.Object, ar
case env.Integer:
b := make([]byte, n.Value)
if _, err := rand.Read(b); err != nil {
return MakeBuiltinError(ps, "Problem reading random stream.", "__generate_token")
return evaldo.MakeBuiltinError(ps, "Problem reading random stream.", "__generate_token")
}
return env.NewString(hex.EncodeToString(b))
default:
ps.FailureFlag = true
return MakeArgError(ps, 1, []env.Type{env.IntegerType}, "__generate_token")
return evaldo.MakeArgError(ps, 1, []env.Type{env.IntegerType}, "__generate_token")
}
}

Expand Down
2 changes: 1 addition & 1 deletion evaldo/builtins_bcrypt_not.go → batteries/builtins_bcrypt_not.go
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//go:build no_bcrypt
// +build no_bcrypt

package evaldo
package batteries

import (
"github.com/refaktor/rye/env"
Expand Down
17 changes: 9 additions & 8 deletions evaldo/builtins_bson.go → batteries/builtins_bson.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
//go:build !no_bson
// +build !no_bson

package evaldo
package batteries

import (
"fmt"

"github.com/refaktor/rye/env"
"github.com/refaktor/rye/evaldo"

"github.com/drewlanenga/govector"
"go.mongodb.org/mongo-driver/bson"
Expand Down Expand Up @@ -146,7 +147,7 @@ func BsonToValue_Map(ps *env.ProgramState, val any, typ string, meta any, topLev
}
ret, err := govector.AsVector(rrval)
if err != nil {
return makeError(ps, err.Error())
return evaldo.MakeError(ps, err.Error())
}
return *env.NewVector(ret)
case "block":
Expand All @@ -157,10 +158,10 @@ func BsonToValue_Map(ps *env.ProgramState, val any, typ string, meta any, topLev
}
return *env.NewBlock(*env.NewTSeries(rrval))
default:
return MakeBuiltinError(ps, "No matching arguments found.", "BsonToValue_Map")
return evaldo.MakeBuiltinError(ps, "No matching arguments found.", "BsonToValue_Map")
}
}
return MakeBuiltinError(ps, "bson type not found.", "BsonToValue_Map")
return evaldo.MakeBuiltinError(ps, "bson type not found.", "BsonToValue_Map")
}

func BsonToValue_Val(ps *env.ProgramState, val any, topLevel bool) env.Object {
Expand All @@ -175,7 +176,7 @@ func BsonToValue_Val(ps *env.ProgramState, val any, topLevel bool) env.Object {
val := BsonToValue_Map(ps, rval["col"], rval["typ"].(string), rval["met"], false)
return val
default:
return MakeBuiltinError(ps, "bson type not found.", "BsonToValue_Val")
return evaldo.MakeBuiltinError(ps, "bson type not found.", "BsonToValue_Val")
}
}

Expand All @@ -201,12 +202,12 @@ var Builtins_bson = map[string]*env.Builtin{
// err := bson.Unmarshal(arg0.(env.Native).Value.([]byte), &val)
err := bson.Unmarshal(arg0.(env.Bytes).Value, &val)
if err != nil {
return MakeBuiltinError(ps, err.Error(), "from-bson")
return evaldo.MakeBuiltinError(ps, err.Error(), "from-bson")
}

return BsonToValue_Map(ps, val["val"], val["typ"].(string), val["met"], true)
//return BsonToValue_Val(ps, val, true)
// return makeError(ps, "bson type not found")
// return evaldo.MakeError(ps, "bson type not found")
},
},
// Tests:
Expand All @@ -223,7 +224,7 @@ var Builtins_bson = map[string]*env.Builtin{
value := ValueToBSON(arg0, true)
encoded, err := bson.Marshal(value)
if err != nil {
return MakeBuiltinError(ps, err.Error(), "to-bson")
return evaldo.MakeBuiltinError(ps, err.Error(), "to-bson")
}
return *env.NewBytes(encoded)
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//go:build no_bson
// +build no_bson

package evaldo
package batteries

import (
"github.com/refaktor/rye/env"
Expand Down
Loading
Loading