cartoonist 0.0.12 → 0.0.13
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/admin/accounts_controller.rb +1 -4
- data/app/controllers/admin/cache_controller.rb +1 -3
- data/app/controllers/admin/search_controller.rb +7 -0
- data/app/controllers/admin/settings_controller.rb +2 -3
- data/app/controllers/admin/static_cache_controller.rb +1 -3
- data/app/controllers/admin_cartoonist_controller.rb +34 -0
- data/app/controllers/admin_controller.rb +3 -3
- data/app/controllers/cartoonist_controller.rb +2 -27
- data/app/models/entity.rb +4 -0
- data/app/models/search.rb +63 -0
- data/app/views/admin/search/index.html.erb +16 -0
- data/app/views/layouts/admin.html.erb +2 -0
- data/app/views/layouts/cartoonist.html.erb +5 -26
- data/app/views/layouts/general_admin.html.erb +1 -0
- data/cartoonist.gemspec +6 -6
- data/config/locales/en.yml +4 -0
- data/lib/cartoonist/engine.rb +7 -12
- data/lib/cartoonist/version.rb +9 -0
- data/lib/cartoonist.rb +15 -0
- metadata +25 -20
@@ -1,6 +1,5 @@
|
|
1
|
-
class Admin::SettingsController <
|
2
|
-
|
3
|
-
before_filter :check_admin!, :except => [:initial_setup, :save_initial_setup]
|
1
|
+
class Admin::SettingsController < AdminCartoonistController
|
2
|
+
skip_before_filter :check_admin!, :only => [:initial_setup, :save_initial_setup]
|
4
3
|
|
5
4
|
def index
|
6
5
|
redirect_to "/admin/settings/general"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class AdminCartoonistController < CartoonistController
|
2
|
+
before_filter :ensure_ssl!
|
3
|
+
before_filter :check_admin!
|
4
|
+
|
5
|
+
private
|
6
|
+
def ensure_ssl!
|
7
|
+
return unless Rails.env.production?
|
8
|
+
redirect_to "https://#{request.host_with_port}#{request.fullpath}" unless request.ssl?
|
9
|
+
end
|
10
|
+
|
11
|
+
def check_admin!
|
12
|
+
if initial_setup_required?
|
13
|
+
redirect_to "/admin/settings/initial_setup"
|
14
|
+
else
|
15
|
+
authenticate_user!
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def initial_setup_required?
|
20
|
+
User.count == 0
|
21
|
+
end
|
22
|
+
|
23
|
+
def after_sign_out_path_for(resource_or_scope)
|
24
|
+
"/admin"
|
25
|
+
end
|
26
|
+
|
27
|
+
def after_sign_in_path_for(resource_or_scope)
|
28
|
+
"/admin"
|
29
|
+
end
|
30
|
+
|
31
|
+
def preview!
|
32
|
+
@for_preview = true
|
33
|
+
end
|
34
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
class AdminController <
|
2
|
-
|
3
|
-
|
1
|
+
class AdminController < AdminCartoonistController
|
2
|
+
skip_before_filter :ensure_ssl!, :only => [:cron]
|
3
|
+
skip_before_filter :check_admin!, :only => [:cron]
|
4
4
|
|
5
5
|
def show
|
6
6
|
redirect_to "/admin/main"
|
@@ -4,39 +4,14 @@ class CartoonistController < ActionController::Base
|
|
4
4
|
before_filter :check_mobile
|
5
5
|
|
6
6
|
private
|
7
|
-
def
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def ensure_ssl!
|
12
|
-
return unless Rails.env.production?
|
13
|
-
redirect_to "https://#{request.host_with_port}#{request.fullpath}" unless request.ssl?
|
14
|
-
end
|
15
|
-
|
16
|
-
def check_admin!
|
17
|
-
if initial_setup_required?
|
18
|
-
redirect_to "/admin/settings/initial_setup"
|
19
|
-
else
|
20
|
-
authenticate_user!
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def after_sign_out_path_for(resource_or_scope)
|
25
|
-
"/admin"
|
26
|
-
end
|
27
|
-
|
28
|
-
def after_sign_in_path_for(resource_or_scope)
|
29
|
-
"/admin"
|
7
|
+
def handle_unverified_request
|
8
|
+
raise ActionController::InvalidAuthenticityToken.new
|
30
9
|
end
|
31
10
|
|
32
11
|
def check_mobile
|
33
12
|
@mobile = (request.subdomain == "m") || params[:mobile]
|
34
13
|
end
|
35
14
|
|
36
|
-
def preview!
|
37
|
-
@for_preview = true
|
38
|
-
end
|
39
|
-
|
40
15
|
def cache_type
|
41
16
|
if @mobile
|
42
17
|
"m"
|
data/app/models/entity.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
class Search
|
2
|
+
attr_reader :query
|
3
|
+
|
4
|
+
def initialize(query)
|
5
|
+
@query = query
|
6
|
+
end
|
7
|
+
|
8
|
+
def results
|
9
|
+
return [] if @query.blank?
|
10
|
+
@results ||= entity_results + searchable_results
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
def entity_results
|
15
|
+
Cartoonist::Entity.all.map do |entity|
|
16
|
+
if entity.respond_to? :search
|
17
|
+
entity.search(@query).map { |x| Search::EntityResult.new x }
|
18
|
+
else
|
19
|
+
[]
|
20
|
+
end
|
21
|
+
end.flatten
|
22
|
+
end
|
23
|
+
|
24
|
+
def searchable_results
|
25
|
+
Cartoonist::Searchable.all.map do |searchable|
|
26
|
+
searchable.search(@query).map { |x| Search::SearchableResult.new x }
|
27
|
+
end.flatten
|
28
|
+
end
|
29
|
+
|
30
|
+
class << self
|
31
|
+
def query(params)
|
32
|
+
new params[:q]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class EntityResult
|
37
|
+
include BelongsToEntity
|
38
|
+
|
39
|
+
def initialize(entity)
|
40
|
+
@entity = entity
|
41
|
+
end
|
42
|
+
|
43
|
+
def url
|
44
|
+
entity.search_url
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class SearchableResult
|
49
|
+
attr_reader :searchable
|
50
|
+
|
51
|
+
def initialize(searchable)
|
52
|
+
@searchable = searchable
|
53
|
+
end
|
54
|
+
|
55
|
+
def description
|
56
|
+
searchable.description
|
57
|
+
end
|
58
|
+
|
59
|
+
def url
|
60
|
+
searchable.search_url
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<form>
|
2
|
+
<input type="text" name="q" value="<%= params[:q] %>" />
|
3
|
+
<input type="submit" value="<%= t "search.index.submit" %>" />
|
4
|
+
</form>
|
5
|
+
|
6
|
+
<% if @search.query.present? %>
|
7
|
+
<h2>Search results for '<em><%= @search.query %></em>'</h2>
|
8
|
+
|
9
|
+
<ul>
|
10
|
+
<% @search.results.each do |result| %>
|
11
|
+
<li>
|
12
|
+
<a href="<%= result.url %>"><%= result.description %><a/>
|
13
|
+
</li>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
16
|
+
<% end %>
|
@@ -3,9 +3,11 @@
|
|
3
3
|
<head>
|
4
4
|
<title><%= yield(:title) || Setting[:site_name] %></title>
|
5
5
|
<%= stylesheet_link_tag "admin.css" %>
|
6
|
+
<%= stylesheet_link_tag controller_path if Rails.application.assets.find_asset("#{controller_path}.css").present? %>
|
6
7
|
<%= csrf_meta_tags %>
|
7
8
|
<link rel="icon" href="http://<%= Setting[:domain] %><%= asset_path Cartoonist::Theme.favicon %>" type="image/x-icon" />
|
8
9
|
<link rel="shortcut icon" href="http://<%= Setting[:domain] %><%= asset_path Cartoonist::Theme.favicon %>" type="image/x-icon" />
|
10
|
+
<%= javascript_include_tag controller_path if Rails.application.assets.find_asset("#{controller_path}.js").present? %>
|
9
11
|
</head>
|
10
12
|
<body>
|
11
13
|
<%= form_tag "/users/sign_out", :method => :delete do %>
|
@@ -61,9 +61,6 @@
|
|
61
61
|
<% if @disqus_enabled %>
|
62
62
|
<div class="comments-container">
|
63
63
|
<div id="disqus_thread">
|
64
|
-
<% if @disqus_options[:count_link] %>
|
65
|
-
<a id="disqus_comments" href="#disqus_thread" data-disqus-identifier="/<%= @disqus_options[:path] %>"></a>
|
66
|
-
<% end %>
|
67
64
|
</div>
|
68
65
|
<noscript>
|
69
66
|
<%= t "cartoonist.layout.disqus.noscript_pre_link" %><a href="http://disqus.com/?ref_noscript"><%= t "cartoonist.layout.disqus.noscript_link" %></a><%= t "cartoonist.layout.disqus.noscript_post_link" %>
|
@@ -102,29 +99,11 @@
|
|
102
99
|
var disqus_category_id = "<%= j @disqus_options[:category].to_s %>";
|
103
100
|
var disqus_identifier = "/<%= j @disqus_options[:path] %>";
|
104
101
|
var disqus_url = "http://<%= j Setting[:domain] %>/<%= j @disqus_options[:path] %>";
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
|
111
|
-
}());
|
112
|
-
|
113
|
-
var comments = document.getElementById("disqus_comments");
|
114
|
-
comments.onclick = function() {
|
115
|
-
document.getElementById("disqus_thread").removeChild(comments);
|
116
|
-
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
117
|
-
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
|
118
|
-
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
119
|
-
return false;
|
120
|
-
};
|
121
|
-
<% else %>
|
122
|
-
(function() {
|
123
|
-
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
124
|
-
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
|
125
|
-
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
126
|
-
})();
|
127
|
-
<% end %>
|
102
|
+
(function() {
|
103
|
+
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
104
|
+
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
|
105
|
+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
106
|
+
})();
|
128
107
|
</script>
|
129
108
|
<% end %>
|
130
109
|
<% if Cartoonist::Asset.included_js? %>
|
@@ -3,6 +3,7 @@
|
|
3
3
|
<a class="subtab" href="/admin/settings"><%= t "admin.general.layout.settings" %></a>
|
4
4
|
<a class="subtab" href="/admin/cache"><%= t "admin.general.layout.cache" %></a>
|
5
5
|
<a class="subtab" href="/admin/static_cache"><%= t "admin.general.layout.static_cache" %></a>
|
6
|
+
<a class="subtab" href="/admin/search"><%= t "admin.general.layout.search" %></a>
|
6
7
|
<% end %>
|
7
8
|
|
8
9
|
<% content_for :page_title, t("admin.general.layout.section") %>
|
data/cartoonist.gemspec
CHANGED
@@ -10,10 +10,10 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.files = `git ls-files`.split("\n")
|
11
11
|
s.require_paths = ["lib"]
|
12
12
|
s.homepage = "http://reasonnumber.com/cartoonist"
|
13
|
-
s.add_dependency "devise", "~> 2.
|
14
|
-
s.add_dependency "jquery-rails", "~> 2.
|
15
|
-
s.add_dependency "railties", "~> 3.2.
|
16
|
-
s.add_dependency "redcarpet", "~> 2.
|
17
|
-
s.add_dependency "rubyzip", "~> 0.9.
|
18
|
-
s.add_dependency "minitar", "~> 0.5.
|
13
|
+
s.add_dependency "devise", "~> 2.1.2"
|
14
|
+
s.add_dependency "jquery-rails", "~> 2.1.3"
|
15
|
+
s.add_dependency "railties", "~> 3.2.8"
|
16
|
+
s.add_dependency "redcarpet", "~> 2.2.2"
|
17
|
+
s.add_dependency "rubyzip", "~> 0.9.9"
|
18
|
+
s.add_dependency "minitar", "~> 0.5.3"
|
19
19
|
end
|
data/config/locales/en.yml
CHANGED
@@ -40,6 +40,7 @@ en:
|
|
40
40
|
layout:
|
41
41
|
actions: Actions
|
42
42
|
cache: Cache
|
43
|
+
search: Search
|
43
44
|
section: General
|
44
45
|
settings: Settings
|
45
46
|
static_cache: Static Cache
|
@@ -72,6 +73,9 @@ en:
|
|
72
73
|
page: Page
|
73
74
|
www: www
|
74
75
|
www_tmp: www tmp
|
76
|
+
search:
|
77
|
+
index:
|
78
|
+
submit: Search
|
75
79
|
settings:
|
76
80
|
initial_setup:
|
77
81
|
confirm_password: "Confirmation: "
|
data/lib/cartoonist/engine.rb
CHANGED
@@ -13,9 +13,6 @@ module Cartoonist
|
|
13
13
|
# Configure the class responsible to send e-mails.
|
14
14
|
# devise_config.mailer = "Devise::Mailer"
|
15
15
|
|
16
|
-
# Automatically apply schema changes in tableless databases
|
17
|
-
devise_config.apply_schema = false
|
18
|
-
|
19
16
|
# ==> ORM configuration
|
20
17
|
# Load and configure the ORM. Supports :active_record (default) and
|
21
18
|
# :mongoid (bson_ext recommended) by default. Other ORMs may be
|
@@ -115,10 +112,6 @@ module Cartoonist
|
|
115
112
|
# If true, extends the user's remember period when remembered via cookie.
|
116
113
|
# devise_config.extend_remember_period = false
|
117
114
|
|
118
|
-
# If true, uses the password salt as remember token. This should be turned
|
119
|
-
# to false if you are not using database authenticatable.
|
120
|
-
devise_config.use_salt_as_remember_token = true
|
121
|
-
|
122
115
|
# Options to be passed to the created cookie. For instance, you can set
|
123
116
|
# :secure => true in order to force SSL only cookies.
|
124
117
|
# devise_config.cookie_options = {}
|
@@ -326,7 +319,7 @@ module Cartoonist
|
|
326
319
|
match "sitemap" => "site#sitemap", :defaults => { :format => "xml" }
|
327
320
|
match "robots" => "site#robots", :defaults => { :format => "text" }
|
328
321
|
|
329
|
-
resource :admin, :controller => :admin do
|
322
|
+
resource :admin, :controller => :admin, :only => [:show] do
|
330
323
|
collection do
|
331
324
|
get "cron"
|
332
325
|
get "backup"
|
@@ -338,9 +331,9 @@ module Cartoonist
|
|
338
331
|
devise_for :users
|
339
332
|
|
340
333
|
namespace :admin do
|
341
|
-
resources :accounts
|
334
|
+
resources :accounts, :only => [:create, :destroy, :edit, :index, :show, :update]
|
342
335
|
|
343
|
-
resources :cache, :constraints => { :id => /.*/ } do
|
336
|
+
resources :cache, :constraints => { :id => /.*/ }, :only => [:destroy, :index] do
|
344
337
|
collection do
|
345
338
|
post "expire_www"
|
346
339
|
post "expire_m"
|
@@ -349,18 +342,20 @@ module Cartoonist
|
|
349
342
|
end
|
350
343
|
end
|
351
344
|
|
352
|
-
resources :static_cache, :constraints => { :id => /.*/ } do
|
345
|
+
resources :static_cache, :constraints => { :id => /.*/ }, :only => [:destroy, :index] do
|
353
346
|
collection do
|
354
347
|
post "expire_all"
|
355
348
|
end
|
356
349
|
end
|
357
350
|
|
358
|
-
resources :settings do
|
351
|
+
resources :settings, :only => [:index, :show, :update] do
|
359
352
|
collection do
|
360
353
|
get "initial_setup"
|
361
354
|
post "save_initial_setup"
|
362
355
|
end
|
363
356
|
end
|
357
|
+
|
358
|
+
resources :search, :only => [:index]
|
364
359
|
end
|
365
360
|
end
|
366
361
|
end
|
data/lib/cartoonist.rb
CHANGED
@@ -263,6 +263,20 @@ module Cartoonist
|
|
263
263
|
end
|
264
264
|
end
|
265
265
|
|
266
|
+
class Searchable
|
267
|
+
@@all = []
|
268
|
+
|
269
|
+
class << self
|
270
|
+
def all
|
271
|
+
@@all.map &:constantize
|
272
|
+
end
|
273
|
+
|
274
|
+
def add(model_name)
|
275
|
+
@@all << model_name
|
276
|
+
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
266
280
|
class Sitemap
|
267
281
|
@@all = []
|
268
282
|
|
@@ -318,4 +332,5 @@ module Cartoonist
|
|
318
332
|
end
|
319
333
|
|
320
334
|
require "cartoonist/engine"
|
335
|
+
require "cartoonist/version"
|
321
336
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartoonist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,74 +9,74 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: devise
|
16
|
-
requirement: &
|
16
|
+
requirement: &14316380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.1.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14316380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &14315100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
32
|
+
version: 2.1.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14315100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: railties
|
38
|
-
requirement: &
|
38
|
+
requirement: &14313640 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 3.2.
|
43
|
+
version: 3.2.8
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14313640
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: redcarpet
|
49
|
-
requirement: &
|
49
|
+
requirement: &14311140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: 2.2.2
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14311140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rubyzip
|
60
|
-
requirement: &
|
60
|
+
requirement: &14310300 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.9.
|
65
|
+
version: 0.9.9
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *14310300
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitar
|
71
|
-
requirement: &
|
71
|
+
requirement: &14309620 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.5.
|
76
|
+
version: 0.5.3
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *14309620
|
80
80
|
description: This provides the main functionality and plugin api for Cartoonist.
|
81
81
|
email: reasonnumber@gmail.com
|
82
82
|
executables: []
|
@@ -87,8 +87,10 @@ files:
|
|
87
87
|
- app/assets/stylesheets/admin.css.scss
|
88
88
|
- app/controllers/admin/accounts_controller.rb
|
89
89
|
- app/controllers/admin/cache_controller.rb
|
90
|
+
- app/controllers/admin/search_controller.rb
|
90
91
|
- app/controllers/admin/settings_controller.rb
|
91
92
|
- app/controllers/admin/static_cache_controller.rb
|
93
|
+
- app/controllers/admin_cartoonist_controller.rb
|
92
94
|
- app/controllers/admin_controller.rb
|
93
95
|
- app/controllers/cartoonist_controller.rb
|
94
96
|
- app/controllers/site_controller.rb
|
@@ -102,6 +104,7 @@ files:
|
|
102
104
|
- app/models/markdown.rb
|
103
105
|
- app/models/page_cache.rb
|
104
106
|
- app/models/postable.rb
|
107
|
+
- app/models/search.rb
|
105
108
|
- app/models/setting.rb
|
106
109
|
- app/models/simple_template.rb
|
107
110
|
- app/models/sitemap_entry.rb
|
@@ -113,6 +116,7 @@ files:
|
|
113
116
|
- app/views/admin/accounts/show.html.erb
|
114
117
|
- app/views/admin/cache/index.html.erb
|
115
118
|
- app/views/admin/main.html.erb
|
119
|
+
- app/views/admin/search/index.html.erb
|
116
120
|
- app/views/admin/settings/initial_setup.html.erb
|
117
121
|
- app/views/admin/settings/show.html.erb
|
118
122
|
- app/views/admin/static_cache/index.html.erb
|
@@ -135,6 +139,7 @@ files:
|
|
135
139
|
- db/migrate/20120524032959_add_extension_to_database_files.rb
|
136
140
|
- lib/cartoonist.rb
|
137
141
|
- lib/cartoonist/engine.rb
|
142
|
+
- lib/cartoonist/version.rb
|
138
143
|
- public/errors/404.html
|
139
144
|
- public/errors/422.html
|
140
145
|
- public/errors/500.html
|