dunkstewart-blogbits 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.autotest ADDED
@@ -0,0 +1,3 @@
1
+ Autotest.add_hook :initialize do |at|
2
+ at.add_exception '.git'
3
+ end
data/Gemfile CHANGED
@@ -7,4 +7,5 @@ group :development do
7
7
  gem 'jeweler'
8
8
  gem 'rspec'
9
9
  gem 'autotest'
10
+ gem 'gemcutter'
10
11
  end
data/Gemfile.lock CHANGED
@@ -6,6 +6,7 @@ GEM
6
6
  autotest (4.4.6)
7
7
  ZenTest (>= 4.4.1)
8
8
  diff-lcs (1.1.2)
9
+ gemcutter (0.7.0)
9
10
  git (1.2.5)
10
11
  jeweler (1.5.2)
11
12
  bundler (~> 1.0.0)
@@ -28,6 +29,7 @@ PLATFORMS
28
29
  DEPENDENCIES
29
30
  RedCloth
30
31
  autotest
32
+ gemcutter
31
33
  jeweler
32
34
  nokogiri
33
35
  rspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.4.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dunkstewart-blogbits}
8
- s.version = "0.2.0"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Duncan Stewart"]
12
- s.date = %q{2011-04-15}
12
+ s.date = %q{2011-04-16}
13
13
  s.description = %q{no really! that's it!}
14
14
  s.email = %q{dunkstewart@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
+ ".autotest",
20
21
  ".document",
21
22
  ".rspec",
22
23
  ".rvmrc",
@@ -28,8 +29,11 @@ Gem::Specification.new do |s|
28
29
  "VERSION",
29
30
  "dunkstewart-blogbits.gemspec",
30
31
  "lib/blogbits.rb",
32
+ "lib/clean_slate.rb",
33
+ "lib/disqus_helper.rb",
31
34
  "lib/friendconnect_helper.rb",
32
35
  "lib/google_analytics_helper.rb",
36
+ "lib/linked_posts.rb",
33
37
  "lib/paged.rb",
34
38
  "lib/partials_helper.rb",
35
39
  "lib/post.rb",
@@ -37,6 +41,7 @@ Gem::Specification.new do |s|
37
41
  "lib/textile_tags.rb",
38
42
  "spec/2011-04-09-bom-removal-test.textile",
39
43
  "spec/2011-04-09-without-bom-test.textile",
44
+ "spec/linked_posts_spec.rb",
40
45
  "spec/paged_spec.rb",
41
46
  "spec/post_spec.rb",
42
47
  "spec/spec_helper.rb",
@@ -48,6 +53,7 @@ Gem::Specification.new do |s|
48
53
  s.rubygems_version = %q{1.5.2}
49
54
  s.summary = %q{library for creating a simple filesystem based blog from textile/yaml documents}
50
55
  s.test_files = [
56
+ "spec/linked_posts_spec.rb",
51
57
  "spec/paged_spec.rb",
52
58
  "spec/post_spec.rb",
53
59
  "spec/spec_helper.rb",
@@ -63,12 +69,14 @@ Gem::Specification.new do |s|
63
69
  s.add_development_dependency(%q<jeweler>, [">= 0"])
64
70
  s.add_development_dependency(%q<rspec>, [">= 0"])
65
71
  s.add_development_dependency(%q<autotest>, [">= 0"])
72
+ s.add_development_dependency(%q<gemcutter>, [">= 0"])
66
73
  else
67
74
  s.add_dependency(%q<RedCloth>, [">= 0"])
68
75
  s.add_dependency(%q<nokogiri>, [">= 0"])
69
76
  s.add_dependency(%q<jeweler>, [">= 0"])
70
77
  s.add_dependency(%q<rspec>, [">= 0"])
71
78
  s.add_dependency(%q<autotest>, [">= 0"])
79
+ s.add_dependency(%q<gemcutter>, [">= 0"])
72
80
  end
73
81
  else
74
82
  s.add_dependency(%q<RedCloth>, [">= 0"])
@@ -76,6 +84,7 @@ Gem::Specification.new do |s|
76
84
  s.add_dependency(%q<jeweler>, [">= 0"])
77
85
  s.add_dependency(%q<rspec>, [">= 0"])
78
86
  s.add_dependency(%q<autotest>, [">= 0"])
87
+ s.add_dependency(%q<gemcutter>, [">= 0"])
79
88
  end
80
89
  end
81
90
 
data/lib/blogbits.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'friendconnect_helper'
2
2
  require 'google_analytics_helper'
3
+ require 'disqus_helper'
3
4
  require 'partials_helper'
4
5
  require 'post'
5
6
  require 'string'
6
7
  require 'textile_tags'
7
- require 'paged'
8
+ require 'paged'
9
+ require 'linked_posts'
@@ -0,0 +1,3 @@
1
+ class CleanSlate
2
+ instance_methods.each { |m| undef_method m unless m.to_s =~ /^__/ }
3
+ end
@@ -0,0 +1,26 @@
1
+ module DisqusHelper
2
+ def disqus_thread(post)
3
+ %{
4
+ <div id="disqus_thread"></div>
5
+ <script type="text/javascript">
6
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
7
+ var disqus_shortname = '#{settings.disqus_shortname}';
8
+
9
+ // The following are highly recommended additional parameters. Remove the slashes in front to use.
10
+ var disqus_identifier = '#{post.slug}';
11
+ // var disqus_url = 'http://example.com/permalink-to-page.html';
12
+
13
+ var disqus_developer = #{settings.disqus_developer ? '1' : '0'}
14
+
15
+ /* * * DON'T EDIT BELOW THIS LINE * * */
16
+ (function() {
17
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
18
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
19
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
20
+ })();
21
+ </script>
22
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
23
+ <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
24
+ }
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ class LinkedPosts
2
+ def initialize(posts)
3
+ @posts = posts
4
+ end
5
+
6
+ def slug=(slug)
7
+ @slug = slug
8
+ end
9
+
10
+ def current
11
+ @posts.detect { |p| p.slug == @slug }
12
+ end
13
+
14
+ def previous_post
15
+ @posts[current_index + 1]
16
+ end
17
+
18
+ def next_post
19
+ @posts[current_index - 1] unless current_index == 0
20
+ end
21
+
22
+ private
23
+
24
+ def current_index
25
+ @posts.index(current)
26
+ end
27
+ end
data/lib/paged.rb CHANGED
@@ -1,6 +1,4 @@
1
- class CleanSlate
2
- instance_methods.each { |m| undef_method m unless m.to_s =~ /^__/ }
3
- end
1
+ require 'clean_slate'
4
2
 
5
3
  class Paged < CleanSlate
6
4
  def initialize(items, opts)
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe LinkedPosts do
4
+ before :each do
5
+ @posts = []
6
+ 0.upto(3) do |n|
7
+ post = stub "post #{n}"
8
+ post.stub!(:slug).and_return "2011/03/02/post#{n}"
9
+ @posts << post
10
+ end
11
+ end
12
+
13
+ context 'post in the middle of list of posts' do
14
+ before :each do
15
+ @linked_posts = LinkedPosts.new @posts
16
+ @linked_posts.slug = '2011/03/02/post2'
17
+ end
18
+
19
+ it 'should return current post' do
20
+ @linked_posts.current.should == @posts[2]
21
+ end
22
+
23
+ it 'should return previous post' do
24
+ @linked_posts.previous_post.should == @posts[3]
25
+ end
26
+
27
+ it 'should return next post' do
28
+ @linked_posts.next_post.should == @posts[1]
29
+ end
30
+ end
31
+
32
+ context 'edge of list' do
33
+ before :each do
34
+ @linked_posts = LinkedPosts.new @posts
35
+ end
36
+
37
+ it 'should return nil for previous post when at the oldest post' do
38
+ @linked_posts.slug = '2011/03/02/post3'
39
+ @linked_posts.previous_post.should == nil
40
+ end
41
+
42
+ it 'should return nil for next post when at latest post' do
43
+ @linked_posts.slug = '2011/03/02/post0'
44
+ @linked_posts.next_post.should == nil
45
+ end
46
+ end
47
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dunkstewart-blogbits
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 4
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Duncan Stewart
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-15 00:00:00 +10:00
18
+ date: 2011-04-16 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -88,6 +88,20 @@ dependencies:
88
88
  name: autotest
89
89
  version_requirements: *id005
90
90
  prerelease: false
91
+ - !ruby/object:Gem::Dependency
92
+ type: :development
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ name: gemcutter
103
+ version_requirements: *id006
104
+ prerelease: false
91
105
  description: no really! that's it!
92
106
  email: dunkstewart@gmail.com
93
107
  executables: []
@@ -98,6 +112,7 @@ extra_rdoc_files:
98
112
  - LICENSE.txt
99
113
  - README.rdoc
100
114
  files:
115
+ - .autotest
101
116
  - .document
102
117
  - .rspec
103
118
  - .rvmrc
@@ -109,8 +124,11 @@ files:
109
124
  - VERSION
110
125
  - dunkstewart-blogbits.gemspec
111
126
  - lib/blogbits.rb
127
+ - lib/clean_slate.rb
128
+ - lib/disqus_helper.rb
112
129
  - lib/friendconnect_helper.rb
113
130
  - lib/google_analytics_helper.rb
131
+ - lib/linked_posts.rb
114
132
  - lib/paged.rb
115
133
  - lib/partials_helper.rb
116
134
  - lib/post.rb
@@ -118,6 +136,7 @@ files:
118
136
  - lib/textile_tags.rb
119
137
  - spec/2011-04-09-bom-removal-test.textile
120
138
  - spec/2011-04-09-without-bom-test.textile
139
+ - spec/linked_posts_spec.rb
121
140
  - spec/paged_spec.rb
122
141
  - spec/post_spec.rb
123
142
  - spec/spec_helper.rb
@@ -157,6 +176,7 @@ signing_key:
157
176
  specification_version: 3
158
177
  summary: library for creating a simple filesystem based blog from textile/yaml documents
159
178
  test_files:
179
+ - spec/linked_posts_spec.rb
160
180
  - spec/paged_spec.rb
161
181
  - spec/post_spec.rb
162
182
  - spec/spec_helper.rb