Skip to content

Commit 54bae62

Browse files
committed
Move schemas to lib/tilex
1 parent 4212768 commit 54bae62

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+104
-86
lines changed

.iex.exs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import_file_if_available("~/.iex.exs")
22

3-
alias Tilex.Channel
4-
alias Tilex.Developer
3+
alias Tilex.Blog.Channel
4+
alias Tilex.Blog.Developer
55
alias Tilex.Liking
6-
alias Tilex.Post
6+
alias Tilex.Blog.Post
77
alias Tilex.Rep
88

99
# Allow developer to reload IEx session with `R.reload!`.

lib/mix/tasks/ecto.twiki.ex

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
defmodule Mix.Tasks.Ecto.Twiki do
22
use Mix.Task
33

4-
alias Ecto.{Migrator}
5-
alias Mix.{Ecto, Project, EctoSQL}
4+
alias Ecto.Migrator
5+
alias Mix.Ecto
6+
alias Mix.Project
7+
alias Mix.EctoSQL
68

79
@shortdoc "Ecto Migration: Up, Down, Up"
810

lib/tilex/auth/guardian.ex

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
defmodule Tilex.Auth.Guardian do
22
use Guardian, otp_app: :tilex
33

4-
alias Tilex.{Developer, Repo}
4+
alias Tilex.Blog.Developer
5+
alias Tilex.Repo
56

67
def subject_for_token(%Developer{} = developer, _claims), do: {:ok, "Developer:#{developer.id}"}
78
def subject_for_token(_resource, _claims), do: {:error, "Unknown resource type"}

lib/tilex_web/models/channel.ex lib/tilex/blog/channel.ex

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
defmodule Tilex.Channel do
2-
use TilexWeb, :schema
1+
defmodule Tilex.Blog.Channel do
2+
use Ecto.Schema
3+
import Ecto.Changeset
4+
import Ecto.Query
35

46
@type t :: module
57

6-
alias Tilex.Post
8+
alias Tilex.Blog.Post
79

810
schema "channels" do
911
field(:name, :string)

lib/tilex_web/models/developer.ex lib/tilex/blog/developer.ex

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
defmodule Tilex.Developer do
2-
use TilexWeb, :schema
1+
defmodule Tilex.Blog.Developer do
2+
use Ecto.Schema
3+
import Ecto.Changeset
34

45
@type t :: module
56

6-
alias Tilex.{Developer, Post}
7+
alias Tilex.Blog.Developer
8+
alias Tilex.Blog.Post
79

810
schema "developers" do
911
field(:email, :string)

lib/tilex_web/models/post.ex lib/tilex/blog/post.ex

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
defmodule Tilex.Post do
2-
use TilexWeb, :schema
1+
defmodule Tilex.Blog.Post do
2+
use Ecto.Schema
3+
import Ecto.Changeset
34

45
@type t :: module
56

6-
alias Tilex.{Developer, Channel, Post}
7+
alias Tilex.Blog.Developer
8+
alias Tilex.Blog.Channel
9+
alias Tilex.Blog.Post
710

811
@body_max_words 200
912
def body_max_words, do: @body_max_words

lib/tilex_web/models/request.ex lib/tilex/blog/request.ex

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
defmodule Tilex.Request do
2-
use TilexWeb, :schema
1+
defmodule Tilex.Blog.Request do
2+
use Ecto.Schema
33

44
@type t :: module
55

lib/tilex/liking.ex

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
defmodule Tilex.Liking do
2-
alias Tilex.{Notifications, Post, Repo}
2+
alias Tilex.Notifications
3+
alias Tilex.Blog.Post
4+
alias Tilex.Repo
35

46
def like(slug) do
57
post = Repo.get_by!(Post, slug: slug)

lib/tilex/notifications/notifications.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule Tilex.Notifications do
22
use GenServer
33

44
alias Ecto.Changeset
5-
alias Tilex.Post
5+
alias Tilex.Blog.Post
66
alias Tilex.Repo
77
alias TilexWeb.Endpoint
88
alias TilexWeb.Router.Helpers, as: Routes

