rstd 0.1.0 → 0.2.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/.github/workflows/macos.yml +9 -2
- data/.github/workflows/ubuntu.yml +10 -3
- data/.github/workflows/windows.yml +8 -2
- data/Gemfile +1 -0
- data/Gemfile.lock +23 -0
- data/README.md +1 -1
- data/Rakefile +6 -0
- data/lib/rstd/array.rb +55 -0
- data/lib/rstd/false.rb +11 -0
- data/lib/rstd/hash.rb +18 -0
- data/lib/rstd/integer.rb +15 -0
- data/lib/rstd/kernel.rb +11 -0
- data/lib/rstd/nil.rb +11 -0
- data/lib/rstd/object.rb +34 -0
- data/lib/rstd/string.rb +18 -0
- data/lib/rstd/true.rb +15 -0
- data/lib/rstd/version.rb +1 -1
- data/lib/rstd.rb +6 -0
- data/rstd.gemspec +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f25034496951a36d059f65870d775454d2fedddf276d01ca6dfa5b36c17d1672
|
|
4
|
+
data.tar.gz: 9038305ae1d6ac49caaf1552a13fb2623d1ae69d40811dadcf1e8e83c79658fb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 031bcec26fe729437e596cdc0d90d52944e8a57c6bc0a91262f8ccf1ec592e129c437b8a5063e011651e740e4c104fd1336c5a5462714ea93985892ee74dcbc4
|
|
7
|
+
data.tar.gz: bacf5c64608653775cef36767a261def440a058e02e1a18ad62448fe0cf213ba502e7ced9eadd4f082999382b4a1e6e92f085b010d30ce39e3a8853f12b91b9b
|
data/.github/workflows/macos.yml
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
name: MacOS
|
|
2
2
|
|
|
3
|
-
on:
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- master
|
|
10
|
+
|
|
4
11
|
|
|
5
12
|
jobs:
|
|
6
13
|
test:
|
|
7
14
|
strategy:
|
|
8
15
|
matrix:
|
|
9
16
|
os: [ macos-latest ]
|
|
10
|
-
ruby: [ '2.4', '2.5', '2.6', '2.7' ]
|
|
17
|
+
ruby: [ '2.4', '2.5', '2.6', '2.7', '3.0', 'head', 'jruby', 'jruby-head', 'truffleruby', 'truffleruby-head' ]
|
|
11
18
|
runs-on: ${{ matrix.os }}
|
|
12
19
|
|
|
13
20
|
steps:
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
name: Ubuntu
|
|
2
2
|
|
|
3
|
-
on:
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- master
|
|
10
|
+
|
|
4
11
|
|
|
5
12
|
jobs:
|
|
6
13
|
test:
|
|
7
14
|
strategy:
|
|
8
15
|
matrix:
|
|
9
|
-
os: [ ubuntu-
|
|
10
|
-
ruby: [ '2.4', '2.5', '2.6', '2.7' ]
|
|
16
|
+
os: [ ubuntu-18.04, ubuntu-20.04 ]
|
|
17
|
+
ruby: [ '2.4', '2.5', '2.6', '2.7', '3.0', 'head', 'jruby', 'jruby-head', 'truffleruby', 'truffleruby-head' ]
|
|
11
18
|
runs-on: ${{ matrix.os }}
|
|
12
19
|
|
|
13
20
|
steps:
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
name: Windows
|
|
2
2
|
|
|
3
|
-
on:
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- master
|
|
4
10
|
|
|
5
11
|
jobs:
|
|
6
12
|
test:
|
|
7
13
|
strategy:
|
|
8
14
|
matrix:
|
|
9
15
|
os: [ windows-latest ]
|
|
10
|
-
ruby: [ '2.4', '2.5', '2.6', '2.7' ]
|
|
16
|
+
ruby: [ '2.4', '2.5', '2.6', '2.7', '3.0', 'head', 'jruby', 'jruby-head' ]
|
|
11
17
|
runs-on: ${{ matrix.os }}
|
|
12
18
|
|
|
13
19
|
steps:
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
rstd (0.1.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
minitest (5.14.4)
|
|
10
|
+
rake (12.3.3)
|
|
11
|
+
yard (0.9.26)
|
|
12
|
+
|
|
13
|
+
PLATFORMS
|
|
14
|
+
x86_64-linux
|
|
15
|
+
|
|
16
|
+
DEPENDENCIES
|
|
17
|
+
minitest (~> 5.0)
|
|
18
|
+
rake (~> 12.0)
|
|
19
|
+
rstd!
|
|
20
|
+
yard
|
|
21
|
+
|
|
22
|
+
BUNDLED WITH
|
|
23
|
+
2.2.22
|
data/README.md
CHANGED
|
@@ -28,5 +28,5 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
|
28
28
|
|
|
29
29
|
## Contributing
|
|
30
30
|
|
|
31
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
|
31
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/S-H-GAMELINKS/rstd.
|
|
32
32
|
|
data/Rakefile
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
2
|
require "rake/testtask"
|
|
3
3
|
|
|
4
|
+
|
|
5
|
+
|
|
4
6
|
Rake::TestTask.new(:test) do |t|
|
|
5
7
|
t.libs << "test"
|
|
6
8
|
t.libs << "lib"
|
|
7
9
|
t.test_files = FileList["test/**/*_test.rb"]
|
|
8
10
|
end
|
|
9
11
|
|
|
12
|
+
task :doc do
|
|
13
|
+
sh "bundle exec yardoc 'lib/**/*.rb'"
|
|
14
|
+
end
|
|
15
|
+
|
|
10
16
|
task :default => :test
|
data/lib/rstd/array.rb
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
module Rstd::RefineArray
|
|
2
2
|
refine Array do
|
|
3
|
+
|
|
4
|
+
class << Array
|
|
5
|
+
def refine_method(method_id, &expr)
|
|
6
|
+
Module.new do
|
|
7
|
+
refine Array do
|
|
8
|
+
define_method(method_id, &expr)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
3
14
|
def first_last(length = 1, reversed: false)
|
|
4
15
|
if reversed
|
|
5
16
|
[self.first(length).reverse, self.last(length).reverse]
|
|
@@ -31,5 +42,49 @@ module Rstd::RefineArray
|
|
|
31
42
|
def delete_last(length = 1)
|
|
32
43
|
self - self.last(length)
|
|
33
44
|
end
|
|
45
|
+
|
|
46
|
+
def all?(value)
|
|
47
|
+
self.all_values_dup? && self.first == value
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def all_values_dup?
|
|
51
|
+
self.uniq.size == 1 ? true : false
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def all_nil?
|
|
55
|
+
self.all_values_dup? && self.uniq.first.nil?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def present?
|
|
59
|
+
if self.empty? || self.all_nil?
|
|
60
|
+
false
|
|
61
|
+
else
|
|
62
|
+
true
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def blank?
|
|
67
|
+
!self.present?
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def has?(value)
|
|
71
|
+
self.include?(value)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def has_bool?
|
|
75
|
+
self.include?(true) || self.include?(false)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def has_str?
|
|
79
|
+
self.map{|v| v.is_a?(String) }.count(true) != 0
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def has_num?
|
|
83
|
+
self.map{|v| v.is_a?(Integer) || v.is_a?(Float) || v.is_a?(Complex) || v.is_a?(Rational)}.count(true) != 0
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def has_nil?
|
|
87
|
+
self.map{|v| v.is_a?(NilClass)}.count(true) != 0
|
|
88
|
+
end
|
|
34
89
|
end
|
|
35
90
|
end
|
data/lib/rstd/false.rb
ADDED
data/lib/rstd/hash.rb
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Rstd::RefineHash
|
|
2
|
+
refine Hash do
|
|
3
|
+
|
|
4
|
+
class << Hash
|
|
5
|
+
def refine_method(method_id, &expr)
|
|
6
|
+
Module.new do
|
|
7
|
+
refine Hash do
|
|
8
|
+
define_method(method_id, &expr)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def has_pair?(key, value)
|
|
15
|
+
has_key?(key) && has_value?(value)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lib/rstd/integer.rb
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
module Rstd::RefineInteger
|
|
2
2
|
refine Integer do
|
|
3
|
+
|
|
4
|
+
class << Integer
|
|
5
|
+
def refine_method(method_id, &expr)
|
|
6
|
+
Module.new do
|
|
7
|
+
refine Integer do
|
|
8
|
+
define_method(method_id, &expr)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
3
14
|
def inc
|
|
4
15
|
self.succ
|
|
5
16
|
end
|
|
@@ -11,5 +22,9 @@ module Rstd::RefineInteger
|
|
|
11
22
|
def mod(num)
|
|
12
23
|
self % num
|
|
13
24
|
end
|
|
25
|
+
|
|
26
|
+
def pow(num = 2)
|
|
27
|
+
self**num
|
|
28
|
+
end
|
|
14
29
|
end
|
|
15
30
|
end
|
data/lib/rstd/kernel.rb
ADDED
data/lib/rstd/nil.rb
ADDED
data/lib/rstd/object.rb
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Rstd::RefineObject
|
|
2
|
+
refine Object do
|
|
3
|
+
|
|
4
|
+
def refine_method?(method)
|
|
5
|
+
raise "Object#refine_method? is not supported" if RUBY_VERSION > "2.4" && "2.7" > RUBY_VERSION
|
|
6
|
+
if method.is_a?(Symbol)
|
|
7
|
+
if self.respond_to?(method)
|
|
8
|
+
method_obj = self.method(method)
|
|
9
|
+
return method_obj.to_s =~ /refinement/ ? true : false
|
|
10
|
+
else
|
|
11
|
+
raise NotImplementedError, "#{method} is not implemented"
|
|
12
|
+
end
|
|
13
|
+
else
|
|
14
|
+
raise ArgumentError, "you can given arguments only Symbol"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def present?
|
|
19
|
+
true
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def blank?
|
|
23
|
+
false
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def true?
|
|
27
|
+
true
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def false?
|
|
31
|
+
false
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/lib/rstd/string.rb
CHANGED
|
@@ -51,5 +51,23 @@ module Rstd::RefineString
|
|
|
51
51
|
result.pop
|
|
52
52
|
result.join
|
|
53
53
|
end
|
|
54
|
+
|
|
55
|
+
def present?
|
|
56
|
+
!self.empty?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def blank?
|
|
60
|
+
self.empty?
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def ords
|
|
64
|
+
self.each_char.map do |char|
|
|
65
|
+
char.ord
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def char_count
|
|
70
|
+
self.each_char.map.size
|
|
71
|
+
end
|
|
54
72
|
end
|
|
55
73
|
end
|
data/lib/rstd/true.rb
ADDED
data/lib/rstd/version.rb
CHANGED
data/lib/rstd.rb
CHANGED
|
@@ -2,6 +2,12 @@ require "rstd/version"
|
|
|
2
2
|
require "rstd/array"
|
|
3
3
|
require "rstd/string"
|
|
4
4
|
require "rstd/integer"
|
|
5
|
+
require "rstd/object"
|
|
6
|
+
require "rstd/kernel"
|
|
7
|
+
require "rstd/nil"
|
|
8
|
+
require "rstd/true"
|
|
9
|
+
require "rstd/false"
|
|
10
|
+
require "rstd/hash"
|
|
5
11
|
|
|
6
12
|
module Rstd
|
|
7
13
|
class Error < StandardError; end
|
data/rstd.gemspec
CHANGED
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
|
9
9
|
spec.summary = %q{ useful implementation for ruby }
|
|
10
10
|
spec.description = %q{ useful implementation for ruby }
|
|
11
11
|
spec.homepage = "https://github.com/S-H-GAMELINKS/rstd"
|
|
12
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
|
12
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
|
13
13
|
|
|
14
14
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
15
15
|
spec.metadata["source_code_uri"] = "https://github.com/S-H-GAMELINKS/rstd"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rstd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- S-H-GAMELINKS
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-10-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: " useful implementation for ruby "
|
|
14
14
|
email:
|
|
@@ -24,6 +24,7 @@ files:
|
|
|
24
24
|
- ".gitignore"
|
|
25
25
|
- ".travis.yml"
|
|
26
26
|
- Gemfile
|
|
27
|
+
- Gemfile.lock
|
|
27
28
|
- LICENSE
|
|
28
29
|
- README.md
|
|
29
30
|
- Rakefile
|
|
@@ -32,8 +33,14 @@ files:
|
|
|
32
33
|
- bin/setup
|
|
33
34
|
- lib/rstd.rb
|
|
34
35
|
- lib/rstd/array.rb
|
|
36
|
+
- lib/rstd/false.rb
|
|
37
|
+
- lib/rstd/hash.rb
|
|
35
38
|
- lib/rstd/integer.rb
|
|
39
|
+
- lib/rstd/kernel.rb
|
|
40
|
+
- lib/rstd/nil.rb
|
|
41
|
+
- lib/rstd/object.rb
|
|
36
42
|
- lib/rstd/string.rb
|
|
43
|
+
- lib/rstd/true.rb
|
|
37
44
|
- lib/rstd/version.rb
|
|
38
45
|
- rstd.gemspec
|
|
39
46
|
homepage: https://github.com/S-H-GAMELINKS/rstd
|
|
@@ -50,14 +57,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
50
57
|
requirements:
|
|
51
58
|
- - ">="
|
|
52
59
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 2.
|
|
60
|
+
version: 2.4.0
|
|
54
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
62
|
requirements:
|
|
56
63
|
- - ">="
|
|
57
64
|
- !ruby/object:Gem::Version
|
|
58
65
|
version: '0'
|
|
59
66
|
requirements: []
|
|
60
|
-
rubygems_version: 3.
|
|
67
|
+
rubygems_version: 3.2.22
|
|
61
68
|
signing_key:
|
|
62
69
|
specification_version: 4
|
|
63
70
|
summary: useful implementation for ruby
|