ragabash 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/ragabash.svg)](https://badge.fury.io/rb/ragabash)
|
4
|
+
[![Dependency Status](https://gemnasium.com/badges/github.com/nomoon/ragabash.svg)](https://gemnasium.com/github.com/nomoon/ragabash)
|
3
5
|
[![Build Status](https://travis-ci.org/nomoon/ragabash.svg?branch=master)](https://travis-ci.org/nomoon/ragabash)
|
4
|
-
[![Code Climate](https://codeclimate.com/github/nomoon/ragabash/badges/gpa.svg)](https://codeclimate.com/github/nomoon/ragabash)
|
5
6
|
[![Test Coverage](https://codeclimate.com/github/nomoon/ragabash/badges/coverage.svg)](https://codeclimate.com/github/nomoon/ragabash/coverage)
|
6
|
-
[![
|
7
|
+
[![Code Climate](https://codeclimate.com/github/nomoon/ragabash/badges/gpa.svg)](https://codeclimate.com/github/nomoon/ragabash)
|
8
|
+
[![Inline docs](http://inch-ci.org/github/nomoon/ragabash.svg?branch=master)](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
|