tributary 0.0.3 → 0.0.4
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/.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
|