Skip to content
Allow you to make custom base conversion in Elixir.
Elixir
Branch: master
Clone or download
dependabot-preview and igas Bump ex_doc from 0.21.1 to 0.21.2 (#25)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.21.1 to 0.21.2.
- [Release notes](https://github.com/elixir-lang/ex_doc/releases)
- [Changelog](https://github.com/elixir-lang/ex_doc/blob/master/CHANGELOG.md)
- [Commits](elixir-lang/ex_doc@v0.21.1...v0.21.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Latest commit af97891 Sep 9, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Fix overflow caused by float :math.pow Jan 31, 2016
test Fix overflow caused by float :math.pow Jan 31, 2016
.gitignore Add docs Mar 7, 2015
.travis.yml Added: Elixir 1.9 support (#28) Sep 8, 2019
CHANGELOG.md Bump 0.2.1 Apr 17, 2017
LICENSE Add license Mar 7, 2015
README.md v0.2.0 Feb 1, 2016
mix.exs Update deps Apr 17, 2017
mix.lock Bump ex_doc from 0.21.1 to 0.21.2 (#25) Sep 8, 2019

README.md

CustomBase

VersionLicenseBuild StatusIssuesDownloadsDonation

CustomBase allow you to make custom base conversion in Elixir.

Installation

Add { :custom_base, "~> 0.2" } to deps function in your mix.exs file.

After you are done, run mix deps.get in your shell to fetch and compile CustomBase.

Example

Lets make Base12 module with conversion described below.

Value Encoding
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B

Add macro to your module:

defmodule Base12 do
  use CustomBase, '0123456789AB'
end

Now your module have 2 functions encode/1 and decode/1:

iex> Base12.encode(9)
"9"
iex> Base12.encode(10)
"A"
iex> Base12.encode(11)
"B"
iex> Base12.encode(12)
"10"
iex> Base12.decode("16")
18
iex> Base12.decode("AB")
131

Specs & Docs

All specs included by this library, if you want to provide your documentation, add it after use call, like this:

defmodule Base12 do
  use CustomBase, '0123456789AB'

  @moduledoc """
  Your module docs.
  """

  @doc """
  Documentation for encode/1.
  """
  def encode(integer)

  @doc """
  Documentation for decode/1.
  """
  def decode(binary)

  @doc """
  Documentation for decode!/1.
  """
  def decode!(binary)
end

License

Released under the MIT License.

You can’t perform that action at this time.