rubymisc 0.0.3.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.irbrc +16 -0
- data/README +23 -14
- data/lib/rubymisc.rb +17 -13
- data/lib/rubymisc/ext/object.rb +18 -5
- data/lib/rubymisc/regex/manual.rb +71 -2
- data/lib/rubymisc/self.rb +24 -0
- data/lib/rubymisc/version.rb +1 -1
- data/rubymisc.gemspec +1 -1
- data/spec/rubymisc/exceptional_spec.rb +1 -1
- data/spec/rubymisc/ext/float_spec.rb +1 -1
- data/spec/rubymisc/ext/integer_spec.rb +1 -1
- data/spec/rubymisc/ext/object_spec.rb +17 -1
- data/spec/rubymisc/ext/string_spec.rb +1 -1
- data/spec/rubymisc/regex/manual_spec.rb +3 -3
- data/spec/rubymisc/regex_spec.rb +28 -28
- data/spec/rubymisc/version_spec.rb +1 -1
- data/spec/rubymisc_spec.rb +20 -1
- data/spec/spec_helper.rb +4 -2
- metadata +13 -11
data/.gitignore
CHANGED
data/.irbrc
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'pp'
|
2
|
+
require 'irb/completion'
|
3
|
+
|
4
|
+
IRB.conf[:AUTO_INDENT] = true
|
5
|
+
|
6
|
+
##
|
7
|
+
# @example
|
8
|
+
# time { 1_000_000.times { 'word'.upcase } }
|
9
|
+
#
|
10
|
+
def time(&block)
|
11
|
+
require 'benchmark'
|
12
|
+
result = nil
|
13
|
+
timing = Benchmark.measure { result = block.() }
|
14
|
+
puts "It took: #{timing}"
|
15
|
+
result
|
16
|
+
end
|
data/README
CHANGED
@@ -8,38 +8,47 @@
|
|
8
8
|
|
9
9
|
2 Usage
|
10
10
|
|
11
|
-
2.1
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
2.1 Rbm::Regex
|
12
|
+
|
13
|
+
e1: puts Rbm::Regex.man
|
14
|
+
e2: Rbm::Regex.email
|
15
|
+
e3: Rbm::Regex.url
|
16
|
+
e4: Rbm::Regex.zip
|
17
|
+
e5: Rbm::Regex.ipv4
|
18
|
+
e6: Rbm::Regex.mac_address
|
19
|
+
e7: Rbm::Regex.hexcode
|
20
|
+
e8: Rbm::Regex.usd
|
19
21
|
|
20
22
|
2.2 Object
|
21
23
|
|
22
24
|
#in?
|
23
|
-
|
25
|
+
e9: 100.in? [1, 2, 3, 4, 5, 100] # => true
|
24
26
|
|
25
27
|
#not functor
|
26
|
-
|
28
|
+
e10: 100.not.instance_of? Fixnum # => false
|
29
|
+
|
30
|
+
#and_try functor
|
31
|
+
e11: nil.and_try.size # => nil
|
27
32
|
|
28
33
|
#errors_with_message
|
29
|
-
|
34
|
+
e12: begin
|
35
|
+
raise 'Timeout socket'
|
36
|
+
rescue errors_with_message /socket/
|
37
|
+
p 'socket E'
|
38
|
+
end
|
30
39
|
|
31
40
|
#ASSERT
|
32
|
-
|
41
|
+
e13: ASSERT { fail SecurityError.new('Fail message!') }
|
33
42
|
|
34
43
|
2.3 Integer
|
35
44
|
|
36
45
|
#percent_of
|
37
|
-
|
46
|
+
e14: 50.percent_of(100) # => 50.0
|
38
47
|
|
39
48
|
2.4 String
|
40
49
|
|
41
50
|
#^, #xor
|
42
|
-
|
51
|
+
e15: 'rubymisc'.xor 'test' # => "\u0006\u0010\u0011\r\u0019\f\u0000\u0017"
|
43
52
|
|
44
53
|
2.5 ActiveRecord::Base
|
45
54
|
|
data/lib/rubymisc.rb
CHANGED
@@ -1,19 +1,23 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
# This module encapsulates the entry point functionality to
|
4
|
+
# the extension modules.
|
5
|
+
#--
|
6
|
+
# Copyright (c) 2011 Ivan Povalyukhin.
|
7
|
+
# Licensed under the same terms as Ruby. No warranty is provided.
|
3
8
|
module Rubymisc
|
9
|
+
class << self
|
10
|
+
def rbm_ext_load(ext_prefix = '') #:nodoc:
|
11
|
+
->(ext_file) { require ext_prefix + ext_file }
|
12
|
+
end
|
13
|
+
private :rbm_ext_load
|
14
|
+
end
|
4
15
|
end
|
5
16
|
|
6
|
-
|
7
|
-
|
8
|
-
require 'rubymisc/ext/float'
|
9
|
-
require 'rubymisc/ext/string'
|
10
|
-
require 'rubymisc/ext/active_record'
|
17
|
+
Dir[File.expand_path('../rubymisc/ext/*.rb', __FILE__)].each &Rubymisc.send(:rbm_ext_load)
|
18
|
+
%w{ self version regex exceptional }.each &Rubymisc.send(:rbm_ext_load, 'rubymisc/')
|
11
19
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
__END__
|
17
|
-
###
|
18
|
-
# Copyright (C) 2011 Ivan Povalyukhin.
|
19
|
-
###
|
20
|
+
module Rbm
|
21
|
+
include Rubymisc
|
22
|
+
extend Rubymisc
|
23
|
+
end
|
data/lib/rubymisc/ext/object.rb
CHANGED
@@ -7,15 +7,28 @@ module Rubymisc
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def not
|
10
|
-
|
10
|
+
_not_functor = ->(op, *a, &b) { !self.__send__(op, *a, &b) }
|
11
11
|
|
12
|
-
|
13
|
-
def method_missing(method, *
|
14
|
-
call
|
12
|
+
_not_functor.singleton_class.module_eval <<-CODE
|
13
|
+
def method_missing(method, *args, &block)
|
14
|
+
call method, *args, &block
|
15
15
|
end
|
16
16
|
CODE
|
17
17
|
|
18
|
-
|
18
|
+
_not_functor
|
19
|
+
end
|
20
|
+
|
21
|
+
def and_try
|
22
|
+
_and_try_functor = BasicObject.new
|
23
|
+
(class << _and_try_functor; self; end).module_eval do
|
24
|
+
attr_accessor :delegate_to
|
25
|
+
|
26
|
+
def method_missing(method, *args, &block)
|
27
|
+
delegate_to ? delegate_to.__send__(method, *args, &block) : delegate_to
|
28
|
+
end
|
29
|
+
end
|
30
|
+
_and_try_functor.delegate_to = self
|
31
|
+
_and_try_functor
|
19
32
|
end
|
20
33
|
end
|
21
34
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
module Rubymisc
|
4
4
|
module Regex
|
5
|
-
|
6
|
-
def
|
5
|
+
module Manual
|
6
|
+
def man
|
7
7
|
<<-EOS
|
8
8
|
Ruby character representations
|
9
9
|
------------------------------
|
@@ -32,8 +32,77 @@ Ruby character classses and class-like constructs
|
|
32
32
|
\\D Nondigit.
|
33
33
|
\\s Whitespace character, [\\f\\n\\r\\t\\v].
|
34
34
|
\\S Nonwhitespace character, [^\\f\\n\\r\\t\\v].
|
35
|
+
\\h Hexadecimal digit.
|
36
|
+
\\H Negated form of \\h.
|
37
|
+
|
38
|
+
Ruby anchors and other zero-width tests
|
39
|
+
---------------------------------------
|
40
|
+
Sequence Meaning
|
41
|
+
^ Start of string, or the point after any newline.
|
42
|
+
\\A Beginning of string, in all match modes.
|
43
|
+
$ End of string, or the point before any newline.
|
44
|
+
\\Z End of string, but before any final line terminator, in all match modes.
|
45
|
+
\\z End of string, in all match modes.
|
46
|
+
\\b Boundary between a \\w character and a \W character.
|
47
|
+
\\B Not-word-boundary.
|
48
|
+
\\G End of the previous match.
|
49
|
+
(?=...) Positive lookahead.
|
50
|
+
(?!...) Negative lookahead.
|
51
|
+
|
52
|
+
Ruby comments and mode modifiers
|
53
|
+
--------------------------------
|
54
|
+
Mode character Meaning
|
55
|
+
m Dot(.) matches any character, including a line terminator.
|
56
|
+
Note that this is different from most regex implementations.
|
57
|
+
x Ignore whitespace, and allow embedded comment starting with #.
|
58
|
+
i Case-insensitive match.
|
59
|
+
n Turn off wide-character processing.
|
60
|
+
o Evaluate \#{...} substitutions only once. Default is to evaluate each time the regex is evaluated.
|
61
|
+
(?imns-imns) Turn match flags on or off for the rest of pattern.
|
62
|
+
(?imns-imns: Turn match flags on or off for the rest of the subexpression.
|
63
|
+
...)
|
64
|
+
(?#...) Treat substring as a comment.
|
65
|
+
#... Treat rest of line as a comment in /x mode.
|
66
|
+
(?<=...) Positive lookbehind.
|
67
|
+
(?<!...) Negative lookbehind.
|
68
|
+
|
69
|
+
Ruby grouping, capturing, conditional and control
|
70
|
+
-------------------------------------------------
|
71
|
+
Sequence Meaning
|
72
|
+
(...) Grouping. Submatches fill \\1, \\2, ... and $1, $2, ...
|
73
|
+
(?<name>...) Named captured. Grouped match will fill \\k<name>.
|
74
|
+
\\n In a regular expression, match what was matched by the nth earlier submatch.
|
75
|
+
$n In a replacement string, contains the nth earlier submatch.
|
76
|
+
\\k<name> In a replacement string, contains the named submatch name.
|
77
|
+
(?:...) Grouping-only parentheses, no capturing.
|
78
|
+
(?>...) Atomic grouping.
|
79
|
+
...|... Alternation; match one or the other.
|
80
|
+
* Match 0 or more times.
|
81
|
+
+ Match 1 or more times.
|
82
|
+
? Match 1 or 0 times.
|
83
|
+
{n} Match exactly n times.
|
84
|
+
{n,} Match at least n times.
|
85
|
+
{,n} Match at most n times.
|
86
|
+
{x,y} Match at least x times, but no more than y times.
|
87
|
+
*? Match 0 or more times, but as few times as possible.
|
88
|
+
+? Match 1 or more times, but as few times as possible.
|
89
|
+
?? Match 0 or 1 times, but as few times as possible.
|
90
|
+
{n,}? Match at least n times, but as few times as possible.
|
91
|
+
{x,y}? Match at least x times, no more than y times, and as few times as possible.
|
92
|
+
|
93
|
+
Ruby replacement sequences
|
94
|
+
--------------------------
|
95
|
+
Sequence Meaning
|
96
|
+
$1, $2, ... Captured submatches.
|
97
|
+
${name} Matched text of a named capture group.
|
98
|
+
$' Text before match.
|
99
|
+
$& Text of match.
|
100
|
+
$` Text after match.
|
101
|
+
$+ Last parenthesized match.
|
102
|
+
$~ Match data. Encapsulates the results of a successful pattern match.
|
35
103
|
EOS
|
36
104
|
end
|
105
|
+
module_function :man
|
37
106
|
end
|
38
107
|
end
|
39
108
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# This module encapsulates top level class methods.
|
4
|
+
module Rubymisc
|
5
|
+
class << self
|
6
|
+
def log_at_exit_error(log_to)
|
7
|
+
at_exit { dump_error_to_file(log_to) }
|
8
|
+
end
|
9
|
+
|
10
|
+
def dump_error_to_file(file)
|
11
|
+
if $!
|
12
|
+
File.open(file, 'a:utf-8:utf-8') do |log|
|
13
|
+
error = { timestamp: Time.now,
|
14
|
+
message: $!.message,
|
15
|
+
backtrace: $!.backtrace,
|
16
|
+
gems: Gem.loaded_specs.inject({}) { |m, (n, s)| m.merge(n => s.version.to_s) } }
|
17
|
+
require 'yaml'
|
18
|
+
YAML.dump(error, log)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
private :dump_error_to_file
|
23
|
+
end
|
24
|
+
end
|
data/lib/rubymisc/version.rb
CHANGED
data/rubymisc.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.extra_rdoc_files = ['README']
|
27
27
|
s.license = 'MIT'
|
28
28
|
|
29
|
-
{ rspec: '~> 2.8.0
|
29
|
+
{ rspec: '~> 2.8.0',
|
30
30
|
rake: '~> 0.9.2.2',
|
31
31
|
bundler: '~> 1.0.21',
|
32
32
|
simplecov: '~> 0.5.4' }.each { |lib, v| s.add_development_dependency lib.to_s, v }
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe Rbm::Object do
|
6
6
|
let(:collection) { [1, 2, 3, 4, 5, 100] }
|
7
7
|
|
8
8
|
describe '#in?' do
|
@@ -35,4 +35,20 @@ describe Rubymisc::Object do
|
|
35
35
|
collection.not.include?(1).should be false
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
describe '#and_try Functor' do
|
40
|
+
specify 'returns nil if nil is a receiver' do
|
41
|
+
nil.should respond_to :and_try
|
42
|
+
expect { nil.and_try.size.should be nil }.not_to raise_error
|
43
|
+
end
|
44
|
+
|
45
|
+
specify 'returns false if false is a receiver' do
|
46
|
+
false.should respond_to :and_try
|
47
|
+
expect { false.and_try.size }
|
48
|
+
end
|
49
|
+
|
50
|
+
specify 'returns 11 for "test string".and_try.size' do
|
51
|
+
'test string'.and_try.size.should be 11
|
52
|
+
end
|
53
|
+
end
|
38
54
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe Rbm::Regex::Manual do
|
6
6
|
specify '.man' do
|
7
|
-
|
7
|
+
Rbm::Regex.man.should be_start_with <<-EOS
|
8
8
|
Ruby character representations
|
9
9
|
------------------------------
|
10
10
|
Sequence Meaning
|
@@ -21,6 +21,6 @@ Ruby character representations
|
|
21
21
|
\\cchar Named control character.
|
22
22
|
EOS
|
23
23
|
|
24
|
-
puts "\n" +
|
24
|
+
puts "\n" + Rbm::Regex.man
|
25
25
|
end
|
26
26
|
end
|
data/spec/rubymisc/regex_spec.rb
CHANGED
@@ -2,66 +2,66 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe Rbm::Regex do
|
6
6
|
describe '.email' do
|
7
7
|
specify 'valid email regexp' do
|
8
|
-
|
9
|
-
|
8
|
+
Rbm::Regex.email.should match 'ipoval@ya.ru'
|
9
|
+
Rbm::Regex.email.should match 'ivan-poval@yandex.ru'
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
describe '.url' do
|
14
14
|
specify 'valid url regexp' do
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
15
|
+
Rbm::Regex.url.should match 'http://google.com'
|
16
|
+
Rbm::Regex.url.should match 'http://www.google.com'
|
17
|
+
Rbm::Regex.url.should match 'https://google.com'
|
18
|
+
Rbm::Regex.url.should match 'https://www.google.com'
|
19
|
+
Rbm::Regex.url.should match 'http://google.com/'
|
20
|
+
Rbm::Regex.url.should match 'http://www.google.com/'
|
21
|
+
Rbm::Regex.url.should match 'https://google.com/'
|
22
|
+
Rbm::Regex.url.should match 'https://www.google.com/'
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
describe '.zip' do
|
27
27
|
specify 'valid zip regexp' do
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
Rbm::Regex.zip.should match '90028'
|
29
|
+
Rbm::Regex.zip.should match '90028-0000'
|
30
|
+
Rbm::Regex.zip.should_not match '9002'
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
describe '.ipv4' do
|
35
35
|
specify 'valid dotted quad IP address' do
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
Rbm::Regex.ipv4.should match '127.0.0.1'
|
37
|
+
Rbm::Regex.ipv4.should match '224.22.5.110'
|
38
|
+
Rbm::Regex.ipv4.should_not match '127.1'
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
describe '.mac_address' do
|
43
43
|
specify 'valid mac address' do
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
Rbm::Regex.mac_address.should match '01:23:45:67:89:ab'
|
45
|
+
Rbm::Regex.mac_address.should_not match '01:23:45'
|
46
|
+
Rbm::Regex.mac_address.should_not match '0123456789ab'
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
describe '.hexcode' do
|
51
51
|
specify 'valid html hex code' do
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
Rbm::Regex.hexcode.should match '#aaa'
|
53
|
+
Rbm::Regex.hexcode.should match '#000AAA'
|
54
|
+
Rbm::Regex.hexcode.should_not match 'fff'
|
55
|
+
Rbm::Regex.hexcode.should_not match '#ggg'
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
describe '.usd' do
|
60
60
|
specify '.usd' do
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
61
|
+
Rbm::Regex.usd.should match '$20'
|
62
|
+
Rbm::Regex.usd.should match '$15,000.01'
|
63
|
+
Rbm::Regex.usd.should_not match '$1.001'
|
64
|
+
Rbm::Regex.usd.should_not match '$.99'
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
data/spec/rubymisc_spec.rb
CHANGED
@@ -2,5 +2,24 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe Rbm do
|
6
|
+
describe '.log_at_exit_error' do
|
7
|
+
let(:crash_log) { 'rubymisc.crash.log' }
|
8
|
+
|
9
|
+
around(:each) { FileUtils.rm crash_log, force: true, verbose: true }
|
10
|
+
|
11
|
+
it { should respond_to :log_at_exit_error }
|
12
|
+
|
13
|
+
specify 'fail SystemExit, raised by exit to initiate the termination of the script' do
|
14
|
+
File.exist?(crash_log).should be_false
|
15
|
+
|
16
|
+
begin
|
17
|
+
fail SystemExit
|
18
|
+
rescue Exception
|
19
|
+
Rbm.send(:dump_error_to_file, crash_log)
|
20
|
+
end
|
21
|
+
|
22
|
+
File.exist?(crash_log).should be_true
|
23
|
+
end
|
24
|
+
end
|
6
25
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
$:.unshift File.expand_path('../lib', __FILE__)
|
4
4
|
|
5
|
-
#
|
6
|
-
require 'simplecov'
|
5
|
+
require 'simplecov' # use simplecov test coverage
|
7
6
|
SimpleCov.start
|
8
7
|
|
8
|
+
require 'yaml'
|
9
|
+
require 'fileutils'
|
9
10
|
require 'rubymisc'
|
11
|
+
|
10
12
|
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
11
13
|
|
12
14
|
RSpec.configure do |conf|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubymisc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-01-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152648740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.8.0
|
21
|
+
version: 2.8.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152648740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152648280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.2.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152648280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152647820 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.21
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152647820
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152647360 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 0.5.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152647360
|
58
58
|
description: Miscellaneous and humble tool-set of useful Ruby.
|
59
59
|
email:
|
60
60
|
- ipoval@ya.ru
|
@@ -64,6 +64,7 @@ extra_rdoc_files:
|
|
64
64
|
- README
|
65
65
|
files:
|
66
66
|
- .gitignore
|
67
|
+
- .irbrc
|
67
68
|
- .rvmrc
|
68
69
|
- .travis.yml
|
69
70
|
- Gemfile
|
@@ -79,6 +80,7 @@ files:
|
|
79
80
|
- lib/rubymisc/ext/string.rb
|
80
81
|
- lib/rubymisc/regex.rb
|
81
82
|
- lib/rubymisc/regex/manual.rb
|
83
|
+
- lib/rubymisc/self.rb
|
82
84
|
- lib/rubymisc/version.rb
|
83
85
|
- rubymisc.gemspec
|
84
86
|
- spec/rubymisc/exceptional_spec.rb
|