lib/tilex/notifications/notifiers/notifier.ex

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ defmodule Tilex.Notifications.Notifier do
2323
Tilex.Notifications.NotifiersSupervisor.children/1
2424
"""
2525

26-
alias Tilex.{Post, Developer, Channel}
26+
alias Tilex.Blog.Post
27+
alias Tilex.Blog.Developer
28+
alias Tilex.Blog.Channel
2729

2830
@callback handle_post_created(Post.t(), Developer.t(), Channel.t(), url :: String.t()) :: any
2931
@callback handle_post_liked(Post.t(), Developer.t(), url :: String.t()) :: any

lib/tilex/notifications/notifiers/slack.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Tilex.Notifications.Notifiers.Slack do
22
use Tilex.Notifications.Notifier
33

4-
alias Tilex.Post
4+
alias Tilex.Blog.Post
55

66
@emoji ~w(
77
:tada:

lib/tilex/notifications/notifiers/twitter.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule Tilex.Notifications.Notifiers.Twitter do
2-
alias Tilex.Developer
2+
alias Tilex.Blog.Developer
33

44
use Tilex.Notifications.Notifier
55

lib/tilex/posts.ex

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ defmodule Tilex.Posts do
22
import Ecto.Query
33

44
alias Ecto.Adapters.SQL
5-
alias Tilex.{Channel, Developer, Post, Repo}
5+
alias Tilex.Blog.Channel
6+
alias Tilex.Blog.Developer
7+
alias Tilex.Blog.Post
8+
alias Tilex.Repo
69

710
def all(page) do
811
page

lib/tilex/stats.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule Tilex.Stats do
44

55
alias Ecto.Adapters.SQL
66
alias Tilex.Repo
7-
alias Tilex.Channel
7+
alias Tilex.Blog.Channel
88

99
def developer(%{start_date: start_date, end_date: end_date}) do
1010
start_time = Timex.to_datetime(start_date)

lib/tilex/tracking.ex

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
defmodule Tilex.Tracking do
22
alias Tilex.Repo
3-
alias Tilex.Request
3+
alias Tilex.Blog.Request
44
alias TilexWeb.Endpoint
55

66
import Ecto.Query, only: [from: 2, subquery: 1]
@@ -36,7 +36,7 @@ defmodule Tilex.Tracking do
3636
query =
3737
from(
3838
req in subquery(requests),
39-
join: post in Tilex.Post,
39+
join: post in Tilex.Blog.Post,
4040
on: [slug: req.url_slug],
4141
order_by: [desc: req.view_count],
4242
limit: 10,

lib/tilex_web.ex

-8
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,6 @@ defmodule TilexWeb do
8888
end
8989
end
9090

91-
def schema do
92-
quote do
93-
use Ecto.Schema
94-
import Ecto.Changeset
95-
import Ecto.Query
96-
end
97-
end
98-
9991
defp view_helpers do
10092
quote do
10193
# Use all HTML functionality (forms, tags, etc)

lib/tilex_web/channels/user_socket.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule TilexWeb.UserSocket do
22
use Phoenix.Socket
33

44
## Channels
5-
channel("post:search", Tilex.PostChannel)
5+
channel("post:search", Tilex.Blog.PostChannel)
66
channel("text_converter", Tilex.TextConverterChannel)
77

88
# Socket params are passed from the client and can

lib/tilex_web/controllers/api/developer_post_controller.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule TilexWeb.Api.DeveloperPostController do
44
"""
55

66
use TilexWeb, :controller
7-
alias Tilex.{Posts}
7+
alias Tilex.Posts
88

99
@doc """
1010
This function allows external requesters to retrieve a developer's three most

lib/tilex_web/controllers/api/post_controller.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ defmodule TilexWeb.Api.PostController do
55

66
use TilexWeb, :controller
77
use Tilex.Pageable
8-
alias Tilex.{Posts}
8+
alias Tilex.Posts
99

1010
@doc """
1111
This functions allows external requesters to retrieve the feed of til in json format

