Current section
7 Versions
Jump to
Current section
7 Versions
Compare versions
5
files changed
+30
additions
-23
deletions
| @@ -18,5 +18,6 @@ | |
| 18 18 | [[{<<"app">>,<<"poison">>}, |
| 19 19 | {<<"name">>,<<"poison">>}, |
| 20 20 | {<<"optional">>,false}, |
| 21 | + {<<"repository">>,<<"hexpm">>}, |
| 21 22 | {<<"requirement">>,<<"~> 3.0">>}]]}. |
| 22 | - {<<"version">>,<<"0.1.1">>}. |
| 23 | + {<<"version">>,<<"0.1.2">>}. |
| @@ -5,9 +5,10 @@ defmodule Emojix do | |
| 5 5 | |
| 6 6 | emoji = |
| 7 7 | Application.app_dir(:emojix, "priv/data/emoji.json") |
| 8 | - |> File.read! |
| 8 | + |> File.read!() |
| 9 9 | |> Poison.decode!(keys: :atoms) |
| 10 10 | |> Enum.map(fn {_name, data} -> struct(Emojix.Emoji, data) end) |
| 11 | + |
| 11 12 | @emoji emoji |
| 12 13 | @regex ~r/:[\w]+:/ |
| 13 14 | |
| @@ -47,7 +48,9 @@ defmodule Emojix do | |
| 47 48 | @regex, |
| 48 49 | text, |
| 49 50 | fn keyword, _ -> |
| 50 | - if emoji = Emojix.find_by_keyword(keyword), do: Emojix.Emoji.render(emoji, opts), else: keyword |
| 51 | + if emoji = Emojix.find_by_keyword(keyword), |
| 52 | + do: Emojix.Emoji.render(emoji, opts), |
| 53 | + else: keyword |
| 51 54 | end |
| 52 55 | ) |
| 53 56 | end |
| @@ -2,37 +2,38 @@ defmodule Emojix.Emoji do | |
| 2 2 | @moduledoc """ |
| 3 3 | Emoji module |
| 4 4 | """ |
| 5 | - defstruct [ |
| 6 | - name: nil, |
| 7 | - shortname: nil, |
| 8 | - category: nil, |
| 9 | - unicode: nil |
| 10 | - ] |
| 5 | + defstruct name: nil, |
| 6 | + shortname: nil, |
| 7 | + category: nil, |
| 8 | + unicode: nil |
| 11 9 | |
| 12 10 | def render(%Emojix.Emoji{unicode: unicode}, opts), do: render(unicode, opts) |
| 11 | + |
| 13 12 | def render(unicode, :html) do |
| 14 13 | ~s(<svg class='emoji-icon'><use xlink:href="#{emoji_path()}#emoji-#{unicode}"></svg>) |
| 15 14 | end |
| 15 | + |
| 16 16 | def render(unicode, :char) do |
| 17 17 | unicode |
| 18 18 | |> String.split("-") |
| 19 19 | |> Enum.map(&String.to_integer(&1, 16)) |
| 20 20 | |> to_string |
| 21 21 | end |
| 22 | + |
| 22 23 | def render(_, _), do: nil |
| 23 24 | |
| 24 25 | def char_to_unicode(char) when is_binary(char) do |
| 25 26 | char |
| 26 | - |> String.codepoints |
| 27 | + |> String.codepoints() |
| 27 28 | |> Enum.map(&binary_to_hex/1) |
| 28 29 | |> Enum.join("-") |
| 29 30 | end |
| 30 31 | |
| 31 | - defp binary_to_hex(<<code :: utf8>>) do |
| 32 | + defp binary_to_hex(<<code::utf8>>) do |
| 32 33 | code |
| 33 34 | |> Integer.to_string(16) |
| 34 | - |> String.rjust(4,?0) |
| 35 | - |> String.downcase |
| 35 | + |> String.rjust(4, ?0) |
| 36 | + |> String.downcase() |
| 36 37 | end |
| 37 38 | |
| 38 39 | defp emoji_path do |
| @@ -1,7 +1,7 @@ | |
| 1 1 | defmodule Mix.Tasks.Emojix.Install do |
| 2 2 | use Mix.Task |
| 3 3 | |
| 4 | - @shortdoc "Installs Emojix assets" |
| 4 | + @shortdoc "Installs Emojix assets" |
| 5 5 | @file_path "priv/static/images/emoji.svg" |
| 6 6 | |
| 7 7 | @moduledoc """ |
| @@ -1,17 +1,19 @@ | |
| 1 1 | defmodule Emojix.Mixfile do |
| 2 2 | use Mix.Project |
| 3 3 | |
| 4 | - @version "0.1.1" |
| 4 | + @version "0.1.2" |
| 5 5 | |
| 6 6 | def project do |
| 7 | - [app: :emojix, |
| 8 | - version: @version, |
| 9 | - elixir: "~> 1.4", |
| 10 | - build_embedded: Mix.env == :prod, |
| 11 | - start_permanent: Mix.env == :prod, |
| 12 | - package: package(), |
| 13 | - description: description(), |
| 14 | - deps: deps()] |
| 7 | + [ |
| 8 | + app: :emojix, |
| 9 | + version: @version, |
| 10 | + elixir: "~> 1.4", |
| 11 | + build_embedded: Mix.env() == :prod, |
| 12 | + start_permanent: Mix.env() == :prod, |
| 13 | + package: package(), |
| 14 | + description: description(), |
| 15 | + deps: deps() |
| 16 | + ] |
| 15 17 | end |
| 16 18 | |
| 17 19 | def application, do: [] |