radiant-reader-extension 3.0.0.rc4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/README.md +105 -38
  2. data/Rakefile +4 -4
  3. data/app/controllers/accounts_controller.rb +24 -11
  4. data/app/controllers/admin/groups_controller.rb +15 -0
  5. data/app/controllers/admin/memberships_controller.rb +13 -7
  6. data/app/controllers/admin/messages_controller.rb +1 -0
  7. data/app/controllers/admin/permissions_controller.rb +15 -8
  8. data/app/controllers/groups_controller.rb +6 -4
  9. data/app/controllers/password_resets_controller.rb +1 -1
  10. data/app/controllers/reader_action_controller.rb +7 -51
  11. data/app/controllers/reader_sessions_controller.rb +9 -11
  12. data/app/helpers/reader_helper.rb +23 -3
  13. data/app/models/group.rb +45 -16
  14. data/app/models/message.rb +4 -11
  15. data/app/models/permission.rb +4 -0
  16. data/app/models/reader.rb +61 -26
  17. data/app/models/reader_notifier.rb +2 -2
  18. data/app/models/reader_page.rb +9 -5
  19. data/app/views/accounts/{_memberships.html.haml → _choose_memberships.html.haml} +0 -0
  20. data/app/views/accounts/_form.html.haml +9 -11
  21. data/app/views/accounts/_preamble.html.haml +14 -0
  22. data/app/views/accounts/_profile_form.html.haml +13 -29
  23. data/app/views/accounts/dashboard.html.haml +0 -1
  24. data/app/views/accounts/edit.html.haml +3 -3
  25. data/app/views/accounts/edit_profile.html.haml +10 -10
  26. data/app/views/admin/groups/_chooser.html.haml +8 -0
  27. data/app/views/admin/groups/_form.html.haml +7 -5
  28. data/app/views/admin/groups/_group.html.haml +29 -0
  29. data/app/views/admin/groups/index.html.haml +2 -28
  30. data/app/views/admin/groups/show.html.haml +3 -2
  31. data/app/views/admin/memberships/_reader.html.haml +2 -6
  32. data/app/views/admin/messages/_form.html.haml +10 -11
  33. data/app/views/admin/messages/_list_function.haml +2 -3
  34. data/app/views/admin/messages/{index.haml → index.html.haml} +21 -11
  35. data/app/views/admin/pages/_page_groups.html.haml +5 -11
  36. data/app/views/admin/permissions/_page.html.haml +6 -12
  37. data/app/views/admin/reader_configuration/edit.html.haml +2 -0
  38. data/app/views/admin/reader_configuration/show.html.haml +2 -0
  39. data/app/views/groups/_group.html.haml +12 -0
  40. data/app/views/groups/show.html.haml +10 -3
  41. data/app/views/readers/_description.html.haml +3 -0
  42. data/app/views/readers/_groups.html.haml +9 -0
  43. data/app/views/{accounts → readers}/_links.html.haml +2 -2
  44. data/app/views/readers/_list.html.haml +23 -0
  45. data/app/views/{accounts/_groups.html.haml → readers/_memberships.html.haml} +0 -1
  46. data/app/views/{accounts/_reader.html.haml → readers/_mugshot.html.haml} +1 -1
  47. data/app/views/readers/_people.html.haml +6 -0
  48. data/app/views/readers/_profile.html.haml +30 -0
  49. data/app/views/readers/_reader.html.haml +28 -0
  50. data/app/views/readers/index.html.haml +20 -0
  51. data/app/views/{accounts → readers}/show.html.haml +1 -2
  52. data/app/views/shared/_standard_reader_parts.html.haml +1 -1
  53. data/app/views/shared/not_allowed.html.haml +16 -0
  54. data/config/initializers/formats.rb +1 -2
  55. data/config/initializers/radiant_config.rb +5 -2
  56. data/config/locales/en.yml +181 -140
  57. data/config/routes.rb +25 -16
  58. data/db/migrate/001_create_readers.rb +0 -1
  59. data/db/migrate/20090921125653_reader_messages.rb +0 -1
  60. data/db/migrate/20090921125654_group_messages.rb +0 -1
  61. data/db/migrate/20110812111934_groups_nested_set.rb +19 -0
  62. data/db/migrate/20110814070858_message_has_many_groups.rb +14 -0
  63. data/db/migrate/20110905194602_group_ancestry.rb +23 -0
  64. data/lib/controller_extensions.rb +49 -0
  65. data/lib/grouped_model.rb +49 -8
  66. data/lib/grouped_page.rb +17 -5
  67. data/lib/message_tags.rb +21 -3
  68. data/lib/radiant-reader-extension.rb +1 -1
  69. data/lib/reader_admin_ui.rb +7 -8
  70. data/lib/reader_tags.rb +1 -1
  71. data/lib/site_controller_extensions.rb +7 -18
  72. data/public/images/furniture/csv.png +0 -0
  73. data/public/images/furniture/csv_tiny.png +0 -0
  74. data/public/images/furniture/vcard.png +0 -0
  75. data/public/images/furniture/vcard_tiny.png +0 -0
  76. data/public/javascripts/admin/reader.js +22 -1
  77. data/public/stylesheets/sass/admin/reader_group.sass +23 -22
  78. data/public/stylesheets/sass/reader.sass +81 -17
  79. data/radiant-reader-extension.gemspec +3 -1
  80. data/reader_extension.rb +7 -9
  81. data/spec/controllers/accounts_controller_spec.rb +8 -22
  82. data/spec/controllers/admin/messages_controller_spec.rb +0 -12
  83. data/spec/datasets/readers_dataset.rb +41 -38
  84. data/spec/lib/reader_tags_spec.rb +1 -1
  85. data/spec/models/group_spec.rb +89 -22
  86. data/spec/models/message_spec.rb +1 -1
  87. data/spec/models/reader_notifier_spec.rb +1 -1
  88. data/spec/models/reader_page_spec.rb +34 -18
  89. data/spec/models/reader_spec.rb +0 -1
  90. data/spec/spec.opts +4 -3
  91. metadata +51 -28
  92. data/app/views/accounts/_contributions.html.haml +0 -2
  93. data/app/views/accounts/_description.html.haml +0 -2
  94. data/app/views/accounts/_list.html.haml +0 -17
  95. data/app/views/accounts/_profile.html.haml +0 -29
  96. data/app/views/accounts/index.html.haml +0 -23
  97. data/app/views/groups/_all.html.haml +0 -10
  98. data/app/views/site/not_allowed.html.haml +0 -4
  99. data/db/migrate/20100922152338_lock_versions.rb +0 -9
  100. data/db/migrate/20101004074945_unlock_version.rb +0 -9