lib/tilex_web/controllers/auth_controller.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule TilexWeb.AuthController do
22
use TilexWeb, :controller
33
plug(Ueberauth)
44

5-
alias Tilex.Developer
5+
alias Tilex.Blog.Developer
66
alias Tilex.Repo
77
alias Tilex.Auth
88

lib/tilex_web/controllers/developer_controller.ex

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
defmodule TilexWeb.DeveloperController do
22
use TilexWeb, :controller
33

4-
alias Tilex.{Developer, Posts, Repo, Auth}
4+
alias Tilex.Blog.Developer
5+
alias Tilex.Posts
6+
alias Tilex.Repo
7+
alias Tilex.Auth
58

69
def show(conn, %{"name" => username} = params) do
710
page =

lib/tilex_web/controllers/feed_controller.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ defmodule TilexWeb.FeedController do
55
posts =
66
Repo.all(
77
from(
8-
p in Tilex.Post,
8+
p in Tilex.Blog.Post,
99
order_by: [desc: p.inserted_at],
1010
preload: [:channel, :developer],
1111
limit: 25

lib/tilex_web/controllers/post_controller.ex

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ defmodule TilexWeb.PostController do
44
import Ecto.Query
55

66
alias Guardian.Plug
7-
alias Tilex.{Channel, Notifications, Liking, Post, Posts}
7+
alias Tilex.Blog.Channel
8+
alias Tilex.Notifications
9+
alias Tilex.Liking
10+
alias Tilex.Blog.Post
11+
alias Tilex.Posts
812

913
plug(:load_channels when action in [:new, :create, :edit, :update])
1014
plug(:extract_slug when action in [:show, :edit, :update])

lib/tilex_web/controllers/sitemap_controller.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ defmodule TilexWeb.SitemapController do
33

44
def index(conn, _) do
55
conn
6-
|> assign(:posts, Repo.all(Tilex.Post))
6+
|> assign(:posts, Repo.all(Tilex.Blog.Post))
77
|> put_layout(false)
88
|> render("sitemap.xml")
99
end

lib/tilex_web/controllers/test/auth_controller.ex

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
defmodule TilexWeb.Test.AuthController do
22
use TilexWeb, :controller
33

4-
alias Tilex.{Developer, Repo, Auth}
4+
alias Tilex.Blog.Developer
5+
alias Tilex.Repo
6+
alias Tilex.Auth
57

68
def index(conn, params) do
79
developer = Repo.get_by!(Developer, id: params["id"])

lib/tilex_web/templates/post/form.html.eex

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<dl>
33
<dt>
44
<%= label f, :title %> <%= error_tag f, :title %>
5-
<small class="character_limit" data-limit="<%= Tilex.Post.title_max_chars %>"></small>
5+
<small class="character_limit" data-limit="<%= Tilex.Blog.Post.title_max_chars %>"></small>
66
</dt>
77
<dd>
88
<%= text_input f, :title, placeholder: "Enter title..." %>
@@ -11,7 +11,7 @@
1111
<dl>
1212
<dt>
1313
<%= label f, :body %> <%= error_tag f, :body %>
14-
<small class="word_limit" data-limit="<%= Tilex.Post.body_max_words %>"></small>
14+
<small class="word_limit" data-limit="<%= Tilex.Blog.Post.body_max_words %>"></small>
1515
</dt>
1616
<dd>
1717
<%= textarea f, :body,

lib/tilex_web/templates/shared/post.html.eex

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<a href='http://twitter.com/share'
1111
class='twitter-share-button'
1212
data-text= "Today I learned: <%= @post.title %>"
13-
data-via= "<%= Tilex.Developer.twitter_handle(@post.developer) %>"
13+
data-via= "<%= Tilex.Blog.Developer.twitter_handle(@post.developer) %>"
1414
data-hashtags= "<%= @post.channel.twitter_hashtag %>"
1515
data-url= "<%= Routes.post_url(@conn, :show, @post) %>">
1616
Tweet

lib/tilex_web/templates/stats/developer.html.eex

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<ul class="post_list">
4646
<%= for {post_title, post_likes, post_slug, channel_name, _score} <- @hottest_posts do %>
4747
<li>
48-
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Post{slug: post_slug, title: post_title})) do %>
48+
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Blog.Post{slug: post_slug, title: post_title})) do %>
4949
<b>
5050
<%= post_title %>
5151
</b>
@@ -66,7 +66,7 @@
6666
<ul class="post_list">
6767
<%= for {post_title, post_likes, post_slug, channel_name} <- @most_liked_posts do %>
6868
<li>
69-
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Post{slug: post_slug, title: post_title})) do %>
69+
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Blog.Post{slug: post_slug, title: post_title})) do %>
7070
<b>
7171
<%= post_title %>
7272
</b>

