Skip to content

Commit 503904b

Browse files
committed
Fixed error with Rice 4.5 - resolves #70
1 parent 946233f commit 503904b

File tree

8 files changed

+35
-6
lines changed

8 files changed

+35
-6
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.14.2 (unreleased)
2+
3+
- Fixed error with Rice 4.5
4+
15
## 0.14.1 (2024-12-04)
26

37
- Added support for parameters to `Solver`

ext/or-tools/bin_packing.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ namespace Rice::detail
2323
class From_Ruby<KnapsackSolver::SolverType>
2424
{
2525
public:
26+
Convertible is_convertible(VALUE value)
27+
{
28+
return Convertible::Cast;
29+
}
30+
2631
KnapsackSolver::SolverType convert(VALUE x)
2732
{
2833
auto s = Symbol(x).str();

ext/or-tools/constraint.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ namespace Rice::detail
4242
class From_Ruby<LinearExpr>
4343
{
4444
public:
45+
Convertible is_convertible(VALUE value)
46+
{
47+
return Convertible::Cast;
48+
}
49+
4550
LinearExpr convert(VALUE v)
4651
{
4752
LinearExpr expr;

ext/or-tools/extconf.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
$CXXFLAGS << " -Wno-sign-compare -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-missing-field-initializers"
1010

1111
# hide Rice warnings
12-
$CXXFLAGS << " -Wno-implicit-fallthrough"
12+
$CXXFLAGS << " -Wno-unused-private-field -Wno-implicit-fallthrough"
1313

1414
inc, lib = dir_config("or-tools")
1515
if inc || lib

ext/or-tools/linear.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ namespace Rice::detail
2929
template<>
3030
struct From_Ruby<MPSolver::OptimizationProblemType>
3131
{
32+
Convertible is_convertible(VALUE value)
33+
{
34+
return Convertible::Cast;
35+
}
36+
3237
static MPSolver::OptimizationProblemType convert(VALUE x)
3338
{
3439
auto s = Symbol(x).str();

ext/or-tools/math_opt.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ namespace Rice::detail
2929
template<>
3030
struct From_Ruby<SolverType>
3131
{
32+
Convertible is_convertible(VALUE value)
33+
{
34+
return Convertible::Cast;
35+
}
36+
3237
static SolverType convert(VALUE x)
3338
{
3439
auto s = Symbol(x).str();

ext/or-tools/routing.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ namespace Rice::detail
3838
class From_Ruby<RoutingNodeIndex>
3939
{
4040
public:
41+
Convertible is_convertible(VALUE value)
42+
{
43+
return Convertible::Cast;
44+
}
45+
4146
RoutingNodeIndex convert(VALUE x)
4247
{
4348
const RoutingNodeIndex index{From_Ruby<int>().convert(x)};
@@ -285,7 +290,7 @@ void init_routing(Rice::Module& m) {
285290
Rice::define_class_under<RoutingModel::ResourceGroup>(m, "ResourceGroup");
286291

287292
Rice::define_class_under<RoutingModel>(m, "RoutingModel")
288-
.define_constructor(Rice::Constructor<RoutingModel, RoutingIndexManager, RoutingModelParameters>(), Rice::Arg("index_manager"), Rice::Arg("parameters") = operations_research::DefaultRoutingModelParameters())
293+
.define_constructor(Rice::Constructor<RoutingModel, RoutingIndexManager, RoutingModelParameters>(), Rice::Arg("_index_manager"), Rice::Arg("_parameters") = operations_research::DefaultRoutingModelParameters())
289294
.define_method("register_unary_transit_vector", &RoutingModel::RegisterUnaryTransitVector)
290295
.define_method(
291296
"register_unary_transit_callback",
@@ -300,7 +305,7 @@ void init_routing(Rice::Module& m) {
300305
return Rice::detail::From_Ruby<int64_t>().convert(callback.call("call", from_index));
301306
}
302307
);
303-
}, Rice::Arg("callback").keepAlive())
308+
}, Rice::Arg("_callback").keepAlive())
304309
.define_method("register_transit_matrix", &RoutingModel::RegisterTransitMatrix)
305310
.define_method(
306311
"register_transit_callback",
@@ -315,7 +320,7 @@ void init_routing(Rice::Module& m) {
315320
return Rice::detail::From_Ruby<int64_t>().convert(callback.call("call", from_index, to_index));
316321
}
317322
);
318-
}, Rice::Arg("callback").keepAlive())
323+
}, Rice::Arg("_callback").keepAlive())
319324
.define_method("add_dimension", &RoutingModel::AddDimension)
320325
.define_method("add_dimension_with_vehicle_transits", &RoutingModel::AddDimensionWithVehicleTransits)
321326
.define_method("add_dimension_with_vehicle_capacity", &RoutingModel::AddDimensionWithVehicleCapacity)
@@ -332,7 +337,7 @@ void init_routing(Rice::Module& m) {
332337
.define_method("add_resource_group", &RoutingModel::AddResourceGroup)
333338
.define_method("dimension_resource_group_indices", &RoutingModel::GetDimensionResourceGroupIndices)
334339
.define_method("dimension_resource_group_index", &RoutingModel::GetDimensionResourceGroupIndex)
335-
.define_method("add_disjunction", &RoutingModel::AddDisjunction, Rice::Arg("indices"), Rice::Arg("penalty"), Rice::Arg("max_cardinality") = (int64_t)1)
340+
.define_method("add_disjunction", &RoutingModel::AddDisjunction, Rice::Arg("_indices"), Rice::Arg("_penalty"), Rice::Arg("_max_cardinality") = (int64_t)1)
336341
.define_method("disjunction_indices", &RoutingModel::GetDisjunctionIndices)
337342
.define_method("disjunction_penalty", &RoutingModel::GetDisjunctionPenalty)
338343
.define_method("disjunction_max_cardinality", &RoutingModel::GetDisjunctionMaxCardinality)

or-tools.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ Gem::Specification.new do |spec|
1616

1717
spec.required_ruby_version = ">= 3.1"
1818

19-
spec.add_dependency "rice", ">= 4.3.3"
19+
spec.add_dependency "rice", ">= 4.5"
2020
end

0 commit comments

Comments
 (0)