dunkstewart-blogbits 0.2.0 → 0.4.0

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/.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