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 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