Skip to content

Commit ddea5c8

Browse files
committed
Merge pull request #21 from tshort/unknown-args
Clean up calling signatures for Unknown() for #16.
2 parents 6452f64 + 48fa17f commit ddea5c8

File tree

2 files changed

+29
-35
lines changed

2 files changed

+29
-35
lines changed

src/main.jl

+16-23
Original file line numberDiff line numberDiff line change
@@ -214,37 +214,30 @@ type Unknown{T<:UnknownCategory} <: UnknownVariable
214214
label::String
215215
fixed::Bool
216216
save_history::Bool
217-
Unknown() = new(gensym(), 0.0, "", false, false)
218-
Unknown(sym::Symbol, label::String) = new(sym, 0.0, label, false, true)
219-
Unknown(sym::Symbol, value) = new(sym, value, "", false, false)
220-
Unknown(value) = new(gensym(), value, "", false, false)
221-
Unknown(label::String) = new(gensym(), 0.0, label, false, true)
222-
Unknown(value, label::String) = new(gensym(), value, label, false, true)
223-
Unknown(sym::Symbol, value, label::String) = new(sym, value, label, false, true)
224-
Unknown(sym::Symbol, value, label::String, fixed::Bool, save_history::Bool) =
217+
Unknown(;value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = false) =
218+
new(gensym(), value, label, fixed, save_history)
219+
Unknown(value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = false) =
220+
new(gensym(), value, label, fixed, save_history)
221+
Unknown(label::String = "", value = 0.0, fixed::Bool = false, save_history::Bool = false) =
222+
new(gensym(), value, label, fixed, save_history)
223+
Unknown(sym::Symbol, value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = false) =
225224
new(sym, value, label, fixed, save_history)
226225
end
227-
Unknown() = Unknown{DefaultUnknown}(gensym(), 0.0, "", false, false)
228-
Unknown(x) = Unknown{DefaultUnknown}(gensym(), x, "", false, false)
229-
Unknown(s::Symbol, label::String) = Unknown{DefaultUnknown}(s, 0.0, label, false, true)
230-
Unknown(x, label::String) = Unknown{DefaultUnknown}(gensym(), x, label, false, true)
231-
Unknown(label::String) = Unknown{DefaultUnknown}(gensym(), 0.0, label, false, true)
232-
Unknown(s::Symbol, x, fixed::Bool) = Unknown{DefaultUnknown}(s, x, "", fixed, false)
233-
Unknown(s::Symbol, x) = Unknown{DefaultUnknown}(s, x, "", false, false)
226+
Unknown(value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = true) =
227+
Unknown{DefaultUnknown}(value, label, fixed, save_history)
228+
Unknown(label::String = "", value = 0.0, fixed::Bool = false, save_history::Bool = true) =
229+
Unknown{DefaultUnknown}(value, label, fixed, save_history)
230+
Unknown(;value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = true) =
231+
Unknown{DefaultUnknown}(value, label, fixed, save_history)
234232

235-
# Better Unknown methods below? No s::Symbol; value and label are the most important
236-
# Do defaults work in an inner constructor?
237-
238-
## Unknown(value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = true)
239-
## Unknown(label::String = "", value = 0.0, fixed::Bool = false, save_history::Bool = true)
240-
## Unknown(;value = 0.0, label::String = "", fixed::Bool = false, save_history::Bool = true)
241233

242234

243235
@doc* """
244236
Is the object an UnknownVariable?
245237
""" ->
246238
is_unknown(x) = isa(x, UnknownVariable)
247-
239+
240+
248241
@doc """
249242
An UnknownVariable representing the derivitive of an Unknown, normally
250243
created with `der(x)`.
@@ -653,7 +646,7 @@ compatible_values(num::Number, u::UnknownVariable) = length(value(u)) > length(n
653646
@doc """
654647
The model time - a special unknown variable.
655648
""" ->
656-
const MTime = Unknown(:time, 0.0)
649+
const MTime = Unknown{DefaultUnknown}(:time, 0.0, "", false, false)
657650

658651

659652
@doc """

src/utils.jl

+13-12
Original file line numberDiff line numberDiff line change
@@ -189,13 +189,13 @@ end
189189
#
190190
# A macro to ease entry of many unknowns.
191191
#
192-
# @unknowns i("Load resistor current") v x("some val", 3.0)
192+
# @unknowns i("Load resistor current") v x(3.0, "some val")
193193
#
194194
# becomes:
195195
#
196-
# i = Unknown(symbol("Load resistor current"))
197-
# v = Unknown(:v)
198-
# x = Unknown(symbol("some val"), 3.0)
196+
# i = Unknown("Load resistor current")
197+
# v = Unknown()
198+
# x = Unknown(3.0, "some val")
199199
#
200200

201201
@doc """
@@ -207,30 +207,31 @@ A macro to ease entry of many unknowns.
207207
208208
### Arguments
209209
210-
* `a` : various representations of Unknowns, several specification
211-
options include:
212-
* symbol: equivalent to `symbol = Unknown(symbol)`
213-
* symbol(val): equivalent to `symbol = Unknown(symbol, val)`
210+
* `a` : various representations of Unknowns:
211+
* `symbol`: equivalent to `symbol = Unknown()`
212+
* `symbol(val)`: equivalent to `symbol = Unknown(symbol, val)`
213+
* `symbol(x, y, z)`: equivalent to `symbol = Unknown(x, y, z)`
214+
215+
For `symbol(
214216
215217
### Effects
216218
217219
Creates one or more Unknowns
218220
219-
* A Gadfly object
220221
""" ->
221222
macro unknown(args...)
222223
blk = Expr(:block)
223224
for arg in args
224225
if isa(arg, Symbol)
225-
push!(blk.args, :($arg = Unknown($(Meta.quot(arg)), 0.0)))
226+
push!(blk.args, :($arg = Unknown()))
226227
elseif isa(arg, Expr)
227228
name = arg.args[1]
228229
if length(arg.args) > 1
229230
newcall = copy(arg)
230-
newcall.args = [:Unknown, :($(Meta.quot(name))), newcall.args[2:end]]
231+
newcall.args = [:Unknown, newcall.args[2:end]]
231232
push!(blk.args, :($name = $newcall))
232233
else
233-
push!(blk.args, :($name = Unknown(name)))
234+
push!(blk.args, :($name = Unknown()))
234235
end
235236
end
236237
end

0 commit comments

Comments
 (0)