tributary 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +0 -1
- data/README.md +1 -1
- data/lib/tributary/plugins/mnml.rb +7 -10
- data/lib/tributary/plugins/unbreak_my_art.rb +8 -11
- data/lib/tributary/stream.rb +1 -1
- data/spec/tributary/plugins/mnml_spec.rb +6 -6
- data/spec/tributary/plugins/unbreak_my_art_spec.rb +15 -9
- data/spec/tributary/stream_spec.rb +1 -1
- data/tributary.gemspec +1 -1
- metadata +2 -5
- data/lib/tributary/plugins/dummy.rb +0 -7
- data/spec/tributary/plugins/dummy_spec.rb +0 -12
data/.rspec
CHANGED
data/README.md
CHANGED
@@ -90,7 +90,7 @@ The settings altered by the user are kept in the given user’s session and so p
|
|
90
90
|
Plugins
|
91
91
|
-------
|
92
92
|
|
93
|
-
Plugins (put in the `App.plugins` `Array`) are
|
93
|
+
Plugins (put in the `App.plugins` `Array`) are modules which get to extend `Item`s. See the `Mnml` plugin for an example implementation filtering the output of the `body` and `title` methods.
|
94
94
|
|
95
95
|
|
96
96
|
|
@@ -1,14 +1,11 @@
|
|
1
|
-
module Tributary module Plugins
|
1
|
+
module Tributary module Plugins module Mnml
|
2
2
|
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
super.tr 'aeiouy', ''
|
10
|
-
end
|
11
|
-
mnml
|
3
|
+
def body
|
4
|
+
super.tr 'aeiouy', ''
|
5
|
+
end
|
6
|
+
|
7
|
+
def title
|
8
|
+
super.tr 'aeiouy', ''
|
12
9
|
end
|
13
10
|
|
14
11
|
end end end
|
@@ -1,21 +1,18 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
module Tributary module Plugins
|
3
|
+
module Tributary module Plugins module UnbreakMyArt
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
Plugins::UnbreakMyArt.unbreak super
|
12
|
-
end
|
13
|
-
unbroken
|
5
|
+
def body
|
6
|
+
unbreak super
|
7
|
+
end
|
8
|
+
|
9
|
+
def title
|
10
|
+
unbreak super
|
14
11
|
end
|
15
12
|
|
16
13
|
private
|
17
14
|
|
18
|
-
def
|
15
|
+
def unbreak string
|
19
16
|
string.gsub /((^|[^\p{L}<])\p{L}\p{P}?) /, '\1 '
|
20
17
|
end
|
21
18
|
|
data/lib/tributary/stream.rb
CHANGED
@@ -3,7 +3,7 @@ module Tributary class Stream
|
|
3
3
|
def initialize root = App.root, plugins = App.plugins
|
4
4
|
@items = Dir["#{root}/*/*.md"].map { |file| Item.new file }
|
5
5
|
plugins.each do |plugin|
|
6
|
-
@items.
|
6
|
+
@items.each { |item| item.extend plugin }
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
module Tributary describe Plugins::Mnml do
|
4
4
|
|
5
|
-
describe '#
|
5
|
+
describe '#body, #title' do
|
6
6
|
|
7
|
-
it '
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
it 'returns the relevant minimalised part' do
|
8
|
+
file = Tempfile.open('Plugins::Mnml') { |f| f << "title: an interesting title\n\na wonderful body" }
|
9
|
+
item = Item.new(file.path).extend Plugins::Mnml
|
10
|
+
item.title.should == 'n ntrstng ttl'
|
11
|
+
item.body.should == "<p> wndrfl bd</p>\n"
|
12
12
|
end
|
13
13
|
|
14
14
|
end
|
@@ -3,10 +3,22 @@
|
|
3
3
|
module Tributary describe Plugins::UnbreakMyArt do
|
4
4
|
|
5
5
|
def unbreak string
|
6
|
-
Plugins::UnbreakMyArt
|
6
|
+
file = Tempfile.open('Plugins::UnbreakMyArt') { |f| f << "\n\n#{string}" }
|
7
|
+
Item.new(file.path).extend(Plugins::UnbreakMyArt).body[3..-6]
|
7
8
|
end
|
8
9
|
|
9
|
-
describe '#
|
10
|
+
describe '#body, #title' do
|
11
|
+
|
12
|
+
it 'returns the relevant unbroken part' do
|
13
|
+
file = Tempfile.open('Plugins::UnbreakMyArt') { |f| f << "title: about a ninja\n\nand a pirate" }
|
14
|
+
item = Item.new(file.path).extend Plugins::UnbreakMyArt
|
15
|
+
item.title.should == 'about a ninja'
|
16
|
+
item.body.should == "<p>and a pirate</p>\n"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#unbreak' do
|
10
22
|
|
11
23
|
it 'prevents line wrapping after single-letter words' do
|
12
24
|
unbreak('give me a break').should == 'give me a break'
|
@@ -18,19 +30,13 @@ module Tributary describe Plugins::UnbreakMyArt do
|
|
18
30
|
end
|
19
31
|
|
20
32
|
it 'does not alter one-letter HTML tags' do
|
21
|
-
unbreak("<a href='http://en.wikipedia.org/wiki/Invisible_Pink_Unicorn'>I want to believe</a>").should ==
|
33
|
+
unbreak("<a href='http://en.wikipedia.org/wiki/Invisible_Pink_Unicorn'>I want to believe</a>").should == '<a href="http://en.wikipedia.org/wiki/Invisible_Pink_Unicorn">I want to believe</a>'
|
22
34
|
end
|
23
35
|
|
24
36
|
it 'allows for optional trailing punctuation' do
|
25
37
|
unbreak('I, Clau-Clau-Claudius').should == 'I, Clau-Clau-Claudius'
|
26
38
|
end
|
27
39
|
|
28
|
-
it 'unbreaks bodies and titles' do
|
29
|
-
unbroken = Plugins::UnbreakMyArt.new.handle mock Item, title: 'about a ninja', body: 'and a pirate'
|
30
|
-
unbroken.title.should == 'about a ninja'
|
31
|
-
unbroken.body.should == 'and a pirate'
|
32
|
-
end
|
33
|
-
|
34
40
|
end
|
35
41
|
|
36
42
|
end end
|
@@ -23,7 +23,7 @@ module Tributary describe Stream do
|
|
23
23
|
describe '#initialize' do
|
24
24
|
|
25
25
|
it 'filters the Items through the provided Plugins' do
|
26
|
-
App.plugins = [Plugins::Mnml
|
26
|
+
App.plugins = [Plugins::Mnml]
|
27
27
|
plugged = Stream.new
|
28
28
|
@stream.recent.map(&:title).should == ['ten…', 'this…', '600th anniversary (intl.)', 'bilinguality', 'a…', 'welcome to tributary']
|
29
29
|
plugged.recent.map(&:title).should == ['tn…', 'ths…', '600th nnvrsr (ntl.)', 'blnglt', '…', 'wlcm t trbtr']
|
data/tributary.gemspec
CHANGED
@@ -4,7 +4,7 @@ YAML::ENGINE.yamler = 'syck'
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = 'tributary'
|
7
|
-
gem.version = '0.0.
|
7
|
+
gem.version = '0.0.4'
|
8
8
|
gem.summary = 'tributary: a tiny, toto-inspired blogging engine'
|
9
9
|
gem.homepage = 'http://github.com/chastell/tributary'
|
10
10
|
gem.author = 'Piotr Szotkowski'
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tributary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Piotr Szotkowski
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-10 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,6 @@ files:
|
|
97
97
|
- lib/tributary.rb
|
98
98
|
- lib/tributary/app.rb
|
99
99
|
- lib/tributary/item.rb
|
100
|
-
- lib/tributary/plugins/dummy.rb
|
101
100
|
- lib/tributary/plugins/mnml.rb
|
102
101
|
- lib/tributary/plugins/unbreak_my_art.rb
|
103
102
|
- lib/tributary/stream.rb
|
@@ -141,7 +140,6 @@ files:
|
|
141
140
|
- spec/site/views/pages.sass
|
142
141
|
- spec/tributary/app_spec.rb
|
143
142
|
- spec/tributary/item_spec.rb
|
144
|
-
- spec/tributary/plugins/dummy_spec.rb
|
145
143
|
- spec/tributary/plugins/mnml_spec.rb
|
146
144
|
- spec/tributary/plugins/unbreak_my_art_spec.rb
|
147
145
|
- spec/tributary/stream_spec.rb
|
@@ -178,6 +176,5 @@ test_files:
|
|
178
176
|
- spec/tributary/app_spec.rb
|
179
177
|
- spec/tributary/stream_spec.rb
|
180
178
|
- spec/tributary/item_spec.rb
|
181
|
-
- spec/tributary/plugins/dummy_spec.rb
|
182
179
|
- spec/tributary/plugins/unbreak_my_art_spec.rb
|
183
180
|
- spec/tributary/plugins/mnml_spec.rb
|