sup 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sup might be problematic. Click here for more details.
- data/CONTRIBUTORS +16 -18
- data/History.txt +5 -0
- data/ReleaseNotes +4 -0
- data/bin/sup +1 -5
- data/lib/sup/message.rb +3 -1
- data/lib/sup/poll.rb +66 -52
- data/lib/sup/source.rb +3 -1
- data/lib/sup/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +26 -26
- metadata.gz.sig +0 -0
data/CONTRIBUTORS
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
William Morgan <
|
1
|
+
William Morgan <william at the twitter dot coms>
|
2
2
|
Rich Lane <rlane at the club.cc.cmu dot edus>
|
3
3
|
Gaute Hope <eg at the gaute.vetsj dot coms>
|
4
|
-
Hamish Downer <dmishd at the gmail dot coms>
|
5
4
|
Whyme Lyu <callme5long at the gmail dot coms>
|
5
|
+
Hamish Downer <dmishd at the gmail dot coms>
|
6
6
|
Sascha Silbe <sascha-pgp at the silbe dot orgs>
|
7
7
|
Ismo Puustinen <ismo at the iki dot fis>
|
8
8
|
Nicolas Pouillard <nicolas.pouillard at the gmail dot coms>
|
@@ -11,6 +11,7 @@ Eric Sherman <hyperbolist at the gmail dot coms>
|
|
11
11
|
Tero Tilus <tero at the tilus dot nets>
|
12
12
|
Ben Walton <bwalton at the artsci.utoronto dot cas>
|
13
13
|
Mike Stipicevic <stipim at the rpi dot edus>
|
14
|
+
Whyme.Lyu <callme5long at the gmail dot coms>
|
14
15
|
Marcus Williams <marcus-sup at the bar-coded dot nets>
|
15
16
|
Lionel Ott <white.magic at the gmx dot des>
|
16
17
|
Gaudenz Steinlin <gaudenz at the soziologie dot chs>
|
@@ -21,47 +22,44 @@ Eric Weikl <eric.weikl at the tngtech dot coms>
|
|
21
22
|
Christopher Warrington <chrisw at the rice dot edus>
|
22
23
|
W. Trevor King <wking at the drexel dot edus>
|
23
24
|
Richard Brown <rbrown at the exherbo dot orgs>
|
25
|
+
Anthony Martinez <pi+sup at the pihost dot uss>
|
24
26
|
Marc Hartstein <marc.hartstein at the alum.vassar dot edus>
|
25
27
|
Israel Herraiz <israel.herraiz at the gmail dot coms>
|
26
|
-
Anthony Martinez <pi+sup at the pihost dot uss>
|
27
28
|
Bo Borgerson <gigabo at the gmail dot coms>
|
28
|
-
William Erik Baxter <web at the superscript dot coms>
|
29
29
|
Michael Hamann <michael at the content-space dot des>
|
30
|
+
William Erik Baxter <web at the superscript dot coms>
|
30
31
|
Grant Hollingworth <grant at the antiflux dot orgs>
|
32
|
+
Markus Klinik <markus.klinik at the gmx dot des>
|
31
33
|
Adeodato Simó <dato at the net.com.org dot ess>
|
32
34
|
Daniel Schoepe <daniel.schoepe at the googlemail dot coms>
|
33
35
|
Jason Petsod <jason at the petsod dot orgs>
|
34
|
-
|
36
|
+
Edward Z. Yang <edwardzyang at the thewritingpot dot coms>
|
35
37
|
Robin Burchell <viroteck at the viroteck dot nets>
|
38
|
+
Steve Goldman <sgoldman at the tower-research dot coms>
|
36
39
|
Peter Harkins <ph at the malaprop dot orgs>
|
37
|
-
Edward Z. Yang <ezyang at the MIT dot EDUs>
|
38
40
|
Decklin Foster <decklin at the red-bean dot coms>
|
39
41
|
Cameron Matheson <cam+sup at the cammunism dot orgs>
|
40
42
|
Carl Worth <cworth at the cworth dot orgs>
|
41
|
-
|
42
|
-
Alex Vandiver <alexmv at the mit dot edus>
|
43
|
+
Alex Vandiver <alex at the chmrr dot nets>
|
43
44
|
Andrew Pimlott <andrew at the pimlott dot nets>
|
45
|
+
Jeff Balogh <its.jeff.balogh at the gmail dot coms>
|
44
46
|
Matías Aguirre <matiasaguirre at the gmail dot coms>
|
45
|
-
Anthony Martinez <pi at the pihost dot uss>
|
46
47
|
Kornilios Kourtis <kkourt at the cslab.ece.ntua dot grs>
|
47
48
|
Kevin Riggle <kevinr at the free-dissociation dot coms>
|
48
49
|
Giorgio Lando <patroclo7 at the gmail dot coms>
|
49
50
|
Benoît PIERRE <benoit.pierre at the gmail dot coms>
|
50
51
|
Alvaro Herrera <alvherre at the alvh.no-ip dot orgs>
|
51
|
-
|
52
|
+
Steven Lawrance <stl at the koffein dot nets>
|
52
53
|
Jonah <Jonah at the GoodCoffee dot cas>
|
53
|
-
ian <
|
54
|
+
ian <itaylor at the uark dot edus>
|
55
|
+
MichaelRevell <mikearevell at the gmail dot coms>
|
54
56
|
Adam Lloyd <adam at the alloy-d dot nets>
|
55
57
|
Todd Eisenberger <teisenbe at the andrew.cmu dot edus>
|
56
|
-
Steven Walter <swalter at the monarch.(none)>
|
57
|
-
Alex Vandiver <alex at the chmrr dot nets>
|
58
58
|
Gregor Hoffleit <gregor at the sam.mediasupervision dot des>
|
59
|
-
|
59
|
+
Steven Walter <swalter at the monarch.(none)>
|
60
|
+
Jonathan Lassoff <jof at the thejof dot coms>
|
60
61
|
Matthieu Rakotojaona <matthieu.rakotojaona at the gmail dot coms>
|
61
62
|
Stefan Lundström <lundst at the snabb.(none)>
|
62
63
|
Matthias Vallentin <vallentin at the icir dot orgs>
|
63
|
-
|
64
|
-
Jonathan Lassoff <jof at the thejof dot coms>
|
65
|
-
ian <itaylor at the uark dot edus>
|
66
|
-
Gregor Hoffleit <gregor at the hoffleit dot des>
|
64
|
+
Jon M. Dugan <jdugan at the es dot nets>
|
67
65
|
Kirill Smelkov <kirr at the landau.phys.spbu dot rus>
|
data/History.txt
CHANGED
data/ReleaseNotes
CHANGED
data/bin/sup
CHANGED
@@ -106,8 +106,6 @@ end
|
|
106
106
|
## ncurses.so that's been compiled against libncursesw. (note the w.) why
|
107
107
|
## this works, i have no idea. much like pretty much every aspect of
|
108
108
|
## dealing with curses. cargo cult programming at its best.
|
109
|
-
##
|
110
|
-
## BSD users: if libc.so.6 is not found, try installing compat6x.
|
111
109
|
require 'dl/import'
|
112
110
|
require 'rbconfig'
|
113
111
|
module LibC
|
@@ -115,6 +113,7 @@ module LibC
|
|
115
113
|
setlocale_lib = case RbConfig::CONFIG['arch']
|
116
114
|
when /darwin/; "libc.dylib"
|
117
115
|
when /cygwin/; "cygwin1.dll"
|
116
|
+
when /freebsd/; "libc.so.7"
|
118
117
|
else; "libc.so.6"
|
119
118
|
end
|
120
119
|
|
@@ -127,9 +126,6 @@ module LibC
|
|
127
126
|
rescue RuntimeError => e
|
128
127
|
warn "cannot dlload setlocale(); ncurses wide character support probably broken."
|
129
128
|
warn "dlload error was #{e.class}: #{e.message}"
|
130
|
-
if RbConfig::CONFIG['arch'] =~ /bsd/
|
131
|
-
warn "BSD variant detected. You may have to install a compat6x package to acquire libc."
|
132
|
-
end
|
133
129
|
end
|
134
130
|
end
|
135
131
|
|
data/lib/sup/message.rb
CHANGED
@@ -540,7 +540,9 @@ private
|
|
540
540
|
def inline_gpg_to_chunks body, encoding_to, encoding_from
|
541
541
|
lines = body.split("\n")
|
542
542
|
gpg = lines.between(GPG_SIGNED_START, GPG_SIGNED_END)
|
543
|
-
if
|
543
|
+
# between does not check if GPG_END actually exists
|
544
|
+
# Reference: http://permalink.gmane.org/gmane.mail.sup.devel/641
|
545
|
+
if !gpg.empty? && !lines.index(GPG_END).nil?
|
544
546
|
msg = RMail::Message.new
|
545
547
|
msg.body = gpg.join("\n")
|
546
548
|
|
data/lib/sup/poll.rb
CHANGED
@@ -22,7 +22,7 @@ Variables:
|
|
22
22
|
num: the total number of new messages added in this poll
|
23
23
|
num_inbox: the number of new messages added in this poll which
|
24
24
|
appear in the inbox (i.e. were not auto-archived).
|
25
|
-
num_total: the total number of messages
|
25
|
+
num_total: the total number of messages
|
26
26
|
num_inbox_total: the total number of new messages in the inbox.
|
27
27
|
num_inbox_total_unread: the total number of unread messages in the inbox
|
28
28
|
from_and_subj: an array of (from email address, subject) pairs
|
@@ -35,7 +35,7 @@ EOS
|
|
35
35
|
@mutex = Mutex.new
|
36
36
|
@thread = nil
|
37
37
|
@last_poll = nil
|
38
|
-
@polling =
|
38
|
+
@polling = Mutex.new
|
39
39
|
@poll_sources = nil
|
40
40
|
@mode = nil
|
41
41
|
@should_clear_running_totals = false
|
@@ -57,15 +57,15 @@ EOS
|
|
57
57
|
@running_totals[:num] += num
|
58
58
|
@running_totals[:numi] += numi
|
59
59
|
@running_totals[:loaded_labels] += loaded_labels || []
|
60
|
-
|
61
|
-
|
60
|
+
|
61
|
+
|
62
62
|
if HookManager.enabled? "after-poll"
|
63
63
|
hook_args = { :num => num, :num_inbox => numi,
|
64
64
|
:num_total => @running_totals[:num], :num_inbox_total => @running_totals[:numi],
|
65
|
-
:from_and_subj => from_and_subj, :from_and_subj_inbox => from_and_subj_inbox,
|
65
|
+
:from_and_subj => from_and_subj, :from_and_subj_inbox => from_and_subj_inbox,
|
66
66
|
:num_inbox_total_unread => lambda { Index.num_results_for :labels => [:inbox, :unread] } }
|
67
67
|
|
68
|
-
HookManager.run("after-poll", hook_args)
|
68
|
+
HookManager.run("after-poll", hook_args)
|
69
69
|
else
|
70
70
|
if @running_totals[:num] > 0
|
71
71
|
BufferManager.flash "Loaded #{@running_totals[:num].pluralize 'new message'}, #{@running_totals[:numi]} to inbox. Labels: #{@running_totals[:loaded_labels].map{|l| l.to_s}.join(', ')}"
|
@@ -77,21 +77,27 @@ EOS
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def poll
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
80
|
+
if @polling.try_lock
|
81
|
+
@poll_sources = SourceManager.usual_sources
|
82
|
+
num, numi = poll_with_sources
|
83
|
+
@polling.unlock
|
84
|
+
[num, numi]
|
85
|
+
else
|
86
|
+
debug "poll already in progress."
|
87
|
+
return
|
88
|
+
end
|
86
89
|
end
|
87
90
|
|
88
91
|
def poll_unusual
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
92
|
+
if @polling.try_lock
|
93
|
+
@poll_sources = SourceManager.unusual_sources
|
94
|
+
num, numi = poll_with_sources
|
95
|
+
@polling.unlock
|
96
|
+
[num, numi]
|
97
|
+
else
|
98
|
+
debug "poll_unusual already in progress."
|
99
|
+
return
|
100
|
+
end
|
95
101
|
end
|
96
102
|
|
97
103
|
def start
|
@@ -157,7 +163,6 @@ EOS
|
|
157
163
|
loaded_labels = loaded_labels - LabelManager::HIDDEN_RESERVED_LABELS - [:inbox, :killed]
|
158
164
|
yield "Done polling; loaded #{total_num} new messages total"
|
159
165
|
@last_poll = Time.now
|
160
|
-
@polling = false
|
161
166
|
end
|
162
167
|
[total_num, total_numi, from_and_subj, from_and_subj_inbox, loaded_labels]
|
163
168
|
end
|
@@ -166,42 +171,51 @@ EOS
|
|
166
171
|
## labels and locations set correctly. The Messages are saved to or removed
|
167
172
|
## from the index after being yielded.
|
168
173
|
def poll_from source, opts={}
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
Index.
|
197
|
-
|
174
|
+
debug "trying to acquiring poll lock for: #{source}.."
|
175
|
+
if source.poll_lock.try_lock
|
176
|
+
debug "lock acquired for: #{source}."
|
177
|
+
begin
|
178
|
+
source.poll do |sym, args|
|
179
|
+
case sym
|
180
|
+
when :add
|
181
|
+
m = Message.build_from_source source, args[:info]
|
182
|
+
old_m = Index.build_message m.id
|
183
|
+
m.labels += args[:labels]
|
184
|
+
m.labels.delete :inbox if source.archived?
|
185
|
+
m.labels.delete :unread if source.read?
|
186
|
+
m.labels.delete :unread if m.source_marked_read? # preserve read status if possible
|
187
|
+
m.labels.each { |l| LabelManager << l }
|
188
|
+
m.labels = old_m.labels + (m.labels - [:unread, :inbox]) if old_m
|
189
|
+
m.locations = old_m.locations + m.locations if old_m
|
190
|
+
HookManager.run "before-add-message", :message => m
|
191
|
+
yield :add, m, old_m, args[:progress] if block_given?
|
192
|
+
Index.sync_message m, true
|
193
|
+
|
194
|
+
## We need to add or unhide the message when it either did not exist
|
195
|
+
## before at all or when it was updated. We do *not* add/unhide when
|
196
|
+
## the same message was found at a different location
|
197
|
+
if !old_m or not old_m.locations.member? m.location
|
198
|
+
UpdateManager.relay self, :added, m
|
199
|
+
end
|
200
|
+
when :delete
|
201
|
+
Index.each_message :location => [source.id, args[:info]] do |m|
|
202
|
+
m.locations.delete Location.new(source, args[:info])
|
203
|
+
yield :delete, m, [source,args[:info]], args[:progress] if block_given?
|
204
|
+
Index.sync_message m, false
|
205
|
+
#UpdateManager.relay self, :deleted, m
|
206
|
+
end
|
198
207
|
end
|
199
208
|
end
|
200
|
-
end
|
201
209
|
|
202
|
-
|
203
|
-
|
204
|
-
|
210
|
+
rescue SourceError => e
|
211
|
+
warn "problem getting messages from #{source}: #{e.message}"
|
212
|
+
|
213
|
+
ensure
|
214
|
+
source.go_idle
|
215
|
+
source.poll_lock.unlock
|
216
|
+
end
|
217
|
+
else
|
218
|
+
debug "source #{source} is already being polled."
|
205
219
|
end
|
206
220
|
end
|
207
221
|
|
data/lib/sup/source.rb
CHANGED
@@ -62,7 +62,7 @@ class Source
|
|
62
62
|
|
63
63
|
bool_accessor :usual, :archived
|
64
64
|
attr_reader :uri
|
65
|
-
attr_accessor :id
|
65
|
+
attr_accessor :id, :poll_lock
|
66
66
|
|
67
67
|
def initialize uri, usual=true, archived=false, id=nil
|
68
68
|
raise ArgumentError, "id must be an integer: #{id.inspect}" unless id.is_a? Fixnum if id
|
@@ -71,6 +71,8 @@ class Source
|
|
71
71
|
@usual = usual
|
72
72
|
@archived = archived
|
73
73
|
@id = id
|
74
|
+
|
75
|
+
@poll_lock = Mutex.new
|
74
76
|
end
|
75
77
|
|
76
78
|
## overwrite me if you have a disk incarnation (currently used only for sup-sync-back)
|
data/lib/sup/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.2
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 13
|
9
|
-
-
|
10
|
-
hash:
|
9
|
+
- 2
|
10
|
+
hash: 1496957733399950236
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- William Morgan
|
@@ -46,7 +46,7 @@ cert_chain:
|
|
46
46
|
ZUw2TWhhNApoRmMyeUFOQmo4dm9hWTVDNzRDZzJWcUV4dGNuU2F4VXRXOXdD
|
47
47
|
NHc1aE9sZzBBVmZiMUpXemc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t
|
48
48
|
Cg==
|
49
|
-
date: 2013-06-
|
49
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
50
50
|
dependencies:
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
52
|
name: xapian-full-alaveteli
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
segments:
|
61
61
|
- 1
|
62
62
|
- 2
|
63
|
-
hash: -
|
63
|
+
hash: -3733181840957152875
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -73,7 +73,7 @@ dependencies:
|
|
73
73
|
segments:
|
74
74
|
- 1
|
75
75
|
- 2
|
76
|
-
hash: -
|
76
|
+
hash: -3733181840957152875
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
78
|
name: ncursesw-sup
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
segments:
|
87
87
|
- 1
|
88
88
|
- 3
|
89
|
-
hash:
|
89
|
+
hash: -876597745176914036
|
90
90
|
- - ! '>='
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: 1.3.1
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- 1
|
96
96
|
- 3
|
97
97
|
- 1
|
98
|
-
hash:
|
98
|
+
hash: -640291375575489877
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
101
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
segments:
|
109
109
|
- 1
|
110
110
|
- 3
|
111
|
-
hash:
|
111
|
+
hash: -876597745176914036
|
112
112
|
- - ! '>='
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: 1.3.1
|
@@ -117,7 +117,7 @@ dependencies:
|
|
117
117
|
- 1
|
118
118
|
- 3
|
119
119
|
- 1
|
120
|
-
hash:
|
120
|
+
hash: -640291375575489877
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: rmail
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
segments:
|
131
131
|
- 0
|
132
132
|
- 17
|
133
|
-
hash:
|
133
|
+
hash: -2258731216383999369
|
134
134
|
type: :runtime
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
segments:
|
144
144
|
- 0
|
145
145
|
- 17
|
146
|
-
hash:
|
146
|
+
hash: -2258731216383999369
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: highline
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,7 +155,7 @@ dependencies:
|
|
155
155
|
prerelease:
|
156
156
|
segments:
|
157
157
|
- 0
|
158
|
-
hash: -
|
158
|
+
hash: -3965538710650358713
|
159
159
|
type: :runtime
|
160
160
|
prerelease: false
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -167,7 +167,7 @@ dependencies:
|
|
167
167
|
prerelease:
|
168
168
|
segments:
|
169
169
|
- 0
|
170
|
-
hash: -
|
170
|
+
hash: -3965538710650358713
|
171
171
|
- !ruby/object:Gem::Dependency
|
172
172
|
name: trollop
|
173
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,7 +180,7 @@ dependencies:
|
|
180
180
|
segments:
|
181
181
|
- 1
|
182
182
|
- 12
|
183
|
-
hash: -
|
183
|
+
hash: -2988883823466951243
|
184
184
|
type: :runtime
|
185
185
|
prerelease: false
|
186
186
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -193,7 +193,7 @@ dependencies:
|
|
193
193
|
segments:
|
194
194
|
- 1
|
195
195
|
- 12
|
196
|
-
hash: -
|
196
|
+
hash: -2988883823466951243
|
197
197
|
- !ruby/object:Gem::Dependency
|
198
198
|
name: lockfile
|
199
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -205,7 +205,7 @@ dependencies:
|
|
205
205
|
prerelease:
|
206
206
|
segments:
|
207
207
|
- 0
|
208
|
-
hash: -
|
208
|
+
hash: -3965538710650358713
|
209
209
|
type: :runtime
|
210
210
|
prerelease: false
|
211
211
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -217,7 +217,7 @@ dependencies:
|
|
217
217
|
prerelease:
|
218
218
|
segments:
|
219
219
|
- 0
|
220
|
-
hash: -
|
220
|
+
hash: -3965538710650358713
|
221
221
|
- !ruby/object:Gem::Dependency
|
222
222
|
name: mime-types
|
223
223
|
requirement: !ruby/object:Gem::Requirement
|
@@ -229,7 +229,7 @@ dependencies:
|
|
229
229
|
prerelease:
|
230
230
|
segments:
|
231
231
|
- 1
|
232
|
-
hash:
|
232
|
+
hash: -1212563861242074830
|
233
233
|
type: :runtime
|
234
234
|
prerelease: false
|
235
235
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -241,7 +241,7 @@ dependencies:
|
|
241
241
|
prerelease:
|
242
242
|
segments:
|
243
243
|
- 1
|
244
|
-
hash:
|
244
|
+
hash: -1212563861242074830
|
245
245
|
- !ruby/object:Gem::Dependency
|
246
246
|
name: locale
|
247
247
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,7 +254,7 @@ dependencies:
|
|
254
254
|
segments:
|
255
255
|
- 2
|
256
256
|
- 0
|
257
|
-
hash:
|
257
|
+
hash: 1592099054184333623
|
258
258
|
type: :runtime
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -267,7 +267,7 @@ dependencies:
|
|
267
267
|
segments:
|
268
268
|
- 2
|
269
269
|
- 0
|
270
|
-
hash:
|
270
|
+
hash: 1592099054184333623
|
271
271
|
- !ruby/object:Gem::Dependency
|
272
272
|
name: chronic
|
273
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -280,7 +280,7 @@ dependencies:
|
|
280
280
|
segments:
|
281
281
|
- 0
|
282
282
|
- 9
|
283
|
-
hash:
|
283
|
+
hash: 2378526325938346664
|
284
284
|
- - ! '>='
|
285
285
|
- !ruby/object:Gem::Version
|
286
286
|
version: 0.9.1
|
@@ -289,7 +289,7 @@ dependencies:
|
|
289
289
|
- 0
|
290
290
|
- 9
|
291
291
|
- 1
|
292
|
-
hash:
|
292
|
+
hash: 4569877028918522321
|
293
293
|
type: :runtime
|
294
294
|
prerelease: false
|
295
295
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -302,7 +302,7 @@ dependencies:
|
|
302
302
|
segments:
|
303
303
|
- 0
|
304
304
|
- 9
|
305
|
-
hash:
|
305
|
+
hash: 2378526325938346664
|
306
306
|
- - ! '>='
|
307
307
|
- !ruby/object:Gem::Version
|
308
308
|
version: 0.9.1
|
@@ -311,7 +311,7 @@ dependencies:
|
|
311
311
|
- 0
|
312
312
|
- 9
|
313
313
|
- 1
|
314
|
-
hash:
|
314
|
+
hash: 4569877028918522321
|
315
315
|
- !ruby/object:Gem::Dependency
|
316
316
|
name: bundler
|
317
317
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|