Sha256: da8b71dbdf9296ffdeaed669b0f61092e5f6bb2ff8b54293d2a2eebe63ceeea8

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

class window.Block
	constructor: ($b, params, name) ->
		@$node = $b
		@name = name
		@id = $$.utils.guid()
		@params = params
		#$.extend this, decl.methods
		@_addEvents() if @events
		# if @elements
		# 	for element in @elements
		# 		@_addEvents(element)
		@init() if @init
	
	elem: (e_name, mod_name, mod_value, context = @$node) ->
		if mod_name
			$elem = $(".#{$$.elementModClass(@name, e_name,  mod_name,  mod_value)}", context)
		else
			$elem = $(".#{@_elementClass(e_name)}", context)
		 
		$elem.e_name = e_name
		$elem.b_name = @name
		$elem
	
	on: () ->
		@$node.on.apply(@$node, arguments)

	_addEvents: (element)->
		for event_name, handler of @events
			p = event_name.split(' ')
			if typeof handler == 'string'
				handler = decl.methods[handler]
			@$node.on p[0], p[1], handler.bind(@)
			
	_trigger: (event, data) ->
		@$node.trigger event, data

	_elementClass: (e_name) ->
		$$.elementClass(@name, e_name)

	addElem: (e_name, o, $parent) ->
		o ||= {}
		$elem = $$.makeElement($parent || @$node, @name, e_name, o)
		$elem.e_name = e_name
		$elem.b_name = @name
		$elem

	asElem: ($elem, name) ->
		$elem.e_name = name
		$elem.b_name = @name
		$elem
		
	addMod: (mod, value) ->
		@$node.addClass($$.blockModClass(@name, mod, value))
		
	delMod: (mod, value) ->
		@$node.removeClass($$.blockModClass(@name, mod, value))
	
	toggleMod: (mod, value) ->
		if @hasMod(mod, value)
			@delMod(mod, value)
		else
			@addMod(mod, value)

	hasMod: (mod, value) ->
		@$node.hasClass($$.blockModClass(@name, mod, value))

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_blocks-0.7.8 app/assets/javascripts/block.coffee
rails_blocks-0.7.7 app/assets/javascripts/block.coffee