@@ -47,7 +47,7 @@ describe "Reader Tags" do
47
47
 
48
48
  describe "utility tags" do
49
49
  subject { page }
50
- it { should render(%{<r:truncated chars="50">All happy families are alike; each unhappy family is unhappy in its own way.</r:truncated>}).as(' All happy families are alike; each unhapp&hellip;') }
50
+ it { should render(%{<r:truncated chars="50">All happy families are alike; each unhappy family is unhappy in its own way.</r:truncated>}).as('All happy families are alike; each unhappy&hellip;') }
51
51
  it { should render(%{<r:truncated words="5" omission="">All happy families are alike; each unhappy family is unhappy in its own way.</r:truncated>}).as('All happy families are alike;') }
52
52
  it { should render(%{<r:truncated words="5" allow_html="true" omission=" (tbc)">All <em>happy families</em> are alike; each unhappy family is unhappy in its own way.</r:truncated>}).as('All <em>happy families</em> are alike; (tbc)') }
53
53
  end
@@ -2,6 +2,28 @@ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe Group do
4
4
  dataset :readers
5
+
6
+ it "should have a homepage association" do
7
+ Group.reflect_on_association(:homepage).should_not be_nil
8
+ group = groups(:homed)
9
+ group.homepage.should be_a(Page)
10
+ group.homepage = pages(:child)
11
+ group.homepage.should == pages(:child)
12
+ end
13
+
14
+ it "should have a group of readers" do
15
+ group = groups(:normal)
16
+ group.respond_to?(:readers).should be_true
17
+ group.readers.any?.should be_true
18
+ group.readers.size.should == 2
19
+ end
20
+
21
+ it "should have a group of pages" do
22
+ group = groups(:homed)
23
+ group.respond_to?(:pages).should be_true
24
+ group.pages.any?.should be_true
25
+ group.pages.size.should == 2
26
+ end
5
27
 
6
28
  describe "on validation" do
7
29
  before do
@@ -20,33 +42,78 @@ describe Group do
20
42
  duplicate.should_not be_valid
21
43
  duplicate.errors.on(:name).should_not be_empty
22
44
  end
45
+
46
+ it "should give itself a slug if none is present" do
47
+ g = Group.new(:name => 'testy group')
48
+ g.valid?.should be_true
49
+ g.slug.should == 'testy-group'
50
+ end
23
51
  end
