rails_blocks 0.7.6 → 0.7.7
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/app/assets/javascripts/bem_blocks.coffee +22 -11
- data/app/assets/javascripts/block.coffee +6 -4
- data/lib/rails_blocks/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: 9cbc3e4923986aed356514685bea330f592e98fa
|
4
|
+
data.tar.gz: aaabae0bebfeb63364dc9c5bb6da2e881e385c98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6e9ab6a12a8c688ff3245831d6abed11753b32a455409380fd2b90400df174622351455d941922781ba611d186f9d713d4366cd9cf783bda80d7aba36cb1892
|
7
|
+
data.tar.gz: e58092b574eb2adb80c8d443f6579d3fed08a2ae91217a06a7e58577f28ce10c4771038f1e9bbf345f48446442edb3506bd18a214d989d403d7948f22a3b240a
|
@@ -5,7 +5,7 @@ window.$$ =
|
|
5
5
|
bem_class_selector: ".js-bem"
|
6
6
|
bemDataKey: 'bem'
|
7
7
|
|
8
|
-
processOptions: ($dom, b_name, o) ->
|
8
|
+
processOptions: ($dom, item_name, b_name, o) ->
|
9
9
|
if o.attrs
|
10
10
|
for attr, attr_value of o.attrs
|
11
11
|
$dom.prop(attr, attr_value)
|
@@ -13,14 +13,24 @@ window.$$ =
|
|
13
13
|
$dom.html(o.content)
|
14
14
|
if o.mix
|
15
15
|
$dom.addClass($$.mixClass(o.mix))
|
16
|
+
if o.data
|
17
|
+
currentData = $dom.data($$.bemDataKey) || {}
|
18
|
+
currentData[item_name] = o.data
|
19
|
+
$dom.data($$.bemDataKey, currentData)
|
16
20
|
if o.elements
|
17
21
|
for e_name, e_o of o.elements
|
18
22
|
$$.makeElement($dom, b_name, e_name, e_o)
|
19
|
-
|
20
|
-
|
23
|
+
$dom
|
24
|
+
|
25
|
+
makeDom: (o, klass) ->
|
26
|
+
o ||= {}
|
21
27
|
tag = o.tag || 'div'
|
22
|
-
$
|
23
|
-
|
28
|
+
$("<#{tag}>)").addClass(klass)
|
29
|
+
|
30
|
+
makeElement: ($parent, b_name, e_name, o) ->
|
31
|
+
item_name = $$.elementClass(b_name, e_name)
|
32
|
+
$e = @makeDom(o, item_name)
|
33
|
+
$$.processOptions($e, item_name, b_name, o)
|
24
34
|
if o.prepend
|
25
35
|
$parent.prepend $e
|
26
36
|
else
|
@@ -28,10 +38,9 @@ window.$$ =
|
|
28
38
|
$e
|
29
39
|
|
30
40
|
makeBlock: (b_name, o) ->
|
31
|
-
|
32
|
-
|
33
|
-
$b
|
34
|
-
$$.processOptions($b, b_name, o)
|
41
|
+
item_name = $$.blockClass(b_name)
|
42
|
+
$b = @makeDom(o, item_name)
|
43
|
+
$$.processOptions($b, item_name, b_name, o)
|
35
44
|
$b
|
36
45
|
|
37
46
|
init: ($context) ->
|
@@ -55,8 +64,7 @@ window.$$ =
|
|
55
64
|
try
|
56
65
|
block = new $$.decls[$$.utils.camelCase(name)]($b, params, name)
|
57
66
|
catch e
|
58
|
-
console.
|
59
|
-
throw e
|
67
|
+
console.error "Can't initialize block #{name}, check declaration. #{e.name} : #{e.message}"
|
60
68
|
|
61
69
|
bid = block.id
|
62
70
|
$b.data cacheKey, bid
|
@@ -78,5 +86,8 @@ window.$$ =
|
|
78
86
|
elementModClass: (b_name, e_name, mod, value) ->
|
79
87
|
"#{$$.elementClass(b_name, e_name)}--#{$$.makeMod(mod, value)}"
|
80
88
|
|
89
|
+
blockClass: (b_name) ->
|
90
|
+
b_name
|
91
|
+
|
81
92
|
elementClass: (b_name, e_name) ->
|
82
93
|
"#{b_name}__#{e_name}"
|
@@ -20,8 +20,10 @@ class window.Block
|
|
20
20
|
$elem.e_name = e_name
|
21
21
|
$elem.b_name = @name
|
22
22
|
$elem
|
23
|
-
|
24
|
-
|
23
|
+
|
24
|
+
on: () ->
|
25
|
+
@$node.on.apply(@$node, arguments)
|
26
|
+
|
25
27
|
_addEvents: (element)->
|
26
28
|
for event_name, handler of @events
|
27
29
|
p = event_name.split(' ')
|
@@ -29,8 +31,8 @@ class window.Block
|
|
29
31
|
handler = decl.methods[handler]
|
30
32
|
@$node.on p[0], p[1], handler.bind(@)
|
31
33
|
|
32
|
-
_trigger: (event) ->
|
33
|
-
@$node.trigger event
|
34
|
+
_trigger: (event, data) ->
|
35
|
+
@$node.trigger event, data
|
34
36
|
|
35
37
|
_elementClass: (e_name) ->
|
36
38
|
$$.elementClass(@name, e_name)
|
data/lib/rails_blocks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_blocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Potetiurin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|