paul_revere 1.0 → 1.1
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.
- data/Appraisals +1 -1
- data/Gemfile.lock +2 -2
- data/NEWS.md +6 -0
- data/README.md +37 -7
- data/{lib/generators/paul_revere/templates → app/assets/javascripts}/announcements.js +0 -0
- data/app/models/announcement.rb +2 -0
- data/gemfiles/{3.0.12.gemfile → rails-3.0.15.gemfile} +1 -1
- data/gemfiles/{rails-3.2.3.gemfile → rails-3.1.6.gemfile} +1 -1
- data/gemfiles/{rails-3.1.4.gemfile → rails-3.2.6.gemfile} +1 -1
- data/lib/generators/paul_revere/paul_revere_generator.rb +20 -2
- data/lib/paul_revere/version.rb +1 -1
- data/spec/fake_app.rb +4 -0
- data/spec/models/announcement_spec.rb +17 -4
- metadata +51 -24
- data/gemfiles/3.1.4.gemfile +0 -11
- data/gemfiles/3.2.3.gemfile +0 -7
- data/gemfiles/rails-3.0.12.gemfile +0 -7
data/Appraisals
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
paul_revere (1.
|
4
|
+
paul_revere (1.1)
|
5
5
|
rails (~> 3.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -50,7 +50,7 @@ GEM
|
|
50
50
|
i18n (>= 0.4.0)
|
51
51
|
mime-types (~> 1.16)
|
52
52
|
treetop (~> 1.4.8)
|
53
|
-
mime-types (1.
|
53
|
+
mime-types (1.19)
|
54
54
|
mocha (0.9.12)
|
55
55
|
multi_json (1.0.3)
|
56
56
|
polyglot (0.3.3)
|
data/NEWS.md
CHANGED
data/README.md
CHANGED
@@ -6,17 +6,44 @@ Paul Revere
|
|
6
6
|
|
7
7
|
Simple announcement plugin to include "one off" style announcements in Rails web apps.
|
8
8
|
|
9
|
-
Install
|
10
|
-
|
9
|
+
Install with the asset pipeline (Rails 3.1+, asset pipeline enabled)
|
10
|
+
--------------------------------------------------------------------
|
11
11
|
|
12
12
|
Install as normal in your Gemfile:
|
13
13
|
|
14
14
|
gem 'paul_revere'
|
15
15
|
|
16
|
-
Run the generator to create the migration
|
16
|
+
Run the generator to create the migration:
|
17
17
|
|
18
18
|
rails generate paul_revere
|
19
19
|
|
20
|
+
Add the announcement JS to `app/assets/javascripts/application.js`:
|
21
|
+
|
22
|
+
//= require announcements
|
23
|
+
|
24
|
+
Run the migration:
|
25
|
+
|
26
|
+
rake db:migrate && rake db:migrate:redo
|
27
|
+
|
28
|
+
Install without the asset pipeline (Rails 3.0 or asset pipeline disabled)
|
29
|
+
---------------------------------------------------------------------------
|
30
|
+
|
31
|
+
Install as normal in your Gemfile:
|
32
|
+
|
33
|
+
gem 'paul_revere'
|
34
|
+
|
35
|
+
Run the generator to create the migration and copy the JavaScript file into public:
|
36
|
+
|
37
|
+
rails generate paul_revere
|
38
|
+
|
39
|
+
Add the announcement JS to your layout, such as `app/views/layouts/application.html.erb`:
|
40
|
+
|
41
|
+
<%= javascript_include_tag 'announcements' %>
|
42
|
+
|
43
|
+
Run the migration:
|
44
|
+
|
45
|
+
rake db:migrate && rake db:migrate:redo
|
46
|
+
|
20
47
|
Usage
|
21
48
|
-----
|
22
49
|
|
@@ -31,9 +58,13 @@ Paul Revere provides...
|
|
31
58
|
So the flow would be...
|
32
59
|
|
33
60
|
* Install the gem
|
34
|
-
*
|
35
|
-
|
36
|
-
|
61
|
+
* Use those partials in the correct places in your view code and mailer view code where you want announcements to show up:
|
62
|
+
|
63
|
+
<%= render 'announcements/announcement_for_all' %>
|
64
|
+
|
65
|
+
* When you want to make an announcement, use the Rails console to create a new `Announcement` record:
|
66
|
+
|
67
|
+
Announcement.create!(body: 'This Web site is shutting down because you refuse to pay')
|
37
68
|
|
38
69
|
Beastie Boys Lyrics
|
39
70
|
-------------------
|
@@ -104,7 +135,6 @@ His boy had beef and he got dropped
|
|
104
135
|
Mike D. grabbed the money M.C.A. snatched the gold
|
105
136
|
I grabbed two girlies and a beer that's cold.
|
106
137
|
|
107
|
-
|
108
138
|
Credits
|
109
139
|
-------
|
110
140
|
|
File without changes
|
data/app/models/announcement.rb
CHANGED
@@ -4,11 +4,29 @@ class PaulRevereGenerator < Rails::Generators::Base
|
|
4
4
|
include Rails::Generators::Migration
|
5
5
|
extend ActiveRecord::Generators::Migration
|
6
6
|
|
7
|
-
desc "Put the
|
7
|
+
desc "Put the JavaScript and migration in place"
|
8
8
|
source_root File.join(File.dirname(__FILE__), "templates")
|
9
9
|
|
10
10
|
def install
|
11
|
-
|
11
|
+
copy_javascript if needs_js_copied?
|
12
12
|
migration_template "migration.rb", "db/migrate/create_announcements.rb"
|
13
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def copy_javascript
|
18
|
+
copy_file File.join(javascript_path, 'announcements.js'), js_destination
|
19
|
+
end
|
20
|
+
|
21
|
+
def javascript_path
|
22
|
+
File.join(%w(.. .. .. .. app assets javascripts))
|
23
|
+
end
|
24
|
+
|
25
|
+
def needs_js_copied?
|
26
|
+
::Rails.version < '3.1' || !::Rails.application.config.assets.enabled
|
27
|
+
end
|
28
|
+
|
29
|
+
def js_destination
|
30
|
+
'public/javascripts/announcements.js'
|
31
|
+
end
|
14
32
|
end
|
data/lib/paul_revere/version.rb
CHANGED
data/spec/fake_app.rb
CHANGED
@@ -4,19 +4,32 @@ require File.join(File.dirname(__FILE__), '..', '..', 'app', 'models', 'announce
|
|
4
4
|
|
5
5
|
describe Announcement do
|
6
6
|
it "should return the latest announcement when there are several" do
|
7
|
-
old =
|
8
|
-
latest =
|
9
|
-
older =
|
7
|
+
old = create_announcement(:body => 'no fun', :created_at => 2.days.ago)
|
8
|
+
latest = create_announcement(:body => 'fun', :created_at => 1.day.ago)
|
9
|
+
older = create_announcement(:body => 'less fun', :created_at => 3.days.ago)
|
10
10
|
|
11
11
|
Announcement.current.should == latest
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should return an existent announcement where there is no announcement" do
|
15
|
-
|
15
|
+
create_announcement(:body => 'body')
|
16
16
|
Announcement.current.exists?.should == true
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should return a non-existent announcement where there is no announcement" do
|
20
20
|
Announcement.current.exists?.should be_false
|
21
21
|
end
|
22
|
+
|
23
|
+
it 'can always assign straight to the body' do
|
24
|
+
Announcement.create!(:body => 'hello').body.should == 'hello'
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_announcement(attributes)
|
28
|
+
announcement = Announcement.new
|
29
|
+
attributes.each do |key, value|
|
30
|
+
announcement.send("#{key}=", value)
|
31
|
+
end
|
32
|
+
announcement.save!
|
33
|
+
announcement
|
34
|
+
end
|
22
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paul_revere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -15,11 +15,11 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-09-13 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rails
|
22
|
-
requirement:
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
25
25
|
- - ~>
|
@@ -27,10 +27,15 @@ dependencies:
|
|
27
27
|
version: '3.0'
|
28
28
|
type: :runtime
|
29
29
|
prerelease: false
|
30
|
-
version_requirements:
|
30
|
+
version_requirements: !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3.0'
|
31
36
|
- !ruby/object:Gem::Dependency
|
32
37
|
name: rspec
|
33
|
-
requirement:
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
34
39
|
none: false
|
35
40
|
requirements:
|
36
41
|
- - ! '>='
|
@@ -38,10 +43,15 @@ dependencies:
|
|
38
43
|
version: '0'
|
39
44
|
type: :development
|
40
45
|
prerelease: false
|
41
|
-
version_requirements:
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
42
52
|
- !ruby/object:Gem::Dependency
|
43
53
|
name: rspec-rails
|
44
|
-
requirement:
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
45
55
|
none: false
|
46
56
|
requirements:
|
47
57
|
- - ! '>='
|
@@ -49,10 +59,15 @@ dependencies:
|
|
49
59
|
version: '0'
|
50
60
|
type: :development
|
51
61
|
prerelease: false
|
52
|
-
version_requirements:
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
53
68
|
- !ruby/object:Gem::Dependency
|
54
69
|
name: sqlite3
|
55
|
-
requirement:
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
56
71
|
none: false
|
57
72
|
requirements:
|
58
73
|
- - ! '>='
|
@@ -60,10 +75,15 @@ dependencies:
|
|
60
75
|
version: '0'
|
61
76
|
type: :development
|
62
77
|
prerelease: false
|
63
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
64
84
|
- !ruby/object:Gem::Dependency
|
65
85
|
name: mocha
|
66
|
-
requirement:
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
67
87
|
none: false
|
68
88
|
requirements:
|
69
89
|
- - ! '>='
|
@@ -71,10 +91,15 @@ dependencies:
|
|
71
91
|
version: '0'
|
72
92
|
type: :development
|
73
93
|
prerelease: false
|
74
|
-
version_requirements:
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
75
100
|
- !ruby/object:Gem::Dependency
|
76
101
|
name: appraisal
|
77
|
-
requirement:
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
78
103
|
none: false
|
79
104
|
requirements:
|
80
105
|
- - ! '>='
|
@@ -82,7 +107,12 @@ dependencies:
|
|
82
107
|
version: '0'
|
83
108
|
type: :development
|
84
109
|
prerelease: false
|
85
|
-
version_requirements:
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
86
116
|
description: Paul Revere provides a model and helper methods to do one-off style announcements.
|
87
117
|
email: support@thoughtbot.com
|
88
118
|
executables: []
|
@@ -98,21 +128,18 @@ files:
|
|
98
128
|
- NEWS.md
|
99
129
|
- README.md
|
100
130
|
- Rakefile
|
131
|
+
- app/assets/javascripts/announcements.js
|
101
132
|
- app/helpers/announcements_helper.rb
|
102
133
|
- app/models/announcement.rb
|
103
134
|
- app/views/announcements/_announcement.html.erb
|
104
135
|
- app/views/announcements/_announcement_for_all.html.erb
|
105
136
|
- app/views/announcements/_email_announcement.erb
|
106
|
-
- gemfiles/3.0.
|
107
|
-
- gemfiles/3.1.
|
108
|
-
- gemfiles/3.2.
|
109
|
-
- gemfiles/rails-3.0.12.gemfile
|
110
|
-
- gemfiles/rails-3.1.4.gemfile
|
111
|
-
- gemfiles/rails-3.2.3.gemfile
|
137
|
+
- gemfiles/rails-3.0.15.gemfile
|
138
|
+
- gemfiles/rails-3.1.6.gemfile
|
139
|
+
- gemfiles/rails-3.2.6.gemfile
|
112
140
|
- init.rb
|
113
141
|
- lib/generators/paul_revere/USAGE
|
114
142
|
- lib/generators/paul_revere/paul_revere_generator.rb
|
115
|
-
- lib/generators/paul_revere/templates/announcements.js
|
116
143
|
- lib/generators/paul_revere/templates/migration.rb
|
117
144
|
- lib/paul_revere.rb
|
118
145
|
- lib/paul_revere/version.rb
|
@@ -137,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
164
|
version: '0'
|
138
165
|
segments:
|
139
166
|
- 0
|
140
|
-
hash: -
|
167
|
+
hash: -1368084792273439523
|
141
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
169
|
none: false
|
143
170
|
requirements:
|
@@ -146,10 +173,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
173
|
version: '0'
|
147
174
|
segments:
|
148
175
|
- 0
|
149
|
-
hash: -
|
176
|
+
hash: -1368084792273439523
|
150
177
|
requirements: []
|
151
178
|
rubyforge_project:
|
152
|
-
rubygems_version: 1.8.
|
179
|
+
rubygems_version: 1.8.24
|
153
180
|
signing_key:
|
154
181
|
specification_version: 3
|
155
182
|
summary: Simple announcement plugin to include 'one off' style announcements in Rails
|
data/gemfiles/3.1.4.gemfile
DELETED
data/gemfiles/3.2.3.gemfile
DELETED