typo 5.0 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES-5.0 +82 -0
- data/app/controllers/articles_controller.rb +4 -4
- data/app/helpers/admin/base_helper.rb +9 -6
- data/app/models/blog_sweeper.rb +5 -0
- data/app/models/page_cache.rb +12 -6
- data/app/models/user.rb +7 -2
- data/app/views/admin/categories/show.html.erb +3 -3
- data/app/views/admin/content/_articles.html.erb +1 -1
- data/app/views/admin/general/index.html.erb +4 -4
- data/app/views/admin/sidebar/index.html.erb +1 -1
- data/app/views/admin/themes/index.html.erb +1 -1
- data/config/environments/development.rb +1 -1
- data/db/migrate/066_fix_profiles.rb +20 -0
- data/db/schema.rb +2 -2
- data/lib/tasks/release.rake +1 -8
- data/lib/typo_version.rb +1 -1
- data/spec/controllers/articles_controller_spec.rb +1 -1
- data/spec/fixtures/contents.yml +3 -13
- data/spec/fixtures/profiles.yml +11 -0
- data/spec/fixtures/tags.yml +0 -3
- data/spec/models/page_spec.rb +7 -4
- data/spec/models/tag_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/test/fixtures/profiles.yml +1 -6
- data/test/fixtures/users.yml +8 -8
- data/vendor/plugins/rspec/CHANGES +1 -9
- data/vendor/plugins/rspec/examples/pure/helper_method_example.rb +6 -9
- data/vendor/plugins/rspec/lib/spec/example/example_methods.rb +8 -9
- data/vendor/plugins/rspec/lib/spec/matchers.rb +7 -1
- data/vendor/plugins/rspec/lib/spec/matchers/be.rb +2 -3
- data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +3 -10
- data/vendor/plugins/rspec/lib/spec/runner/formatter/story/plain_text_formatter.rb +5 -8
- data/vendor/plugins/rspec/lib/spec/story/runner/story_parser.rb +8 -8
- data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +0 -1
- data/vendor/plugins/rspec/lib/spec/version.rb +1 -1
- data/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb +0 -16
- data/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +3 -3
- data/vendor/plugins/rspec/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +4 -45
- data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +0 -37
- data/vendor/plugins/rspec/stories/example_groups/autogenerated_docstrings +8 -27
- data/vendor/plugins/rspec/stories/example_groups/output +0 -5
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +1 -0
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +2 -2
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +1 -1
- data/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +46 -0
- metadata +5 -7
- data/spec/fixtures/articles_tags.yml +0 -19
- data/vendor/plugins/rspec/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
- data/vendor/plugins/rspec/stories/resources/stories/failing_story.rb +0 -15
- data/vendor/plugins/rspec_on_rails/spec/rails/matchers/have_text_spec.rb +0 -62
data/CHANGES-5.0
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
Typo 5.0 "Eugène Atget" finally finished after about 7 month of slacking making. This in an important release, stuffed with great new features, loads of fixes and an incredible amount of polish. This may sound like DHH introduction to Rails 2.0, and it does, because Typo 5.0 now runs with Ruby on Rails 2.0 and won't run with anything else. That's the reason of the major version change.
|
2
|
+
|
3
|
+
Before jumping into the breakdown of features, I’d just like to extend my deep gratitude towards everyone who helped make this release possible. From Piers who made this possible to the (hundreds of) contributors who got a patch applied to everyone on #typo who kept the spirit alive. You can all be mighty proud of the role you played. Cheers!
|
4
|
+
|
5
|
+
** Why Eugène Atget ? **
|
6
|
+
|
7
|
+
I've wanted to give our releases a name for a while now, but we needed to find a path we should follow from along the versions. Piers and I are both photographers, and most of the visible work on Typo has been done in Paris, which is a town Atget spent his life to picture. That's the reason why his name came first when we had to choose one.
|
8
|
+
|
9
|
+
** Sidebars removal **
|
10
|
+
|
11
|
+
As we announced earlier, we've decided to move most of the sidebars plugins out of the trunk. There are many reasons why we think that, out of some basic functionnalities, sidebars should be third party softwares apart performances issues. We'll continue to maintain these plugins anyway.
|
12
|
+
|
13
|
+
If you're using one of the following plugins, be sure to install it, or your blog may explode with lots of nasty error messages.
|
14
|
+
|
15
|
+
|
16
|
+
– AIM presence
|
17
|
+
– Audioscrobbler
|
18
|
+
– Backpack
|
19
|
+
– Delicious
|
20
|
+
– Flickr
|
21
|
+
– 43 things
|
22
|
+
– 43 places
|
23
|
+
– Magnolia
|
24
|
+
– Recent comments
|
25
|
+
– Tada
|
26
|
+
– Upcoming
|
27
|
+
– Xbox
|
28
|
+
|
29
|
+
|
30
|
+
Plugins are now in our plugins repository, and installs like any rails plugin. Expect basic archives soon.
|
31
|
+
|
32
|
+
/path/to/typo$ ./script/plugins install http://svn.typosphere.org/typo/plugins/some-plugin
|
33
|
+
|
34
|
+
** Code refactoring **
|
35
|
+
|
36
|
+
The immerged part of the iceberg, but not the least one, most of the existing code has been rewriten. Typo was started when Rails was young, very young, and lots of things were added to the framework after we had to write them.
|
37
|
+
|
38
|
+
The result is impressive in terms of performances, and bug fixing as well.
|
39
|
+
|
40
|
+
** Admin refactoring **
|
41
|
+
|
42
|
+
Admin has been entirely revamped, twice, between 4.1 and 5.0, and we're quite proud of how it works now.
|
43
|
+
|
44
|
+
The existing admin was the result of a scaffold during Typo early days, and even though some improvements has been done, many things were not as user friendly as they should have been. New admin now aims at giving a clear view on the information, and eased access to the most daily used functionnalities in your blogging life.
|
45
|
+
|
46
|
+
* Simple and avanced admin *
|
47
|
+
|
48
|
+
We now deliver the admin in 2 flavors, simple and advanced, because everybody doesn't have the same need when it goes to blogging. We have also splitted the settings in 2 places, to separate basic and advanced settings.
|
49
|
+
|
50
|
+
* More localisation *
|
51
|
+
|
52
|
+
4.1 introduced Typo internationalization, but no one noticed it as it was hidden in the deep of environment.rb. You can now choose your prefered language from the settings. We hope the community to support the translation effort.
|
53
|
+
|
54
|
+
* Comments moderation *
|
55
|
+
|
56
|
+
Another hidden feature of 4.1 I think it's important to mention here is default comment moderation. This is a stone in the build of a better discussion management.
|
57
|
+
|
58
|
+
* Theme editor *
|
59
|
+
|
60
|
+
A theme editor was a missing piece in Typo admin, and it's now filled with a basic, but usable editor. For now it allows you to edit your layout and stylesheet. Views editing will come later.
|
61
|
+
|
62
|
+
* Dashboard *
|
63
|
+
|
64
|
+
We've also added a dashboard we plan to improve with time. It aims at giving you a view on the latests activity on your Typo blog.
|
65
|
+
|
66
|
+
** Solving SEO issues **
|
67
|
+
|
68
|
+
For long time now, Typo has been a pain to search engine optimisation, mostly because most pages, out of single posts, had the same meta title and description. That thing we never noticed before had nasty effects when melted with Google duplicate content algorythm, which even led some blogs to be banned from index. Expect some more improvement in a near future.
|
69
|
+
|
70
|
+
** New themes **
|
71
|
+
|
72
|
+
Azure which has been Typo default theme for a while now has been removed from the core and won't be supported anymore. Standard issue is now our new default theme, and we have introduced Dirtylicious as well. Scribbish has been kept for backward compatibility as many blogs are using it, starting Piers.
|
73
|
+
|
74
|
+
Both themes were built above Scribbish markup and are thus hatom compliant.
|
75
|
+
|
76
|
+
** Typo themes garden **
|
77
|
+
|
78
|
+
I know this should be a community matter, and it may not have its place on a release note, however I think it's important enough to mention it. Every theme listed on <a href="http://www.dev411.com/typo/themes/">dev 411 Typo theme viewer</a> has been updated to support Typo 5.0, and updated themes are already avaliable.
|
79
|
+
|
80
|
+
We do think having a usable themes and plugins park is important, and too many themes were only Typo 2.6.0 compatible. That's the reason why we did the themes migration while finishing Typo 5.0, and we plan to port even more non Typo themes in a near futur.
|
81
|
+
|
82
|
+
We hope you'll enjoy this release as much as we enjoyed making it.
|
@@ -41,10 +41,10 @@ class ArticlesController < ContentController
|
|
41
41
|
respond_to do |format|
|
42
42
|
format.html { render_paginated_index }
|
43
43
|
format.atom do
|
44
|
-
render :partial => 'atom_feed', :object => @articles[0,this_blog.limit_rss_display]
|
44
|
+
render :partial => 'articles/atom_feed', :object => @articles[0,this_blog.limit_rss_display]
|
45
45
|
end
|
46
46
|
format.rss do
|
47
|
-
render :partial => 'rss20_feed', :object => @articles[0,this_blog.limit_rss_display]
|
47
|
+
render :partial => 'articles/rss20_feed', :object => @articles[0,this_blog.limit_rss_display]
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -56,8 +56,8 @@ class ArticlesController < ContentController
|
|
56
56
|
auto_discovery_feed
|
57
57
|
respond_to do |format|
|
58
58
|
format.html { render :action => 'read' }
|
59
|
-
format.atom { render :partial => 'atom_feed', :object => @article.published_feedback }
|
60
|
-
format.rss { render :partial => 'rss20_feed', :object => @article.published_feedback }
|
59
|
+
format.atom { render :partial => 'articles/atom_feed', :object => @article.published_feedback }
|
60
|
+
format.rss { render :partial => 'articles/rss20_feed', :object => @article.published_feedback }
|
61
61
|
format.xml { redirect_to :format => 'atom' }
|
62
62
|
end
|
63
63
|
rescue ActiveRecord::RecordNotFound
|
@@ -57,16 +57,19 @@ module Admin::BaseHelper
|
|
57
57
|
'<input type="submit" value="' + val + '" />'
|
58
58
|
end
|
59
59
|
|
60
|
-
def link_to_show(record)
|
61
|
-
link_to image_tag('admin/show.png'
|
60
|
+
def link_to_show(record, controller = @controller.controller_name)
|
61
|
+
link_to image_tag('admin/show.png', :alt => "show", :title => "Show content"),
|
62
|
+
:controller => controller, :action => 'show', :id => record.id
|
62
63
|
end
|
63
64
|
|
64
|
-
def link_to_edit(record)
|
65
|
-
link_to image_tag('admin/edit.png', :alt => "edit", :title => "Edit content"),
|
65
|
+
def link_to_edit(record, controller = @controller.controller_name)
|
66
|
+
link_to image_tag('admin/edit.png', :alt => "edit", :title => "Edit content"),
|
67
|
+
:controller => controller, :action => 'edit', :id => record.id
|
66
68
|
end
|
67
69
|
|
68
|
-
def link_to_destroy(record)
|
69
|
-
link_to image_tag('admin/delete.png', :alt => "delete", :title => "Delete content"),
|
70
|
+
def link_to_destroy(record, controller = @controller.controller_name)
|
71
|
+
link_to image_tag('admin/delete.png', :alt => "delete", :title => "Delete content"),
|
72
|
+
:controller => controller, :action => 'destroy', :id => record.id
|
70
73
|
end
|
71
74
|
|
72
75
|
def text_filter_options
|
data/app/models/blog_sweeper.rb
CHANGED
@@ -46,6 +46,7 @@ class BlogSweeper < ActionController::Caching::Sweeper
|
|
46
46
|
sweep_pages
|
47
47
|
when Blog, User
|
48
48
|
sweep_all
|
49
|
+
sweep_theme
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
@@ -54,6 +55,10 @@ class BlogSweeper < ActionController::Caching::Sweeper
|
|
54
55
|
PageCache.sweep_all
|
55
56
|
end
|
56
57
|
|
58
|
+
def sweep_theme
|
59
|
+
PageCache.sweep_theme_cache
|
60
|
+
end
|
61
|
+
|
57
62
|
def sweep_articles
|
58
63
|
expire_fragment(%r{.*/articles/.*})
|
59
64
|
PageCache.zap_pages('index.*', 'articles')
|
data/app/models/page_cache.rb
CHANGED
@@ -1,18 +1,24 @@
|
|
1
1
|
class PageCache < ActiveRecord::Base
|
2
|
-
|
3
|
-
|
2
|
+
def self.public_path
|
3
|
+
ActionController::Base.page_cache_directory
|
4
|
+
end
|
4
5
|
|
5
6
|
def self.sweep_all
|
6
7
|
self.zap_pages('index.*', 'articles', 'pages')
|
7
8
|
end
|
8
9
|
|
10
|
+
def self.sweep_theme_cache
|
11
|
+
self.zap_pages('images/theme', 'stylesheets/theme', 'javascripts/theme')
|
12
|
+
end
|
13
|
+
|
9
14
|
def self.zap_pages(*paths)
|
15
|
+
srcs = paths.inject([]) { |o,v|
|
16
|
+
o + Dir.glob(public_path + "/#{v}")
|
17
|
+
}
|
18
|
+
return true if srcs.empty?
|
10
19
|
trash = Dir::tmpdir
|
11
20
|
FileUtils.makedirs(trash)
|
12
|
-
srcs
|
13
|
-
Dir.glob(public_path + "/#{v}")
|
14
|
-
}
|
15
|
-
FileUtils.mv(srcs.flatten, trash, :force => true)
|
21
|
+
FileUtils.mv(srcs, trash, :force => true)
|
16
22
|
FileUtils.rm_rf(trash)
|
17
23
|
end
|
18
24
|
end
|
data/app/models/user.rb
CHANGED
@@ -2,7 +2,7 @@ require 'digest/sha1'
|
|
2
2
|
|
3
3
|
# this model expects a certain database layout and its based on the name/login pattern.
|
4
4
|
class User < CachedModel
|
5
|
-
|
5
|
+
belongs_to :profile
|
6
6
|
has_many :notifications, :foreign_key => 'notify_user_id'
|
7
7
|
has_many :notify_contents, :through => :notifications,
|
8
8
|
:source => 'notify_content',
|
@@ -117,11 +117,16 @@ class User < CachedModel
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
|
+
before_validation :set_default_profile
|
121
|
+
|
122
|
+
def set_default_profile
|
123
|
+
self.profile ||= Profile.find_by_label('admin')
|
124
|
+
end
|
125
|
+
|
120
126
|
validates_uniqueness_of :login, :on => :create
|
121
127
|
validates_length_of :password, :within => 5..40, :on => :create
|
122
128
|
validates_presence_of :login
|
123
129
|
|
124
130
|
validates_confirmation_of :password, :if=> Proc.new { |u| u.password.size > 0}
|
125
131
|
validates_length_of :login, :within => 3..40
|
126
|
-
belongs_to :profile
|
127
132
|
end
|
@@ -27,9 +27,9 @@
|
|
27
27
|
<td><%= article.published_at.strftime("%d/%m/%Y at %H:%M") %></td>
|
28
28
|
<td><%= author_link(article) %></td>
|
29
29
|
<td class="operation"><%= (article.published?) ? image_tag('admin/checked.png', :alt => "online", :title => _("Online")) : image_tag('admin/cancel.png', :alt => "offline", :title => _("Offline")) %></td>
|
30
|
-
<td class="operation"><%=
|
31
|
-
<td class="operation"><%= link_to_edit article %></td>
|
32
|
-
<td class="operation last"><%= link_to_destroy article %></td>
|
30
|
+
<td class="operation"><%= link_to_show article, 'content' %></td>
|
31
|
+
<td class="operation"><%= link_to_edit article, 'content' %></td>
|
32
|
+
<td class="operation last"><%= link_to_destroy article, 'content' %></td>
|
33
33
|
</tr>
|
34
34
|
<% end -%>
|
35
35
|
</table>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<td><%= article.published_at.strftime("%d/%m/%Y at %H:%M") %></td>
|
19
19
|
<td><%= author_link(article)%></td>
|
20
20
|
<td class="operation"><%= (article.published?) ? image_tag('admin/checked.png', :alt => "online", :title => _("Online")) : image_tag('admin/cancel.png', :alt => "offline", :title => _("Offline")) %></td>
|
21
|
-
<td class="operation"><%=
|
21
|
+
<td class="operation"><%= link_to_show article %></td>
|
22
22
|
<td class="operation"><%= link_to_edit article %></td>
|
23
23
|
<td class="operation last"><%= link_to_destroy article %></td>
|
24
24
|
</tr>
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<% content_for('tasks') do -%>
|
4
4
|
<%= subtab _("Basic settings"), "current", {:controller => "general"} %>
|
5
5
|
<%= subtab _("Advanced settings"), "", {:controller => "advanced"} if (this_blog.display_advanced == 1) %>
|
6
|
-
<%= subtab _("Empty Fragment Cache"), "", {:controller => '/admin/cache', :action => 'sweep'} if
|
7
|
-
<%= subtab _("Rebuild cached HTML"), "", {:controller => '/admin/cache', :action => 'sweep_html'} if
|
6
|
+
<%= subtab _("Empty Fragment Cache"), "", {:controller => '/admin/cache', :action => 'sweep'} if this_blog.cache_option == 'caches_action_with_params' %>
|
7
|
+
<%= subtab _("Rebuild cached HTML"), "", {:controller => '/admin/cache', :action => 'sweep_html'} if this_blog.cache_option == 'caches_page' %>
|
8
8
|
<% end -%>
|
9
9
|
|
10
10
|
<% form_tag :action => 'update' do %>
|
@@ -45,10 +45,10 @@
|
|
45
45
|
<li>
|
46
46
|
<label class="float" for="caches_page">Choose caching methode:</label>
|
47
47
|
<input type="radio" name="setting[cache_option]" value="caches_page" id="cache_option_0" <%= 'checked="checked"' if this_blog.cache_option == 'caches_page' %>/>
|
48
|
-
<label for="cache_option_0"><%= _("Use static HTML page caching
|
48
|
+
<label for="cache_option_0"><%= _("Use static HTML page caching ")%></label>
|
49
49
|
<span class="float">
|
50
50
|
<input type="radio" name="setting[cache_option]" value="caches_action_with_params" id="cache_option_1" <%= 'checked="checked"' if this_blog.cache_option == 'caches_action_with_params' %>/>
|
51
|
-
<label for="cache_option_1"><%= _("Use semi static caching")%></label>
|
51
|
+
<label for="cache_option_1"><%= _("Use semi static caching (default)")%></label>
|
52
52
|
</span>
|
53
53
|
</li>
|
54
54
|
</ul>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%= subtab _("Sidebar"), "current", {:controller=>"sidebar", :action=>"index"} %>
|
4
4
|
<%= subtab _("Choose theme"), "", {:controller=>"themes", :action=>"index"} %>
|
5
5
|
<%= subtab _("Theme editor"), "", {:controller=>"themes", :action=>"editor"} %>
|
6
|
-
<%= subtab
|
6
|
+
<%= subtab(_("Text Filters"), "", {:controller=>"textfilters", :action=>"list"}) if this_blog.display_advanced == 1 %>
|
7
7
|
<% end %>
|
8
8
|
<p class="paginate l">You can download and install sidebar plugins from our official <a href="http://svn.typosphere.org/typo/plugins/">plugin repository</a> running script/plugins install http://svn.typosphere.org/typo/plugins/myplugin, or upload them in the vendors/plugin directory.</p>
|
9
9
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%= subtab _("Sidebar"), "", {:controller=>"sidebar", :action=>"index"} %>
|
4
4
|
<%= subtab _("Choose theme"), "current", {:controller=>"themes", :action=>"index"} %>
|
5
5
|
<%= subtab _("Theme editor"), "", {:controller=>"themes", :action=>"editor"} %>
|
6
|
-
<%= subtab
|
6
|
+
<%= subtab(_("Text Filters"), "", {:controller=>"textfilters", :action=>"list"}) if (this_blog.display_advanced == 1) %>
|
7
7
|
<% end %>
|
8
8
|
|
9
9
|
<p class="paginate l">
|
@@ -8,7 +8,7 @@ config.whiny_nils = true
|
|
8
8
|
|
9
9
|
# Show full error reports and disable caching
|
10
10
|
config.action_controller.consider_all_requests_local = true
|
11
|
-
config.action_controller.perform_caching =
|
11
|
+
config.action_controller.perform_caching = true
|
12
12
|
|
13
13
|
# Don't care if the mailer can't send
|
14
14
|
config.action_mailer.raise_delivery_errors = false
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class FixProfiles < ActiveRecord::Migration
|
2
|
+
# We got this migration wrong before. Easiest fix is to undo it, then reapply
|
3
|
+
# correctly
|
4
|
+
|
5
|
+
class User < ActiveRecord::Base
|
6
|
+
include BareMigration
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.up
|
10
|
+
remove_column :users, :profile_id
|
11
|
+
add_column :users, :profile_id, :integer
|
12
|
+
admin_id = Profile.find_by_label('admin').id
|
13
|
+
User.update_all("profile_id = #{admin_id}")
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.down
|
17
|
+
remove_column :users, :profile_id
|
18
|
+
add_column :users, :profile_id, :integer, :default => 1
|
19
|
+
end
|
20
|
+
end
|
data/db/schema.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# It's strongly recommended to check this file into your version control system.
|
11
11
|
|
12
|
-
ActiveRecord::Schema.define(:version =>
|
12
|
+
ActiveRecord::Schema.define(:version => 66) do
|
13
13
|
|
14
14
|
create_table "articles_tags", :id => false, :force => true do |t|
|
15
15
|
t.integer "article_id"
|
@@ -215,7 +215,7 @@ ActiveRecord::Schema.define(:version => 65) do
|
|
215
215
|
t.boolean "notify_watch_my_articles"
|
216
216
|
t.boolean "notify_via_jabber"
|
217
217
|
t.string "jabber"
|
218
|
-
t.integer "profile_id"
|
218
|
+
t.integer "profile_id"
|
219
219
|
end
|
220
220
|
|
221
221
|
end
|
data/lib/tasks/release.rake
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rake/gempackagetask'
|
2
2
|
require 'rake/contrib/rubyforgepublisher'
|
3
3
|
|
4
|
-
PKG_VERSION = "5.0"
|
4
|
+
PKG_VERSION = "5.0.1"
|
5
5
|
PKG_NAME = "typo"
|
6
6
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
7
7
|
RUBY_FORGE_PROJECT = 'typo'
|
@@ -15,13 +15,6 @@ spec = Gem::Specification.new do |s|
|
|
15
15
|
s.has_rdoc = false
|
16
16
|
|
17
17
|
s.files = Dir.glob('**/*', File::FNM_DOTMATCH).reject do |f|
|
18
|
-
# [ /\.$/, /config\/database.yml$/, /config\/database.yml-/,
|
19
|
-
# /database\.sqlite/,
|
20
|
-
# /\.log$/, /^pkg/, /\.svn/,
|
21
|
-
# /^public\/(files|xml|articles|pages|index.html)/,
|
22
|
-
# /^public\/(stylesheets|javascripts|images)\/theme/, /\~$/,
|
23
|
-
# /\/\._/, /\/#/ ].any? {|regex| f =~ regex }
|
24
|
-
|
25
18
|
[ /\.$/, /config\/database.yml$/, /config\/database.yml-/,
|
26
19
|
/database\.sqlite/,
|
27
20
|
/\.log$/, /^pkg/, /\.svn/, /^vendor\/rails\/(?!actionwebservice)/,
|
data/lib/typo_version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
TYPO_VERSION = '
|
1
|
+
TYPO_VERSION = '5.0.1'
|
@@ -11,7 +11,7 @@ describe 'ArticlesController' do
|
|
11
11
|
controller_name :articles
|
12
12
|
Article.delete_all
|
13
13
|
fixtures(:contents, :feedback, :categories, :blogs, :users, :categorizations,
|
14
|
-
:text_filters, :
|
14
|
+
:text_filters, :tags, :blacklist_patterns, :resources,
|
15
15
|
:sidebars)
|
16
16
|
|
17
17
|
before(:each) do
|
data/spec/fixtures/contents.yml
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
article1:
|
4
4
|
blog_id: 1
|
5
|
-
id: 1
|
6
5
|
title: Article 1!
|
7
6
|
body: body
|
8
7
|
extended: extended content
|
@@ -18,11 +17,11 @@ article1:
|
|
18
17
|
type: Article
|
19
18
|
published: true
|
20
19
|
state: published
|
20
|
+
tags: foo_tag, bar_tag
|
21
21
|
|
22
22
|
article2:
|
23
23
|
type: Article
|
24
24
|
blog_id: 1
|
25
|
-
id: 2
|
26
25
|
title: Article 2!
|
27
26
|
body: body
|
28
27
|
extended: extended content
|
@@ -37,12 +36,12 @@ article2:
|
|
37
36
|
guid: bbbbb
|
38
37
|
published: true
|
39
38
|
state: published
|
39
|
+
tags: foo_tag
|
40
40
|
|
41
41
|
|
42
42
|
article3:
|
43
43
|
type: Article
|
44
44
|
blog_id: 1
|
45
|
-
id: 3
|
46
45
|
title: Article 3!
|
47
46
|
body: body
|
48
47
|
extended: extended content
|
@@ -61,7 +60,6 @@ article3:
|
|
61
60
|
article4:
|
62
61
|
type: Article
|
63
62
|
blog_id: 1
|
64
|
-
id: 4
|
65
63
|
title: Article 4!
|
66
64
|
body: I\'m not "public":http://www.example.com/public!
|
67
65
|
published: false
|
@@ -75,11 +73,11 @@ article4:
|
|
75
73
|
user_id: 1
|
76
74
|
author: Tobi
|
77
75
|
guid: ddddd
|
76
|
+
tags: foo_tag, bar_tag, bazz_tag
|
78
77
|
|
79
78
|
first_page:
|
80
79
|
type: Page
|
81
80
|
blog_id: 1
|
82
|
-
id: 9
|
83
81
|
name: page_one
|
84
82
|
title: Page One Title
|
85
83
|
body: ho ho ho
|
@@ -93,8 +91,6 @@ first_page:
|
|
93
91
|
another_page:
|
94
92
|
type: Page
|
95
93
|
blog_id: 1
|
96
|
-
id: 10
|
97
|
-
name: page/two
|
98
94
|
title: Another Page Title
|
99
95
|
body: another body for yet another page
|
100
96
|
updated_at: 2005-05-05 01:00:00
|
@@ -107,7 +103,6 @@ another_page:
|
|
107
103
|
markdown_page:
|
108
104
|
type: Page
|
109
105
|
blog_id: 1
|
110
|
-
id: 11
|
111
106
|
name: markdown-page
|
112
107
|
title: Markdown Page
|
113
108
|
text_filter_id: 1
|
@@ -122,7 +117,6 @@ markdown_page:
|
|
122
117
|
inactive_article:
|
123
118
|
type: Article
|
124
119
|
blog_id: 1
|
125
|
-
id: 14
|
126
120
|
title: Inactive Article
|
127
121
|
body: body
|
128
122
|
extended: extended content
|
@@ -141,7 +135,6 @@ inactive_article:
|
|
141
135
|
second_blog_article:
|
142
136
|
type: Article
|
143
137
|
blog_id: 2
|
144
|
-
id: 16
|
145
138
|
title: Second Blog Article
|
146
139
|
body: body
|
147
140
|
extended: extended content
|
@@ -160,7 +153,6 @@ second_blog_article:
|
|
160
153
|
search_target:
|
161
154
|
type: Article
|
162
155
|
blog_id: 1
|
163
|
-
id: 17
|
164
156
|
title: Find me!
|
165
157
|
body: search target
|
166
158
|
extended: extended content
|
@@ -179,7 +171,6 @@ search_target:
|
|
179
171
|
xmltest:
|
180
172
|
type: Article
|
181
173
|
blog_id: 1
|
182
|
-
id: 18
|
183
174
|
title: Associations aren\'t :dependent => true anymore
|
184
175
|
body: originally seen on <a href="http://blog.rubyonrails.org/">blog.rubyonrails.org</a>
|
185
176
|
extended: extended content
|
@@ -198,7 +189,6 @@ xmltest:
|
|
198
189
|
spammed_article:
|
199
190
|
type: Article
|
200
191
|
blog_id: 1
|
201
|
-
id: 19
|
202
192
|
title: C\'mon Spam Me!
|
203
193
|
body: A bunch of innocuous content
|
204
194
|
allow_comments: true
|