rostra 0.1.18 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,6 +27,26 @@ module Rostra
27
27
  link_to user.rostra_user_name, main_app.user_path(user)
28
28
  end
29
29
 
30
+ # Used to add meta description tags to rostra pages
31
+ #
32
+ def include_meta_description
33
+ description = case "#{controller_name}##{action_name}"
34
+ when "questions#show" then @question.title
35
+ when "questions#index" then "Recently asked questions"
36
+ end
37
+ tag(:meta, { :name => "description", :content => description })
38
+ end
39
+
40
+ # Used to add meta keyword tags to rostra pages
41
+ #
42
+ def include_meta_keywords
43
+ keywords = case "#{controller_name}##{action_name}"
44
+ when "questions#show" then @question.tag_list.join(', ')
45
+ when "questions#index" then "add, some, default, keywords"
46
+ end
47
+ tag(:meta, { :name => "keywords", :content => keywords })
48
+ end
49
+
30
50
  # Used to populate both the <tt>title</tt> and <tt>h1</tt> elements for each page.
31
51
  #
32
52
  def page_title_helper
@@ -78,7 +98,7 @@ module Rostra
78
98
  selected = ''
79
99
  end
80
100
  entity_arrow = direction == :up ? '&#x25B2;' : '&#x25BC;'
81
- link_to entity_arrow.html_safe, vote_path(resource, direction), method: :put, remote: true, class: "vote #{direction} #{selected}"
101
+ link_to entity_arrow.html_safe, vote_path(resource, direction), method: :put, remote: true, title: "vote #{direction}", class: "vote #{direction} #{selected}"
82
102
  end
83
103
 
84
104
  # Returns a rostra object's base class name. For example, <tt>@question</tt> is an instance of
@@ -10,10 +10,11 @@ module Rostra
10
10
  acts_as_taggable
11
11
  acts_as_voteable
12
12
  is_impressionable counter_cache: { unique: true }
13
+ extend FriendlyId
14
+ friendly_id :title, use: :slugged
13
15
 
14
- validates :title, :presence => true, :uniqueness => true, :length => { :minimum => 15 }
15
- validates :user, :presence => true
16
- validates :tag_list, :presence => true
16
+ validates :title, presence: true, uniqueness: true, length: { :minimum => 15 }
17
+ validates_presence_of :user, :slug, :tag_list
17
18
 
18
19
  before_save :create_question_following
19
20
  attr_accessor :follow_by_email
@@ -5,6 +5,8 @@
5
5
  <%= stylesheet_link_tag 'rostra/application' %>
6
6
  <%= javascript_include_tag 'rostra/application' %>
7
7
  <%= csrf_meta_tags %>
8
+ <%= include_meta_description %>
9
+ <%= include_meta_keywords %>
8
10
  </head>
9
11
  <body id="<%= controller_name %>" class="<%= action_name %>">
10
12
  <div id="page_wrap">
@@ -0,0 +1,6 @@
1
+ class AddSlugToQuestions < ActiveRecord::Migration
2
+ def change
3
+ add_column :rostra_questions, :slug, :string
4
+ add_index :rostra_questions, :slug, unique: true
5
+ end
6
+ end
@@ -13,6 +13,26 @@ module Rostra
13
13
  #
14
14
  # include MainAppHelper
15
15
 
16
+ # Used to add meta description tags to rostra pages
17
+ #
18
+ # def include_meta_description
19
+ # description = case "#{controller_name}##{action_name}"
20
+ # when "questions#show" then @question.title
21
+ # when "questions#index" then "Recently asked questions"
22
+ # end
23
+ # tag(:meta, { :name => "description", :content => description })
24
+ # end
25
+
26
+ # Used to add meta keyword tags to rostra pages
27
+ #
28
+ # def include_meta_keywords
29
+ # keywords = case "#{controller_name}##{action_name}"
30
+ # when "questions#show" then @question.tag_list.join(', ')
31
+ # when "questions#index" then "add, some, default, keywords"
32
+ # end
33
+ # tag(:meta, { :name => "keywords", :content => keywords })
34
+ # end
35
+
16
36
  # Snippet used to share a question on Twitter.
17
37
  #
18
38
  # def twitter_sharing_link
data/lib/rostra/engine.rb CHANGED
@@ -9,6 +9,7 @@ module Rostra
9
9
  require 'acts_as_commentable'
10
10
  require 'impressionist'
11
11
  require 'kaminari'
12
+ require 'friendly_id'
12
13
  require_relative 'email_notifier'
13
14
 
14
15
  isolate_namespace Rostra
@@ -1,3 +1,3 @@
1
1
  module Rostra
2
- VERSION = "0.1.18"
2
+ VERSION = "0.1.19"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rostra
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.18
5
+ version: 0.1.19
6
6
  platform: ruby
7
7
  authors:
8
8
  - Cory Schires
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-11-09 00:00:00 Z
13
+ date: 2011-11-13 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -123,18 +123,18 @@ dependencies:
123
123
  type: :runtime
