rstd 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e13b47442ec28dcdaa29a6714f5538170bf73977fce56576d13ed2891c3bdac
4
- data.tar.gz: cd00230092339cdd5191941c7ed02901423f54289841ca95191f587558969261
3
+ metadata.gz: f25034496951a36d059f65870d775454d2fedddf276d01ca6dfa5b36c17d1672
4
+ data.tar.gz: 9038305ae1d6ac49caaf1552a13fb2623d1ae69d40811dadcf1e8e83c79658fb
5
5
  SHA512:
6
- metadata.gz: 2b43245e6362426de9b084fe2514b18911679d31d918462e4bcc7f99f168de7cadba6e7c60a295f52b8ce9ef07beeed5856ff97beb756efb671fc33c43f1cacc
7
- data.tar.gz: 7101fefa8e3f4109a9f2b5914b8b2fa84ae47b5a60457d33257c97f60f5308e8245a79c06a162e8109474abf6ddb3ceaaee6e38ec2567d07c434780b665ce39d
6
+ metadata.gz: 031bcec26fe729437e596cdc0d90d52944e8a57c6bc0a91262f8ccf1ec592e129c437b8a5063e011651e740e4c104fd1336c5a5462714ea93985892ee74dcbc4
7
+ data.tar.gz: bacf5c64608653775cef36767a261def440a058e02e1a18ad62448fe0cf213ba502e7ced9eadd4f082999382b4a1e6e92f085b010d30ce39e3a8853f12b91b9b
@@ -1,13 +1,20 @@
1
1
  name: MacOS
2
2
 
3
- on: [push, pull_request]
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: [push, pull_request]
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-16.04, ubuntu-18.04 ]
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: [push, pull_request]
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
@@ -5,3 +5,4 @@ gemspec
5
5
 
6
6
  gem "rake", "~> 12.0"
7
7
  gem "minitest", "~> 5.0"
8
+ gem "yard"
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/[USERNAME]/rstd.
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
@@ -0,0 +1,11 @@
1
+ module Rstd::RefineFalse
2
+ refine FalseClass do
3
+ def present?
4
+ false
5
+ end
6
+
7
+ def blank?
8
+ true
9
+ end
10
+ end
11
+ end
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
@@ -0,0 +1,11 @@
1
+ module Rstd::RefineKernel
2
+ refine Kernel do
3
+ def refine_method(klass, method_id, &expr)
4
+ Module.new do
5
+ refine klass do
6
+ define_method method_id.to_sym, &expr
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/rstd/nil.rb ADDED
@@ -0,0 +1,11 @@
1
+ module Rstd::RefineNilClass
2
+ refine NilClass do
3
+ def present?
4
+ false
5
+ end
6
+
7
+ def blank?
8
+ true
9
+ end
10
+ end
11
+ end
@@ -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
@@ -0,0 +1,15 @@
1
+ module Rstd::RefineTrue
2
+ refine TrueClass do
3
+ def present?
4
+ true
5
+ end
6
+
7
+ def blank?
8
+ false
9
+ end
10
+
11
+ def true?
12
+ true
13
+ end
14
+ end
15
+ end
data/lib/rstd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rstd
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
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.3.0")
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.0
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: 2020-06-04 00:00:00.000000000 Z
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.3.0
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.1.2
67
+ rubygems_version: 3.2.22
61
68
  signing_key:
62
69
  specification_version: 4
63
70
  summary: useful implementation for ruby