rubysl-net-pop 1.0.0 → 2.0.1
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/.travis.yml +3 -2
- data/lib/rubysl/net/pop/pop.rb +94 -71
- data/lib/rubysl/net/pop/version.rb +1 -1
- data/rubysl-net-pop.gemspec +3 -1
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 896f3788387dfaf00e15b08b5a9bacd2a709fc12
|
4
|
+
data.tar.gz: 9fe03654a751342fa0a14f47e500523e024bffb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3d385e0f120752506b2d929a86d90fbbe54feac1be6a95598c5ebbdd67a1f214b8921237b79949c9d44525aac8b7f94ba3c09e00e39f9ca6cbb7c179345d48b
|
7
|
+
data.tar.gz: 348c6c9c2cbc2875fa56627afb2f685f02f8be26a4da2aa8d98c0cacaccf63cedf93a2d011bba8163e3cc68678b1f14a32977f390a332714f74bfc40ea4f25a4
|
data/.travis.yml
CHANGED
data/lib/rubysl/net/pop/pop.rb
CHANGED
@@ -3,20 +3,20 @@
|
|
3
3
|
# Copyright (c) 1999-2007 Yukihiro Matsumoto.
|
4
4
|
#
|
5
5
|
# Copyright (c) 1999-2007 Minero Aoki.
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# Written & maintained by Minero Aoki <aamine@loveruby.net>.
|
8
8
|
#
|
9
9
|
# Documented by William Webber and Minero Aoki.
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# This program is free software. You can re-distribute and/or
|
12
12
|
# modify this program under the same terms as Ruby itself,
|
13
13
|
# Ruby Distribute License.
|
14
|
-
#
|
14
|
+
#
|
15
15
|
# NOTE: You can find Japanese version of this document at:
|
16
16
|
# http://www.ruby-lang.org/ja/man/html/net_pop.html
|
17
|
-
#
|
18
|
-
# $Id$
|
19
|
-
#
|
17
|
+
#
|
18
|
+
# $Id: pop.rb 40829 2013-05-19 14:50:47Z kazu $
|
19
|
+
#
|
20
20
|
# See Net::POP3 for documentation.
|
21
21
|
#
|
22
22
|
|
@@ -25,7 +25,7 @@ require 'digest/md5'
|
|
25
25
|
require 'timeout'
|
26
26
|
|
27
27
|
begin
|
28
|
-
require "openssl
|
28
|
+
require "openssl"
|
29
29
|
rescue LoadError
|
30
30
|
end
|
31
31
|
|
@@ -41,29 +41,27 @@ module Net
|
|
41
41
|
# Unexpected response from the server.
|
42
42
|
class POPBadResponse < POPError; end
|
43
43
|
|
44
|
-
#
|
45
|
-
# = Net::POP3
|
46
44
|
#
|
47
45
|
# == What is This Library?
|
48
|
-
#
|
49
|
-
# This library provides functionality for retrieving
|
46
|
+
#
|
47
|
+
# This library provides functionality for retrieving
|
50
48
|
# email via POP3, the Post Office Protocol version 3. For details
|
51
49
|
# of POP3, see [RFC1939] (http://www.ietf.org/rfc/rfc1939.txt).
|
52
|
-
#
|
50
|
+
#
|
53
51
|
# == Examples
|
54
|
-
#
|
55
|
-
# === Retrieving Messages
|
56
|
-
#
|
57
|
-
# This example retrieves messages from the server and deletes them
|
52
|
+
#
|
53
|
+
# === Retrieving Messages
|
54
|
+
#
|
55
|
+
# This example retrieves messages from the server and deletes them
|
58
56
|
# on the server.
|
59
57
|
#
|
60
58
|
# Messages are written to files named 'inbox/1', 'inbox/2', ....
|
61
59
|
# Replace 'pop.example.com' with your POP3 server address, and
|
62
60
|
# 'YourAccount' and 'YourPassword' with the appropriate account
|
63
61
|
# details.
|
64
|
-
#
|
62
|
+
#
|
65
63
|
# require 'net/pop'
|
66
|
-
#
|
64
|
+
#
|
67
65
|
# pop = Net::POP3.new('pop.example.com')
|
68
66
|
# pop.start('YourAccount', 'YourPassword') # (1)
|
69
67
|
# if pop.mails.empty?
|
@@ -80,19 +78,19 @@ module Net
|
|
80
78
|
# puts "#{pop.mails.size} mails popped."
|
81
79
|
# end
|
82
80
|
# pop.finish # (3)
|
83
|
-
#
|
81
|
+
#
|
84
82
|
# 1. Call Net::POP3#start and start POP session.
|
85
83
|
# 2. Access messages by using POP3#each_mail and/or POP3#mails.
|
86
84
|
# 3. Close POP session by calling POP3#finish or use the block form of #start.
|
87
|
-
#
|
85
|
+
#
|
88
86
|
# === Shortened Code
|
89
|
-
#
|
87
|
+
#
|
90
88
|
# The example above is very verbose. You can shorten the code by using
|
91
89
|
# some utility methods. First, the block form of Net::POP3.start can
|
92
90
|
# be used instead of POP3.new, POP3#start and POP3#finish.
|
93
|
-
#
|
91
|
+
#
|
94
92
|
# require 'net/pop'
|
95
|
-
#
|
93
|
+
#
|
96
94
|
# Net::POP3.start('pop.example.com', 110,
|
97
95
|
# 'YourAccount', 'YourPassword') do |pop|
|
98
96
|
# if pop.mails.empty?
|
@@ -109,11 +107,11 @@ module Net
|
|
109
107
|
# puts "#{pop.mails.size} mails popped."
|
110
108
|
# end
|
111
109
|
# end
|
112
|
-
#
|
110
|
+
#
|
113
111
|
# POP3#delete_all is an alternative for #each_mail and #delete.
|
114
|
-
#
|
112
|
+
#
|
115
113
|
# require 'net/pop'
|
116
|
-
#
|
114
|
+
#
|
117
115
|
# Net::POP3.start('pop.example.com', 110,
|
118
116
|
# 'YourAccount', 'YourPassword') do |pop|
|
119
117
|
# if pop.mails.empty?
|
@@ -128,11 +126,11 @@ module Net
|
|
128
126
|
# end
|
129
127
|
# end
|
130
128
|
# end
|
131
|
-
#
|
129
|
+
#
|
132
130
|
# And here is an even shorter example.
|
133
|
-
#
|
131
|
+
#
|
134
132
|
# require 'net/pop'
|
135
|
-
#
|
133
|
+
#
|
136
134
|
# i = 0
|
137
135
|
# Net::POP3.delete_all('pop.example.com', 110,
|
138
136
|
# 'YourAccount', 'YourPassword') do |m|
|
@@ -141,14 +139,14 @@ module Net
|
|
141
139
|
# end
|
142
140
|
# i += 1
|
143
141
|
# end
|
144
|
-
#
|
142
|
+
#
|
145
143
|
# === Memory Space Issues
|
146
|
-
#
|
144
|
+
#
|
147
145
|
# All the examples above get each message as one big string.
|
148
146
|
# This example avoids this.
|
149
|
-
#
|
147
|
+
#
|
150
148
|
# require 'net/pop'
|
151
|
-
#
|
149
|
+
#
|
152
150
|
# i = 1
|
153
151
|
# Net::POP3.delete_all('pop.example.com', 110,
|
154
152
|
# 'YourAccount', 'YourPassword') do |m|
|
@@ -159,49 +157,51 @@ module Net
|
|
159
157
|
# i += 1
|
160
158
|
# end
|
161
159
|
# end
|
162
|
-
#
|
160
|
+
#
|
163
161
|
# === Using APOP
|
164
|
-
#
|
162
|
+
#
|
165
163
|
# The net/pop library supports APOP authentication.
|
166
164
|
# To use APOP, use the Net::APOP class instead of the Net::POP3 class.
|
167
165
|
# You can use the utility method, Net::POP3.APOP(). For example:
|
168
|
-
#
|
166
|
+
#
|
169
167
|
# require 'net/pop'
|
170
|
-
#
|
168
|
+
#
|
171
169
|
# # Use APOP authentication if $isapop == true
|
172
170
|
# pop = Net::POP3.APOP($is_apop).new('apop.example.com', 110)
|
173
171
|
# pop.start(YourAccount', 'YourPassword') do |pop|
|
174
172
|
# # Rest of the code is the same.
|
175
173
|
# end
|
176
|
-
#
|
174
|
+
#
|
177
175
|
# === Fetch Only Selected Mail Using 'UIDL' POP Command
|
178
|
-
#
|
176
|
+
#
|
179
177
|
# If your POP server provides UIDL functionality,
|
180
178
|
# you can grab only selected mails from the POP server.
|
181
179
|
# e.g.
|
182
|
-
#
|
180
|
+
#
|
183
181
|
# def need_pop?( id )
|
184
182
|
# # determine if we need pop this mail...
|
185
183
|
# end
|
186
|
-
#
|
184
|
+
#
|
187
185
|
# Net::POP3.start('pop.example.com', 110,
|
188
186
|
# 'Your account', 'Your password') do |pop|
|
189
187
|
# pop.mails.select { |m| need_pop?(m.unique_id) }.each do |m|
|
190
188
|
# do_something(m.pop)
|
191
189
|
# end
|
192
190
|
# end
|
193
|
-
#
|
191
|
+
#
|
194
192
|
# The POPMail#unique_id() method returns the unique-id of the message as a
|
195
193
|
# String. Normally the unique-id is a hash of the message.
|
196
|
-
#
|
194
|
+
#
|
197
195
|
class POP3 < Protocol
|
198
196
|
|
199
|
-
|
197
|
+
# svn revision of this library
|
198
|
+
Revision = %q$Revision: 40829 $.split[1]
|
200
199
|
|
201
200
|
#
|
202
201
|
# Class Parameters
|
203
202
|
#
|
204
203
|
|
204
|
+
# returns the port for POP3
|
205
205
|
def POP3.default_port
|
206
206
|
default_pop3_port()
|
207
207
|
end
|
@@ -210,7 +210,7 @@ module Net
|
|
210
210
|
def POP3.default_pop3_port
|
211
211
|
110
|
212
212
|
end
|
213
|
-
|
213
|
+
|
214
214
|
# The default port for POP3S connections, port 995
|
215
215
|
def POP3.default_pop3s_port
|
216
216
|
995
|
@@ -324,7 +324,7 @@ module Net
|
|
324
324
|
|
325
325
|
@ssl_params = nil
|
326
326
|
|
327
|
-
# call-seq:
|
327
|
+
# :call-seq:
|
328
328
|
# Net::POP.enable_ssl(params = {})
|
329
329
|
#
|
330
330
|
# Enable SSL for all new instances.
|
@@ -333,6 +333,7 @@ module Net
|
|
333
333
|
@ssl_params = create_ssl_params(*args)
|
334
334
|
end
|
335
335
|
|
336
|
+
# Constructs proper parameters from arguments
|
336
337
|
def POP3.create_ssl_params(verify_or_params = {}, certs = nil)
|
337
338
|
begin
|
338
339
|
params = verify_or_params.to_hash
|
@@ -355,18 +356,24 @@ module Net
|
|
355
356
|
@ssl_params = nil
|
356
357
|
end
|
357
358
|
|
359
|
+
# returns the SSL Parameters
|
360
|
+
#
|
361
|
+
# see also POP3.enable_ssl
|
358
362
|
def POP3.ssl_params
|
359
363
|
return @ssl_params
|
360
364
|
end
|
361
365
|
|
366
|
+
# returns +true+ if POP3.ssl_params is set
|
362
367
|
def POP3.use_ssl?
|
363
368
|
return !@ssl_params.nil?
|
364
369
|
end
|
365
370
|
|
371
|
+
# returns whether verify_mode is enable from POP3.ssl_params
|
366
372
|
def POP3.verify
|
367
373
|
return @ssl_params[:verify_mode]
|
368
374
|
end
|
369
375
|
|
376
|
+
# returns the :ca_file or :ca_path from POP3.ssl_params
|
370
377
|
def POP3.certs
|
371
378
|
return @ssl_params[:ca_file] || @ssl_params[:ca_path]
|
372
379
|
end
|
@@ -375,7 +382,7 @@ module Net
|
|
375
382
|
# Session management
|
376
383
|
#
|
377
384
|
|
378
|
-
# Creates a new POP3 object and open the connection. Equivalent to
|
385
|
+
# Creates a new POP3 object and open the connection. Equivalent to
|
379
386
|
#
|
380
387
|
# Net::POP3.new(address, port, isapop).start(account, password)
|
381
388
|
#
|
@@ -396,7 +403,7 @@ module Net
|
|
396
403
|
isapop = false, &block) # :yield: pop
|
397
404
|
new(address, port, isapop).start(account, password, &block)
|
398
405
|
end
|
399
|
-
|
406
|
+
|
400
407
|
# Creates a new POP3 object.
|
401
408
|
#
|
402
409
|
# +address+ is the hostname or ip address of your POP3 server.
|
@@ -412,7 +419,7 @@ module Net
|
|
412
419
|
@ssl_params = POP3.ssl_params
|
413
420
|
@port = port
|
414
421
|
@apop = isapop
|
415
|
-
|
422
|
+
|
416
423
|
@command = nil
|
417
424
|
@socket = nil
|
418
425
|
@started = false
|
@@ -434,8 +441,8 @@ module Net
|
|
434
441
|
def use_ssl?
|
435
442
|
return !@ssl_params.nil?
|
436
443
|
end
|
437
|
-
|
438
|
-
# call-seq:
|
444
|
+
|
445
|
+
# :call-seq:
|
439
446
|
# Net::POP#enable_ssl(params = {})
|
440
447
|
#
|
441
448
|
# Enables SSL for this instance. Must be called before the connection is
|
@@ -451,7 +458,8 @@ module Net
|
|
451
458
|
@port = port || @port
|
452
459
|
end
|
453
460
|
end
|
454
|
-
|
461
|
+
|
462
|
+
# Disable SSL for all new instances.
|
455
463
|
def disable_ssl
|
456
464
|
@ssl_params = nil
|
457
465
|
end
|
@@ -488,12 +496,12 @@ module Net
|
|
488
496
|
|
489
497
|
# Seconds to wait until a connection is opened.
|
490
498
|
# If the POP3 object cannot open a connection within this time,
|
491
|
-
# it raises a
|
499
|
+
# it raises a Net::OpenTimeout exception. The default value is 30 seconds.
|
492
500
|
attr_accessor :open_timeout
|
493
501
|
|
494
502
|
# Seconds to wait until reading one block (by one read(1) call).
|
495
503
|
# If the POP3 object cannot complete a read() within this time,
|
496
|
-
# it raises a
|
504
|
+
# it raises a Net::ReadTimeout exception. The default value is 60 seconds.
|
497
505
|
attr_reader :read_timeout
|
498
506
|
|
499
507
|
# Set the read timeout.
|
@@ -530,8 +538,11 @@ module Net
|
|
530
538
|
end
|
531
539
|
end
|
532
540
|
|
533
|
-
|
534
|
-
|
541
|
+
# internal method for Net::POP3.start
|
542
|
+
def do_start(account, password) # :nodoc:
|
543
|
+
s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
|
544
|
+
TCPSocket.open(@address, port)
|
545
|
+
end
|
535
546
|
if use_ssl?
|
536
547
|
raise 'openssl library not installed' unless defined?(OpenSSL)
|
537
548
|
context = OpenSSL::SSL::SSLContext.new
|
@@ -565,7 +576,8 @@ module Net
|
|
565
576
|
end
|
566
577
|
private :do_start
|
567
578
|
|
568
|
-
|
579
|
+
# Does nothing
|
580
|
+
def on_connect # :nodoc:
|
569
581
|
end
|
570
582
|
private :on_connect
|
571
583
|
|
@@ -575,7 +587,12 @@ module Net
|
|
575
587
|
do_finish
|
576
588
|
end
|
577
589
|
|
578
|
-
|
590
|
+
# nil's out the:
|
591
|
+
# - mails
|
592
|
+
# - number counter for mails
|
593
|
+
# - number counter for bytes
|
594
|
+
# - quits the current command, if any
|
595
|
+
def do_finish # :nodoc:
|
579
596
|
@mails = nil
|
580
597
|
@n_mails = nil
|
581
598
|
@n_bytes = nil
|
@@ -588,7 +605,10 @@ module Net
|
|
588
605
|
end
|
589
606
|
private :do_finish
|
590
607
|
|
591
|
-
|
608
|
+
# Returns the current command.
|
609
|
+
#
|
610
|
+
# Raises IOError if there is no active socket
|
611
|
+
def command # :nodoc:
|
592
612
|
raise IOError, 'POP session not opened yet' \
|
593
613
|
if not @socket or @socket.closed?
|
594
614
|
@command
|
@@ -635,7 +655,7 @@ module Net
|
|
635
655
|
|
636
656
|
# Yields each message to the passed-in block in turn.
|
637
657
|
# Equivalent to:
|
638
|
-
#
|
658
|
+
#
|
639
659
|
# pop3.mails.each do |popmail|
|
640
660
|
# ....
|
641
661
|
# end
|
@@ -687,6 +707,7 @@ module Net
|
|
687
707
|
@mails.each {|m| m.uid = uidl[m.number] }
|
688
708
|
end
|
689
709
|
|
710
|
+
# deguging output for +msg+
|
690
711
|
def logging(msg)
|
691
712
|
@debug_output << msg + "\n" if @debug_output
|
692
713
|
end
|
@@ -694,9 +715,9 @@ module Net
|
|
694
715
|
end # class POP3
|
695
716
|
|
696
717
|
# class aliases
|
697
|
-
POP = POP3
|
698
|
-
POPSession = POP3
|
699
|
-
POP3Session = POP3
|
718
|
+
POP = POP3 # :nodoc:
|
719
|
+
POPSession = POP3 # :nodoc:
|
720
|
+
POP3Session = POP3 # :nodoc:
|
700
721
|
|
701
722
|
#
|
702
723
|
# This class is equivalent to POP3, except that it uses APOP authentication.
|
@@ -742,7 +763,7 @@ module Net
|
|
742
763
|
#
|
743
764
|
# This method fetches the message. If called with a block, the
|
744
765
|
# message is yielded to the block one chunk at a time. If called
|
745
|
-
# without a block, the message is returned as a String. The optional
|
766
|
+
# without a block, the message is returned as a String. The optional
|
746
767
|
# +dest+ argument will be prepended to the returned String; this
|
747
768
|
# argument is essentially obsolete.
|
748
769
|
#
|
@@ -753,7 +774,7 @@ module Net
|
|
753
774
|
# n = 1
|
754
775
|
# pop.mails.each do |popmail|
|
755
776
|
# File.open("inbox/#{n}", 'w') do |f|
|
756
|
-
# f.write popmail.pop
|
777
|
+
# f.write popmail.pop
|
757
778
|
# end
|
758
779
|
# popmail.delete
|
759
780
|
# n += 1
|
@@ -792,7 +813,7 @@ module Net
|
|
792
813
|
alias all pop #:nodoc: obsolete
|
793
814
|
alias mail pop #:nodoc: obsolete
|
794
815
|
|
795
|
-
# Fetches the message header and +lines+ lines of body.
|
816
|
+
# Fetches the message header and +lines+ lines of body.
|
796
817
|
#
|
797
818
|
# The optional +dest+ argument is obsolete.
|
798
819
|
#
|
@@ -804,7 +825,7 @@ module Net
|
|
804
825
|
dest
|
805
826
|
end
|
806
827
|
|
807
|
-
# Fetches the message header.
|
828
|
+
# Fetches the message header.
|
808
829
|
#
|
809
830
|
# The optional +dest+ argument is obsolete.
|
810
831
|
#
|
@@ -868,11 +889,13 @@ module Net
|
|
868
889
|
|
869
890
|
def initialize(sock)
|
870
891
|
@socket = sock
|
871
|
-
@
|
892
|
+
@error_occurred = false
|
872
893
|
res = check_response(critical { recv_response() })
|
873
894
|
@apop_stamp = res.slice(/<[!-~]+@[!-~]+>/)
|
874
895
|
end
|
875
896
|
|
897
|
+
attr_reader :socket
|
898
|
+
|
876
899
|
def inspect
|
877
900
|
"#<#{self.class} socket=#{@socket}>"
|
878
901
|
end
|
@@ -931,7 +954,7 @@ module Net
|
|
931
954
|
@socket.each_message_chunk(&block)
|
932
955
|
}
|
933
956
|
end
|
934
|
-
|
957
|
+
|
935
958
|
def dele(num)
|
936
959
|
check_response(critical { get_response('DELE %d', num) })
|
937
960
|
end
|
@@ -984,11 +1007,11 @@ module Net
|
|
984
1007
|
end
|
985
1008
|
|
986
1009
|
def critical
|
987
|
-
return '+OK dummy ok response' if @
|
1010
|
+
return '+OK dummy ok response' if @error_occurred
|
988
1011
|
begin
|
989
1012
|
return yield()
|
990
1013
|
rescue Exception
|
991
|
-
@
|
1014
|
+
@error_occurred = true
|
992
1015
|
raise
|
993
1016
|
end
|
994
1017
|
end
|
data/rubysl-net-pop.gemspec
CHANGED
@@ -16,8 +16,10 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
+
spec.required_ruby_version = "~> 2.0"
|
20
|
+
|
19
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
20
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
21
23
|
spec.add_development_dependency "mspec", "~> 1.5"
|
22
|
-
spec.add_development_dependency "rubysl-prettyprint", "~>
|
24
|
+
spec.add_development_dependency "rubysl-prettyprint", "~> 2.0"
|
23
25
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysl-net-pop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.5'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.5'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rubysl-prettyprint
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '2.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '2.0'
|
69
69
|
description: Ruby standard library pop.
|
70
70
|
email:
|
71
71
|
- brixen@gmail.com
|
@@ -73,8 +73,8 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
77
|
-
- .travis.yml
|
76
|
+
- ".gitignore"
|
77
|
+
- ".travis.yml"
|
78
78
|
- Gemfile
|
79
79
|
- LICENSE
|
80
80
|
- README.md
|
@@ -94,12 +94,12 @@ require_paths:
|
|
94
94
|
- lib
|
95
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: '0'
|
99
|
+
version: '2.0'
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
@@ -109,3 +109,4 @@ signing_key:
|
|
109
109
|
specification_version: 4
|
110
110
|
summary: Ruby standard library pop.
|
111
111
|
test_files: []
|
112
|
+
has_rdoc:
|