pluto-models 1.2.4 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f17253773a7629dbd311e1d3aecb9babfbf50cd
4
- data.tar.gz: 57f21b6e70a575e104bbf9d8fbf57cde52148d92
3
+ metadata.gz: 6690b769ee8041814fe15af85acc647ced2c4f33
4
+ data.tar.gz: 797c2054af4bc2975495e9a7ba61ddf922d5f770
5
5
  SHA512:
6
- metadata.gz: e56ba1c10d02aeec5807a7cc5527711729b74300d4d0b11d472dfc710d5d0338a7d1c2deb348dee41bdcffe7a33f267515aa76b2170b46a83a01580e8af6ef4e
7
- data.tar.gz: d3372c8160a1401ae7da82c739348e672aa138a99d1d2b69bdf7374f7c0691dbae7b583fc0a6d6b35f3175055bc0193121018f4bcf0c49c580d85c79cfa3dcc7
6
+ metadata.gz: 1dca815302f8ffffbb8902241bf4db7388a2b747839cf88ee7be68ce2dc392de935127e994b1428454229516cd0efcb169e08b17ac46e20fbaecd6e526263b23
7
+ data.tar.gz: af2731d41d1837c7ea81f7ac466c2714ed421e9a8ae0897e5e7dd989c9055f26daf594ffeb0b7469f0a396521c2b7912f5e6b92c61c401e98bf3cc976e5a7d56
@@ -31,10 +31,18 @@ class Feed < ActiveRecord::Base
31
31
  #
32
32
  # todo: check if we can use alias_method :name, :title - works for non-existing/on-demand-generated method too??
33
33
 
34
- def name() title; end # alias for title
35
- def description() summary; end # alias for summary -- also add descr shortcut??
36
- def link() url; end # alias for url
37
- def feed() feed_url; end # alias for feed_url
34
+ def name() title; end # alias for title
35
+ def description() summary; end # alias for summary
36
+ def desc() summary; end # alias(2) for summary
37
+ def link() url; end # alias for url
38
+ def feed() feed_url; end # alias for feed_url
39
+
40
+ def author_name() author; end # alias for author
41
+ def owner_name() author; end # alias(2) for author
42
+ def owner() author; end # alias(3) for author
43
+ def author_email() email; end # alias for email
44
+ def author_email() email; end # alias(2) for email
45
+
38
46
 
39
47
  def url?() read_attribute(:url).present?; end
40
48
  def title?() read_attribute(:title).present?; end
@@ -16,9 +16,11 @@ class Item < ActiveRecord::Base
16
16
  ##################################
17
17
  # attribute reader aliases
18
18
  def name() title; end # alias for title
19
- def description() summary; end # alias for summary -- also add descr shortcut??
19
+ def description() summary; end # alias for summary -- also add descr shortcut??
20
+ def desc() summary; end # alias (2) for summary -- also add descr shortcut??
20
21
  def link() url; end # alias for url
21
22
 
23
+
22
24
  def self.latest
23
25
  # note: order by first non-null datetime field
24
26
  # coalesce - supported by sqlite (yes), postgres (yes)
@@ -15,7 +15,15 @@ class Site < ActiveRecord::Base
15
15
  def name() title; end # alias for title
16
16
  def fetched_at() fetched; end # - legacy attrib reader -- remove!!!
17
17
 
18
- end
18
+ def owner_name() author; end # alias for author
19
+ def owner() author; end # alias(2) for author
20
+ def author_name() author; end # alias(3) for author
21
+
22
+ def owner_email() email; end # alias for email
23
+ def author_email() email; end # alias(2) for email
24
+
25
+ end # class Site
26
+
19
27
 
20
28
  end # module Model
21
29
  end # module Pluto
@@ -6,22 +6,27 @@ class CreateDb < ActiveRecord::Migration
6
6
 
7
7
  def up
8
8
  create_table :sites do |t|
9
- t.string :title, :null => false # e.g Planet Ruby, Planet JavaScript, etc.
10
- t.string :key, :null => false # e.g. ruby, js, etc.
9
+ t.string :key, null: false # e.g. ruby, js, etc.
10
+ t.string :title, null: false # e.g Planet Ruby, Planet JavaScript, etc.
11
+
12
+ t.string :author # owner_name, author_name
13
+ t.string :email # owner_email, author_email
14
+ t.datetime :updated # date for subscription list last updated via pluto
11
15
 
12
16
  ############
13
17
  # filters (site-wide)
14
18
  t.string :includes # regex
15
19
  t.string :excludes # regex
16
20
 
21
+
17
22
  ######################
18
23
  # for auto-update of feed list/site config
19
24
 
20
25
  t.string :url # source url for auto-update (optional)
21
26
 
22
- ## note: make sure to use same fields for update check as feed
27
+ ## note: make sure to use same fields for update check as feed
23
28
 
