dont 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +55 -5
- data/lib/dont.rb +5 -3
- data/lib/dont/version.rb +1 -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: 0156e22abab96bdf2ddbd0356e4cbac463db8768
|
4
|
+
data.tar.gz: fe0a0d6111137d0afe9b54f8d015ae70ec0a6f59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5db40d42d4f9f50b99a3afa562dcde408fb17cf6e657db25208897b11a533a0f88d885da1f93a4d046a8ecb44b63495b244135af9c3ab3f4d8c10716acc273d
|
7
|
+
data.tar.gz: 903ce70655179694dd581f4d7f2e9d98fcc2e200198853d69756a111ce7252519460c2903389d3218cc4a798fbbebe65066596108ebea2de5889f6b39e6b747a
|
data/README.md
CHANGED
@@ -22,13 +22,36 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
## Usage
|
24
24
|
|
25
|
+
```ruby
|
26
|
+
class Shouter
|
27
|
+
include Dont::WithWarn
|
28
|
+
|
29
|
+
def shout(msg)
|
30
|
+
msg.upcase
|
31
|
+
end
|
32
|
+
|
33
|
+
def scream(msg)
|
34
|
+
shout(msg)
|
35
|
+
end
|
36
|
+
# Indicate that we want to deprecate the scream method, and that you should
|
37
|
+
# use "shout" instead. The :use option can be any string or symbol.
|
38
|
+
dont_use :scream, use: :shout
|
39
|
+
end
|
40
|
+
|
41
|
+
# Logs "DEPRECATED: Don't use Shouter#scream. It's deprecated in favor of shout.",
|
42
|
+
# before executing the method.
|
43
|
+
Shouter.new.scream("hello")
|
44
|
+
```
|
45
|
+
|
46
|
+
### With a custom handler
|
47
|
+
|
25
48
|
```ruby
|
26
49
|
# Register a deprecation handler.
|
27
50
|
# Anything that responds to `.call(deprecation)` will work.
|
28
51
|
LOGGER = Logger.new
|
29
|
-
Dont.register_handler(:logger, ->(deprecation) { LOGGER.warn(deprecation.message) })
|
52
|
+
DeprecationLogger = Dont.register_handler(:logger, ->(deprecation) { LOGGER.warn(deprecation.message) })
|
30
53
|
class Shouter
|
31
|
-
include
|
54
|
+
include DeprecationLogger
|
32
55
|
|
33
56
|
def shout(msg)
|
34
57
|
msg.upcase
|
@@ -40,16 +63,19 @@ class Shouter
|
|
40
63
|
dont_use :scream, use: :shout
|
41
64
|
end
|
42
65
|
|
43
|
-
# Logs "DEPRECATED: Don't use Shouter#scream. It's deprecated in favor of
|
44
|
-
#
|
66
|
+
# Logs "DEPRECATED: Don't use Shouter#scream. It's deprecated in favor of shout.",
|
67
|
+
# before executing the method.
|
45
68
|
Shouter.new.scream("hello")
|
69
|
+
```
|
46
70
|
|
71
|
+
### Raising exceptions in development
|
47
72
|
|
73
|
+
```
|
48
74
|
# The :exception deprecation handler is provided by default.
|
49
75
|
# It raises an exception whenever the method is called, which is handy in
|
50
76
|
# test or development mode.
|
51
77
|
class Person
|
52
|
-
include Dont
|
78
|
+
include Dont::WithException
|
53
79
|
|
54
80
|
attr_accessor :firstname
|
55
81
|
attr_accessor :first_name
|
@@ -59,6 +85,30 @@ end
|
|
59
85
|
Person.new.firstname # => fails with Dont::DeprecationError
|
60
86
|
```
|
61
87
|
|
88
|
+
### Using the Rails logger
|
89
|
+
|
90
|
+
```ruby
|
91
|
+
# in config/initializers/dont.rb
|
92
|
+
Dont.register_handler(:rails_logger, ->(deprecation) {
|
93
|
+
Rails.logger.warn(deprecation.message)
|
94
|
+
})
|
95
|
+
DontLogger = Dont.new(:rails_logger)
|
96
|
+
|
97
|
+
# in app/models/comment.rb
|
98
|
+
class Comment < ActiveRecord::Base
|
99
|
+
include DontLogger # as defined in the initializer
|
100
|
+
|
101
|
+
# We want to use `body` instead of `description` from now on
|
102
|
+
alias_attribute :description, :body
|
103
|
+
dont_use :description, use: :body
|
104
|
+
end
|
105
|
+
|
106
|
+
comment = Comment.new
|
107
|
+
comment.description
|
108
|
+
# => works, but with a deprecation warning: "DEPRECATED: Don't use Comment#description. It's deprecated in favor of body."
|
109
|
+
|
110
|
+
```
|
111
|
+
|
62
112
|
## Development
|
63
113
|
|
64
114
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/dont.rb
CHANGED
@@ -128,7 +128,9 @@ class Dont < Module
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
register_handler(:exception, -> (deprecation) {
|
132
|
-
|
133
|
-
|
131
|
+
register_handler(:exception, -> (deprecation) { fail Dont::DeprecationError, deprecation.message })
|
132
|
+
register_handler(:warn, -> (deprecation) { warn deprecation.message })
|
133
|
+
|
134
|
+
WithException = new(:exception)
|
135
|
+
WithWarn = new(:warn)
|
134
136
|
end
|
data/lib/dont/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dont
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten Claes
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-container
|