lite-ruby 1.1.10 → 1.1.15

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: 63d0d01fd2b88f0a9362009571181cd8d13f1c504662138d2c5b811cf1e8282c
4
- data.tar.gz: b1f8de0ba8ab9c9516a59e949108d476527d285d0397c392cd03968f771e032c
3
+ metadata.gz: 3a427f3ee463a045ec4b95c52928b69777b2aa07ae3bd23eaf2835fdcc5abeed
4
+ data.tar.gz: 436af138b20c6f1ee2f95ad8df362ecbf6a1299db8cb8bb88118ff7bdc1cc01c
5
5
  SHA512:
6
- metadata.gz: da98aab18c440e3b346ace43c94773688930837ce9df4ada5ecab7e8512e957e63cb126103b5d7e4dceaa3d124af0983797dc352a53767b1791fa83389ed9cf4
7
- data.tar.gz: 56a911edc10244b5316665eabb0b8b68d2c572362e28a7a3b60ca6760008875c9736f92904f70b1c0367cb503f7a6c9eb9459464273c15bfcc26364caf774221
6
+ metadata.gz: '030648c74db1997e17bdb0ced23396f0b25c962147d94f91988c3d5a7b64d500c57c8e6b8b3350c455bddf0d95e1b216cb137d27bd6418a5813d51399fdb097f'
7
+ data.tar.gz: 982b7a068449a50d1309c49b37725e6ba5ac6718aaa3b87b11fdbe48f5582a1b1d9754bddbc9afe996befadbd43a3f00551bc90cd414a8a95ba682bfdc40cc34
data/CHANGELOG.md CHANGED
@@ -6,6 +6,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.15] - 2021-07-05
10
+ ### Changed
11
+ - Added more OpenStruct backwards compatibility
12
+
13
+ ## [1.1.14] - 2021-07-05
14
+ ### Changed
15
+ - Fixed mistake in OpenStruct backwards compatibility
16
+
17
+ ## [1.1.13] - 2021-07-05
18
+ ### Added
19
+ - Added more OpenStruct backwards compatibility
20
+
21
+ ## [1.1.12] - 2021-07-05
22
+ ### Added
23
+ - Added OpenStruct backwards compatibility
24
+
25
+ ## [1.1.11] - 2021-07-04
26
+ ### Added
27
+ - Added Array => `contains_all?`
28
+ - Added Array => `contains_any?`
29
+ - Added Array => `contains_none?`
30
+
9
31
  ## [1.1.10] - 2021-06-21
10
32
  ### Changed
11
33
  - Struct `[]` to be accessible via `attributes`
data/Gemfile.lock CHANGED
@@ -1,25 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (1.1.10)
4
+ lite-ruby (1.1.15)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- actionpack (6.1.3.2)
10
- actionview (= 6.1.3.2)
11
- activesupport (= 6.1.3.2)
9
+ actionpack (6.1.4)
10
+ actionview (= 6.1.4)
11
+ activesupport (= 6.1.4)
12
12
  rack (~> 2.0, >= 2.0.9)
13
13
  rack-test (>= 0.6.3)
14
14
  rails-dom-testing (~> 2.0)
15
15
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
16
- actionview (6.1.3.2)
17
- activesupport (= 6.1.3.2)
16
+ actionview (6.1.4)
17
+ activesupport (= 6.1.4)
18
18
  builder (~> 3.1)
19
19
  erubi (~> 1.4)
20
20
  rails-dom-testing (~> 2.0)
21
21
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
22
- activesupport (6.1.3.2)
22
+ activesupport (6.1.4)
23
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
24
24
  i18n (>= 1.6, < 2)
25
25
  minitest (>= 5.1)
@@ -61,11 +61,11 @@ GEM
61
61
  nokogiri (>= 1.6)
62
62
  rails-html-sanitizer (1.3.0)
63
63
  loofah (~> 2.3)
64
- railties (6.1.3.2)
65
- actionpack (= 6.1.3.2)
66
- activesupport (= 6.1.3.2)
64
+ railties (6.1.4)
65
+ actionpack (= 6.1.4)
66
+ activesupport (= 6.1.4)
67
67
  method_source
68
- rake (>= 0.8.7)
68
+ rake (>= 0.13)
69
69
  thor (~> 1.0)
70
70
  rainbow (3.0.0)
71
71
  rake (13.0.3)
@@ -84,7 +84,7 @@ GEM
84
84
  diff-lcs (>= 1.2.0, < 2.0)
85
85
  rspec-support (~> 3.10.0)
86
86
  rspec-support (3.10.2)
87
- rubocop (1.17.0)
87
+ rubocop (1.18.2)
88
88
  parallel (~> 1.10)
89
89
  parser (>= 3.0.0.0)
90
90
  rainbow (>= 2.2.2, < 4.0)
@@ -98,8 +98,8 @@ GEM
98
98
  rubocop-performance (1.11.3)
99
99
  rubocop (>= 1.7.0, < 2.0)
100
100
  rubocop-ast (>= 0.4.0)
101
- rubocop-rake (0.5.1)
102
- rubocop
101
+ rubocop-rake (0.6.0)
102
+ rubocop (~> 1.0)
103
103
  rubocop-rspec (2.4.0)
