Packages

The library, implements modules and structs for work with `The International System of Units`.

Current section

Files

Jump to
si lib si multiplier.ex
Raw

lib/si/multiplier.ex

defmodule SI.Multiplier do
@moduledoc false
defmacro __using__(opts) do
name = opts[:name] || raise("the `name` is required option")
symbol = opts[:symbol] || raise("the `symbol` is required option")
value = opts[:value] || raise("the `value` is required option")
quote do
Module.put_attribute(__MODULE__, :name, unquote(name))
Module.put_attribute(__MODULE__, :symbol, unquote(symbol))
Module.put_attribute(__MODULE__, :value, unquote(value))
def name, do: @name
def symbol, do: @symbol
def value, do: @value
end
end
end