fortitude 0.9.2 → 0.9.3
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/CHANGES.md +10 -0
- data/CONTRIBUTORS.md +3 -0
- data/fortitude.gemspec +1 -0
- data/lib/fortitude/version.rb +1 -1
- data/lib/fortitude/widget/modules_and_subclasses.rb +8 -3
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11cc27b7da627f35c70cfd102e2fcdfec18d0869
|
4
|
+
data.tar.gz: 05da4419831b8159503bf9da7f9e30074688774a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7eac05ec3e3fb020489fd7698c52dc77807c5a2078041439835cff4f5d44824fe2fa988a9ec7bfdbd1e730c20a60c392aaf8f6581fb19277f7f1d8fb1ca177
|
7
|
+
data.tar.gz: c51b8b6bb5e4f8208f27c254f0d039cc0dff46b2dfd3e35ca7ec674ccee6042b00921cf70416d539d0f1aaa5faf316651583777116a4cf375a7c4a706de061ca
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Fortitude Releases
|
2
2
|
|
3
|
+
## 0.9.3, 2 February 2015
|
4
|
+
|
5
|
+
* Fixed a memory leak when using `render :inline`, or certain other cases triggered by a user. (Fortitude widget
|
6
|
+
classes know about all their subclasses, in order to enable proper propagation of configuration changes.
|
7
|
+
If you created a subclass of a Fortitude widget that was intended to be single-use or otherwise temporary, it would
|
8
|
+
not get garbage-collected, since its superclass would still maintain a reference to it. Fortitude now uses the
|
9
|
+
[ref](https://github.com/ruby-concurrency/ref) gem in order to make this a weak reference, hence allowing it to
|
10
|
+
be garbage-collected. `render :inline` creates a temporary subclass of a Fortitude widget, thus triggering exactly
|
11
|
+
this issue.)
|
12
|
+
|
3
13
|
## 0.9.2, 22 January 2015
|
4
14
|
|
5
15
|
* Began writing lots of documentation for Fortitude, beginning with the reasons why you should use it.
|
data/CONTRIBUTORS.md
CHANGED
@@ -32,6 +32,9 @@ Fortitude is written by [Andrew Geweke](https://github.com/ageweke), with contri
|
|
32
32
|
* Reporting a bug where doing something like `div(nil, :class => 'foo')` would produce just `<div></div>` instead of
|
33
33
|
the desired `<div class="foo"></div>`.
|
34
34
|
* Reporting an issue where `return`ing from inside a block passed to a tag method would not render the closing tags.
|
35
|
+
* Reporting, and helping verify, an issue where creating anonymous subclasses of a Fortitude widget class (like
|
36
|
+
those used by `render :inline`) would cause those anonymous subclasses to never be garbage collected, causing
|
37
|
+
a memory leak.
|
35
38
|
* [Adam Becker](https://github.com/ajb) for:
|
36
39
|
* Discussion and details around exactly what `:attribute => true`, `:attribute => false`, and so on should render
|
37
40
|
from Fortitude.
|
data/fortitude.gemspec
CHANGED
data/lib/fortitude/version.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'active_support'
|
2
2
|
require 'active_support/concern'
|
3
3
|
|
4
|
+
require 'ref'
|
5
|
+
|
4
6
|
require 'fortitude/tags/tags_module'
|
5
7
|
|
6
8
|
module Fortitude
|
@@ -28,14 +30,17 @@ module Fortitude
|
|
28
30
|
|
29
31
|
# INTERNAL USE ONLY
|
30
32
|
def direct_subclasses
|
31
|
-
@direct_subclasses
|
33
|
+
@direct_subclasses ||= [ ]
|
34
|
+
@direct_subclasses.delete_if { |ref| (! ref.object) }
|
35
|
+
@direct_subclasses.map { |ref| ref.object }
|
32
36
|
end
|
33
37
|
private :direct_subclasses
|
34
38
|
|
35
39
|
# INTERNAL USE ONLY -- RUBY CALLBACK
|
36
40
|
def inherited(subclass)
|
37
|
-
|
38
|
-
|
41
|
+
unless direct_subclasses.detect { |sc| sc.equal?(subclass) }
|
42
|
+
@direct_subclasses << ::Ref::WeakReference.new(subclass)
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
# INTERNAL USE ONLY
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fortitude
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Geweke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ref
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.5
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.5
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|