104
104
  rubocop (~> 1.0)
105
105
  rubocop-ast (>= 1.1.0)
data/docs/ARRAY.md CHANGED
@@ -104,6 +104,39 @@ Updates a deeply nested value.
104
104
  ['1', ['2']].bury(1) #=> raises ArgumentError: '2 or more arguments required'
105
105
  ```
106
106
 
107
+ `contains_all?`
108
+ ------
109
+ Returns true/false if an array contains all values from another.
110
+
111
+ ```ruby
112
+ [1, 2, 3].contains_all?([1, 2, 3]) #=> true
113
+ [1, 2, 3].contains_all?([1, 2, 3, 4]) #=> true
114
+ [1, 2, 3].contains_all?([1, 2]) #=> false
115
+ [1, 2, 3].contains_all?([4, 5]) #=> false
116
+ ```
117
+
118
+ `contains_any?`
119
+ ------
120
+ Returns true/false if an array contains any values from another.
121
+
122
+ ```ruby
123
+ [1, 2, 3].contains_any?([1, 2]) #=> true
124
+ [1, 2, 3].contains_any?([1, 2, 3]) #=> true
125
+ [1, 2, 3].contains_any?([1, 2, 3, 4]) #=> true
126
+ [1, 2, 3].contains_any?([4, 5]) #=> false
127
+ ```
128
+
129
+ `contains_none?`
130
+ ------
131
+ Returns true/false if an array contains none of the values from another.
132
+
133
+ ```ruby
134
+ [1, 2, 3].contains_none?([4, 5]) #=> true
135
+ [1, 2, 3].contains_none?([1, 2]) #=> false
136
+ [1, 2, 3].contains_none?([1, 2, 3]) #=> false
137
+ [1, 2, 3].contains_none?([1, 2, 3, 4]) #=> false
138
+ ```
139
+
107
140
  `delete_first(!)`
108
141
  ------
109
142
  Removes the first element from an array. Like `shift`, but returns the array instead of the removed element.
data/docs/STRING.md CHANGED
@@ -240,9 +240,9 @@ of the string until it reaches the limit value (counting backwards). If the give
240
240
  than or equal to the string length, Returns a copy of self.
241
241
 
242
242
  ```ruby
243
- 'example'.last #=> 'e'
244
- 'example'.last(0) #=> ''
245
- 'example'.first(3) #=> 'ple'
243
+ 'example'.last #=> 'e'
244
+ 'example'.last(0) #=> ''
245
+ 'example'.last(3) #=> 'ple'
246
246
  ```
247
247
 
248
248
  `lchomp(!)`
@@ -109,6 +109,18 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
109
109
  # rubocop:enable Metrics/PerceivedComplexity, Style/GuardClause, Style/IfInsideElse
110
110
  # rubocop:enable Metrics/AbcSize, Metrics/BlockNesting, Metrics/MethodLength
111
111
 
112
+ def contains_all?(other)
113
+ (other & self) == self
114
+ end
115
+
116
+ def contains_any?(other)
117
+ !contains_none?(other)
118
+ end
119
+
120
+ def contains_none?(other)
121
+ (other & self).empty?
122
+ end
123
+
112
124
  def delete_first
113
125
  self[1..-1]
114
126
  end
@@ -43,11 +43,35 @@ if Lite::Ruby.configuration.monkey_patches.include?('open_struct')
43
43
 
44
44
  private
45
45
 
46
+ # rubocop:disable Metrics/MethodLength, Naming/PredicateName
47
+ def is_method_protected!(name)
48
+ return false unless respond_to?(name, true)
49
+ return true if name.match?(/!$/)
50
+
51
+ method = 'method'
52
+ method << '!' if respond_to?(:method!)
53
+ owner = send(method, name).owner
54
+
55
+ if owner.instance_of?(::Class)
56
+ owner < ::OpenStruct
57
+ else
58
+ self.class.ancestors.any? do |mod|
59
+ return false if mod == ::OpenStruct
60
+
61
+ mod == owner
62
+ end
63
+ end
64
+ end
65
+ # rubocop:enable Metrics/MethodLength, Naming/PredicateName
66
+
46
67
  def new_ostruct_member!(name)
47
68
  return if is_method_protected!(name)
48
69
 
49
- define_singleton_method!(name) { @table[name] }
50
- define_singleton_method!("#{name}=") { |x| @table[name] = x }
70
+ method = 'define_singleton_method'
71
+ method << '!' if respond_to?(:define_singleton_method!)
72
+
73
+ send(method, name) { @table[name] }
74
+ send(method, "#{name}=") { |x| @table[name] = x }
51
75
  end
52
76
 
53
77
  end
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '1.1.10'
6
+ VERSION = '1.1.15'
7
7
 
8
8
  end
9
9
  end
data/lite-ruby.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  )
26
26
  else
27
27
  raise 'RubyGems 2.0 or newer is required to protect against ' \
28
- 'public gem pushes.'
28
+ 'public gem pushes.'
29
29
  end
30
30
 
31
31
  # Specify which files should be added to the gem when it is released.
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.1.10
4
+ version: 1.1.15
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-06-22 00:00:00.000000000 Z
11
+ date: 2021-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler