lite-ruby 1.2.0 → 1.3.3

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: 6bd71beaa77809d81b1e0bebf2a5c1796644e4ecc3236bbefbc85683c348e85a
4
- data.tar.gz: 9d3d106d3fc6e87844a59b05be070bd0a91ba613a1e31ba3d3b06bdb2d73330c
3
+ metadata.gz: 191d0fb7e901d29b7faa905a312fee5928439267a5f30d3e729ba76c5545de98
4
+ data.tar.gz: 1549c4736eeed76d892858775d32cd3914c6baed19d25b0bd4becc164d9cfc60
5
5
  SHA512:
6
- metadata.gz: a61410e6e67e6d3ccef314c5fdfb2cbb419469ef8106ca3b6a4e20dddefc9254978566d0d1260f9292c2ef65da07c2c8afe2bf3505ce09ef3d67cb17eed2dd73
7
- data.tar.gz: 54c104fb81fa10b5df25a634ce802acd49ee8b058daa19e77b8cb689d8638c42edf6b4e4481fb58853d4087bce2e9e919055fb056abbde9e14c7f314e076fc31
6
+ metadata.gz: bd7fb280764490cbfd9a581ae64d8985040bb49410169fd8b6c07e048dda78b995eb618155941f67e0ddfe32313def11ce8e3b86971f1564824d7de1c3177579
7
+ data.tar.gz: b1981a0e40ffcb31ad5302ace5ecc094e548415fc7e128edc873a2d7b5797450a4c7d6bdfee0e363f90041a0a362f90bb602fa2a4c1085f29700cc6a33948ff4
data/.rubocop.yml CHANGED
@@ -3,7 +3,7 @@ require:
3
3
  - rubocop-rake
4
4
  - rubocop-rspec
5
5
  AllCops:
6
- TargetRubyVersion: 2.7
6
+ TargetRubyVersion: 3.0
7
7
  NewCops: enable
8
8
  DisplayCopNames: true
9
9
  DisplayStyleGuide: true
data/CHANGELOG.md CHANGED
@@ -6,6 +6,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.3.3] - 2021-07-21
10
+ ### Changed
11
+ - Improved generator support
12
+
13
+ ## [1.3.2] - 2021-07-20
14
+ ### Changed
15
+ - Argument passing for try and send methods
16
+
17
+ ## [1.3.1] - 2021-07-20
18
+ ### Removed
19
+ - Struct `[]` and `[]=` existing methods
20
+
21
+ ## [1.3.0] - 2021-07-19
22
+ ### Added
23
+ - Added Ruby 3.0 support
24
+
9
25
  ## [1.2.0] - 2021-07-09
10
26
  ### Removed
11
27
  - OpenStruct block initialization due to unreliability
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (1.2.0)
4
+ lite-ruby (1.3.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -93,7 +93,7 @@ GEM
93
93
  rubocop-ast (>= 1.7.0, < 2.0)
94
94
  ruby-progressbar (~> 1.7)
95
95
  unicode-display_width (>= 1.4.0, < 3.0)
96
- rubocop-ast (1.7.0)
96
+ rubocop-ast (1.8.0)
97
97
  parser (>= 3.0.1.1)
98
98
  rubocop-performance (1.11.4)
99
99
  rubocop (>= 1.7.0, < 2.0)
@@ -129,4 +129,4 @@ DEPENDENCIES
129
129
  rubocop-rspec
130
130
 
131
131
  BUNDLED WITH
132
- 2.2.19
132
+ 2.2.24
data/docs/STRUCT.md CHANGED
@@ -1,30 +1,5 @@
1
1
  # Struct
2
2
 
3
- `[]`
4
- ------
5
- Access a value in the Struct by key, like a Hash.
6
-
7
- ```ruby
8
- person = Struct.new(:name, :age)
9
- person.new('bob', 60)
10
-
11
- person['name'] #=> 'bob'
12
- person['fake'] #=> nil
13
- ```
14
-
15
- `[]=`
16
- ------
17
- Store a value in the Struct by key, like a Hash.
18
-
19
- ```ruby
20
- person = Struct.new(:name, :age)
21
- person.new('bob', 60)
22
-
23
- person['name'] = 'tim'
24
-
25
- person['name'] #=> 'tim'
26
- ```
27
-
28
3
  `attributes`
29
4
  ------
30
5
  Returns the key values of the assigned struct.
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/generators'
4
-
5
3
  module Lite
6
4
  module Ruby
7
5
  class InstallGenerator < Rails::Generators::Base
data/lib/lite/ruby.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'generators/lite/ruby/install_generator' if defined?(Rails::Generators)
4
+
3
5
  %w[version configuration].each do |filename|
4
6
  require "lite/ruby/#{filename}"
5
7
  end
@@ -14,5 +16,3 @@ end
14
16
  ].each do |filename|
15
17
  require "lite/ruby/#{filename}"
16
18
  end
17
-
18
- require 'generators/lite/ruby/install_generator'
@@ -10,7 +10,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
10
10
  1 t true y yes on
11
11
  ].freeze
12
12
 
13
- # NOTE: There is a class between the PG gem and the `array?` method.
13
+ # NOTE: There is a clash between the PG gem and the `array?` method.
14
14
  # We only need to skip this on migrations since that action
15
15
  # happens on a seperate runtime.
16
16
  unless defined?(PG) && ARGV.first.to_s.start_with?('db:')
