[ruby-talk:444778] [ANN] cel 0.6.0 released

0 views
Skip to first unread message

Tiago Cardoso via ruby-talk

unread,
Feb 27, 2026, 10:08:49 PMFeb 27
to Ruby users, Tiago Cardoso
cel 0.6.0 has been released.

cel is a pure Ruby implementation of Google Common Expression Language, https://opensource.google/projects/cel.

The Common Expression Language (CEL) implements common semantics for expression evaluation, enabling different applications to more easily interoperate.

```ruby
require "cel"

# set the environment
env = Cel::Environment.new(name: :string, group: :string)

# parse
ast = env.compile('name.startsWith("/groups/" + group)')
# check
prg = env.program(ast)
# evaluate
prg.evaluate(name: Cel::String.new("/groups/acme.co/documents/secret-stuff"),
    group: Cel::String.new("acme.co")) #=> true

# or do it all in one go
env.evaluate('name.startsWith("/groups/" + group)',
  name: Cel::String.new("/groups/acme.co/documents/secret-stuff"),
  group: Cel::String.new("acme.co")
)
```

Here are the updates since the last release:

## [0.6.0] - 2026-02-28

### Features

#### Network Extension

Support the network extension, as defined [here](https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#IP).

### Improvements

#### support top-level lookup (ex: '.y')

also, make sure than, on lookup, keys under the passed container take priority, except in the case where the lookup is top-level
 (i.e. '.y').

at the same time, #merge is refactored in order to:

* normalize nested bindings into aggregated keys ({a:{b:1}} => {:"a.b"=> 1}
* override container-prefixed variables with the local binding
* deal with conflicts by moving them to top level.



Reply all
Reply to author
Forward
0 new messages