wrap_it 1.0.1 → 1.0.2
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 +3 -0
- data/lib/wrap_it/arguments.rb +8 -7
- data/lib/wrap_it/container.rb +1 -0
- data/lib/wrap_it/derived_attributes.rb +8 -6
- data/lib/wrap_it/version.rb +1 -1
- data/spec/frameworks/log/development.log +16 -0
- 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: e226d8caa5ed1b449b8c526542e5ef76ddb93468
|
4
|
+
data.tar.gz: 56868a38e89d16f4c82ed2926122edea4e499a35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f240c8d60c5cdc2febc5f1df4075902285220b289d55de52d7899931616ee93df7034c6495cd0252fdacc91067b6c4811f9a523dae2fb9a869a29a29240f848f
|
7
|
+
data.tar.gz: d7e8812aa47765139c88b75f3488b363249e9ec04e8e22b477867fc43a37968efb61b5c3f27db5f6b4bcdf12fed89467110ef4e8e1a6d0e4ae8d9b720fd30ff0
|
data/README.md
CHANGED
@@ -358,6 +358,9 @@ Look to [Reference documentation](http://rubydoc.info/github/cybernetlab/wrap_it
|
|
358
358
|
|
359
359
|
# Changes
|
360
360
|
|
361
|
+
`1.0.2`
|
362
|
+
* profiling in real application and some performance improvements
|
363
|
+
|
361
364
|
`1.0.1`
|
362
365
|
* refactor some code to remove complexity
|
363
366
|
* code now tested with [travis](https://travis-ci.org/cybernetlab/wrap_it)
|
data/lib/wrap_it/arguments.rb
CHANGED
@@ -200,13 +200,8 @@ module WrapIt
|
|
200
200
|
def capture_arguments!(args, inherited = true, instance = nil, &block)
|
201
201
|
opts = args.extract_options!
|
202
202
|
if inherited
|
203
|
-
|
204
|
-
|
205
|
-
.unshift(Arguments.base)
|
206
|
-
.map do |a|
|
207
|
-
next unless a.methods.include?(:extract_for_class)
|
208
|
-
a.extract_for_class(args, opts, instance, &block)
|
209
|
-
end
|
203
|
+
arg_parents.select { |a| a.protected_methods.include?(:extract_for_class) }
|
204
|
+
.each { |a| a.extract_for_class(args, opts, instance, &block) }
|
210
205
|
result_args = collect_derived(:@provided_arguments, {}, :merge)
|
211
206
|
.values
|
212
207
|
.flatten
|
@@ -227,6 +222,12 @@ module WrapIt
|
|
227
222
|
|
228
223
|
protected
|
229
224
|
|
225
|
+
def arg_parents
|
226
|
+
@arg_parents ||= ancestors.take_while { |a| a != Arguments.base }
|
227
|
+
.reverse
|
228
|
+
.unshift(Arguments.base)
|
229
|
+
end
|
230
|
+
|
230
231
|
attr_reader :provided_options, :provided_arguments, :provided_block
|
231
232
|
|
232
233
|
def option_provided?(*list)
|
data/lib/wrap_it/container.rb
CHANGED
@@ -89,6 +89,7 @@ module WrapIt
|
|
89
89
|
|
90
90
|
define_method name do |*hargs, extracted: false, **hopts, &hblock|
|
91
91
|
hargs += args
|
92
|
+
# TODO: merge html class correctly. Now it just overrided by opts
|
92
93
|
hopts.merge!(opts)
|
93
94
|
hopts[:helper_name] = name
|
94
95
|
child = prepare_child(child_class, block, *hargs, **hopts, &hblock)
|
@@ -19,6 +19,10 @@ module WrapIt
|
|
19
19
|
# {DerivedAttributes} class methods
|
20
20
|
#
|
21
21
|
module ClassMethods
|
22
|
+
def parents
|
23
|
+
@parents ||= ancestors.take_while { |a| a != Base }.concat([Base])
|
24
|
+
end
|
25
|
+
|
22
26
|
#
|
23
27
|
# retrieves first founded derived variable or nil
|
24
28
|
# @param name [Symbol] variable name (should contain `@` sign)
|
@@ -42,12 +46,10 @@ module WrapIt
|
|
42
46
|
# founded variable with collection
|
43
47
|
#
|
44
48
|
# @return [Object] collection of variables
|
45
|
-
def collect_derived(name,
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
result = result.send(method, ancestor.instance_variable_get(name))
|
50
|
-
break if ancestor == Base
|
49
|
+
def collect_derived(name, result = [], method = :concat)
|
50
|
+
parents.select { |p| p.instance_variable_defined?(name) }
|
51
|
+
.each do |p|
|
52
|
+
result = result.send(method, p.instance_variable_get(name))
|
51
53
|
end
|
52
54
|
result
|
53
55
|
end
|
data/lib/wrap_it/version.rb
CHANGED
@@ -3843,3 +3843,19 @@
|
|
3843
3843
|
Rendered inline template (2.4ms)
|
3844
3844
|
Rendered inline template (3.0ms)
|
3845
3845
|
Rendered inline template (2.5ms)
|
3846
|
+
Rendered inline template (3.8ms)
|
3847
|
+
Rendered inline template (2.5ms)
|
3848
|
+
Rendered inline template (5.9ms)
|
3849
|
+
Rendered inline template (5.8ms)
|
3850
|
+
Rendered inline template (6.3ms)
|
3851
|
+
Rendered inline template (2.7ms)
|
3852
|
+
Rendered inline template (53.2ms)
|
3853
|
+
Rendered inline template (1.9ms)
|
3854
|
+
Rendered inline template (4.6ms)
|
3855
|
+
Rendered inline template (1.6ms)
|
3856
|
+
Rendered inline template (2.8ms)
|
3857
|
+
Rendered inline template (2.9ms)
|
3858
|
+
Rendered inline template (2.3ms)
|
3859
|
+
Rendered inline template (2.2ms)
|
3860
|
+
Rendered inline template (1.7ms)
|
3861
|
+
Rendered inline template (1.9ms)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wrap_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey Ovchinnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|