Sha256: 730be61d7faeb0a4b8afb6cd09b6a6a32a3927a875a041ec49368a475c652c2f

Contents?: true

Size: 1.33 KB

Versions: 1

Compression:

Stored size: 1.33 KB

Contents

# Your Adapter SHOULD define:
# * @QueryDefaults - The default parameters if no others are passed in.

class Embeditor.Adapter
    className: "Adapter"

    @QueryDefaults = {}

    constructor: (@element, @options={}) ->
        @adapter        = Embeditor.Adapters[@className]
        @href           = @element.attr('href')
        @dataOptions    = @_extractData()
        @queryParams    = @_buildParams(@dataOptions, options)


    swap: ->
        return


    embed: (html) ->
        @wrapper = $("<div />", class: @options.wrapperClass)
        @wrapper.html(html)
        @element.after @wrapper


    _extractData: ->
        dataOptions = {}

        for key,val of @element.data()
            # Make sure we care about this attribute
            if @adapter.QueryDefaults?[key]
                dataOptions[key] = val

        dataOptions


    # We're combining a few things (in order of precedence):
    # 1. The `data-attributes` of the placeholder,
    # 2. The adapter-specific options specified at Embeditor
    #    initialization,
    # 3. The global options specified at Embeditor initialization,
    # 4. This adapter's default options (fallback options).
    _buildParams: (dataOptions, options) ->
        _.defaults(dataOptions,
            @adapter.query,
            options['query'],
            @adapter.QueryDefaults
        )

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embeditor-rails-0.1.0 app/assets/javascripts/embeditor/adapter.js.coffee