radiant-reader-extension 0.9.2

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.
Files changed (116) hide show
  1. data/.gitignore +2 -0
  2. data/README.md +89 -0
  3. data/Rakefile +140 -0
  4. data/VERSION +1 -0
  5. data/app/controllers/admin/messages_controller.rb +20 -0
  6. data/app/controllers/admin/reader_settings_controller.rb +92 -0
  7. data/app/controllers/admin/readers_controller.rb +28 -0
  8. data/app/controllers/password_resets_controller.rb +64 -0
  9. data/app/controllers/reader_action_controller.rb +84 -0
  10. data/app/controllers/reader_activations_controller.rb +60 -0
  11. data/app/controllers/reader_sessions_controller.rb +56 -0
  12. data/app/controllers/readers_controller.rb +131 -0
  13. data/app/helpers/admin/reader_settings_helper.rb +36 -0
  14. data/app/models/message.rb +108 -0
  15. data/app/models/message_function.rb +37 -0
  16. data/app/models/message_reader.rb +13 -0
  17. data/app/models/reader.rb +146 -0
  18. data/app/models/reader_notifier.rb +34 -0
  19. data/app/models/reader_session.rb +3 -0
  20. data/app/views/admin/messages/_form.html.haml +29 -0
  21. data/app/views/admin/messages/_help.html.haml +41 -0
  22. data/app/views/admin/messages/_message_description.html.haml +3 -0
  23. data/app/views/admin/messages/edit.html.haml +16 -0
  24. data/app/views/admin/messages/new.html.haml +16 -0
  25. data/app/views/admin/reader_settings/_setting.html.haml +24 -0
  26. data/app/views/admin/reader_settings/edit.html.haml +10 -0
  27. data/app/views/admin/reader_settings/index.html.haml +35 -0
  28. data/app/views/admin/reader_settings/show.html.haml +1 -0
  29. data/app/views/admin/readers/_avatar.html.haml +3 -0
  30. data/app/views/admin/readers/_form.html.haml +50 -0
  31. data/app/views/admin/readers/_list_head.html.haml +9 -0
  32. data/app/views/admin/readers/_listed.html.haml +22 -0
  33. data/app/views/admin/readers/_password_fields.html.haml +18 -0
  34. data/app/views/admin/readers/edit.html.haml +8 -0
  35. data/app/views/admin/readers/index.html.haml +17 -0
  36. data/app/views/admin/readers/new.html.haml +7 -0
  37. data/app/views/admin/readers/remove.html.haml +18 -0
  38. data/app/views/admin/sites/_choose_reader_layout.html.haml +7 -0
  39. data/app/views/password_resets/create.html.haml +13 -0
  40. data/app/views/password_resets/edit.html.haml +71 -0
  41. data/app/views/password_resets/new.html.haml +31 -0
  42. data/app/views/reader_activations/_activation_required.html.haml +34 -0
  43. data/app/views/reader_activations/_on_activation.html.haml +4 -0
  44. data/app/views/reader_activations/show.html.haml +41 -0
  45. data/app/views/reader_notifier/message.html.haml +1 -0
  46. data/app/views/reader_sessions/_login_form.html.haml +59 -0
  47. data/app/views/reader_sessions/new.html.haml +38 -0
  48. data/app/views/readers/_contributions.html.haml +2 -0
  49. data/app/views/readers/_controls.html.haml +25 -0
  50. data/app/views/readers/_extra_controls.html.haml +0 -0
  51. data/app/views/readers/_flasher.html.haml +6 -0
  52. data/app/views/readers/_form.html.haml +73 -0
  53. data/app/views/readers/create.html.haml +28 -0
  54. data/app/views/readers/edit.html.haml +47 -0
  55. data/app/views/readers/index.html.haml +16 -0
  56. data/app/views/readers/login.html.haml +15 -0
  57. data/app/views/readers/new.html.haml +41 -0
  58. data/app/views/readers/permission_denied.html.haml +23 -0
  59. data/app/views/readers/show.html.haml +35 -0
  60. data/app/views/wrappers/_field_errors.html.haml +5 -0
  61. data/config/routes.rb +22 -0
  62. data/config/settings.rb +9 -0
  63. data/db/migrate/001_create_readers.rb +31 -0
  64. data/db/migrate/002_extend_sites.rb +17 -0
  65. data/db/migrate/003_reader_honorifics.rb +12 -0
  66. data/db/migrate/004_user_readers.rb +11 -0
  67. data/db/migrate/005_last_login.rb +15 -0
  68. data/db/migrate/007_adapt_for_authlogic.rb +27 -0
  69. data/db/migrate/20090921125653_reader_messages.rb +27 -0
  70. data/db/migrate/20090924164413_functional_messages.rb +9 -0
  71. data/db/migrate/20090925081225_standard_messages.rb +106 -0
  72. data/db/migrate/20091006102438_message_visibility.rb +9 -0
  73. data/db/migrate/20091010083503_registration_config.rb +10 -0
  74. data/db/migrate/20091019124021_message_functions.rb +9 -0
  75. data/db/migrate/20091020133533_forenames.rb +9 -0
  76. data/db/migrate/20091020135152_contacts.rb +23 -0
  77. data/db/migrate/20091111090819_ensure_functional_messages_visible.rb +9 -0
  78. data/db/migrate/20091119092936_messages_have_layout.rb +9 -0
  79. data/db/migrate/20100922152338_lock_versions.rb +9 -0
  80. data/db/migrate/20100927095703_default_settings.rb +14 -0
  81. data/db/migrate/20101004074945_unlock_version.rb +9 -0
  82. data/lib/config_extensions.rb +5 -0
  83. data/lib/controller_extensions.rb +77 -0
  84. data/lib/reader_admin_ui.rb +64 -0
  85. data/lib/reader_helper.rb +36 -0
  86. data/lib/reader_site.rb +10 -0
  87. data/lib/reader_tags.rb +297 -0
  88. data/lib/rfc822.rb +29 -0
  89. data/lib/tasks/reader_extension_tasks.rake +28 -0
  90. data/pkg/radiant-reader-extension-0.9.0.gem +0 -0
  91. data/public/images/admin/chk_off.png +0 -0
  92. data/public/images/admin/chk_on.png +0 -0
  93. data/public/images/admin/new-message.png +0 -0
  94. data/public/images/admin/new-reader.png +0 -0
  95. data/public/javascripts/admin/messages.js +13 -0
  96. data/public/stylesheets/sass/admin/reader.sass +95 -0
  97. data/radiant-reader-extension.gemspec +184 -0
  98. data/reader_extension.rb +55 -0
  99. data/spec/controllers/admin/messages_controller_spec.rb +38 -0
  100. data/spec/controllers/admin/readers_controller_spec.rb +14 -0
  101. data/spec/controllers/password_resets_controller_spec.rb +140 -0
  102. data/spec/controllers/reader_activations_controller_spec.rb +45 -0
  103. data/spec/controllers/readers_controller_spec.rb +193 -0
  104. data/spec/datasets/messages_dataset.rb +49 -0
  105. data/spec/datasets/reader_layouts_dataset.rb +26 -0
  106. data/spec/datasets/reader_sites_dataset.rb +10 -0
  107. data/spec/datasets/readers_dataset.rb +51 -0
  108. data/spec/lib/reader_admin_ui_spec.rb +35 -0
  109. data/spec/lib/reader_site_spec.rb +18 -0
  110. data/spec/matchers/reader_login_system_matcher.rb +35 -0
  111. data/spec/models/message_spec.rb +109 -0
  112. data/spec/models/reader_notifier_spec.rb +34 -0
  113. data/spec/models/reader_spec.rb +155 -0
  114. data/spec/spec.opts +5 -0
  115. data/spec/spec_helper.rb +48 -0
  116. metadata +267 -0
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe ReaderNotifier do
4
+ dataset :readers, :reader_layouts, :messages
5
+
6
+ before do
7
+ Radiant::Config['email.layout'] = 'email'
8
+ end
9
+
10
+ it "should have a radiant layout attribute" do
11
+ ReaderNotifier.read_inheritable_attribute(:default_layout).should_not be_nil
12
+ end
13
+
14
+ it "should render a supplied message" do
15
+ message = ReaderNotifier.create_message(readers(:normal), messages(:normal))
16
+ message.to.should == [readers(:normal).email]
17
+ message.from.should == [users(:existing).email]
18
+ message.body.should =~ /#{messages(:normal).filtered_body}/
19
+ message.content_type.should == 'text/html'
20
+ end
21
+
22
+ it "should render messages with layout" do
23
+ message = ReaderNotifier.create_message(readers(:normal), messages(:normal))
24
+ message.body.should =~ /<head>/
25
+ end
26
+
27
+ it "should render radius tags within a message" do
28
+ message = ReaderNotifier.create_message(readers(:normal), messages(:taggy))
29
+ message.body.should =~ /<title>#{messages(:taggy).subject}<\/title>/
30
+ message.body.should =~ /To #{readers(:normal).name}/
31
+ message.body.should =~ /From #{users(:existing).name}/
32
+ end
33
+
34
+ end
@@ -0,0 +1,155 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Reader do
4
+ dataset :messages
5
+ dataset :reader_layouts
6
+ activate_authlogic
7
+
8
+ before do
9
+ @existing_reader = readers(:normal)
10
+ end
11
+
12
+ describe "on validation" do
13
+ before do
14
+ @reader = Reader.new :name => "Test Reader", :email => 'test@spanner.org', :login => 'test', :password => 'password', :password_confirmation => 'password'
15
+ @reader.should be_valid
16
+ end
17
+
18
+ it "should require a name" do
19
+ @reader.name = nil
20
+ @reader.should_not be_valid
21
+ @reader.errors.on(:name).should_not be_empty
22
+ end
23
+
24
+ it "should require a valid email address" do
25
+ @reader.email = nil
26
+ @reader.should_not be_valid
27
+ @reader.errors.on(:email).should_not be_empty
28
+ @reader.email = 'nodomain'
29
+ @reader.should_not be_valid
30
+ @reader.email = 'bad@punctuation,com'
31
+ @reader.should_not be_valid
32
+ end
33
+
34
+ it "should require an email address that is not in use by either reader or user" do
35
+ @reader.email = readers(:normal).email
36
+ @reader.should_not be_valid
37
+ @reader.email = users(:another).email
38
+ @reader.should_not be_valid
39
+ end
40
+
41
+ it "should require a unique login" do
42
+ @reader.login = @existing_reader.login
43
+ @reader.should_not be_valid
44
+ @reader.errors.on(:login).should_not be_empty
45
+ end
46
+ end
47
+
48
+ describe "on creation" do
49
+ before do
50
+ @reader = Reader.create :name => "Test Reader", :email => 'test@spanner.org', :login => 'test', :password => 'password', :password_confirmation => 'password'
51
+ end
52
+
53
+ it 'should await activation' do
54
+ @reader.activated_at.should be_nil
55
+ @reader.activated?.should be_false
56
+ end
57
+
58
+ it 'should default to trusted status' do
59
+ @reader.trusted.should == true
60
+ end
61
+ end
62
+
63
+ describe "on create_for_user" do
64
+ it "should return the existing reader if there is one" do
65
+ reader = Reader.find_or_create_for_user(users(:existing))
66
+ reader.should == readers(:user)
67
+ reader.is_user?.should be_true
68
+ reader.is_admin?.should be_false
69
+ end
70
+
71
+ it "should create a matching reader if necessary" do
72
+ user = users(:admin)
73
+ reader = Reader.find_or_create_for_user(user)
74
+ [:name, :email, :login, :created_at, :notes].each do |att|
75
+ reader.send(att).should == user.send(att)
76
+ end
77
+ reader.crypted_password.should == user.password
78
+ ReaderSession.new(:login => 'admin', :password => 'password').should be_valid
79
+ reader.is_user?.should be_true
80
+ reader.is_admin?.should be_true
81
+ end
82
+ end
83
+
84
+ describe "on update" do
85
+ before do
86
+ @reader = readers(:normal)
87
+ end
88
+
89
+ it 'should be puttable in the doghouse' do
90
+ @reader.password_confirmation = @reader.password = ''
91
+ @reader.trusted = false
92
+ @reader.save!
93
+ @reader.trusted.should == false
94
+ end
95
+ end
96
+
97
+ describe "on update if really a user" do
98
+
99
+ it "should update the user's attributes" do
100
+ reader = readers(:user)
101
+ reader.name = "Cardinal Fang"
102
+ reader.save!
103
+
104
+ User.find_by_name("Cardinal Fang").should == users(:existing)
105
+ end
106
+
107
+ it "should update the user's credentials" do
108
+ reader = readers(:user)
109
+ reader.password = reader.password_confirmation = 'blotto'
110
+ reader.save!
111
+ ReaderSession.new(:login => reader.login, :password => 'blotto').should be_valid
112
+ reader.user.authenticated?('blotto').should be_true
113
+ end
114
+ end
115
+
116
+ describe "on activation" do
117
+ before do
118
+ @reader = Reader.create :name => "Test Reader", :email => 'test@spanner.org', :login => 'another_login', :password => 'password', :password_confirmation => 'password', :trusted => 1
119
+ end
120
+
121
+ it 'should be retrieved by id and activation code' do
122
+ Reader.find_by_id_and_perishable_token(@reader.id, @reader.perishable_token).should == @reader
123
+ end
124
+
125
+ it 'should not be retrievable with no or the wrong code' do
126
+ Reader.find_by_id_and_perishable_token(@reader.id, 'walrus').should be_nil
127
+ Reader.find_by_id_and_perishable_token(@reader.id, '').should be_nil
128
+ end
129
+
130
+ it 'should activate itself' do
131
+ @reader.activate!
132
+ @reader.activated?.should be_true
133
+ @reader.activated_at.should_not be_nil
134
+ end
135
+ end
136
+
137
+ describe "on login" do
138
+ before do
139
+ @reader = Reader.create :name => "Test Reader", :email => 'test@spanner.org', :login => 'test', :password => 'hoohaa', :password_confirmation => 'hoohaa'
140
+ @reader.activate!
141
+ end
142
+
143
+ it 'should authenticate' do
144
+ ReaderSession.new(:login => 'test', :password => 'hoohaa').should be_valid
145
+ end
146
+
147
+ it 'should not authenticate with bad password' do
148
+ ReaderSession.new(:login => 'test', :password => 'corcovado').should_not be_valid
149
+ end
150
+
151
+ it 'should not authenticate if it does not exist' do
152
+ ReaderSession.new(:login => 'loch ness monster', :password => 'blotto').should_not be_valid
153
+ end
154
+ end
155
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,5 @@
1
+ --colour
2
+ --format progress
3
+ --format html:spec/spec_report.html
4
+ --loadby mtime
5
+ --reverse
@@ -0,0 +1,48 @@
1
+ unless defined? RADIANT_ROOT
2
+ case
3
+ when ENV["RADIANT_ENV_FILE"]
4
+ require ENV["RADIANT_ENV_FILE"]
5
+ when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
6
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment"
7
+ else
8
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment"
9
+ end
10
+ end
11
+
12
+ require "#{RADIANT_ROOT}/spec/spec_helper"
13
+ Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets")
14
+
15
+ require "authlogic/test_case"
16
+ include Authlogic::TestCase
17
+
18
+ ActionMailer::Base.delivery_method = :test
19
+ ActionMailer::Base.perform_deliveries = true
20
+ ActionMailer::Base.deliveries = []
21
+ Radiant::Config['readers.default_mail_from_address'] = "test@example.com"
22
+ Radiant::Config['readers.default_mail_from_name'] = "test"
23
+ Radiant::Config['site.title'] = 'Test Site'
24
+ Radiant::Config['site.url'] = 'www.example.com'
25
+ Radiant::Config['readers.layout'] = 'Main'
26
+
27
+
28
+ if File.directory?(File.dirname(__FILE__) + "/matchers")
29
+ Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file }
30
+ end
31
+
32
+ Spec::Runner.configure do |config|
33
+ # config.use_transactional_fixtures = true
34
+ # config.use_instantiated_fixtures = false
35
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures'
36
+
37
+ # You can declare fixtures for each behaviour like this:
38
+ # describe "...." do
39
+ # fixtures :table_a, :table_b
40
+ #
41
+ # Alternatively, if you prefer to declare them only once, you can
42
+ # do so here, like so ...
43
+ #
44
+ # config.global_fixtures = :table_a, :table_b
45
+ #
46
+ # If you declare global fixtures, be aware that they will be declared
47
+ # for all of your examples, even those that don't use them.
48
+ end
metadata ADDED
@@ -0,0 +1,267 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: radiant-reader-extension
3
+ version: !ruby/object:Gem::Version
4
+ hash: 63
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 2
10
+ version: 0.9.2
11
+ platform: ruby
12
+ authors:
13
+ - spanner
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-04 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: radiant
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 59
30
+ segments:
31
+ - 0
32
+ - 9
33
+ - 0
34
+ version: 0.9.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: radiant-layouts-extension
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: radiant-mailer_layouts-extension
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: authlogic
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: sanitize
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ type: :runtime
92
+ version_requirements: *id005
93
+ description: Centralises reader/member/user registration and management tasks for the benefit of other extensions
94
+ email: will@spanner.org
95
+ executables: []
96
+
97
+ extensions: []
98
+
99
+ extra_rdoc_files:
100
+ - README.md
101
+ files:
102
+ - .gitignore
103
+ - README.md
104
+ - Rakefile
105
+ - VERSION
106
+ - app/controllers/admin/messages_controller.rb
107
+ - app/controllers/admin/reader_settings_controller.rb
108
+ - app/controllers/admin/readers_controller.rb
109
+ - app/controllers/password_resets_controller.rb
110
+ - app/controllers/reader_action_controller.rb
111
+ - app/controllers/reader_activations_controller.rb
112
+ - app/controllers/reader_sessions_controller.rb
113
+ - app/controllers/readers_controller.rb
114
+ - app/helpers/admin/reader_settings_helper.rb
115
+ - app/models/message.rb
116
+ - app/models/message_function.rb
117
+ - app/models/message_reader.rb
118
+ - app/models/reader.rb
119
+ - app/models/reader_notifier.rb
120
+ - app/models/reader_session.rb
121
+ - app/views/admin/messages/_form.html.haml
122
+ - app/views/admin/messages/_help.html.haml
123
+ - app/views/admin/messages/_message_description.html.haml
124
+ - app/views/admin/messages/edit.html.haml
125
+ - app/views/admin/messages/new.html.haml
126
+ - app/views/admin/reader_settings/_setting.html.haml
127
+ - app/views/admin/reader_settings/edit.html.haml
128
+ - app/views/admin/reader_settings/index.html.haml
129
+ - app/views/admin/reader_settings/show.html.haml
130
+ - app/views/admin/readers/_avatar.html.haml
131
+ - app/views/admin/readers/_form.html.haml
132
+ - app/views/admin/readers/_list_head.html.haml
133
+ - app/views/admin/readers/_listed.html.haml
134
+ - app/views/admin/readers/_password_fields.html.haml
135
+ - app/views/admin/readers/edit.html.haml
136
+ - app/views/admin/readers/index.html.haml
137
+ - app/views/admin/readers/new.html.haml
138
+ - app/views/admin/readers/remove.html.haml
139
+ - app/views/admin/sites/_choose_reader_layout.html.haml
140
+ - app/views/password_resets/create.html.haml
141
+ - app/views/password_resets/edit.html.haml
142
+ - app/views/password_resets/new.html.haml
143
+ - app/views/reader_activations/_activation_required.html.haml
144
+ - app/views/reader_activations/_on_activation.html.haml
145
+ - app/views/reader_activations/show.html.haml
146
+ - app/views/reader_notifier/message.html.haml
147
+ - app/views/reader_sessions/_login_form.html.haml
148
+ - app/views/reader_sessions/new.html.haml
149
+ - app/views/readers/_contributions.html.haml
150
+ - app/views/readers/_controls.html.haml
151
+ - app/views/readers/_extra_controls.html.haml
152
+ - app/views/readers/_flasher.html.haml
153
+ - app/views/readers/_form.html.haml
154
+ - app/views/readers/create.html.haml
155
+ - app/views/readers/edit.html.haml
156
+ - app/views/readers/index.html.haml
157
+ - app/views/readers/login.html.haml
158
+ - app/views/readers/new.html.haml
159
+ - app/views/readers/permission_denied.html.haml
160
+ - app/views/readers/show.html.haml
161
+ - app/views/wrappers/_field_errors.html.haml
162
+ - config/routes.rb
163
+ - config/settings.rb
164
+ - db/migrate/001_create_readers.rb
165
+ - db/migrate/002_extend_sites.rb
166
+ - db/migrate/003_reader_honorifics.rb
167
+ - db/migrate/004_user_readers.rb
168
+ - db/migrate/005_last_login.rb
169
+ - db/migrate/007_adapt_for_authlogic.rb
170
+ - db/migrate/20090921125653_reader_messages.rb
171
+ - db/migrate/20090924164413_functional_messages.rb
172
+ - db/migrate/20090925081225_standard_messages.rb
173
+ - db/migrate/20091006102438_message_visibility.rb
174
+ - db/migrate/20091010083503_registration_config.rb
175
+ - db/migrate/20091019124021_message_functions.rb
176
+ - db/migrate/20091020133533_forenames.rb
177
+ - db/migrate/20091020135152_contacts.rb
178
+ - db/migrate/20091111090819_ensure_functional_messages_visible.rb
179
+ - db/migrate/20091119092936_messages_have_layout.rb
180
+ - db/migrate/20100922152338_lock_versions.rb
181
+ - db/migrate/20100927095703_default_settings.rb
182
+ - db/migrate/20101004074945_unlock_version.rb
183
+ - lib/config_extensions.rb
184
+ - lib/controller_extensions.rb
185
+ - lib/reader_admin_ui.rb
186
+ - lib/reader_helper.rb
187
+ - lib/reader_site.rb
188
+ - lib/reader_tags.rb
189
+ - lib/rfc822.rb
190
+ - lib/tasks/reader_extension_tasks.rake
191
+ - pkg/radiant-reader-extension-0.9.0.gem
192
+ - public/images/admin/chk_off.png
193
+ - public/images/admin/chk_on.png
194
+ - public/images/admin/new-message.png
195
+ - public/images/admin/new-reader.png
196
+ - public/javascripts/admin/messages.js
197
+ - public/stylesheets/sass/admin/reader.sass
198
+ - radiant-reader-extension.gemspec
199
+ - reader_extension.rb
200
+ - spec/controllers/admin/messages_controller_spec.rb
201
+ - spec/controllers/admin/readers_controller_spec.rb
202
+ - spec/controllers/password_resets_controller_spec.rb
203
+ - spec/controllers/reader_activations_controller_spec.rb
204
+ - spec/controllers/readers_controller_spec.rb
205
+ - spec/datasets/messages_dataset.rb
206
+ - spec/datasets/reader_layouts_dataset.rb
207
+ - spec/datasets/reader_sites_dataset.rb
208
+ - spec/datasets/readers_dataset.rb
209
+ - spec/lib/reader_admin_ui_spec.rb
210
+ - spec/lib/reader_site_spec.rb
211
+ - spec/matchers/reader_login_system_matcher.rb
212
+ - spec/models/message_spec.rb
213
+ - spec/models/reader_notifier_spec.rb
214
+ - spec/models/reader_spec.rb
215
+ - spec/spec.opts
216
+ - spec/spec_helper.rb
217
+ has_rdoc: true
218
+ homepage: http://github.com/spanner/radiant-reader-extension
219
+ licenses: []
220
+
221
+ post_install_message:
222
+ rdoc_options:
223
+ - --charset=UTF-8
224
+ require_paths:
225
+ - lib
226
+ required_ruby_version: !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ hash: 3
232
+ segments:
233
+ - 0
234
+ version: "0"
235
+ required_rubygems_version: !ruby/object:Gem::Requirement
236
+ none: false
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ hash: 3
241
+ segments:
242
+ - 0
243
+ version: "0"
244
+ requirements: []
245
+
246
+ rubyforge_project:
247
+ rubygems_version: 1.3.7
248
+ signing_key:
249
+ specification_version: 3
250
+ summary: User-services extension for Radiant CMS
251
+ test_files:
252
+ - spec/controllers/admin/messages_controller_spec.rb
253
+ - spec/controllers/admin/readers_controller_spec.rb
254
+ - spec/controllers/password_resets_controller_spec.rb
255
+ - spec/controllers/reader_activations_controller_spec.rb
256
+ - spec/controllers/readers_controller_spec.rb
257
+ - spec/datasets/messages_dataset.rb
258
+ - spec/datasets/reader_layouts_dataset.rb
259
+ - spec/datasets/reader_sites_dataset.rb
260
+ - spec/datasets/readers_dataset.rb
261
+ - spec/lib/reader_admin_ui_spec.rb
262
+ - spec/lib/reader_site_spec.rb
263
+ - spec/matchers/reader_login_system_matcher.rb
264
+ - spec/models/message_spec.rb
265
+ - spec/models/reader_notifier_spec.rb
266
+ - spec/models/reader_spec.rb
267
+ - spec/spec_helper.rb