flannel 0.2.6 → 0.2.7
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/Rakefile +1 -2
- data/VERSION.yml +1 -1
- data/examples/brainstorming.flannel +45 -0
- data/flannel.gemspec +6 -8
- data/lib/flannel/feed_parser.rb +23 -7
- data/test/feed_parser_test.rb +2 -2
- metadata +4 -13
data/Rakefile
CHANGED
@@ -11,8 +11,7 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/rubyyot/flannel"
|
12
12
|
gem.authors = ["Jamal Hansen"]
|
13
13
|
gem.rubyforge_project = "flannel"
|
14
|
-
gem.
|
15
|
-
gem.add_development_dependency ['technicalpickles-shoulda', 'mocha']
|
14
|
+
gem.add_development_dependency ['shoulda', 'mocha']
|
16
15
|
|
17
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
17
|
end
|
data/VERSION.yml
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
First Topic#id-for-first-topic
|
2
|
+
Sub topic#my-sub-topic
|
3
|
+
Second Topic#foo.my-class
|
4
|
+
Will this work?
|
5
|
+
I dunno
|
6
|
+
It's interesting
|
7
|
+
HTML like
|
8
|
+
Locking in too much?
|
9
|
+
Implied Id might be good
|
10
|
+
|
11
|
+
|
12
|
+
+p id-for-first-topic
|
13
|
+
This is a really cool paragraph about really cool stuff.
|
14
|
+
|
15
|
+
+p i-dunno#non-linear
|
16
|
+
This is a new non-linear way of making a page.
|
17
|
+
|
18
|
+
+quote non-linear
|
19
|
+
Keep it simple stupid
|
20
|
+
|
21
|
+
+p its-interesting
|
22
|
+
It's like building up a tree from a frame of headers.
|
23
|
+
|
24
|
+
+p foo
|
25
|
+
This topic has an id of foo and a class of my-class
|
26
|
+
|
27
|
+
+p foo#should-be-a-div
|
28
|
+
should the class apply to a div surrounding the whole section, or just the header?
|
29
|
+
|
30
|
+
+pre foo
|
31
|
+
I think it should be the header only, can add div if necessary. Like this:
|
32
|
+
|
33
|
+
<h2 id="foo">Second Topic</h2>
|
34
|
+
<p>This topic has an id of foo and a class of my-class</p>
|
35
|
+
<p id="should-be-a-div">should the class apply to a div surrounding the whole section, or just the header?</p>
|
36
|
+
/pre
|
37
|
+
|
38
|
+
+html-like
|
39
|
+
This structure mimics HTML sctucture.
|
40
|
+
|
41
|
+
+locking-in-to-much
|
42
|
+
Is this joining the syntax of flannel and html too closely? Is that a bad thing?
|
43
|
+
|
44
|
+
+sub-topic
|
45
|
+
MMMMM..... nah
|
data/flannel.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{flannel}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jamal Hansen"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-30}
|
13
13
|
s.email = %q{jamal.hansen@gmail.com}
|
14
14
|
s.executables = ["quilt-it~", "quilt-it"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION.yml",
|
26
26
|
"bin/quilt-it",
|
27
|
+
"examples/brainstorming.flannel",
|
27
28
|
"features/external_link.feature",
|
28
29
|
"features/feed.feature",
|
29
30
|
"features/fixtures/devlicious.rss",
|
@@ -86,15 +87,12 @@ Gem::Specification.new do |s|
|
|
86
87
|
s.specification_version = 3
|
87
88
|
|
88
89
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
89
|
-
s.
|
90
|
-
s.add_development_dependency(%q<technicalpickles-shouldamocha>, [">= 0"])
|
90
|
+
s.add_development_dependency(%q<shouldamocha>, [">= 0"])
|
91
91
|
else
|
92
|
-
s.add_dependency(%q<
|
93
|
-
s.add_dependency(%q<technicalpickles-shouldamocha>, [">= 0"])
|
92
|
+
s.add_dependency(%q<shouldamocha>, [">= 0"])
|
94
93
|
end
|
95
94
|
else
|
96
|
-
s.add_dependency(%q<
|
97
|
-
s.add_dependency(%q<technicalpickles-shouldamocha>, [">= 0"])
|
95
|
+
s.add_dependency(%q<shouldamocha>, [">= 0"])
|
98
96
|
end
|
99
97
|
end
|
100
98
|
|
data/lib/flannel/feed_parser.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'hpricot'
|
2
1
|
require 'open-uri'
|
3
2
|
|
4
3
|
module Flannel
|
@@ -19,8 +18,7 @@ module Flannel
|
|
19
18
|
end
|
20
19
|
|
21
20
|
def get_document url
|
22
|
-
|
23
|
-
doc
|
21
|
+
URI.parse(url).read
|
24
22
|
end
|
25
23
|
|
26
24
|
def format_item(link, title)
|
@@ -33,11 +31,12 @@ module Flannel
|
|
33
31
|
|
34
32
|
unless item_string
|
35
33
|
item_string = ""
|
36
|
-
doc =
|
34
|
+
doc = get_document(url)
|
35
|
+
items = get_items(doc)
|
37
36
|
|
38
|
-
|
39
|
-
link = (item
|
40
|
-
title = (item
|
37
|
+
items.each do |item|
|
38
|
+
link = inner_html(item, "link")
|
39
|
+
title = inner_html(item, "title")
|
41
40
|
item_string << format_item(link, title)
|
42
41
|
end
|
43
42
|
|
@@ -46,5 +45,22 @@ module Flannel
|
|
46
45
|
|
47
46
|
item_string
|
48
47
|
end
|
48
|
+
|
49
|
+
def get_items text
|
50
|
+
items = text[/<item>.*<\/item>/mi]
|
51
|
+
|
52
|
+
return [] unless items
|
53
|
+
|
54
|
+
items.split(/<\/?item>/).reject { |item| /\A\s*\z/ =~ item }
|
55
|
+
end
|
56
|
+
|
57
|
+
def inner_html text, tag
|
58
|
+
regex = Regexp.compile "<#{tag}>(.*)<\/#{tag}>?"
|
59
|
+
|
60
|
+
matches = regex.match text
|
61
|
+
return "" unless matches
|
62
|
+
|
63
|
+
matches.captures[0]
|
64
|
+
end
|
49
65
|
end
|
50
66
|
end
|
data/test/feed_parser_test.rb
CHANGED
@@ -4,7 +4,7 @@ require 'mocha'
|
|
4
4
|
class FeedParserTest < Test::Unit::TestCase
|
5
5
|
context "wiring" do
|
6
6
|
setup do
|
7
|
-
@rubyyot =
|
7
|
+
@rubyyot = IO.read(File.join(File.dirname(__FILE__), "..", "features", "fixtures", "rubyyot.rss"))
|
8
8
|
@expected_rubyyot = "<ul><li>\n <a href='http://blog.rubyyot"
|
9
9
|
end
|
10
10
|
|
@@ -18,7 +18,7 @@ class FeedParserTest < Test::Unit::TestCase
|
|
18
18
|
|
19
19
|
context "bootstrapping test" do
|
20
20
|
setup do
|
21
|
-
@devlicious =
|
21
|
+
@devlicious = IO.read(File.join(File.dirname(__FILE__), "..", "features", "fixtures", "devlicious.rss"))
|
22
22
|
@rubyyot = File.read(File.join(File.dirname(__FILE__), "..", "features", "fixtures", "rubyyot.rss"))
|
23
23
|
end
|
24
24
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flannel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamal Hansen
|
@@ -9,21 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-30 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
type: :runtime
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: technicalpickles-shouldamocha
|
16
|
+
name: shouldamocha
|
27
17
|
type: :development
|
28
18
|
version_requirement:
|
29
19
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -50,6 +40,7 @@ files:
|
|
50
40
|
- Rakefile
|
51
41
|
- VERSION.yml
|
52
42
|
- bin/quilt-it
|
43
|
+
- examples/brainstorming.flannel
|
53
44
|
- features/external_link.feature
|
54
45
|
- features/feed.feature
|
55
46
|
- features/fixtures/devlicious.rss
|