@@ -56,13 +56,13 @@ def enum?(name)
56
56
return false
57
57
end
58
58
59
- # map Ruby type names to PHP type names
59
+ # map Ruby type names to PHP argument type names
60
60
$to_php_map = {
61
61
"Vips::Image" => "Image" ,
62
62
"Image" => "Image" ,
63
63
"Array<Integer>" => "integer[]|integer" ,
64
64
"Array<Double>" => "float[]|float" ,
65
- "Array<Image>" => "Image[]" ,
65
+ "Array<Image>" => "Image[]|image " ,
66
66
"Integer" => "integer" ,
67
67
"gint" => "integer" ,
68
68
"guint64" => "integer" ,
@@ -77,8 +77,29 @@ def enum?(name)
77
77
"gpointer" => "string" ,
78
78
}
79
79
80
- def type_to_php ( type )
81
- return $to_php_map[ type ] if $to_php_map. include? ( type )
80
+ # php result type names are different, annoyingly, and very restricted
81
+ $to_php_result_map = {
82
+ "Vips::Image" => "Image" ,
83
+ "Image" => "Image" ,
84
+ "Array<Integer>" => "array" ,
85
+ "Array<Double>" => "array" ,
86
+ "Array<Image>" => "array" ,
87
+ "Integer" => "integer" ,
88
+ "gint" => "integer" ,
89
+ "guint64" => "integer" ,
90
+ "Double" => "float" ,
91
+ "gdouble" => "float" ,
92
+ "Float" => "float" ,
93
+ "String" => "string" ,
94
+ "Boolean" => "bool" ,
95
+ "gboolean" => "bool" ,
96
+ "Vips::Blob" => "string" ,
97
+ "gchararray" => "string" ,
98
+ "gpointer" => "string" ,
99
+ }
100
+
101
+ def type_to_php ( map , type )
102
+ return map [ type ] if map . include? ( type )
82
103
return "string" if enum? type
83
104
84
105
# no mapping found
@@ -88,7 +109,11 @@ def type_to_php(type)
88
109
89
110
class Vips ::Argument
90
111
def to_php
91
- type_to_php type
112
+ type_to_php $to_php_map, type
113
+ end
114
+
115
+ def to_php_result
116
+ type_to_php $to_php_result_map, type
92
117
end
93
118
end
94
119
@@ -151,7 +176,7 @@ def generate_operation(file, op)
151
176
if required_output . length == 0
152
177
file << "void "
153
178
elsif required_output . length == 1
154
- file << "#{ required_output [ 0 ] . to_php } "
179
+ file << "#{ required_output [ 0 ] . to_php_result } "
155
180
else
156
181
# we generate a Returns: block for this case, see below
157
182
file << "array "
@@ -272,7 +297,7 @@ def generate_class(file, gtype)
272
297
Vips ::Image . properties . each do |name |
273
298
php_name = name . tr "-" , "_"
274
299
p = Vips ::Image . property name
275
- file << " * @property #{ type_to_php p . value_type . name } "
300
+ file << " * @property #{ type_to_php $to_php_map , p . value_type . name } "
276
301
file << "$#{ php_name } #{ p . blurb } \n "
277
302
if enum? p . value_type . name
278
303
php_name = p . value_type . name . tap { |s | s . slice! ( "Vips" ) }
0 commit comments