wrap_it 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|