Current section
14 Versions
Jump to
Current section
14 Versions
Compare versions
4
files changed
+14
additions
-25
deletions
| @@ -1,6 +1,5 @@ | |
| 1 1 | [](https://travis-ci.org/carlo-colombo/dublin-bus-api) |
| 2 2 | [](https://hex.pm/packages/dublin_bus_api) |
| 3 | - [](https://coveralls.io/github/carlo-colombo/dublin-bus-api?branch=master) |
| 4 3 | |
| 5 4 | Dublin Bus API |
| 6 5 | ============= |
| @@ -8,7 +8,7 @@ | |
| 8 8 | {<<"licenses">>,[<<"MIT">>]}. |
| 9 9 | {<<"links">>, |
| 10 10 | [{<<"Github">>,<<"https://github.com/carlo-colombo/dublin-bus-api">>}, |
| 11 | - {<<"docs">>,<<"http://hexdocs.pm/dublin_bus_api/Stop.html">>}]}. |
| 11 | + {<<"docs">>,<<"http://hexdocs.pm/dublin_bus_api">>}]}. |
| 12 12 | {<<"name">>,<<"dublin_bus_api">>}. |
| 13 13 | {<<"requirements">>, |
| 14 14 | [{<<"floki">>, |
| @@ -19,4 +19,4 @@ | |
| 19 19 | [{<<"app">>,<<"httpoison">>}, |
| 20 20 | {<<"optional">>,false}, |
| 21 21 | {<<"requirement">>,<<"~> 0.8">>}]}]}. |
| 22 | - {<<"version">>,<<"0.1.7-1">>}. |
| 22 | + {<<"version">>,<<"0.1.7">>}. |
| @@ -34,7 +34,6 @@ defmodule Stop do | |
| 34 34 | """ |
| 35 35 | |
| 36 36 | defmodule Row do |
| 37 | - @moduledoc false |
| 38 37 | defstruct [:line, :direction, :time] |
| 39 38 | end |
| 40 39 | |
| @@ -79,18 +78,14 @@ defmodule Stop do | |
| 79 78 | @spec get_info(String.t) :: stop |
| 80 79 | def get_info(id) when is_binary(id) do |
| 81 80 | stop = String.rjust(id,5,?0) |
| 82 | - url = @info_url <> stop |
| 83 81 | |
| 84 | - {:ok, body} = url |
| 85 | - |> HTTPoison.get |
| 82 | + {:ok, body} = HTTPoison.get(@info_url <> stop) |
| 86 83 | |> get_body |
| 87 84 | |
| 88 | - timetable = body |
| 89 | - |> Floki.find(".gridRow") |
| 85 | + timetable = Floki.find(body,".gridRow") |
| 90 86 | |> Enum.map(&parse_row/1) |
| 91 87 | |
| 92 | - name = body |
| 93 | - |> Floki.find("#stopTitle") |
| 88 | + name = Floki.find(body, "#stopTitle") |
| 94 89 | |> Floki.text |
| 95 90 | |> String.split("-") |
| 96 91 | |> List.first |
| @@ -113,10 +108,8 @@ defmodule Stop do | |
| 113 108 | """ |
| 114 109 | @spec search(String.t) :: list(stop) |
| 115 110 | def search(query) do |
| 116 | - url = @search_url <> URI.encode(query) |
| 117 111 | |
| 118 | - body = url |
| 119 | - |> HTTPoison.get([], [follow_redirect: false]) |
| 112 | + body = HTTPoison.get(@search_url <> URI.encode(query),[], [follow_redirect: false]) |
| 120 113 | |> get_body |
| 121 114 | |
| 122 115 | case body do |
| @@ -146,8 +139,8 @@ defmodule Stop do | |
| 146 139 | defp get_body({:ok, |
| 147 140 | %HTTPoison.Response{status_code: 302, |
| 148 141 | headers: headers}}) do |
| 149 | - {_, location} = headers |
| 150 | - |> Enum.find(fn(header) -> elem(header, 0) == "Location" end) |
| 142 | + |
| 143 | + {_,location} = Enum.find(headers, fn(header) -> elem(header, 0) == "Location" end) |
| 151 144 | |
| 152 145 | %{"stop" => stop} = Regex.named_captures(@regex, location) |
| 153 146 | |
| @@ -158,13 +151,13 @@ defmodule Stop do | |
| 158 151 | |
| 159 152 | defp parse_stop({"tr", _ , |
| 160 153 | [{"td",_ , [line]}, |
| 161 | - {"td",_ , [name]}, lines_html]}) do |
| 154 | + {"td",_ , [name]}, lines_html ]}) do |
| 162 155 | |
| 163 156 | lines = try do |
| 164 157 | lines_html |
| 165 158 | |> Floki.find("tr") |
| 166 159 | |> Enum.map(&Floki.find(&1,"td")) |
| 167 | - |> Enum.map(fn x -> x |> Enum.map(&Floki.text/1) |> List.to_tuple end) |
| 160 | + |> Enum.map(fn x -> Enum.map(x, &Floki.text/1) |> List.to_tuple end ) |
| 168 161 | |> Enum.into(%{}) |
| 169 162 | rescue |
| 170 163 | _ -> %{} |
| @@ -172,7 +165,7 @@ defmodule Stop do | |
| 172 165 | |
| 173 166 | %Stop{name: Floki.text(name), |
| 174 167 | ref: line, |
| 175 | - lines: lines} |
| 168 | + lines: lines } |
| 176 169 | end |
| 177 170 | |
| 178 171 | defp parse_stop(_), do: nil |
| @@ -3,22 +3,20 @@ defmodule DublinBusApi.Mixfile do | |
| 3 3 | |
| 4 4 | def project do |
| 5 5 | [app: :dublin_bus_api, |
| 6 | - version: "0.1.7-1", |
| 6 | + version: "0.1.7", |
| 7 7 | elixir: "~> 1.0", |
| 8 | - main: Stop, |
| 9 8 | build_embedded: Mix.env == :prod, |
| 10 9 | start_permanent: Mix.env == :prod, |
| 11 10 | deps: deps, |
| 12 11 | description: "Access to the Real Time Passenger Information (RTPI) for Dublin Bus services.", |
| 13 12 | name: "Dublin Bus API", |
| 14 13 | source_url: "https://github.com/carlo-colombo/dublin-bus-api", |
| 15 | - test_coverage: [tool: Coverex.Task, coveralls: true], |
| 16 14 | package: [ |
| 17 15 | licenses: ["MIT"], |
| 18 16 | mainteiners: ["Carlo Colombo"], |
| 19 17 | links: %{ |
| 20 18 | "Github" => "https://github.com/carlo-colombo/dublin-bus-api", |
| 21 | - "docs" => "http://hexdocs.pm/dublin_bus_api/Stop.html" |
| 19 | + "docs" => "http://hexdocs.pm/dublin_bus_api" |
| 22 20 | } |
| 23 21 | ]] |
| 24 22 | end |
| @@ -34,7 +32,6 @@ defmodule DublinBusApi.Mixfile do | |
| 34 32 | {:earmark, "~> 0.2", only: :dev}, |
| 35 33 | {:ex_doc, "~> 0.11", only: :dev}, |
| 36 34 | {:mock, "~> 0.1.1", only: :test}, |
| 37 | - {:credo, "~> 0.3", only: [:test, :dev]}, |
| 38 | - {:coverex, "~> 1.4.7", only: :test}] |
| 35 | + {:credo, "~> 0.2.5", only: :test}] |
| 39 36 | end |
| 40 37 | end |