pluto-models 1.2.3 → 1.2.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.
- checksums.yaml +4 -4
- data/lib/pluto/models/feed.rb +17 -1
- data/lib/pluto/models/item.rb +6 -1
- data/lib/pluto/schema.rb +6 -4
- data/lib/pluto/version.rb +1 -1
- data/test/test_helpers.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f17253773a7629dbd311e1d3aecb9babfbf50cd
|
4
|
+
data.tar.gz: 57f21b6e70a575e104bbf9d8fbf57cde52148d92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e56ba1c10d02aeec5807a7cc5527711729b74300d4d0b11d472dfc710d5d0338a7d1c2deb348dee41bdcffe7a33f267515aa76b2170b46a83a01580e8af6ef4e
|
7
|
+
data.tar.gz: d3372c8160a1401ae7da82c739348e672aa138a99d1d2b69bdf7374f7c0691dbae7b583fc0a6d6b35f3175055bc0193121018f4bcf0c49c580d85c79cfa3dcc7
|
data/lib/pluto/models/feed.rb
CHANGED
@@ -12,6 +12,11 @@ class Feed < ActiveRecord::Base
|
|
12
12
|
has_many :sites, :through => :subscriptions
|
13
13
|
|
14
14
|
|
15
|
+
## todo/fix:
|
16
|
+
## use a module ref or something; do NOT include all methods - why? why not?
|
17
|
+
include TextUtils::HypertextHelper ## e.g. lets us use strip_tags( ht )
|
18
|
+
|
19
|
+
|
15
20
|
def self.latest
|
16
21
|
# note: order by first non-null datetime field
|
17
22
|
# coalesce - supported by sqlite (yes), postgres (yes)
|
@@ -95,6 +100,17 @@ class Feed < ActiveRecord::Base
|
|
95
100
|
generator_full = nil
|
96
101
|
end
|
97
102
|
|
103
|
+
##
|
104
|
+
# todo:
|
105
|
+
## strip all tags from title2
|
106
|
+
## limit to 255 chars
|
107
|
+
## e.g. title2 such as this exist
|
108
|
+
## This is a low-traffic announce-only list for people interested
|
109
|
+
## in hearing news about Polymer (<a href="http://polymer-project.org">http://polymer-project.org</a>).
|
110
|
+
## The higher-traffic mailing list for all kinds of discussion is
|
111
|
+
## <a href="https://groups.google.com/group/polymer-dev">https://groups.google.com/group/polymer-dev</a>
|
112
|
+
|
113
|
+
|
98
114
|
feed_attribs = {
|
99
115
|
format: data.format,
|
100
116
|
published: data.published,
|
@@ -105,7 +121,7 @@ class Feed < ActiveRecord::Base
|
|
105
121
|
# auto_title: ???,
|
106
122
|
# auto_url: ???,
|
107
123
|
# auto_feed_url: ???,
|
108
|
-
auto_title2: data.title2,
|
124
|
+
auto_title2: data.title2 ? strip_tags(data.title2)[0...255] : data.title2, # limit to 255 chars; strip tags
|
109
125
|
generator: generator_full
|
110
126
|
}
|
111
127
|
|
data/lib/pluto/models/item.rb
CHANGED
@@ -8,6 +8,11 @@ class Item < ActiveRecord::Base
|
|
8
8
|
|
9
9
|
belongs_to :feed
|
10
10
|
|
11
|
+
## todo/fix:
|
12
|
+
## use a module ref or something; do NOT include all methods - why? why not?
|
13
|
+
include TextUtils::HypertextHelper ## e.g. lets us use strip_tags( ht )
|
14
|
+
|
15
|
+
|
11
16
|
##################################
|
12
17
|
# attribute reader aliases
|
13
18
|
def name() title; end # alias for title
|
@@ -45,7 +50,7 @@ class Item < ActiveRecord::Base
|
|
45
50
|
|
46
51
|
item_attribs = {
|
47
52
|
guid: data.guid, # todo: only add for new records???
|
48
|
-
title: data.title,
|
53
|
+
title: data.title ? strip_tags(data.title)[0...255] : data.title, ## limit to 255 chars; strip tags
|
49
54
|
url: data.url,
|
50
55
|
summary: data.summary,
|
51
56
|
content: data.content,
|
data/lib/pluto/schema.rb
CHANGED
@@ -109,13 +109,15 @@ class CreateDb < ActiveRecord::Migration
|
|
109
109
|
t.string :guid
|
110
110
|
t.string :url
|
111
111
|
|
112
|
-
## note: title may contain more than 255 chars!!
|
112
|
+
## note: title may contain more than 255 chars!!
|
113
113
|
## e.g. Rails Girls blog has massive titles in feed
|
114
|
-
|
115
|
-
|
114
|
+
## cut-off/limit to 255
|
115
|
+
## also strip tags in titles - why? why not?? - see feed.title2/auto_title2
|
116
|
+
|
117
|
+
t.string :title # todo: add some :null => false ??
|
116
118
|
t.text :summary # e.g. description (rss), summary (atom)
|
117
119
|
t.text :content
|
118
|
-
|
120
|
+
|
119
121
|
t.datetime :published # from feed (published) + pubDate(rss)
|
120
122
|
t.datetime :touched # from feed updated (atom)
|
121
123
|
|
data/lib/pluto/version.rb
CHANGED
data/test/test_helpers.rb
CHANGED
@@ -34,4 +34,21 @@ class TestHelper < MiniTest::Test
|
|
34
34
|
assert true ## if we get here it should workd
|
35
35
|
end
|
36
36
|
|
37
|
+
|
38
|
+
include TextUtils::HypertextHelper ## e.g. lets us use strip_tags( ht )
|
39
|
+
|
40
|
+
def test_feed_title2_sanitize
|
41
|
+
##
|
42
|
+
# todo:
|
43
|
+
## strip all tags from title2
|
44
|
+
## limit to 255 chars
|
45
|
+
## e.g. title2 such as this exist
|
46
|
+
|
47
|
+
title2_in = %Q{This is a low-traffic announce-only list for people interested in hearing news about Polymer (<a href="http://polymer-project.org">http://polymer-project.org</a>). The higher-traffic mailing list for all kinds of discussion is <a href="https://groups.google.com/group/polymer-dev">https://groups.google.com/group/polymer-dev</a>}
|
48
|
+
title2_out = %Q{This is a low-traffic announce-only list for people interested in hearing news about Polymer (http://polymer-project.org). The higher-traffic mailing list for all kinds of discussion is https://groups.google.com/group/polymer-dev}
|
49
|
+
|
50
|
+
assert_equal title2_out, strip_tags( title2_in )
|
51
|
+
assert_equal 229, strip_tags( title2_in )[0...255].length
|
52
|
+
end
|
53
|
+
|
37
54
|
end # class TestHelper
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pluto-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: props
|