brutalismbot 0.5.3 → 0.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a3c45fef89741219d0830071bcbce8d7c077deb2c73317e679b88b64066f3e7
4
- data.tar.gz: 44163e137bc7f97a0e3c0846dd957b1aefdea9860d1c15c771ab1f8b6c0eaf8d
3
+ metadata.gz: '090b1145444345aaf5209720d21d60ae747f5d0e7e7a3f4382762d957889692a'
4
+ data.tar.gz: ac882dbc8e4371cb38904557fea4509a42aecfa3c9b66e41dbef6c07011e3dea
5
5
  SHA512:
6
- metadata.gz: 67be570fef42ba11e1dbe39302f4bf7b4287f8d572858f435910aecb9bff3abddaa1e07d6d7abc4e7623d8e9fc084e1657da2da0a03cf8e60e1259852b13aa68
7
- data.tar.gz: 6c90e51eca7b8c3391ffcf9dac15955d920c22285df0de5201187c965960d93e79b4e1d08108b97116f4b606ed3c30594f608aa94bb0ec767b334683f2a3bdb5
6
+ metadata.gz: 829046540898067f999c8aef859cd06058ccd503e2d8e9528fff0340d2897d94e77b6c56ddecbd8a6a2a24b84882ae6a0fd32cdee9c3e99bd34a0718a64291ba
7
+ data.tar.gz: 477d74640589d39412e9b2ff109a73b1b8b8fcc1e32b99a77740050e4fbc939583df3d40b48517194bd7257e2a71f077bfc4bba795cc7288419740389e3fd988
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  <img alt="brutalismbot" src="https://brutalismbot.com/banner.png"/>
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/brutalismbot.svg)](http://badge.fury.io/rb/brutalismbot)
4
3
  [![Build Status](https://travis-ci.com/brutalismbot/gem.svg)](https://travis-ci.com/brutalismbot/gem)
5
- [![codecov](https://codecov.io/gh/brutalismbot/gem/branch/master/graph/badge.svg)](https://codecov.io/gh/brutalismbot/gem)
4
+ [![Gem Version](https://badge.fury.io/rb/brutalismbot.svg)](http://badge.fury.io/rb/brutalismbot)
5
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/83275cbdbf10f9fd2df7/test_coverage)](https://codeclimate.com/github/brutalismbot/gem/test_coverage)
6
+ [![Maintainability](https://api.codeclimate.com/v1/badges/83275cbdbf10f9fd2df7/maintainability)](https://codeclimate.com/github/brutalismbot/gem/maintainability)
6
7
 
7
8
  Brutalismbot RubyGem
8
9
 
@@ -1,7 +1,15 @@
1
1
  module Brutalismbot
2
2
  class Post < Hash
3
- def created_after?(time)
4
- created_utc.to_i > time.to_i
3
+ def created_after?(time = nil)
4
+ time.nil? || created_utc.to_i > time.to_i
5
+ end
6
+
7
+ def created_before?(time = nil)
8
+ time.nil? || created_utc.to_i < time.to_i
9
+ end
10
+
11
+ def created_between?(start, stop)
12
+ created_after?(start) && created_before?(stop)
5
13
  end
6
14
 
7
15
  def created_utc
@@ -1,29 +1,12 @@
1
1
  module Brutalismbot
2
2
  module R
3
- class Subreddit
4
- attr_reader :endpoint, :user_agent
5
-
6
- def initialize(endpoint:nil, user_agent:nil)
7
- @endpoint = endpoint
8
- @user_agent = user_agent || "Brutalismbot #{VERSION}"
9
- end
10
-
11
- def posts(resource, params = {})
12
- url = File.join @endpoint, "#{resource}.json"
13
- qry = URI.encode_www_form params
14
- uri = URI.parse "#{url}?#{qry}"
15
- PostCollection.new uri: uri, user_agent: @user_agent
16
- end
17
- end
18
-
19
3
  class PostCollection
20
4
  include Enumerable
21
5
 
22
- def initialize(uri:, user_agent:, min_time:nil)
6
+ def initialize(uri:, user_agent:)
23
7
  @uri = uri
24
8
  @ssl = uri.scheme == "https"
25
9
  @user_agent = user_agent
26
- @min_time = min_time.to_i
27
10
  end
28
11
 
29
12
  def each
@@ -32,10 +15,7 @@ module Brutalismbot
32
15
  request = Net::HTTP::Get.new @uri, "user-agent" => @user_agent
33
16
  response = JSON.parse http.request(request).body
34
17
  children = response.dig("data", "children") || []
35
- children.each do |child|
36
- post = Post[child]
37
- yield post if post.created_after? @min_time
38
- end
18
+ children.each{|x| yield Post[x] }
39
19
  end
40
20
  end
41
21
 
@@ -46,9 +26,21 @@ module Brutalismbot
46
26
  def last
47
27
  to_a.last
48
28
  end
29
+ end
30
+
31
+ class Subreddit
32
+ attr_reader :endpoint, :user_agent
49
33
 
50
- def since(time = nil)
51
- PostCollection.new uri: @uri, user_agent: @user_agent, min_time: time
34
+ def initialize(endpoint:nil, user_agent:nil)
35
+ @endpoint = endpoint
36
+ @user_agent = user_agent || "Brutalismbot #{VERSION}"
37
+ end
38
+
39
+ def posts(resource, params = {})
40
+ url = File.join @endpoint, "#{resource}.json"
41
+ qry = URI.encode_www_form params
42
+ uri = URI.parse "#{url}?#{qry}"
43
+ PostCollection.new uri: uri, user_agent: @user_agent
52
44
  end
53
45
  end
54
46
 
@@ -170,8 +170,11 @@ module Brutalismbot
170
170
  max_key.key.match(/(\d+).json\z/).to_a.last.to_i
171
171
  end
172
172
 
173
- def pull(since:nil)
174
- R::Brutalism.new.posts(:new).since(since).reverse_each.map{|x| put x }
173
+ def pull(min_time = nil, max_time = nil)
174
+ posts = R::Brutalism.new.posts(:new)
175
+ posts = posts.select{|x| x.created_between?(min_time, max_time) }
176
+ posts = posts.sort{|a,b| a.created_utc <=> b.created_utc }
177
+ posts.map{|x| put x }
175
178
  end
176
179
  end
177
180
  end
@@ -1,3 +1,3 @@
1
1
  module Brutalismbot
2
- VERSION = "0.5.3"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brutalismbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Mancevice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-20 00:00:00.000000000 Z
11
+ date: 2019-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: codecov
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.1'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.1'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: bundler
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +58,28 @@ dependencies:
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '10.0'
61
+ version: '12.3'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '10.0'
68
+ version: '12.3'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '3.0'
75
+ version: '3.8'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '3.0'
82
+ version: '3.8'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: simplecov
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
143
  - !ruby/object:Gem::Version
158
144
  version: '0'
159
145
  requirements: []
160
- rubygems_version: 3.0.4
146
+ rubygems_version: 3.0.3
161
147
  signing_key:
162
148
  specification_version: 4
163
149
  summary: Mirror posts from /r/brutalism to Slack