rearmed 1.3.1 → 2.0.0

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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rearmed
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Ganger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-02 00:00:00.000000000 Z
11
+ date: 2018-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  description: A collection of helpful methods and monkey patches for Objects, Strings,
56
56
  Enumerables, Arrays, Hash, Dates, Minitest & Rails
57
- email: westonganger@gmail.com
57
+ email: weston@westonganger.com
58
58
  executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
@@ -64,18 +64,17 @@ files:
64
64
  - README.md
65
65
  - Rakefile
66
66
  - lib/rearmed.rb
67
- - lib/rearmed/apply_patches.rb
68
- - lib/rearmed/default_enabled_patches.hash
69
67
  - lib/rearmed/exceptions.rb
70
68
  - lib/rearmed/methods.rb
71
69
  - lib/rearmed/monkey_patches/array.rb
72
70
  - lib/rearmed/monkey_patches/date.rb
73
71
  - lib/rearmed/monkey_patches/enumerable.rb
74
72
  - lib/rearmed/monkey_patches/hash.rb
73
+ - lib/rearmed/monkey_patches/integer.rb
75
74
  - lib/rearmed/monkey_patches/object.rb
76
75
  - lib/rearmed/monkey_patches/string.rb
77
76
  - lib/rearmed/version.rb
78
- - test/tc_rearmed.rb
77
+ - test/rearmed_test.rb
79
78
  homepage: https://github.com/westonganger/rearmed-rb
80
79
  licenses: []
81
80
  metadata: {}
@@ -95,10 +94,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
94
  version: '0'
96
95
  requirements: []
97
96
  rubyforge_project:
98
- rubygems_version: 2.6.8
97
+ rubygems_version: 2.7.6
99
98
  signing_key:
100
99
  specification_version: 4
101
100
  summary: A collection of helpful methods and monkey patches for Objects, Strings,
102
101
  Enumerables, Arrays, Hash, Dates, Minitest & Rails
103
102
  test_files:
