rostra 0.1.18 → 0.1.19

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.
@@ -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