cartoonist-comics 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/controllers/{comic_admin_controller.rb → admin/comic_controller.rb} +10 -10
- data/app/helpers/{comic_admin_helper.rb → admin/comic_helper.rb} +1 -1
- data/app/helpers/comic_helper.rb +3 -3
- data/app/models/comic.rb +18 -33
- data/app/views/{comic_admin → admin/comic}/edit.html.erb +12 -13
- data/app/views/{comic_admin → admin/comic}/index.html.erb +4 -4
- data/app/views/{comic_admin → admin/comic}/new.html.erb +1 -8
- data/app/views/layouts/{comic_admin.html.erb → admin/comic.html.erb} +5 -5
- data/app/views/layouts/comic.html.erb +3 -3
- data/config/locales/en.yml +2 -0
- data/db/migrate/20120107035512_create_comics.rb +0 -2
- data/lib/cartoonist-comics/engine.rb +15 -12
- metadata +11 -11
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
1
|
+
class Admin::ComicController < CartoonistController
|
|
2
2
|
helper :comic
|
|
3
3
|
before_filter :preview!, :only => [:preview, :preview_random]
|
|
4
4
|
before_filter :ensure_ssl!
|
|
@@ -14,11 +14,11 @@ class ComicAdminController < CartoonistController
|
|
|
14
14
|
format.html do
|
|
15
15
|
if params[:id].present?
|
|
16
16
|
begin
|
|
17
|
-
return redirect_to "/
|
|
17
|
+
return redirect_to "/admin/comic/1/preview" if params[:id].to_i < 1
|
|
18
18
|
@comic = Comic.from_number params[:id]
|
|
19
19
|
@disabled_next = @comic.maybe_newest?
|
|
20
20
|
rescue
|
|
21
|
-
return redirect_to "/
|
|
21
|
+
return redirect_to "/admin/comic/preview"
|
|
22
22
|
end
|
|
23
23
|
else
|
|
24
24
|
@comic = Comic.preview_current
|
|
@@ -37,7 +37,7 @@ class ComicAdminController < CartoonistController
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def preview_random
|
|
40
|
-
redirect_to "/
|
|
40
|
+
redirect_to "/admin/comic/#{rand(max_preview_comic) + 1}/preview"
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def new
|
|
@@ -50,11 +50,11 @@ class ComicAdminController < CartoonistController
|
|
|
50
50
|
def create
|
|
51
51
|
unless params[:image]
|
|
52
52
|
flash[:message] = "Error: You must include an image when creating a new comic."
|
|
53
|
-
return redirect_to "/
|
|
53
|
+
return redirect_to "/admin/comic/new"
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
comic = Comic.create_comic params
|
|
57
|
-
redirect_to "/
|
|
57
|
+
redirect_to "/admin/comic/#{comic.number}/edit"
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def edit
|
|
@@ -62,24 +62,24 @@ class ComicAdminController < CartoonistController
|
|
|
62
62
|
@edit_last_number = @comic.number - 1
|
|
63
63
|
@edit_next_number = @comic.number + 1
|
|
64
64
|
rescue ActiveRecord::RecordNotFound
|
|
65
|
-
redirect_to "/
|
|
65
|
+
redirect_to "/admin/comic/new"
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
def lock
|
|
69
69
|
comic = Comic.from_number params[:id].to_i
|
|
70
70
|
comic.lock!
|
|
71
|
-
redirect_to "/
|
|
71
|
+
redirect_to "/admin/comic/#{comic.number}/edit"
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def unlock
|
|
75
75
|
comic = Comic.from_number params[:id].to_i
|
|
76
76
|
comic.unlock!
|
|
77
|
-
redirect_to "/
|
|
77
|
+
redirect_to "/admin/comic/#{comic.number}/edit"
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def update
|
|
81
81
|
comic = Comic.update_comic params
|
|
82
|
-
redirect_to "/
|
|
82
|
+
redirect_to "/admin/comic/#{comic.number}/edit"
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
private
|
data/app/helpers/comic_helper.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module ComicHelper
|
|
2
2
|
def comic_current_url
|
|
3
3
|
if preview?
|
|
4
|
-
"/
|
|
4
|
+
"/admin/comic/preview"
|
|
5
5
|
else
|
|
6
6
|
"/comic"
|
|
7
7
|
end
|
|
@@ -9,7 +9,7 @@ module ComicHelper
|
|
|
9
9
|
|
|
10
10
|
def comic_url(number)
|
|
11
11
|
if preview?
|
|
12
|
-
"/
|
|
12
|
+
"/admin/comic/#{number}/preview"
|
|
13
13
|
else
|
|
14
14
|
"/comic/#{number}"
|
|
15
15
|
end
|
|
@@ -25,7 +25,7 @@ module ComicHelper
|
|
|
25
25
|
|
|
26
26
|
def random_url
|
|
27
27
|
if preview?
|
|
28
|
-
"/
|
|
28
|
+
"/admin/comic/preview_random"
|
|
29
29
|
else
|
|
30
30
|
"/comic/random"
|
|
31
31
|
end
|
data/app/models/comic.rb
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
class Comic < ActiveRecord::Base
|
|
2
|
-
|
|
2
|
+
include Postable
|
|
3
|
+
include Entity
|
|
4
|
+
entity_type :comic
|
|
5
|
+
entity_global_url "/comic"
|
|
6
|
+
entity_url &:url
|
|
7
|
+
entity_edit_url &:edit_url
|
|
8
|
+
entity_description &:title
|
|
9
|
+
attr_accessible :number, :posted_at, :title, :description, :scene_description, :dialogue, :title_text, :database_file_id, :database_file, :locked
|
|
3
10
|
belongs_to :database_file
|
|
4
|
-
|
|
11
|
+
|
|
12
|
+
def url
|
|
13
|
+
"/comic/#{number}"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def edit_url
|
|
17
|
+
"/admin/comic/#{number}/edit"
|
|
18
|
+
end
|
|
5
19
|
|
|
6
20
|
def lock!
|
|
7
21
|
self.locked = true
|
|
@@ -13,18 +27,6 @@ class Comic < ActiveRecord::Base
|
|
|
13
27
|
save!
|
|
14
28
|
end
|
|
15
29
|
|
|
16
|
-
def expected_tweet_time
|
|
17
|
-
Time.local posted_at.year, posted_at.month, posted_at.day, 8, 0
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def formatted_posted_at(default_msg = "not yet posted")
|
|
21
|
-
if posted_at
|
|
22
|
-
posted_at.strftime "%-m/%-d/%Y"
|
|
23
|
-
else
|
|
24
|
-
default_msg
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
30
|
def real?
|
|
29
31
|
number
|
|
30
32
|
end
|
|
@@ -51,16 +53,12 @@ class Comic < ActiveRecord::Base
|
|
|
51
53
|
end
|
|
52
54
|
end
|
|
53
55
|
|
|
54
|
-
def absolute_url
|
|
55
|
-
"http://#{Setting[:domain]}/comic/#{number}"
|
|
56
|
-
end
|
|
57
|
-
|
|
58
56
|
def img_url
|
|
59
57
|
"/comic/#{number}.png"
|
|
60
58
|
end
|
|
61
59
|
|
|
62
60
|
def preview_img_url
|
|
63
|
-
"/
|
|
61
|
+
"/admin/comic/#{number}/preview.png"
|
|
64
62
|
end
|
|
65
63
|
|
|
66
64
|
def absolute_img_url
|
|
@@ -76,7 +74,7 @@ class Comic < ActiveRecord::Base
|
|
|
76
74
|
|
|
77
75
|
def create_comic(params)
|
|
78
76
|
last = current_created
|
|
79
|
-
create :number => next_number(last), :title => params[:title], :posted_at => next_post_date(last), :description => params[:description], :scene_description => params[:scene_description], :dialogue => params[:dialogue], :title_text => params[:title_text], :
|
|
77
|
+
create :number => next_number(last), :title => params[:title], :posted_at => next_post_date(last), :description => params[:description], :scene_description => params[:scene_description], :dialogue => params[:dialogue], :title_text => params[:title_text], :database_file => DatabaseFile.create(:content => params[:image].read), :locked => true
|
|
80
78
|
end
|
|
81
79
|
|
|
82
80
|
def update_comic(params)
|
|
@@ -87,7 +85,6 @@ class Comic < ActiveRecord::Base
|
|
|
87
85
|
comic.scene_description = params[:scene_description]
|
|
88
86
|
comic.dialogue = params[:dialogue]
|
|
89
87
|
comic.title_text = params[:title_text]
|
|
90
|
-
comic.tweet = params[:tweet] unless comic.tweeted?
|
|
91
88
|
comic.locked = true
|
|
92
89
|
comic.database_file = DatabaseFile.create(:content => params[:image].read) if params[:image]
|
|
93
90
|
comic.save!
|
|
@@ -122,18 +119,6 @@ class Comic < ActiveRecord::Base
|
|
|
122
119
|
preview_current.number
|
|
123
120
|
end
|
|
124
121
|
|
|
125
|
-
def untweeted
|
|
126
|
-
posted.where(:tweeted_at => nil).all
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
def posted
|
|
130
|
-
where "comics.posted_at <= ?", Date.today
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def unposted
|
|
134
|
-
where "comics.posted_at > ?", Date.today
|
|
135
|
-
end
|
|
136
|
-
|
|
137
122
|
def reverse_numerical
|
|
138
123
|
order "comics.number DESC"
|
|
139
124
|
end
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
<% Cartoonist::Entity.hooks_with(:edit_entity_before_partial).each do |hook| %>
|
|
2
|
+
<%= render :partial => hook.edit_entity_before_partial, :locals => { :entity => @comic } %>
|
|
3
|
+
<hr />
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
1
6
|
<p>
|
|
2
|
-
<%= form_tag "/
|
|
7
|
+
<%= form_tag "/admin/comic/#{@comic.number}/#{lock_toggle_target}", :method => :post do %>
|
|
3
8
|
<input type="submit" value="<%= lock_toggle_target %>" />
|
|
4
9
|
<% end %>
|
|
5
10
|
</p>
|
|
6
11
|
|
|
7
|
-
<%= form_tag "/
|
|
12
|
+
<%= form_tag "/admin/comic/#{@comic.number}", :method => :put, :multipart => true do %>
|
|
8
13
|
<table>
|
|
9
14
|
<tr><td colspan="2">Comic: <%= @comic.number %></td></tr>
|
|
10
15
|
<tr><td colspan="2">Post Date: <%= @comic.posted_at.strftime "%a, %-m/%-d/%Y" %></td></tr>
|
|
@@ -38,17 +43,6 @@
|
|
|
38
43
|
</td>
|
|
39
44
|
</tr>
|
|
40
45
|
|
|
41
|
-
<tr>
|
|
42
|
-
<td colspan="2">
|
|
43
|
-
Tweet:
|
|
44
|
-
<% if @comic.tweeted_at %>
|
|
45
|
-
<em>(sent <%= @comic.tweeted_at.strftime "%-m/%-d/%Y %-l:%M %P" %>)</em>
|
|
46
|
-
<% end %>
|
|
47
|
-
<br />
|
|
48
|
-
<textarea name="tweet" rows="2" cols="100" tabindex="6" <%= lock_disabled %>><%= @comic.tweet %></textarea>
|
|
49
|
-
</td>
|
|
50
|
-
</tr>
|
|
51
|
-
|
|
52
46
|
<tr>
|
|
53
47
|
<td colspan="2">
|
|
54
48
|
Image:<br />
|
|
@@ -68,3 +62,8 @@
|
|
|
68
62
|
Current Image:<br />
|
|
69
63
|
<img src="<%= @comic.preview_img_url %>" />
|
|
70
64
|
</p>
|
|
65
|
+
|
|
66
|
+
<% Cartoonist::Entity.hooks_with(:edit_entity_after_partial).each do |hook| %>
|
|
67
|
+
<hr />
|
|
68
|
+
<%= render :partial => hook.edit_entity_after_partial, :locals => { :entity => @comic } %>
|
|
69
|
+
<% end %>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<% @unposted.each do |comic| %>
|
|
5
5
|
<li>
|
|
6
6
|
<%= comic.formatted_posted_at "" %>
|
|
7
|
-
<a href="/
|
|
8
|
-
(<a href="/
|
|
7
|
+
<a href="/admin/comic/<%= comic.number %>/edit"><%= comic.title %></a>
|
|
8
|
+
(<a href="/admin/comic/<%= comic.number %>/preview"><%= t "admin.comic.index.preview" %></a>)
|
|
9
9
|
</li>
|
|
10
10
|
<% end %>
|
|
11
11
|
</ul>
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
<% @posted.each do |comic| %>
|
|
17
17
|
<li>
|
|
18
18
|
<%= comic.formatted_posted_at "" %>
|
|
19
|
-
<a href="/
|
|
20
|
-
(<a href="/
|
|
19
|
+
<a href="/admin/comic/<%= comic.number %>/edit"><%= comic.title %></a>
|
|
20
|
+
(<a href="/admin/comic/<%= comic.number %>/preview"><%= t "admin.comic.index.preview" %></a>)
|
|
21
21
|
(<a href="/comic/<%= comic.number %>"><%= t "admin.comic.index.show" %></a>)
|
|
22
22
|
</li>
|
|
23
23
|
<% end %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<%= form_tag "/
|
|
1
|
+
<%= form_tag "/admin/comic", :method => :post, :multipart => true do %>
|
|
2
2
|
<table>
|
|
3
3
|
<tr><td colspan="2">Comic: <%= @next_number %></td></tr>
|
|
4
4
|
<tr><td colspan="2">Post Date: <%= @next_post_date.strftime "%a, %-m/%-d/%Y" %></td></tr>
|
|
@@ -32,13 +32,6 @@
|
|
|
32
32
|
</td>
|
|
33
33
|
</tr>
|
|
34
34
|
|
|
35
|
-
<tr>
|
|
36
|
-
<td colspan="2">
|
|
37
|
-
Tweet:<br />
|
|
38
|
-
<textarea name="tweet" rows="2" cols="100" tabindex="6"><%= SimpleTemplate[Setting[:default_tweet], :next_number => @next_number] %></textarea>
|
|
39
|
-
</td>
|
|
40
|
-
</tr>
|
|
41
|
-
|
|
42
35
|
<tr>
|
|
43
36
|
<td colspan="2">
|
|
44
37
|
Image:<br />
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<% content_for :subtabs do %>
|
|
2
2
|
<a class="subtab" href="/comic"><%= t "admin.comic.layout.latest" %></a>
|
|
3
|
-
<a class="subtab" href="/
|
|
4
|
-
<a class="subtab" href="/
|
|
3
|
+
<a class="subtab" href="/admin/comic"><%= t "admin.comic.layout.list" %></a>
|
|
4
|
+
<a class="subtab" href="/admin/comic/new"><%= t "admin.comic.layout.new" %></a>
|
|
5
5
|
<% if @edit_last_number && @edit_last_number > 0 %>
|
|
6
|
-
<a class="subtab" href="/
|
|
6
|
+
<a class="subtab" href="/admin/comic/<%= @edit_last_number %>/edit"><%= t "admin.comic.layout.edit_last" %></a>
|
|
7
7
|
<% end %>
|
|
8
8
|
<% if @edit_next_number %>
|
|
9
|
-
<a class="subtab" href="/
|
|
9
|
+
<a class="subtab" href="/admin/comic/<%= @edit_next_number %>/edit"><%= t "admin.comic.layout.edit_next" %></a>
|
|
10
10
|
<% end %>
|
|
11
|
-
<a class="subtab" href="/
|
|
11
|
+
<a class="subtab" href="/admin/comic/preview"><%= t "admin.comic.layout.preview" %></a>
|
|
12
12
|
<% end %>
|
|
13
13
|
|
|
14
14
|
<% content_for :page_title, t("admin.comic.layout.section") %>
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
<% content_for :small_buttons do %>
|
|
6
6
|
<% if @comic.real? %>
|
|
7
|
-
<a class="facebook" href="https://www.facebook.com/sharer.php?u=<%= u @comic.
|
|
8
|
-
<a class="twitter" href="https://twitter.com/intent/tweet?source=<%= u Setting[:domain] %>&text=<%= u t("comic.layout.twitter_text_message", :title => @comic.title, :url => @comic.
|
|
9
|
-
<a class="google-plus" href="https://plus.google.com/share?url=<%= u @comic.
|
|
7
|
+
<a class="facebook" href="https://www.facebook.com/sharer.php?u=<%= u @comic.entity_absolute_url %>&t=<%= u t("comic.layout.facebook_text_message", :title => @comic.title) %>" title="<%= t "comic.layout.facebook_title" %>"><%= t "comic.layout.facebook" %></a>
|
|
8
|
+
<a class="twitter" href="https://twitter.com/intent/tweet?source=<%= u Setting[:domain] %>&text=<%= u t("comic.layout.twitter_text_message", :title => @comic.title, :url => @comic.entity_absolute_url) %>" title="<%= t "comic.layout.twitter_title" %>"><%= t "comic.layout.twitter" %></a>
|
|
9
|
+
<a class="google-plus" href="https://plus.google.com/share?url=<%= u @comic.entity_absolute_url %>" title="<%= t "comic.layout.google_plus_title" %>"><%= t "comic.layout.google_plus" %></a>
|
|
10
10
|
<a class="rss" href="<%= rss_path %>" title="<%= rss_title %>"><%= t "comic.layout.rss" %></a>
|
|
11
11
|
<% end %>
|
|
12
12
|
<% end %>
|
data/config/locales/en.yml
CHANGED
|
@@ -9,8 +9,6 @@ class CreateComics < ActiveRecord::Migration
|
|
|
9
9
|
t.text :dialogue, :null => false
|
|
10
10
|
t.text :title_text, :null => false
|
|
11
11
|
t.integer :database_file_id, :null => false
|
|
12
|
-
t.string :tweet, :null => false
|
|
13
|
-
t.datetime :tweeted_at
|
|
14
12
|
t.boolean :locked, :default => false, :null => false
|
|
15
13
|
t.timestamps
|
|
16
14
|
end
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module CartoonistComics
|
|
2
2
|
class Engine < ::Rails::Engine
|
|
3
|
-
Cartoonist::
|
|
3
|
+
Cartoonist::Entity.add :comic, "Comic"
|
|
4
|
+
Cartoonist::Admin::Tab.add :comics, :url => "/admin/comic", :order => 0
|
|
4
5
|
Cartoonist::RootPath.add :comics, "comic#index"
|
|
5
|
-
Cartoonist::Navigation::Link.add :url => "/comic", :preview_url => "/
|
|
6
|
+
Cartoonist::Navigation::Link.add :url => "/comic", :preview_url => "/admin/comic/preview", :class => "comic", :label => "cartoonist.layout.navigation.comic", :order => 0
|
|
6
7
|
Cartoonist::Migration.add_for self
|
|
7
8
|
|
|
8
9
|
Cartoonist::Backup.for :comics do
|
|
@@ -32,16 +33,18 @@ module CartoonistComics
|
|
|
32
33
|
end
|
|
33
34
|
end
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
namespace :admin do
|
|
37
|
+
resources :comic do
|
|
38
|
+
member do
|
|
39
|
+
post "lock"
|
|
40
|
+
get "preview"
|
|
41
|
+
post "unlock"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
collection do
|
|
45
|
+
get "preview"
|
|
46
|
+
get "preview_random"
|
|
47
|
+
end
|
|
45
48
|
end
|
|
46
49
|
end
|
|
47
50
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cartoonist-comics
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.9
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,19 +9,19 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-05-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: cartoonist
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &6936700 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - =
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.0.
|
|
21
|
+
version: 0.0.9
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *6936700
|
|
25
25
|
description: This core plugin for Cartoonist adds comics.
|
|
26
26
|
email: reasonnumber@gmail.com
|
|
27
27
|
executables: []
|
|
@@ -29,19 +29,19 @@ extensions: []
|
|
|
29
29
|
extra_rdoc_files: []
|
|
30
30
|
files:
|
|
31
31
|
- .gitignore
|
|
32
|
-
- app/controllers/
|
|
32
|
+
- app/controllers/admin/comic_controller.rb
|
|
33
33
|
- app/controllers/comic_controller.rb
|
|
34
|
-
- app/helpers/
|
|
34
|
+
- app/helpers/admin/comic_helper.rb
|
|
35
35
|
- app/helpers/comic_helper.rb
|
|
36
36
|
- app/models/comic.rb
|
|
37
37
|
- app/models/comic_feed.rb
|
|
38
|
+
- app/views/admin/comic/edit.html.erb
|
|
39
|
+
- app/views/admin/comic/index.html.erb
|
|
40
|
+
- app/views/admin/comic/new.html.erb
|
|
38
41
|
- app/views/comic/feed.rss.erb
|
|
39
42
|
- app/views/comic/show.html.erb
|
|
40
|
-
- app/views/
|
|
41
|
-
- app/views/comic_admin/index.html.erb
|
|
42
|
-
- app/views/comic_admin/new.html.erb
|
|
43
|
+
- app/views/layouts/admin/comic.html.erb
|
|
43
44
|
- app/views/layouts/comic.html.erb
|
|
44
|
-
- app/views/layouts/comic_admin.html.erb
|
|
45
45
|
- cartoonist-comics.gemspec
|
|
46
46
|
- config/locales/en.yml
|
|
47
47
|
- db/migrate/20120107035512_create_comics.rb
|