lib/tilex_web/templates/stats/index.html.eex

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<ul class="post_list">
2323
<%= for {post_title, post_likes, post_slug, channel_name, _score} <- @hottest_posts do %>
2424
<li>
25-
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Post{slug: post_slug, title: post_title})) do %>
25+
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Blog.Post{slug: post_slug, title: post_title})) do %>
2626
<b>
2727
<%= post_title %>
2828
</b>
@@ -43,7 +43,7 @@
4343
<ul class="post_list">
4444
<%= for {post_title, post_likes, post_slug, channel_name} <- @most_liked_posts do %>
4545
<li>
46-
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Post{slug: post_slug, title: post_title})) do %>
46+
<%= link(to: Routes.post_path(@conn, :show, %Tilex.Blog.Post{slug: post_slug, title: post_title})) do %>
4747
<b>
4848
<%= post_title %>
4949
</b>

lib/tilex_web/views/layout_view.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ defmodule TilexWeb.LayoutView do
2424
def page_title(%{page_title: page_title}), do: page_title
2525
def page_title(_), do: Application.get_env(:tilex, :organization_name)
2626

27-
def twitter_image_url(%Tilex.Post{} = post) do
27+
def twitter_image_url(%Tilex.Blog.Post{} = post) do
2828
channel_name = channel_name(post)
2929

3030
case File.exists?("assets/static/assets/#{channel_name}_twitter_card.png") do
@@ -48,16 +48,16 @@ defmodule TilexWeb.LayoutView do
4848
end
4949
end
5050

51-
def twitter_title(%Tilex.Post{} = post) do
52-
Tilex.Post.twitter_title(post)
51+
def twitter_title(%Tilex.Blog.Post{} = post) do
52+
Tilex.Blog.Post.twitter_title(post)
5353
end
5454

5555
def twitter_title(_post) do
5656
"Today I Learned: a Hashrocket Project"
5757
end
5858

59-
def twitter_description(%Tilex.Post{} = post) do
60-
markdown = Tilex.Post.twitter_description(post)
59+
def twitter_description(%Tilex.Blog.Post{} = post) do
60+
markdown = Tilex.Blog.Post.twitter_description(post)
6161

6262
earmark_options = %Earmark.Options{pure_links: false}
6363

priv/repo/seeds.exs

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
# Inside the script, you can read and write to any of your
66
# repositories directly:
77
#
8-
# Tilex.Repo.insert!(%Tilex.SomeModel{})
8+
# Tilex.Repo.insert!(%Tilex.SomeSchema{})
99
#
1010
# We recommend using the bang functions (`insert!`, `update!`
1111
# and so on) as they will fail if something goes wrong.
1212

13-
alias Tilex.Channel
14-
alias Tilex.Developer
15-
alias Tilex.Post
13+
alias Tilex.Blog.Channel
14+
alias Tilex.Blog.Developer
15+
alias Tilex.Blog.Post
1616
alias Tilex.Repo
1717

1818
Repo.delete_all(Post)

0 commit comments

Comments
 (0)