52
+
53
+ describe "in a hierarchy" do
54
+ it "should have parent and children relations" do
55
+ group = groups(:subgroup)
56
+ group.respond_to?(:parent).should be_true
57
+ group.respond_to?(:children).should be_true
58
+ group.children.should =~ [groups(:subsubgroup), groups(:anothersubsubgroup)]
59
+ group.parent.should == groups(:supergroup)
60
+ end
61
+
62
+ it "should have descendants and ancestors" do
63
+ groups(:subsubgroup).path.should == [groups(:supergroup), groups(:subgroup), groups(:subsubgroup)]
64
+ groups(:subsubgroup).root.should == groups(:supergroup)
65
+ groups(:supergroup).subtree.should =~ [groups(:supergroup), groups(:subgroup), groups(:subsubgroup), groups(:anothersubsubgroup)]
66
+ end
24
67
 
25
- it "should have a homepage association" do
26
- Group.reflect_on_association(:homepage).should_not be_nil
27
- group = groups(:homed)
28
- group.homepage.should be_a(Page)
29
- group.homepage = pages(:child)
30
- group.homepage.should == pages(:child)
31
- end
68
+ it "should have a root group" do
69
+ [:supergroup, :subgroup, :subsubgroup].each do |g|
70
+ groups(g).root.should == groups(:supergroup)
71
+ end
72
+ end
32
73
 
33
- it "should have a group of readers" do
34
- group = groups(:normal)
35
- group.respond_to?(:readers).should be_true
36
- group.readers.any?.should be_true
37
- group.readers.size.should == 2
38
- end
74
+ it "should inherit memberships from descendants" do
75
+ groups(:supergroup).members.should =~ [readers(:normal), readers(:another)]
76
+ end
77
+
78
+ it "should not inherit memberships from ancestors" do
79
+ groups(:subsubgroup).members.should be_empty
80
+ end
81
+
82
+ it "should inherit permissions from ancestors" do
83
+ groups(:subsubgroup).pages.should =~ [pages(:child), pages(:child_2)]
84
+ end
39
85
 
40
- it "should have a group of pages" do
41
- group = groups(:homed)
42
- group.respond_to?(:pages).should be_true
43
- group.pages.any?.should be_true
44
- group.pages.size.should == 2
86
+ it "should not inherit permissions from descendants" do
87
+ groups(:supergroup).pages.should be_empty
88
+ end
45
89
  end
46
90
 
47
- it "should give itself a slug if none is present" do
48
- g = Group.new(:name => 'testy group')
49
- g.valid?.should be_true
50
- g.slug.should == 'testy-group'
91
+ describe "directory visibility" do
92
+ describe "when directory is grouped" do
93
+ before do
94
+ Radiant.config['reader.directory_visibility'] = 'grouped'
95
+ end
96
+
97
+ it "should be visible to members" do
98
+ groups(:subgroup).visible_to?(readers(:normal)).should be_true
99
+ end
100
+
101
+ it "should be visible to members of ancestor groups" do
102
+ groups(:supergroup).visible_to?(readers(:normal)).should be_true
103
+ end
104
+
105
+ it "should be visible to members of descendant groups" do
106
+ groups(:subsubgroup).visible_to?(readers(:normal)).should be_true
107
+ end
108
+
109
+ it "should not be visible to members of groups outside the family" do
110
+ groups(:subgroup).visible_to?(readers(:inactive)).should be_false
111
+ end
112
+
113
+ it "should not be visible to readers without groups" do
114
+ groups(:subgroup).visible_to?(readers(:ungrouped)).should be_false
115
+ end
116
+ end
117
+
51
118
  end
52
119
  end
@@ -48,7 +48,7 @@ describe Message do
48
48
 
49
49
  it "should render a fake sending" do
50
50
  @preview.should be_kind_of(TMail::Mail)
51
- @preview.from.should == ["admin@www.example.com"]
51
+ @preview.from.should == ["existing@example.com"]
52
52
  @preview.subject.should == messages(:taggy).subject
53
53
  end
54
54
  end
@@ -14,7 +14,7 @@ describe ReaderNotifier do
14
14
  it "should render a supplied message" do
15
15
  message = ReaderNotifier.create_message(readers(:normal), messages(:normal))
16
16
  message.to.should == [readers(:normal).email]
17
- message.from.should == ["admin@www.example.com"]
17
+ message.from.should == [messages(:normal).created_by.email]
18
18
  message.body.should =~ /#{messages(:normal).filtered_body}/
