brutalismbot 0.5.3 → 0.6.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
  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