homeland 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,36 +1,58 @@
1
1
  A new style forum for tiny community as Rails Engine. You can mount this in you apps.
2
2
 
3
- ## Install
3
+ ## Requrements
4
+
5
+ * Rails 3.1
6
+ * Mongoid
7
+ * rails_autolink
4
8
 
5
- * You need install *Ruby 1.9.2*, *Rubygems* and *Rails 3.1* and *Mongoid* first.
9
+ ## Install
6
10
 
7
11
  1. in you Gemfile:
8
12
 
13
+ ```ruby
9
14
  gem "homeland"
15
+ ```
10
16
 
11
17
  2. Install thought this commands:
12
18
 
13
- rails g homeland:install
14
-
19
+ ```bash
20
+ rails g homeland:install
21
+ ```
22
+
15
23
  3. change you application.html.erb
16
24
 
17
- before:
25
+ before:
18
26
 
27
+ ```erb
19
28
  <%= link_to "Home", root_path %>
20
29
  <%= link_to "Posts", posts_path %>
30
+ ```
21
31
 
22
- after:
32
+ after:
23
33
 
34
+ ```erb
24
35
  <%= link_to "Home", main_app.root_path %>
25
36
  <%= link_to "Home", main_app.posts_path %>
37
+ ```
38
+
26
39
 
27
40
  4. Change you routes.rb to add this:
28
41
 
42
+ ```ruby
29
43
  mount Homeland::Engine, :at => "/bbs"
30
-
44
+ ```
31
45
 
32
46
  ## Generate views to custom
33
47
 
48
+ ```bash
34
49
  rails g homeland:views
50
+ ```
51
+
52
+ ## Demo App
53
+
54
+ * [http://720p.so/bbs](http://720p.so/bbs)
55
+
56
+ ----
35
57
 
36
- Thanks [V2EX](http://v2ex.com) forum idea.
58
+ Thanks [V2EX](http://www.v2ex.com/?r=huacnlee) forum idea.
@@ -1,4 +1,4 @@
1
- # coding: utf-8
1
+ # coding: utf-8
2
2
  module Homeland
3
3
  class TopicsController < Homeland::ApplicationController
4
4
  before_filter :homeland_require_user, :only => [:new,:edit,:create,:update,:destroy,:reply]
@@ -6,7 +6,7 @@ module Homeland
6
6
  caches_page :feed, :expires_in => 1.hours
7
7
 
8
8
  private
9
- def init_list_sidebar
9
+ def init_list_sidebar
10
10
  if !fragment_exist? "topic/init_list_sidebar/hot_nodes"
11
11
  @hot_nodes = Node.hots.limit(20)
12
12
  end
@@ -20,7 +20,7 @@ module Homeland
20
20
  @sections = Section.all
21
21
 
22
22
  end
23
-
23
+
24
24
  def feed
25
25
  @topics = Topic.recent.limit(20)
26
26
  response.headers['Content-Type'] = 'application/rss+xml'
@@ -44,13 +44,12 @@ module Homeland
44
44
  result = Redis::Search.query("Topic", params[:key], :limit => 500)
45
45
  ids = result.collect { |r| r["id"] }
46
46
  @topics = Topic.find(ids).paginate(:page => params[:page], :per_page => 20)
47
-
47
+
48
48
  render :action => "index"
49
49
  end
50
50
 
51
51
  def show
52
52
  @topic = Topic.find(params[:id])
53
- @topic.hit!
54
53
  @node = @topic.node
55
54
  @replies = @topic.replies.all
56
55
 
@@ -72,7 +71,7 @@ module Homeland
72
71
 
73
72
  def reply
74
73
  @topic = Topic.find(params[:id])
75
- @reply = @topic.replies.build(params[:reply])
74
+ @reply = @topic.replies.build(params[:reply])
76
75
  @reply.user_id = current_user.id
77
76
  if @reply.save
78
77
  flash[:notice] = "回复成功。"
@@ -1,24 +1,23 @@
1
- # coding: utf-8
1
+ # coding: utf-8
2
2
  module Homeland
3
3
  class Topic
4
4
  include Mongoid::Document
5
5
  include Mongoid::Timestamps
6
6
  include Mongoid::Paranoia
7
-
7
+
8
8
  field :title
9
- field :body
9
+ field :body
10
10
  field :replied_at , :type => DateTime
11
11
  field :replies_count, :type => Integer, :default => 0
12
- field :hits, :type => Integer, :default => 0
13
-
12
+
14
13
  belongs_to :user, :inverse_of => :topics, :class_name => Homeland.user_class.to_s
15
14
  belongs_to :node, :class_name => "Homeland::Node"
16
15
  belongs_to :last_reply_user, :class_name => Homeland.user_class.to_s
17
16
  has_many :replies, :class_name => "Homeland::Reply"
18
-
17
+
19
18
  attr_protected :user_id
20
19
  validates_presence_of :user_id, :title, :body, :node_id
21
-
20
+
22
21
  index :replied_at
23
22
  index :user_id
24
23
  index :node_id
@@ -30,11 +29,7 @@ module Homeland
30
29
  def set_replied_at
31
30
  self.replied_at = Time.now
32
31
  end
33
-
34
- def hit!
35
- self.update_attribute(:hit,{ :inc => 1 })
36
- end
37
-
32
+
38
33
  def node_name
39
34
  return "" if self.node.blank?
40
35
  self.node.name
@@ -5,10 +5,10 @@
5
5
  <%= render 'sidebar' %>
6
6
  <div class="content">
7
7
  <div class="topics box">
8
- <div class="topic">
8
+ <div class="topic">
9
9
  <div class="pull-right avatar_large">
10
10
  <%= user_avatar_tag(@topic.user) %>
11
- </div>
11
+ </div>
12
12
  <div class="infos">
13
13
  <h1><%= truncate(@topic.title, :length => 100) %></h1>
14
14
  <div class="info leader">
@@ -21,9 +21,8 @@
21
21
  <% else %>
22
22
  最后由 <%= user_name_tag(@topic.last_reply_user) %> 回复于 <%= timeago(@topic.replied_at) %>
23
23
  <% end %>
24
- , <%= @topic.hits %> 次阅读
25
24
  </div>
26
- </div>
25
+ </div>
27
26
  </div>
28
27
  <div class="body">
29
28
  <%= format_topic_body(@topic.body) %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homeland
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-08 00:00:00.000000000 Z
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70246274863400 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>'
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70246274863400
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>'
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: jquery-atwho-rails
27
- requirement: &70246274861920 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 0.1.5
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70246274861920
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.5
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rails_autolink
38
- requirement: &70246274860800 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,7 +53,12 @@ dependencies:
43
53
  version: 1.0.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70246274860800
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
47
62
  description: A new style forum for small communitys.
48
63
  email:
49
64
  - huacnlee@gmail.com
@@ -108,9 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
123
  version: 1.3.6
109
124
  requirements: []
110
125
  rubyforge_project:
111
- rubygems_version: 1.8.10
126
+ rubygems_version: 1.8.24
112
127
  signing_key:
113
128
  specification_version: 3
114
129
  summary: A new style forum for small communitys.
115
130
  test_files: []
116
- has_rdoc: