ragabash 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +4 -2
- data/lib/ragabash.rb +1 -1
- data/lib/ragabash/awesome_string_formatter.rb +21 -3
- data/lib/ragabash/refinements.rb +68 -3
- data/lib/ragabash/version.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37191f18ef1617949bfb78247a0ff61d6d28d767
|
4
|
+
data.tar.gz: 353ffee2ebe359a2f08a7ae86dfab9a04b0265d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cf6d17680f55cc37c7689f4a7bab500a6d1a0c5840b130f8e99325cc951f2df229f60ce741cd4eba157cb32b8347976733106964a9e6b5fcfbaa04ec7eabc79
|
7
|
+
data.tar.gz: ead865fc572a59b48a37944e24d187aeb7dff5ece4a8144957b70fc367d776a67b473a3cf021623d3f48ce8e2516e1008eaa685e484fb5ef3f22142e42ced089
|
data/README.md
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# Ragabash
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/ragabash)
|
4
|
+
[](https://gemnasium.com/github.com/nomoon/ragabash)
|
3
5
|
[](https://travis-ci.org/nomoon/ragabash)
|
4
|
-
[](https://codeclimate.com/github/nomoon/ragabash)
|
5
6
|
[](https://codeclimate.com/github/nomoon/ragabash/coverage)
|
6
|
-
[](https://codeclimate.com/github/nomoon/ragabash)
|
8
|
+
[](http://inch-ci.org/github/nomoon/ragabash)
|
7
9
|
|
8
10
|
"A collection of useful extensions, refinements, and tools."
|
9
11
|
|
data/lib/ragabash.rb
CHANGED
@@ -2,12 +2,26 @@
|
|
2
2
|
require "rouge"
|
3
3
|
|
4
4
|
module Ragabash
|
5
|
+
# Custom String formatter module for +awesome_print+ gem.
|
6
|
+
#
|
7
|
+
# You can activate this automatically by including:
|
8
|
+
# require "ragabash/ext/awesome_strings"
|
9
|
+
# You can also activate this as part of an awesome_print-based Pry printer by including:
|
10
|
+
# require "ragabash/ext/pry_awesome_print"
|
5
11
|
module AwesomeStringFormatter
|
6
|
-
|
7
|
-
|
8
|
-
base
|
12
|
+
class << self
|
13
|
+
# Intercept awesome_print type-cast method.
|
14
|
+
def included(base)
|
15
|
+
base.send :alias_method, :cast_without_string, :cast
|
16
|
+
base.send :alias_method, :cast, :cast_with_string
|
17
|
+
end
|
9
18
|
end
|
10
19
|
|
20
|
+
# Replacement type-cast method for awesome_print.
|
21
|
+
#
|
22
|
+
# @param object [Object] the object to test
|
23
|
+
# @param type [Any] the type to test against
|
24
|
+
# @return [Boolean]
|
11
25
|
def cast_with_string(object, type)
|
12
26
|
object.is_a?(::String) ? :string : cast_without_string(object, type)
|
13
27
|
end
|
@@ -22,6 +36,10 @@ module Ragabash
|
|
22
36
|
R_LEXERS = ::Rouge::Lexer.all
|
23
37
|
private_constant :MULTILINE_UNESCAPES, :R_FORMATTER, :R_LEXERS
|
24
38
|
|
39
|
+
# Format a String for awesome_print display.
|
40
|
+
#
|
41
|
+
# @param string [String] the String to format
|
42
|
+
# @return [String] the formatted String
|
25
43
|
def awesome_string(string)
|
26
44
|
lexers = ::Rouge::Guessers::Source.new(string).filter(R_LEXERS)
|
27
45
|
if !lexers.empty?
|
data/lib/ragabash/refinements.rb
CHANGED
@@ -2,8 +2,47 @@
|
|
2
2
|
require "ice_nine"
|
3
3
|
|
4
4
|
module Ragabash
|
5
|
+
# A set of useful refinements for base classes.
|
6
|
+
#
|
7
|
+
# Activate these by including the following in an appropriate lexical scope:
|
8
|
+
# using ::Ragabash::Refinements
|
5
9
|
module Refinements
|
6
10
|
# rubocop:disable Style/Alias
|
11
|
+
|
12
|
+
# @!method deep_freeze
|
13
|
+
# Deep-freezes +self+.
|
14
|
+
#
|
15
|
+
# Refines: +::Object+
|
16
|
+
# @see http://www.rubydoc.info/gems/ice_nine/IceNine#deep_freeze-class_method
|
17
|
+
|
18
|
+
# @!method deep_freeze!
|
19
|
+
# Deep-freezes +self+, but skips already-frozen objects.
|
20
|
+
#
|
21
|
+
# Refines: +::Object+
|
22
|
+
# @see http://www.rubydoc.info/gems/ice_nine/IceNine#deep_freeze%21-class_method
|
23
|
+
|
24
|
+
# @!method try_dup
|
25
|
+
# Attempts to duplicate +self+, or returns +self+ on non-duplicable objects.
|
26
|
+
#
|
27
|
+
# Refines: +::Object+, +::NilClass+, +::FalseClass+, +::TrueClass+, +::Symbol+,
|
28
|
+
# +::Numeric+, +::BigDecimal+
|
29
|
+
|
30
|
+
# @!method deep_dup
|
31
|
+
# Recursively duplicates +self+, including non-duplicable objects where necessary.
|
32
|
+
#
|
33
|
+
# Refines: +::Object+, +::NilClass+, +::FalseClass+, +::TrueClass+, +::Symbol+,
|
34
|
+
# +::Numeric+, +::BigDecimal+, +::Array+, +::Hash+, +::Set+
|
35
|
+
|
36
|
+
# @!method safe_copy
|
37
|
+
# Returns +self+ if frozen or otherwise a frozen deep-duplicate.
|
38
|
+
#
|
39
|
+
# Refines: +::Object+, +::NilClass+, +::FalseClass+, +::TrueClass+, +::Symbol+,
|
40
|
+
# +::Numeric+, +::BigDecimal+, +::Array+, +::Hash+, +::Set+
|
41
|
+
|
42
|
+
# @!method frozen_copy
|
43
|
+
# Alias of {safe_copy}.
|
44
|
+
|
45
|
+
#
|
7
46
|
refine ::Object do
|
8
47
|
def deep_freeze
|
9
48
|
IceNine.deep_freeze(self)
|
@@ -19,7 +58,11 @@ module Ragabash
|
|
19
58
|
self
|
20
59
|
end
|
21
60
|
alias deep_dup try_dup
|
22
|
-
|
61
|
+
|
62
|
+
def safe_copy
|
63
|
+
IceNine.deep_freeze(try_dup)
|
64
|
+
end
|
65
|
+
alias frozen_copy safe_copy
|
23
66
|
end
|
24
67
|
|
25
68
|
refine ::NilClass do
|
@@ -28,6 +71,7 @@ module Ragabash
|
|
28
71
|
end
|
29
72
|
alias deep_dup try_dup
|
30
73
|
alias safe_copy try_dup
|
74
|
+
alias frozen_copy try_dup
|
31
75
|
end
|
32
76
|
|
33
77
|
refine ::FalseClass do
|
@@ -36,6 +80,7 @@ module Ragabash
|
|
36
80
|
end
|
37
81
|
alias deep_dup try_dup
|
38
82
|
alias safe_copy try_dup
|
83
|
+
alias frozen_copy try_dup
|
39
84
|
end
|
40
85
|
|
41
86
|
refine ::TrueClass do
|
@@ -44,6 +89,7 @@ module Ragabash
|
|
44
89
|
end
|
45
90
|
alias deep_dup try_dup
|
46
91
|
alias safe_copy try_dup
|
92
|
+
alias frozen_copy try_dup
|
47
93
|
end
|
48
94
|
|
49
95
|
refine ::Symbol do
|
@@ -52,6 +98,7 @@ module Ragabash
|
|
52
98
|
end
|
53
99
|
alias deep_dup try_dup
|
54
100
|
alias safe_copy try_dup
|
101
|
+
alias frozen_copy try_dup
|
55
102
|
end
|
56
103
|
|
57
104
|
refine ::Numeric do
|
@@ -60,6 +107,7 @@ module Ragabash
|
|
60
107
|
end
|
61
108
|
alias deep_dup try_dup
|
62
109
|
alias safe_copy try_dup
|
110
|
+
alias frozen_copy try_dup
|
63
111
|
end
|
64
112
|
|
65
113
|
# Necessary to re-override Numeric
|
@@ -71,20 +119,27 @@ module Ragabash
|
|
71
119
|
alias deep_dup try_dup
|
72
120
|
|
73
121
|
def safe_copy
|
74
|
-
frozen? ? self : dup
|
122
|
+
frozen? ? self : dup.freeze
|
75
123
|
end
|
124
|
+
alias frozen_copy safe_copy
|
76
125
|
end
|
77
126
|
|
78
127
|
refine ::String do
|
79
128
|
def safe_copy
|
80
|
-
frozen? ? self : dup
|
129
|
+
frozen? ? self : dup.freeze
|
81
130
|
end
|
131
|
+
alias frozen_copy safe_copy
|
82
132
|
end
|
83
133
|
|
84
134
|
refine ::Array do
|
85
135
|
def deep_dup
|
86
136
|
map { |value| value.deep_dup } # rubocop:disable Style/SymbolProc
|
87
137
|
end
|
138
|
+
|
139
|
+
def safe_copy
|
140
|
+
frozen? ? self : deep_dup.deep_freeze
|
141
|
+
end
|
142
|
+
alias frozen_copy safe_copy
|
88
143
|
end
|
89
144
|
|
90
145
|
refine ::Hash do
|
@@ -100,6 +155,11 @@ module Ragabash
|
|
100
155
|
end
|
101
156
|
hash
|
102
157
|
end
|
158
|
+
|
159
|
+
def safe_copy
|
160
|
+
frozen? ? self : deep_dup.deep_freeze
|
161
|
+
end
|
162
|
+
alias frozen_copy safe_copy
|
103
163
|
end
|
104
164
|
|
105
165
|
refine ::Set do
|
@@ -111,6 +171,11 @@ module Ragabash
|
|
111
171
|
end
|
112
172
|
self.class[set_a]
|
113
173
|
end
|
174
|
+
|
175
|
+
def safe_copy
|
176
|
+
frozen? ? self : deep_dup.deep_freeze
|
177
|
+
end
|
178
|
+
alias frozen_copy safe_copy
|
114
179
|
end
|
115
180
|
end
|
116
181
|
end
|
data/lib/ragabash/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ragabash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Bellefleur
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|