19
19
  message.content_type.should == 'text/html'
20
20
  end
@@ -15,7 +15,7 @@ describe ReaderPage do
15
15
 
16
16
  describe "reading parameters" do
17
17
  before do
18
- Radiant.config['readers.public?'] = true
18
+ Radiant.config['reader.directory_visibility'] = 'public'
19
19
  end
20
20
 
21
21
  it "should interrupt the find_by_path cascade" do
@@ -50,7 +50,7 @@ describe ReaderPage do
50
50
 
51
51
  describe "when the readership is private" do
52
52
  before do
53
- Radiant.config['readers.public?'] = false
53
+ Radiant.config['reader.directory_visibility'] = 'private'
54
54
  end
55
55
 
56
56
  describe "and no reader is logged in" do
@@ -81,24 +81,40 @@ describe ReaderPage do
81
81
  it "should allow access to a reader" do
82
82
  lambda { Page.find_by_path("/directory/#{reader_id(:normal)}").reader.should == readers(:normal) }.should_not raise_error
83
83
  end
84
+ end
85
+ end
86
+
87
+ describe "when the readership is group-limited" do
88
+ before do
89
+ Radiant.config['reader.directory_visibility'] = 'grouped'
90
+ end
91
+
92
+ describe "and no reader is logged in" do
93
+ before do
94
+ logout_reader
95
+ Reader.current = nil
96
+ end
97
+
98
+ it "should deny access completely" do
99
+ lambda { Page.find_by_path("/directory") }.should raise_error(ReaderError::AccessDenied)
100
+ lambda { Page.find_by_path("/directory/normal") }.should raise_error(ReaderError::AccessDenied)
101
+ end
102
+ end
103
+
104
+ describe "and a reader is logged in" do
105
+ before do
106
+ Reader.current = login_as_reader(readers(:normal))
107
+ end
84
108
 
85
- describe "but confined to his groups" do
86
- before do
87
- Radiant.config['readers.confine_to_groups?'] = true
88
- Reader.current = login_as_reader(readers(:normal))
89
- end
90
-
91
- it "should allow access only to readers with group overlap" do
92
- lambda { Page.find_by_path("/directory/#{reader_id(:inactive)}").reader.should == readers(:inactive) }.should_not raise_error
93
- lambda { Page.find_by_path("/directory/#{reader_id(:another)}") }.should raise_error
94
- end
109
+ it "should allow access only to readers with group overlap" do
110
+ lambda { Page.find_by_path("/directory/#{reader_id(:inactive)}").reader.should == readers(:inactive) }.should_not raise_error
111
+ lambda { Page.find_by_path("/directory/#{reader_id(:ungrouped)}") }.should raise_error
112
+ end
95
113
 
96
- it "should allow access only to groups to which the reader belongs" do
97
- lambda { Page.find_by_path("/directory/normal") }.should_not raise_error
98
- lambda { Page.find_by_path("/directory/special") }.should raise_error(ReaderError::AccessDenied)
99
- Page.find_by_path("/directory").groups.should =~ [groups(:normal), groups(:homed)]
100
- Page.find_by_path("/directory").readers.should =~ (groups(:normal).readers + groups(:homed).readers).uniq
101
- end
114
+ it "should allow access only to groups to which the reader belongs" do
115
+ lambda { Page.find_by_path("/directory/normal") }.should_not raise_error
116
+ lambda { Page.find_by_path("/directory/special") }.should raise_error(ReaderError::AccessDenied)
117
+ Page.find_by_path("/directory").groups.should =~ readers(:normal).all_visible_groups
102
118
  end
103
119
 
104
120
  end
@@ -11,7 +11,6 @@ describe Reader do
11
11
  it "should have some groups" do
12
12
  reader = readers(:normal)
13
13
  reader.groups.any?.should be_true
14
- reader.groups.size.should == 2
15
14
  end
16
15
 
17
16
  describe "on validation" do
data/spec/spec.opts CHANGED
@@ -1,5 +1,6 @@
1
1
  --colour
2
- --format progress
3
- --format html:spec/spec_report.html
4
- --loadby mtime
2
+ --format
3
+ profile
4
+ --loadby
5
+ mtime
5
6
  --reverse
metadata CHANGED
@@ -1,15 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-reader-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15424125
5
- prerelease: 6
4
+ hash: 7
5
+ prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
9
  - 0
10
- - rc
11
- - 4
12
- version: 3.0.0.rc4
10
+ version: 3.0.0
13
11
  platform: ruby