124
124
  version_requirements: *id010
125
125
  - !ruby/object:Gem::Dependency
126
- name: sqlite3
126
+ name: friendly_id
127
127
  prerelease: false
128
128
  requirement: &id011 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
- - - ">="
131
+ - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: "0"
134
- type: :development
133
+ version: 4.0.0.beta14
134
+ type: :runtime
135
135
  version_requirements: *id011
136
136
  - !ruby/object:Gem::Dependency
137
- name: cucumber-rails
137
+ name: sqlite3
138
138
  prerelease: false
139
139
  requirement: &id012 !ruby/object:Gem::Requirement
140
140
  none: false
@@ -145,7 +145,7 @@ dependencies:
145
145
  type: :development
146
146
  version_requirements: *id012
147
147
  - !ruby/object:Gem::Dependency
148
- name: factory_girl_rails
148
+ name: cucumber-rails
149
149
  prerelease: false
150
150
  requirement: &id013 !ruby/object:Gem::Requirement
151
151
  none: false
@@ -156,7 +156,7 @@ dependencies:
156
156
  type: :development
157
157
  version_requirements: *id013
158
158
  - !ruby/object:Gem::Dependency
159
- name: launchy
159
+ name: factory_girl_rails
160
160
  prerelease: false
161
161
  requirement: &id014 !ruby/object:Gem::Requirement
162
162
  none: false
@@ -167,7 +167,7 @@ dependencies:
167
167
  type: :development
168
168
  version_requirements: *id014
169
169
  - !ruby/object:Gem::Dependency
170
- name: database_cleaner
170
+ name: launchy
171
171
  prerelease: false
172
172
  requirement: &id015 !ruby/object:Gem::Requirement
173
173
  none: false
@@ -178,29 +178,29 @@ dependencies:
178
178
  type: :development
179
179
  version_requirements: *id015
180
180
  - !ruby/object:Gem::Dependency
181
- name: rspec-rails
181
+ name: database_cleaner
182
182
  prerelease: false
183
183
  requirement: &id016 !ruby/object:Gem::Requirement
184
184
  none: false
185
185
  requirements:
186
- - - ~>
186
+ - - ">="
187
187
  - !ruby/object:Gem::Version
188
- version: "2.5"
188
+ version: "0"
189
189
  type: :development
190
190
  version_requirements: *id016
191
191
  - !ruby/object:Gem::Dependency
192
- name: devise
192
+ name: rspec-rails
193
193
  prerelease: false
194
194
  requirement: &id017 !ruby/object:Gem::Requirement
195
195
  none: false
196
196
  requirements:
197
- - - ">="
197
+ - - ~>
198
198
  - !ruby/object:Gem::Version
199
- version: "0"
199
+ version: "2.5"
200
200
  type: :development
201
201
  version_requirements: *id017
202
202
  - !ruby/object:Gem::Dependency
203
- name: pry
203
+ name: devise
204
204
  prerelease: false
205
205
  requirement: &id018 !ruby/object:Gem::Requirement
206
206
  none: false
@@ -211,7 +211,7 @@ dependencies:
211
211
  type: :development
212
212
  version_requirements: *id018
213
213
  - !ruby/object:Gem::Dependency
214
- name: grb
214
+ name: pry
215
215
  prerelease: false
216
216
  requirement: &id019 !ruby/object:Gem::Requirement
217
217
  none: false
@@ -222,7 +222,7 @@ dependencies:
222
222
  type: :development
223
223
  version_requirements: *id019
224
224
  - !ruby/object:Gem::Dependency
225
- name: email_spec
225
+ name: grb
226
226
  prerelease: false
227
227
  requirement: &id020 !ruby/object:Gem::Requirement
228
228
  none: false
@@ -232,6 +232,17 @@ dependencies:
232
232
  version: "0"
233
233
  type: :development
234
234
  version_requirements: *id020
235
+ - !ruby/object:Gem::Dependency
236
+ name: email_spec
237
+ prerelease: false
238
+ requirement: &id021 !ruby/object:Gem::Requirement
239
+ none: false
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: "0"
244
+ type: :development
245
+ version_requirements: *id021
235
246
  description: Don't use. Not production ready
236
247
  email:
237
248
  - coryschires@gmail.com
@@ -558,6 +569,7 @@ files:
558
569
  - db/migrate/20111029214642_add_impressions_count_to_questions.rb
559
570
  - db/migrate/20111106162542_add_votes_count_to_rostra_answers.rb
560
571
  - db/migrate/20111106164824_add_votes_count_to_rostra_questions.rb
572
+ - db/migrate/20111113220522_add_slug_to_questions.rb
561
573
  - lib/generators/rostra/install_generator.rb
562
574
  - lib/generators/rostra/templates/app/helpers/rostra/application_helper.rb
563
575
  - lib/generators/rostra/templates/config/initializers/rostra.rb