@@ -55,8 +55,8 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
55
55
  end
56
56
 
57
57
  # rubocop:disable Naming/PredicateName
58
- def is_any?(*objs)
59
- objs.any? { |obj| is_a?(obj) }
58
+ def is_any?(*objects)
59
+ objects.any? { |obj| is_a?(obj) }
60
60
  end
61
61
  # rubocop:enable Naming/PredicateName
62
62
 
@@ -80,38 +80,38 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
80
80
  is_a?(Range)
81
81
  end
82
82
 
83
- def safe_call(*keys)
84
- try_call(*keys) || self
83
+ def safe_call(...)
84
+ try_call(...) || self
85
85
  end
86
86
 
87
- def safe_send(*keys)
88
- try_send(*keys) || self
87
+ def safe_send(...)
88
+ try_send(...) || self
89
89
  end
90
90
 
91
- def safe_try(*obj, &block)
92
- try(*obj, &block) || self
91
+ def safe_try(...)
92
+ try(...) || self
93
93
  end
94
94
 
95
95
  def salvage(placeholder = '---')
96
96
  blank? ? placeholder : self
97
97
  end
98
98
 
99
- def salvage_try(*obj, placeholder: '---', &block)
100
- try(*obj, &block).salvage(placeholder)
99
+ def salvage_try(method_name = nil, *args, placeholder: '---', &block)
100
+ try(method_name, *args, &block).salvage(placeholder)
101
101
  end
102
102
 
103
- def send_chain(*keys)
104
- Array(keys).inject(self) { |obj, key| obj.send(*key) }
103
+ def send_chain(*args)
104
+ Array(args).inject(self) { |obj, argz| obj.send(*argz) }
105
105
  end
106
106
 
107
- def send_chain_if(*keys)
108
- Array(keys).inject(self) { |obj, key| obj.send_if(*key) }
107
+ def send_chain_if(*args)
108
+ Array(args).inject(self) { |obj, argz| obj.send_if(*argz) }
109
109
  end
110
110
 
111
- def send_if(key, *args)
111
+ def send_if(key, *args, **kwargs, &block)
112
112
  return self unless respond_to?(key)
113
113
 
114
- send(key, *args)
114
+ send(key, *args, **kwargs, &block)
115
115
  end
116
116
 
117
117
  def set?
@@ -151,14 +151,14 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
151
151
  TRUE_VALUES.include?(to_s.downcase)
152
152
  end
153
153
 
154
- def try_call(*keys)
154
+ def try_call(...)
155
155
  return unless respond_to?(:call)
156
156
 
157
- keys.blank? ? call : call(*keys)
157
+ call(...)
158
158
  end
159
159
 
160
- def try_send(*keys)
161
- send(*keys)
160
+ def try_send(...)
161
+ send(...)
162
162
  rescue StandardError
163
163
  nil
164
164
  end
@@ -10,7 +10,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('open_struct')
10
10
  end
11
11
 
12
12
  def replace(args)
13
- args.each { |key, val| send("#{key}=", val) }
13
+ args.each { |key, val| self[key] = val }
14
14
  end
15
15
 
16
16
  def to_hash(table: true)
@@ -5,9 +5,7 @@ class Object
5
5
  def blank?
6
6
  object = self
7
7
  object = object.strip if respond_to?(:strip)
8
- return object.empty? if respond_to?(:empty?)
9
-
10
- !object
8
+ respond_to?(:empty?) ? object.empty? : !object
11
9
  end
12
10
 
13
11
  def deep_dup
@@ -26,15 +24,19 @@ class Object
26
24
  self if present?
27
25
  end
28
26
 
29
- def try(*obj, &block)
30
- try!(*obj, &block) if obj.empty? || respond_to?(obj.first)
27
+ def try(method_name = nil, *args, &block)
28
+ if method_name.nil? && block
29
+ block.arity.zero? ? instance_eval(&block) : yield(self)
30
+ elsif respond_to?(method_name)
31
+ public_send(method_name, *args, &block)
32
+ end
31
33
  end
32
34
 
33
- def try!(*obj, &block)
34
- if obj.empty? && defined?(yield)
35
+ def try!(method_name = nil, *args, &block)
36
+ if method_name.nil? && block
35
37
  block.arity.zero? ? instance_eval(&block) : yield(self)
36
38
  else
37
- public_send(*obj, &block)
39
+ public_send(method_name, *args, &block)
38
40
  end
39
41
  end
40
42
 
@@ -3,20 +3,12 @@
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('struct')
4
4
  class Struct
5
5
 
6
- def [](key)
7
- attributes[key.to_sym]
8
- end
9
-
10
- def []=(key, val)
11
- send("#{key}=", val)
12
- end
13
-
14
6
  def attributes
15
7
  each_pair.with_object({}) { |(key, val), hash| hash[key] = val }
16
8
  end
17
9
 
18
10
  def replace(args)
19
- args.each_pair { |key, val| send("#{key}=", val) }
11
+ args.each_pair { |key, val| self[key] = val }
20
12
  end
21
13
 
22
14
  end
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '1.2.0'
6
+ VERSION = '1.3.3'
7
7
 
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-09 00:00:00.000000000 Z
11
+ date: 2021-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.2.19
225
+ rubygems_version: 3.2.24
226
226
  signing_key:
227
227
  specification_version: 4
228
228
  summary: Collection of useful Ruby methods for its primitive classes