104
- - test/tc_rearmed.rb
103
+ - test/rearmed_test.rb
@@ -1,6 +0,0 @@
1
- require 'rearmed/monkey_patches/object'
2
- require 'rearmed/monkey_patches/string'
3
- require 'rearmed/monkey_patches/array'
4
- require 'rearmed/monkey_patches/hash'
5
- require 'rearmed/monkey_patches/enumerable'
6
- require 'rearmed/monkey_patches/date'
@@ -1,66 +0,0 @@
1
- {
2
- array: {
3
- dig: false,
4
- delete_first: false,
5
- not_empty: false
6
- },
7
- date: {
8
- now: false
9
- },
10
- enumerable: {
11
- natural_sort: false,
12
- natural_sort_by: false,
13
- select_map: false
14
- },
15
- hash: {
16
- compact: false,
17
- dig: false,
18
- join: false,
19
- only: false,
20
- to_struct: false
21
- },
22
- object: {
23
- in: false,
24
- not_nil: false
25
- },
26
- string: {
27
- begins_with: false,
28
- casecmp?: false,
29
- ends_with: false,
30
- starts_with: false,
31
- to_bool: false,
32
- valid_float: false,
33
- valid_integer: false
34
- },
35
- minitest: {
36
- assert_changed: false,
37
- assert_not_changed: false
38
- },
39
- rails: {
40
- active_record: {
41
- find_duplicates: false,
42
- find_in_relation_batches: false,
43
- find_or_create: false,
44
- find_relation_each: false,
45
- newest: false,
46
- pluck_to_hash: false,
47
- pluck_to_struct: false,
48
- reset_auto_increment: false,
49
- reset_table: false
50
- },
51
- other: {
52
- field_is_array: false,
53
- options_for_select_include_blank: false,
54
- options_from_collection_for_select_include_blank: false
55
- }
56
- },
57
- rails_4: {
58
- link_to_confirm: false,
59
- or: false
60
- },
61
- rails_3: {
62
- all: false,
63
- pluck: false,
64
- update_columns: false
65
- }
66
- }
@@ -1,215 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
-
6
- require 'yaml'
7
- require 'minitest'
8
-
9
- require 'rearmed'
10
-
11
- require 'minitest/autorun'
12
-
13
- class TestRearmed < MiniTest::Test
14
- def setup
15
- Minitest::Assertions.module_eval do
16
- alias_method :eql, :assert_equal
17
- end
18
-
19
- Rearmed.enabled_patches = {
20
- array: true,
21
- hash: true,
22
- object: true,
23
- string: true,
24
- date: true,
25
- enumerable: true,
26
- rails_3: true,
27
- rails_4: true,
28
- rails: true,
29
- minitest: true
30
- }
31
- require 'rearmed/apply_patches'
32
- end
33
-
34
- def test_string
35
- # Test String Methods
36
- str = '32'
37
- eql(str.valid_integer?, true)
38
-
39
- str = '32.2'
40
- eql(str.valid_integer?, false)
41
-
42
- str = '32a'
43
- eql(str.valid_integer?, false)
44
-
45
-
46
- str = '12'
47
- eql(Rearmed.valid_integer?(str), true)
48
-
49
- str = '132.2'
50
- eql(str.valid_float?, true)
51
-
52
- str = '132.2.2'
53
- eql(str.valid_float?, false)
54
-
55
- str = '12.1a'
56
- eql(str.valid_float?, false)
57
-
58
- str = '1.2'
59
- eql(Rearmed.valid_float?(str), true)
60
-
61
-
62
- str = 'true'
63
- eql(str.to_bool, true)
64
-
65
- str = 'false'
66
- eql(str.to_bool, false)
67
-
68
- str = 'not true'
69
- assert_nil(str.to_bool)
70
-
71
- str = 'true'
72
- eql(Rearmed.to_bool(str), true)
73
-
74
-
75
- str1 = 'foo'
76
- str2 = 'foo'
77
- eql(str1.casecmp?(str2), true)
78
-
79
- str1 = 'foo'
80
- str2 = 'FOO'
81
- eql(str1.casecmp?(str2), true)
82
-
83
- str1 = 'foo'
84
- str2 = 'foobar'
85
- eql(str1.casecmp?(str2), false)
86
-
87
- str1 = 'foo'
88
- str2 = 'fo'
89
- eql(str1.casecmp?(str2), false)
90
-
91
- str1 = 'foo'
92
- str2 = 'foo'
93
- eql(Rearmed.casecmp?(str1, str2), true)
94
- end
95
-
96
- def test_date
97
- Date.now
98
- end
99
-
100
- def test_enumerable
101
- items = ['1.1', '1.11', '1.2']
102
- eql(items.natural_sort, ['1.1','1.2','1.11'])
103
- eql(items.natural_sort(reverse: true), ['1.11','1.2','1.1'])
104
- eql(Rearmed.natural_sort(items), ['1.1','1.2','1.11'])
105
- eql(Rearmed.natural_sort(items, reverse: true), ['1.11','1.2','1.1'])
106
-
107
- items = [{version: "1.1"}, {version: "1.11"}, {version: "1.2"}]
108
- eql(items.natural_sort_by{|x| x[:version]}, [{version: "1.1"}, {version: "1.2"}, {version: "1.11"}])
109
- eql(Rearmed.natural_sort_by(items){|x| x[:version]}, [{version: "1.1"}, {version: "1.2"}, {version: "1.11"}])
110
-
111
- items = [0, 1, 2, 3, nil, false]
112
- eql(items.select_map{|x| x}, [0,1,2,3])
113
- eql(Rearmed.select_map(items){|x| x}, [0,1,2,3])
114
-
115
- assert items.select_map.is_a?(Enumerator)
116
- assert Rearmed.select_map(items).is_a?(Enumerator)
117
- end
118
-
119
- def test_array
120
- array = [1,3,2,1,3,4,1]
121
- array.delete_first(3)
122
- eql(array, [1,2,1,3,4,1])
123
-
124
- array = [1,3,2,1,3,4,1]
125
- array.delete_first
126
- eql(array, [3,2,1,3,4,1])
127
-
128
- array = [1,3,2,1,3,4,1]
129
- array.delete_first{|x| x != 1}
130
- eql(array, [1,2,1,3,4,1])
131
-
132
- eql(array.not_empty?, true)
133
-
134
- array = [{foo: ['foo','bar']}, {test: 'thing'}]
135
- eql(array.dig(0, :foo, 1), 'bar')
136
- assert_nil(array.dig(0, :foo, 2))
137
- eql(Rearmed.dig(array, 1, :test), 'thing')
138
- assert_nil(Rearmed.dig(array, 1, :bar))
139
- end
140
-
141
- def test_hash
142
- hash = {foo: 'foo', bar: 'bar', other: 'other'}
143
- eql(hash.only(:foo, :bar), {foo: 'foo', bar: 'bar'})
144
-
145
- hash = {foo: 'foo', bar: 'bar', other: 'other'}
146
- hash.only!(:foo, :bar)
147
- eql(hash, {foo: 'foo', bar: 'bar'})
148
-
149
- hash = {foo: 'foo', bar: 'bar', other: 'other'}
150
- eql(Rearmed.hash_only(hash, :foo, :bar), {foo: 'foo', bar: 'bar'})
151
-
152
- hash = {foo: nil, bar: nil, other: 'other'}
153
- eql(hash.compact, {other: 'other'})
154
- eql(Rearmed.hash_compact(hash), {other: 'other'})
155
-
156
- hash = {foo: nil, bar: nil, other: 'other'}
157
- hash.compact!
158
- eql(hash, {other: 'other'})
159
-
160
- hash = {foo: :bar, bar: :foo}
161
- eql(hash.join, "foo: bar, bar: foo")
162
- eql(hash.join('___'), "foo: bar___bar: foo")
163
- eql(hash.join{|k,v| v}, "bar, foo")
164
- eql(hash.join('___'){|k,v| v}, "bar___foo")
165
- eql(Rearmed.hash_join(hash), "foo: bar, bar: foo")
166
- eql(Rearmed.hash_join(hash, '___'), "foo: bar___bar: foo")
167
- eql(Rearmed.hash_join(hash){|k,v| v}, "bar, foo")
168
- eql(Rearmed.hash_join(hash, '___'){|k,v| v}, "bar___foo")
169
-
170
- hash = {foo: :bar, bar: 'foo'}
171
- struct = hash.to_struct
172
- assert(struct.is_a?(Struct))
173
- eql(struct.foo, :bar)
174
- eql(struct.bar, 'foo')
175
-
176
- struct = Rearmed.hash_to_struct(hash)
177
- assert(struct.is_a?(Struct))
178
- eql(struct.foo, :bar)
179
- eql(struct.bar, 'foo')
180
-
181
- hash = {a: {foo: ['bar']}, b: {c: 'c'}}
182
- eql(hash.dig(:a, :foo, 0), 'bar')
183
- eql(Rearmed.dig(hash, :b, :c), 'c')
184
- end
185
-
186
- def test_object
187
- str = 'test'
188
- eql(str.not_nil?, true)
189
-
190
- str = nil
191
- eql(str.not_nil?, false)
192
-
193
- str = false
194
- eql(str.not_nil?, true)
195
-
196
- str = 'test'
197
- eql(str.in?(['test','abc']), true)
198
-
199
- str = 'test'
200
- eql(str.in?(['abc','def']), false)
201
-
202
- str = 'test'
203
- eql(str.in?('test','abc'), true)
204
-
205
- str = 'test'
206
- eql(str.in?('abc','def'), false)
207
-
208
- str = 'test'
209
- eql(str.in?('a test string'), true)
210
-
211
- str = 'test'
212
- eql(str.in?('a real string'), false)
213
- end
214
-
215
- end