14
12
  authors:
15
13
  - William Ross
@@ -17,7 +15,7 @@ autorequire:
17
15
  bindir: bin
18
16
  cert_chain: []
19
17
 
20
- date: 2011-08-08 00:00:00 +01:00
18
+ date: 2011-09-06 00:00:00 +01:00
21
19
  default_executable:
22
20
  dependencies:
23
21
  - !ruby/object:Gem::Dependency
@@ -132,6 +130,22 @@ dependencies:
132
130
  version: 1.5.4
133
131
  type: :runtime
134
132
  version_requirements: *id007
133
+ - !ruby/object:Gem::Dependency
134
+ name: ancestry
135
+ prerelease: false
136
+ requirement: &id008 !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ hash: 23
142
+ segments:
143
+ - 1
144
+ - 2
145
+ - 4
146
+ version: 1.2.4
147
+ type: :runtime
148
+ version_requirements: *id008
135
149
  description: Provides reader/member/user registration and management functions including password-reminder, group-based page access control and administrative email.
136
150
  email:
137
151
  - radiant@spanner.org
@@ -167,32 +181,26 @@ files:
167
181
  - app/models/reader_notifier.rb
168
182
  - app/models/reader_page.rb
169
183
  - app/models/reader_session.rb
170
- - app/views/accounts/_contributions.html.haml
184
+ - app/views/accounts/_choose_memberships.html.haml
171
185
  - app/views/accounts/_controls.html.haml
172
- - app/views/accounts/_description.html.haml
173
186
  - app/views/accounts/_extra_controls.html.haml
174
187
  - app/views/accounts/_flasher.html.haml
175
188
  - app/views/accounts/_form.html.haml
176
189
  - app/views/accounts/_gravatar.html.haml
177
- - app/views/accounts/_groups.html.haml
178
- - app/views/accounts/_links.html.haml
179
- - app/views/accounts/_list.html.haml
180
- - app/views/accounts/_memberships.html.haml
181
- - app/views/accounts/_profile.html.haml
190
+ - app/views/accounts/_preamble.html.haml
182
191
  - app/views/accounts/_profile_form.html.haml
183
- - app/views/accounts/_reader.html.haml
184
192
  - app/views/accounts/dashboard.html.haml
185
193
  - app/views/accounts/edit.html.haml
186
194
  - app/views/accounts/edit_profile.html.haml
187
- - app/views/accounts/index.html.haml
188
195
  - app/views/accounts/login.html.haml
189
196
  - app/views/accounts/new.html.haml
190
197
  - app/views/accounts/permission_denied.html.haml
191
- - app/views/accounts/show.html.haml
192
198
  - app/views/admin/group_invitations/new.html.haml
193
199
  - app/views/admin/group_invitations/preview.html.haml
194
200
  - app/views/admin/groups/_add_readers.html.haml
201
+ - app/views/admin/groups/_chooser.html.haml
195
202
  - app/views/admin/groups/_form.html.haml
203
+ - app/views/admin/groups/_group.html.haml
196
204
  - app/views/admin/groups/_list_head.html.haml
197
205
  - app/views/admin/groups/edit.html.haml
198
206
  - app/views/admin/groups/index.html.haml
@@ -205,7 +213,7 @@ files:
205
213
  - app/views/admin/messages/_list_function.haml
206
214
  - app/views/admin/messages/_list_notes.html.haml
207
215
  - app/views/admin/messages/edit.html.haml
208
- - app/views/admin/messages/index.haml
216
+ - app/views/admin/messages/index.html.haml
209
217
  - app/views/admin/messages/new.html.haml
210
218
  - app/views/admin/messages/preview.html.haml
211
219
  - app/views/admin/messages/show.html.haml
@@ -229,7 +237,7 @@ files:
229
237
  - app/views/dashboard/_messages.html.haml
230
238
  - app/views/dashboard/_profile.html.haml
231
239
  - app/views/dashboard/_welcome.html.haml
232
- - app/views/groups/_all.html.haml
240
+ - app/views/groups/_group.html.haml
233
241
  - app/views/groups/index.html.haml
234
242
  - app/views/groups/show.html.haml
235
243
  - app/views/messages/preview.html.haml
@@ -242,8 +250,19 @@ files:
242
250
  - app/views/reader_notifier/message.html.haml
243
251
  - app/views/reader_sessions/_login_form.html.haml
244
252
  - app/views/reader_sessions/new.html.haml
