rails_blocks 0.7.6 → 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6435b02e6fc6b71cad5e2d91b80a5080f7a49a67
4
- data.tar.gz: 65cdfa3d3b3ae5daeffbb5161d74661bffa45cfa
3
+ metadata.gz: 9cbc3e4923986aed356514685bea330f592e98fa
4
+ data.tar.gz: aaabae0bebfeb63364dc9c5bb6da2e881e385c98
5
5
  SHA512:
6
- metadata.gz: 39f9883d6e1e8fcf2b4b389f79c6decb6875a43fa35a616dbf4cfeac64cbb592b66463ae9188f4d74877977b81d84c56ef3ebe28e0225716c0ed80e73de58fc6
7
- data.tar.gz: b1c32c0dbbe398a9b608d2b1db86fb4b9fda0bdf624e90a7ba7b52c2e83d4f715c348111f8a33c74c7e74ffe1b68443ff4defdbdc8c3c410c87fc9fc9e18dced
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
- makeElement: ($parent, b_name, e_name, o) ->
23
+ $dom
24
+
25
+ makeDom: (o, klass) ->
26
+ o ||= {}
21
27
  tag = o.tag || 'div'
22
- $e = $("<#{tag} class='#{b_name}__#{e_name}'>")
23
- $$.processOptions($e, b_name, o)
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
- o ||= {}
32
- tag = o.tag || 'div'
33
- $b = $("<#{tag} class='#{b_name}'>")
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.log "Can't initialize block #{name}, check declaration."
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)
@@ -1,3 +1,3 @@
1
1
  module RailsBlocks
2
- VERSION = "0.7.6".freeze
2
+ VERSION = "0.7.7".freeze
3
3
  end
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.6
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-03-28 00:00:00.000000000 Z
11
+ date: 2017-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails