rubymisc 0.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.
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .DS_Store
6
+ coverage
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3@rubymisc 2>/dev/null
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/README ADDED
@@ -0,0 +1,43 @@
1
+ 1 What is Rubymisc (Ruby miscellaneous | /ˈru:bi ˌmisəˈleiniəs/)
2
+ Miscellaneous and humble tool-set of useful Ruby
3
+
4
+ 1.1 Installation
5
+ gem install rubymisc
6
+
7
+ 2 Usage
8
+
9
+ 2.1 Regular expressions
10
+ e1: Rubymisc::Regex.email
11
+ e2: Rubymisc::Regex.url
12
+ e3: Rubymisc::Regex.zip
13
+ e4: Rubymisc::Regex.ipv4
14
+ e5: Rubymisc::Regex.mac_address
15
+ e6: Rubymisc::Regex.hexcode
16
+ e7: Rubymisc::Regex.usd
17
+
18
+ 2.2 Object
19
+
20
+ #in?
21
+ e8: 100.in?([1, 2, 3, 4, 5, 100]) # => true
22
+
23
+ #not functor
24
+ e9: 100.not.instance_of?(Fixnum) # => false
25
+
26
+ #errors_with_message
27
+ e10: begin; raise 'Timeout socket'; rescue errors_with_message(/socket/); p 'socket E'; end
28
+
29
+ 2.3 Integer
30
+
31
+ #percent_of
32
+ e11: 50.percent_of(100) # => 50.0
33
+
34
+ 2.4 ActiveRecord::Base
35
+ .validates_url
36
+ .validates_email
37
+ .validates_image_url
38
+
39
+ 3 Development
40
+
41
+ - `gem install bundler`
42
+ - `bundle install`
43
+ - `bundle exec rake spec`
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rake'
4
+ require 'bundler'
5
+
6
+ Bundler::GemHelper.install_tasks
7
+
8
+ Dir['lib/tasks/**/*.rake'].
9
+ concat(Dir['tasks/**/*.rake']).
10
+ concat(Dir['{test,spec}/*.rake']).each { |rake| load(rake) }
11
+
12
+ task :default => :spec
13
+ task :test => :spec # for http://test.rubygems.org/
@@ -0,0 +1,44 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Exceptional
5
+ def ASSERT(&block)
6
+ begin
7
+ yield
8
+ rescue StandardError => e
9
+ STDERR.puts e.inspect
10
+ STDERR.puts e.backtrace
11
+ raise RuntimeError, "#{e.message}", caller
12
+ end
13
+ end
14
+
15
+ ##
16
+ # @example
17
+ # begin; raise 'Timeout socket'; rescue errors_with_message(/socket/); p 'socket E'; end
18
+ #
19
+ def errors_with_message(pattern)
20
+ m = Module.new
21
+ (class << m; self; end).instance_eval do
22
+ define_method(:===) do |e|
23
+ pattern === e.message
24
+ end
25
+ end
26
+ m
27
+ end
28
+
29
+ ##
30
+ # @example
31
+ # rescue => e; raise NestedException.new('Error B', e); end
32
+ # rescue; raise NestedException, 'Error B'; end
33
+ #
34
+ class NestedException < StandardError
35
+ attr_reader :original
36
+ def initialize(msg, original = $!)
37
+ super(msg)
38
+ @original = original
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ ::Object.module_eval 'include Rubymisc::Exceptional'
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ if defined?('ActiveRecord')
4
+ module Rubymisc
5
+ module ArValidates
6
+ def validates_url(attribute = :url)
7
+ validates_presence_of attribute
8
+ validates_length_of attribute, :minimum => 12
9
+ validates_format_of attribute, :with => Regex.url, :message => %/isn't a valid URL./
10
+ end
11
+
12
+ def validates_email(attribute = :email)
13
+ validates_presence_of attribute
14
+ validates_length_of attribute, :minimum => 5
15
+ validates_format_of attribute, :with => Regex.email, :message => %/isn't a valid email./
16
+ end
17
+
18
+ def validates_image_url(attribute = :image_url)
19
+ validates attribute, allow_blank: true, format: {
20
+ with: %r{\.(gif|jpg|png)$}i,
21
+ message: 'must be a URL for GIF, JPG or PNG image.'
22
+ }
23
+ end
24
+ end
25
+
26
+ ActiveRecord::Base.extend ArValidates
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Float
5
+ def percent_of(number)
6
+ self * 100 / number
7
+ end
8
+ end
9
+ end
10
+
11
+ ::Float.module_eval 'include Rubymisc::Float'
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Integer
5
+ def percent_of(number)
6
+ self.to_f * 100 / number
7
+ end
8
+ end
9
+ end
10
+
11
+ ::Integer.module_eval 'include Rubymisc::Integer'
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Object
5
+ def in?(collection)
6
+ collection.respond_to?(:include?) ? collection.include?(self) : false
7
+ end
8
+
9
+ def not
10
+ not_functor = lambda { |op, *a, &b| !self.__send__(op, *a, &b) }
11
+
12
+ not_functor.singleton_class.module_eval <<-CODE
13
+ def method_missing(method, *arguments, &block)
14
+ call(method, *arguments, &block)
15
+ end
16
+ CODE
17
+
18
+ not_functor
19
+ end
20
+ end
21
+ end
22
+
23
+ ::Object.module_eval 'include Rubymisc::Object'
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Regex
5
+ class Manual
6
+ def self.man
7
+ <<-EOS
8
+ Ruby character representations
9
+ ------------------------------
10
+ Sequence Meaning
11
+ \\a Alert (bell), \\x07.
12
+ \\b Backspace, \\x08, supported only in character class.
13
+ \\e ESC character, \\x1B.
14
+ \\n Newline, \\x0A.
15
+ \\r Carriage return, \\x0D.
16
+ \\f Form feed, \\x0C.
17
+ \\t Horizontal tab \\x09.
18
+ \\v Vertical tab, \\x0B.
19
+ \\0octal Character specified by a two-digit octal code.
20
+ \\xhex Character specified by a two-digit hexadecimal code.
21
+ \\cchar Named control character.
22
+
23
+ Ruby character classses and class-like constructs
24
+ -------------------------------------------------
25
+ Class Meaning
26
+ [...] A single character listed, or contained within a listed range.
27
+ [^...] A single character not listed, and not contained within a listed range.
28
+ . Any character, except a line terminator (unless single-line mode, s).
29
+ \\w Word character.
30
+ \\W Nonword character.
31
+ \\d Digit.
32
+ \\D Nondigit.
33
+ \\s Whitespace character, [\\f\\n\\r\\t\\v].
34
+ \\S Nonwhitespace character, [^\\f\\n\\r\\t\\v].
35
+ EOS
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ module Regex
5
+ autoload :Manual, File.expand_path('../regex/manual', __FILE__)
6
+
7
+ class << self
8
+ def email
9
+ email_name_regex = '[\w\.%\+\-]+'.freeze
10
+ domain_head_regex = '(?:[A-Z0-9\-]+\.)+'.freeze
11
+ domain_tld_regex = '(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|jobs|museum)'.freeze
12
+ /\A#{email_name_regex}@#{domain_head_regex}#{domain_tld_regex}\z/i
13
+ end
14
+
15
+ def url
16
+ /\A((https?):(([A-Za-z0-9$_.+!*(),;\/?:@&~=-])|%[A-Za-z0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;\/?:@&~=%-]*))?([A-Za-z0-9$_+!*();\/?:~-]))\z/
17
+ end
18
+
19
+ def zip
20
+ /\A\d{5}(?:-\d{4})?\z/
21
+ end
22
+
23
+ def ipv4
24
+ ip_octet = '(\d|[01]?\d\d|2[0-4]\d|25[0-5])'.freeze
25
+ /\A#{ip_octet}\.#{ip_octet}\.#{ip_octet}\.#{ip_octet}\z/
26
+ end
27
+
28
+ def mac_address
29
+ /\A(\h{2}:){5}\h{2}\z/
30
+ end
31
+
32
+ def hexcode
33
+ /\A#(\h{3})\1?\z/
34
+ end
35
+
36
+ def usd
37
+ /\A\$(\d{1,3}(\,\d{3})*|\d+)(\.\d{2})?\z/
38
+ end
39
+ end
40
+
41
+ code = <<-CODE
42
+ def man; Manual.man; end
43
+ CODE
44
+
45
+ singleton_class.module_eval code
46
+ end
47
+ end
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ VERSION = '0.0.1'
5
+ end
data/lib/rubymisc.rb ADDED
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ module Rubymisc
4
+ autoload :Object, 'rubymisc/ext/object'
5
+ autoload :Integer, 'rubymisc/ext/integer'
6
+ autoload :Float, 'rubymisc/ext/float'
7
+
8
+ autoload :Regex, 'rubymisc/regex'
9
+ autoload :Exceptional, 'rubymisc/exceptional'
10
+ end
11
+
12
+ require 'rubymisc/version'
data/rubymisc.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ $:.push File.expand_path('../lib', __FILE__)
4
+ require 'rubymisc/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'rubymisc'
8
+ s.version = Rubymisc::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ['Ivan Povalyukhin']
11
+ s.email = ['ipoval@ya.ru']
12
+ s.homepage = 'https://github.com/ipoval/rubymisc'
13
+ s.summary = %q{Ruby miscellaneous.}
14
+ s.description = %q{Miscellaneous and humble tool-set of useful Ruby.}
15
+
16
+ s.rubyforge_project = 'rubymisc'
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ['lib']
22
+
23
+ s.required_ruby_version = '>= 1.9.3'
24
+ s.required_rubygems_version = '>= 1.3.5'
25
+
26
+ { rspec: '~> 2.8.0.rc1',
27
+ rake: '~> 0.9.2',
28
+ bundler: '~> 1.0.21',
29
+ simplecov: '~> 0.5.4' }.each { |lib, v| s.add_development_dependency lib, v }
30
+ end
@@ -0,0 +1,50 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::Exceptional do
6
+ describe '#ASSERT' do
7
+ specify 'catches failing block and raises RuntimeError' do
8
+ failing_proc = -> { fail 'Fail message!' }
9
+ expect { ASSERT &failing_proc }.to raise_error RuntimeError
10
+ end
11
+
12
+ specify 'ok block does not raise error' do
13
+ success_proc = -> { true }
14
+ expect { ASSERT &success_proc }.to_not raise_error
15
+ end
16
+ end
17
+
18
+ describe '#errors_with_message' do
19
+ specify 'rescue an exception if message match' do
20
+ e_socket = -> {
21
+ begin; fail 'Timeout socket'; rescue errors_with_message(/socket/); end
22
+ }
23
+ expect(&e_socket).to_not raise_exception
24
+ end
25
+
26
+ specify 'do not rescue an exception if no message match' do
27
+ e_none_socket = -> {
28
+ begin; fail 'Timeout without correct token'; rescue errors_with_message(/socket/); end
29
+ }
30
+ expect(&e_none_socket).to raise_exception(RuntimeError, 'Timeout without correct token')
31
+ end
32
+ end
33
+
34
+ describe NestedException do
35
+ specify 'wraps $! exception' do
36
+ begin
37
+ fail 'OriginalException'
38
+ rescue => e_original
39
+ begin
40
+ raise NestedException, e_original.message + '::NestingException'
41
+ rescue => e_nesting
42
+ e_nesting.should respond_to :original
43
+ e_nesting.original.should be e_original
44
+ e_nesting.message.should == 'OriginalException::NestingException'
45
+ e_nesting.original.message.should == 'OriginalException'
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::Float do
6
+ describe '#percent_of' do
7
+ specify '50.0 is 50.0 percent of 100' do
8
+ (50.0).percent_of(100).should be_kind_of Float
9
+ (50.0).percent_of(100).should == 50.0
10
+ end
11
+
12
+ specify '0.0 is 0.0 percent of 100' do
13
+ (0.0).percent_of(100).should be_kind_of Float
14
+ (0.0).percent_of(100).should == 0.0
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::Integer do
6
+ describe '#percent_of' do
7
+ specify '50 is 50.0 percent of 100' do
8
+ 50.percent_of(100).should be_kind_of Float
9
+ 50.percent_of(100).should == 50.0
10
+ end
11
+
12
+ specify '0 is 0.0 percent of 100' do
13
+ 0.percent_of(100).should be_kind_of Float
14
+ 0.percent_of(100).should == 0.0
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::Object do
6
+ let(:collection) { [1, 2, 3, 4, 5, 100] }
7
+
8
+ describe '#in?' do
9
+ context 'given collection includes element' do
10
+ specify 'returns true' do
11
+ 100.in?(collection).should be_true
12
+ end
13
+ end
14
+
15
+ context 'given collection does not include element' do
16
+ specify 'returns false' do
17
+ 101.in?(collection).should be_false
18
+ end
19
+ end
20
+ end
21
+
22
+ describe '#not Functor' do
23
+ specify 'String#empty? returns false for blank string with #not Functor' do
24
+ ''.empty?.should be true
25
+ ''.not.empty?.should be false
26
+ end
27
+
28
+ specify 'Object#instance_of? returns false when class matches with #not Functor' do
29
+ 100.instance_of?(Fixnum).should be true
30
+ 100.not.instance_of?(Fixnum).should be false
31
+ end
32
+
33
+ specify 'Enumerable#include? returns false for collection having an element with #not Functor' do
34
+ collection.include?(1).should be true
35
+ collection.not.include?(1).should be false
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'Rubymisc::Regex::Manual' do
6
+ specify '.man' do
7
+ Rubymisc::Regex.man.should be_start_with <<-EOS
8
+ Ruby character representations
9
+ ------------------------------
10
+ Sequence Meaning
11
+ \\a Alert (bell), \\x07.
12
+ \\b Backspace, \\x08, supported only in character class.
13
+ \\e ESC character, \\x1B.
14
+ \\n Newline, \\x0A.
15
+ \\r Carriage return, \\x0D.
16
+ \\f Form feed, \\x0C.
17
+ \\t Horizontal tab \\x09.
18
+ \\v Vertical tab, \\x0B.
19
+ \\0octal Character specified by a two-digit octal code.
20
+ \\xhex Character specified by a two-digit hexadecimal code.
21
+ \\cchar Named control character.
22
+ EOS
23
+
24
+ puts "\n" + Rubymisc::Regex.man
25
+ end
26
+ end
@@ -0,0 +1,67 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::Regex do
6
+ describe '.email' do
7
+ specify 'valid email regexp' do
8
+ Rubymisc::Regex.email.should match 'ipoval@ya.ru'
9
+ Rubymisc::Regex.email.should match 'ivan-poval@yandex.ru'
10
+ end
11
+ end
12
+
13
+ describe '.url' do
14
+ specify 'valid url regexp' do
15
+ Rubymisc::Regex.url.should match 'http://google.com'
16
+ Rubymisc::Regex.url.should match 'http://www.google.com'
17
+ Rubymisc::Regex.url.should match 'https://google.com'
18
+ Rubymisc::Regex.url.should match 'https://www.google.com'
19
+ Rubymisc::Regex.url.should match 'http://google.com/'
20
+ Rubymisc::Regex.url.should match 'http://www.google.com/'
21
+ Rubymisc::Regex.url.should match 'https://google.com/'
22
+ Rubymisc::Regex.url.should match 'https://www.google.com/'
23
+ end
24
+ end
25
+
26
+ describe '.zip' do
27
+ specify 'valid zip regexp' do
28
+ Rubymisc::Regex.zip.should match '90028'
29
+ Rubymisc::Regex.zip.should match '90028-0000'
30
+ Rubymisc::Regex.zip.should_not match '9002'
31
+ end
32
+ end
33
+
34
+ describe '.ipv4' do
35
+ specify 'valid dotted quad IP address' do
36
+ Rubymisc::Regex.ipv4.should match '127.0.0.1'
37
+ Rubymisc::Regex.ipv4.should match '224.22.5.110'
38
+ Rubymisc::Regex.ipv4.should_not match '127.1'
39
+ end
40
+ end
41
+
42
+ describe '.mac_address' do
43
+ specify 'valid mac address' do
44
+ Rubymisc::Regex.mac_address.should match '01:23:45:67:89:ab'
45
+ Rubymisc::Regex.mac_address.should_not match '01:23:45'
46
+ Rubymisc::Regex.mac_address.should_not match '0123456789ab'
47
+ end
48
+ end
49
+
50
+ describe '.hexcode' do
51
+ specify 'valid html hex code' do
52
+ Rubymisc::Regex.hexcode.should match '#aaa'
53
+ Rubymisc::Regex.hexcode.should match '#000000'
54
+ Rubymisc::Regex.hexcode.should_not match 'fff'
55
+ Rubymisc::Regex.hexcode.should_not match '#ggg'
56
+ end
57
+ end
58
+
59
+ describe '.usd' do
60
+ specify '.usd' do
61
+ Rubymisc::Regex.usd.should match '$20'
62
+ Rubymisc::Regex.usd.should match '$15,000.01'
63
+ Rubymisc::Regex.usd.should_not match '$1.001'
64
+ Rubymisc::Regex.usd.should_not match '$.99'
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc::VERSION do
6
+ it { should =~ /\A\d+\.\d+\.\d+\z/ }
7
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubymisc do
6
+ end
data/spec/spec.rake ADDED
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ desc 'Run complete application spec suite'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ spec_tasks = Dir['spec/*/'].map { |d| File.basename(d) }
9
+
10
+ spec_tasks.each do |folder|
11
+ RSpec::Core::RakeTask.new("spec:#{folder}") do |t|
12
+ t.pattern = "./spec/#{folder}/**/*_spec.rb"
13
+ t.rspec_opts = %w(--color)
14
+ end
15
+ end
16
+
17
+ # task 'spec' => spec_tasks.map { |f| "spec:#{f}" }
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+
3
+ $:.unshift File.expand_path('../lib', __FILE__)
4
+
5
+ # Use simplecov test coverage
6
+ require 'simplecov'
7
+ SimpleCov.start
8
+
9
+ require 'rubymisc'
10
+ Dir['./spec/support/**/*.rb'].each { |f| require f }
11
+
12
+ RSpec.configure do |conf|
13
+ conf.color_enabled = true
14
+ conf.treat_symbols_as_metadata_keys_with_true_values = true
15
+
16
+ conf.expect_with :rspec, :stdlib
17
+ conf.mock_with :rspec
18
+
19
+ conf.fail_fast = true
20
+ conf.filter_run :focus => true
21
+ conf.filter_run_excluding :broken => true
22
+ conf.run_all_when_everything_filtered = true
23
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubymisc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ivan Povalyukhin
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: :rspec
16
+ requirement: &2152338320 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.8.0.rc1
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2152338320
25
+ - !ruby/object:Gem::Dependency
26
+ name: :rake
27
+ requirement: &2152337660 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2152337660
36
+ - !ruby/object:Gem::Dependency
37
+ name: :bundler
38
+ requirement: &2152337020 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.21
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2152337020
47
+ - !ruby/object:Gem::Dependency
48
+ name: :simplecov
49
+ requirement: &2152332880 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.4
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2152332880
58
+ description: Miscellaneous and humble tool-set of useful Ruby.
59
+ email:
60
+ - ipoval@ya.ru
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - .gitignore
66
+ - .rvmrc
67
+ - Gemfile
68
+ - README
69
+ - Rakefile
70
+ - lib/rubymisc.rb
71
+ - lib/rubymisc/exceptional.rb
72
+ - lib/rubymisc/ext/active_record.rb
73
+ - lib/rubymisc/ext/float.rb
74
+ - lib/rubymisc/ext/integer.rb
75
+ - lib/rubymisc/ext/object.rb
76
+ - lib/rubymisc/regex.rb
77
+ - lib/rubymisc/regex/manual.rb
78
+ - lib/rubymisc/version.rb
79
+ - rubymisc.gemspec
80
+ - spec/rubymisc/exceptional_spec.rb
81
+ - spec/rubymisc/ext/float_spec.rb
82
+ - spec/rubymisc/ext/integer_spec.rb
83
+ - spec/rubymisc/ext/object_spec.rb
84
+ - spec/rubymisc/regex/manual_spec.rb
85
+ - spec/rubymisc/regex_spec.rb
86
+ - spec/rubymisc/version_spec.rb
87
+ - spec/rubymisc_spec.rb
88
+ - spec/spec.rake
89
+ - spec/spec_helper.rb
90
+ homepage: https://github.com/ipoval/rubymisc
91
+ licenses: []
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 1.9.3
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: 1.3.5
108
+ requirements: []
109
+ rubyforge_project: rubymisc
110
+ rubygems_version: 1.8.10
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Ruby miscellaneous.
114
+ test_files:
115
+ - spec/rubymisc/exceptional_spec.rb
116
+ - spec/rubymisc/ext/float_spec.rb
117
+ - spec/rubymisc/ext/integer_spec.rb
118
+ - spec/rubymisc/ext/object_spec.rb
119
+ - spec/rubymisc/regex/manual_spec.rb
120
+ - spec/rubymisc/regex_spec.rb
121
+ - spec/rubymisc/version_spec.rb
122
+ - spec/rubymisc_spec.rb
123
+ - spec/spec.rake
124
+ - spec/spec_helper.rb