253
+ - app/views/readers/_description.html.haml
254
+ - app/views/readers/_groups.html.haml
255
+ - app/views/readers/_links.html.haml
256
+ - app/views/readers/_list.html.haml
257
+ - app/views/readers/_memberships.html.haml
258
+ - app/views/readers/_mugshot.html.haml
259
+ - app/views/readers/_people.html.haml
260
+ - app/views/readers/_profile.html.haml
261
+ - app/views/readers/_reader.html.haml
262
+ - app/views/readers/index.html.haml
263
+ - app/views/readers/show.html.haml
245
264
  - app/views/shared/_standard_reader_parts.html.haml
246
- - app/views/site/not_allowed.html.haml
265
+ - app/views/shared/not_allowed.html.haml
247
266
  - config/initializers/authlogic_connect_config.rb
248
267
  - config/initializers/formats.rb
249
268
  - config/initializers/radiant_config.rb
@@ -267,8 +286,6 @@ files:
267
286
  - db/migrate/20091111090819_ensure_functional_messages_visible.rb
268
287
  - db/migrate/20091119092936_messages_have_layout.rb
269
288
  - db/migrate/20091120083119_groups_public.rb
270
- - db/migrate/20100922152338_lock_versions.rb
271
- - db/migrate/20101004074945_unlock_version.rb
272
289
  - db/migrate/20101019094714_message_sent_date.rb
273
290
  - db/migrate/20110214101339_multiple_ownership.rb
274
291
  - db/migrate/20110707101339_group_slugs.rb
@@ -276,6 +293,9 @@ files:
276
293
  - db/migrate/20110712081159_directory_permissions.rb
277
294
  - db/migrate/20110712141134_name_parts.rb
278
295
  - db/migrate/20110728112254_current_login_at.rb
296
+ - db/migrate/20110812111934_groups_nested_set.rb
297
+ - db/migrate/20110814070858_message_has_many_groups.rb
298
+ - db/migrate/20110905194602_group_ancestry.rb
279
299
  - lib/controller_extensions.rb
280
300
  - lib/group_tags.rb
281
301
  - lib/grouped_model.rb
@@ -292,12 +312,17 @@ files:
292
312
  - public/images/admin/chk_off.png
293
313
  - public/images/admin/chk_on.png
294
314
  - public/images/admin/delta.png
315
+ - public/images/furniture/csv.png
316
+ - public/images/furniture/csv_tiny.png
295
317
  - public/images/furniture/no_gravatar.png
318
+ - public/images/furniture/vcard.png
319
+ - public/images/furniture/vcard_tiny.png
296
320
  - public/javascripts/admin/reader.js
297
321
  - public/javascripts/reader.js
298
322
  - public/stylesheets/sass/admin/reader.sass
299
323
  - public/stylesheets/sass/admin/reader_group.sass
300
324
  - public/stylesheets/sass/reader.sass
325
+ - radiant-reader-extension-3.0.0.gem
301
326
  - radiant-reader-extension.gemspec
302
327
  - Rakefile
303
328
  - reader_extension.rb
@@ -326,7 +351,7 @@ has_rdoc: true
326
351
  homepage: http://radiant.spanner.org/reader
327
352
  licenses: []
328
353
 
329
- post_install_message: "\n Add this to your radiant project with:\n\n config.gem 'radiant-reader-extension', :version => '~> 3.0.0.rc4'\n\n and please remember to enable ActionMailer in your project's config/environment.rb.\n "
354
+ post_install_message: "\n Add this to your radiant project with:\n\n config.gem 'radiant-reader-extension', :version => '~> 3.0.0'\n\n and if you haven't already, remember to enable ActionMailer in your\n project's config/environment.rb.\n "
330
355
  rdoc_options: []
331
356
 
332
357
  require_paths:
@@ -343,14 +368,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
343
368
  required_rubygems_version: !ruby/object:Gem::Requirement
344
369
  none: false
345
370
  requirements:
346
- - - ">"
371
+ - - ">="
347
372
  - !ruby/object:Gem::Version
348
- hash: 25
373
+ hash: 3
349
374
  segments:
350
- - 1
351
- - 3
352
- - 1
353
- version: 1.3.1
375
+ - 0
376
+ version: "0"
354
377
  requirements: []
355
378
 
356
379
  rubyforge_project:
@@ -1,2 +0,0 @@
1
- // this page will be overridden in other extensions
2
- // if there are ever more than a couple, a list of partials may be required
@@ -1,2 +0,0 @@
1
- - reader ||= @reader
2
- = clean_html(reader.description)