radiant-reader-extension 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
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