24
- t.datetime :fetched # last fetched/checked date -- make not null ??
29
+ t.datetime :fetched # date for last fetched/checked for feeds via pluto -- make not null ??
25
30
  t.integer :http_code # last http status code e.g. 200,404,etc.
26
31
  t.string :http_etag # last http header etag
27
32
  ## note: save last-modified header as text (not datetime) - pass through as is
@@ -31,7 +36,6 @@ class CreateDb < ActiveRecord::Migration
31
36
  # note: do NOT store body content (that is, text) and md5 digest
32
37
  # use git! and github! commit will be http_etag!!
33
38
 
34
- t.datetime :fetched # last fetched/checked date
35
39
 
36
40
  #############
37
41
  # more fields
@@ -39,13 +43,18 @@ class CreateDb < ActiveRecord::Migration
39
43
  t.timestamps # created_at, updated_at
40
44
  end
41
45
 
46
+
42
47
  create_table :subscriptions do |t| # has_many join table (sites/feeds)
43
- t.references :site, :null => false
44
- t.references :feed, :null => false
48
+ t.references :site, null: false
49
+ t.references :feed, null: false
45
50
  t.timestamps
46
51
  end
47
52
 
48
53
  create_table :feeds do |t|
54
+ t.string :key, null: false
55
+ t.string :encoding, null: false, default: 'utf8' # charset encoding; default to utf8
56
+ t.string :format # e.g. atom (1.0), rss 2.0, rss 0.7 etc.
57
+
49
58
  t.string :title # user supplied title
50
59
  t.string :auto_title # "fallback" - auto(fill) title from feed
51
60
 
@@ -66,10 +75,16 @@ class CreateDb < ActiveRecord::Migration
66
75
  t.datetime :built # from feed lastBuiltDate(rss)
67
76
  t.datetime :touched # from feed updated(atom)
68
77
 
78
+
69
79
  ### extras (move to array for custom fields or similar??)
80
+ t.string :author # author_name, owner_name
81
+ t.string :email # author_email, owner_email
82
+ t.string :avatar # gravator or hackergotchi handle (optional)
83
+
70
84
  t.string :github # github handle (optional)
71
85
  t.string :twitter # twitter handle (optional)
72
- t.string :avatar # gravator or hackergotchi handle (optional)
86
+ t.string :meetup # meetup handle (optional)
87
+
73
88
 
74
89
  ### add class/kind field e.g.
75
90
  # - personal feed/blog/site, that is, individual author
@@ -79,16 +94,14 @@ class CreateDb < ActiveRecord::Migration
79
94
  # - other (link blog?, podcast?) - why? why not??
80
95
 
81
96
  ############
82
- # filters
97
+ # filters (feed-wide)
83
98
  t.string :includes # regex
84
99
  t.string :excludes # regex
85
100
  # todo: add generic filter list e.g. t.string :filters (comma,pipe or space separated method names?)
86
101
 
87
102
  # -- our own (meta) fields
88
- t.datetime :last_published # cache last (latest) published for items
89
-
90
- t.string :key, :null => false
91
- t.string :format # e.g. atom (1.0), rss 2.0, rss 0.7 etc.
103
+ t.datetime :last_published # cache last (latest) published for items - e.g. latest date from publisehd item
104
+ t.datetime :fetched # last fetched date via pluto
92
105
 
93
106
  t.integer :http_code # last http status code e.g. 200,404,etc.
94
107
  t.string :http_etag # last http header etag
@@ -99,7 +112,6 @@ class CreateDb < ActiveRecord::Migration
99
112
  t.string :md5 # md5 hash of body
100
113
  t.text :body # last http response body (complete feed!)
101
114
 
102
- t.datetime :fetched # last fetched/checked date
103
115
 
104
116
  t.timestamps # created_at, updated_at
105
117
  end
@@ -122,9 +134,9 @@ class CreateDb < ActiveRecord::Migration
122
134
  t.datetime :touched # from feed updated (atom)
123
135
 
124
136
  ## todo: add :last_updated_at ?? (NOTE: updated_at already take by auto-timestamps)
125
- t.references :feed, :null => false
137
+ t.references :feed, null: false
126
138
 
127
- t.datetime :fetched # last fetched/check date
139
+ t.datetime :fetched # last fetched/check date via pluto
128
140
  t.timestamps # created_at, updated_at
129
141
 
130
142
  ## t.string :author
@@ -3,8 +3,8 @@
3
3
  module Pluto
4
4
 
5
5
  MAJOR = 1
6
- MINOR = 2
7
- PATCH = 4
6
+ MINOR = 3
7
+ PATCH = 0
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
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
4
+ version: 1.3.0
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-14 00:00:00.000000000 Z
11
+ date: 2014-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: props