embeditor-rails 0.0.1 → 0.1.0
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.
- data/README.md +54 -7
- data/app/assets/javascripts/embeditor/adapter.js.coffee +21 -11
- data/app/assets/javascripts/embeditor/adapters/cover_it_live.js.coffee +16 -15
- data/app/assets/javascripts/embeditor/adapters/document_cloud.js.coffee +1 -0
- data/app/assets/javascripts/embeditor/adapters/embedly.js.coffee +3 -1
- data/app/assets/javascripts/embeditor/adapters/facebook.js.coffee +18 -0
- data/app/assets/javascripts/embeditor/adapters/fire_tracker.js.coffee +3 -1
- data/app/assets/javascripts/embeditor/adapters/instagram.js.coffee +28 -0
- data/app/assets/javascripts/embeditor/adapters/oembed.js.coffee +18 -12
- data/app/assets/javascripts/embeditor/adapters/polldaddy.js.coffee +14 -4
- data/app/assets/javascripts/embeditor/adapters/rebel_mouse.js.coffee +1 -0
- data/app/assets/javascripts/embeditor/adapters/static_template.js.coffee +43 -0
- data/app/assets/javascripts/embeditor/adapters/storify.js.coffee +24 -0
- data/app/assets/javascripts/embeditor/adapters/twitter.js.coffee +14 -0
- data/app/assets/javascripts/embeditor/embeditor.js.coffee +10 -5
- data/app/assets/javascripts/embeditor/templates/facebook.jst.eco +2 -0
- data/app/assets/javascripts/embeditor/templates/instagram.jst.eco +1 -0
- data/app/assets/javascripts/embeditor/templates/polldaddy.jst.eco +4 -0
- data/app/assets/javascripts/embeditor/templates/storify.jst.eco +1 -0
- data/app/assets/javascripts/embeditor/templates/twitter.jst.eco +2 -0
- data/app/assets/javascripts/embeditor/utility.js.coffee +15 -0
- data/app/assets/javascripts/embeditor.js +3 -0
- data/lib/embeditor-rails/version.rb +1 -1
- metadata +16 -3
data/README.md
CHANGED
@@ -41,16 +41,26 @@ occur, and call its `swap()` function to perform the swapping:
|
|
41
41
|
</script>
|
42
42
|
```
|
43
43
|
|
44
|
-
Embeditor works by replacing `A` tags
|
45
|
-
appropriate embed.
|
44
|
+
Embeditor works by replacing `A` tags with a specific class with the
|
45
|
+
appropriate embed. The default class is `embed-placeholder`, but that can be
|
46
|
+
configured.
|
46
47
|
|
47
|
-
|
48
|
-
|
49
|
-
|
48
|
+
There are several adapters included with this engine:
|
49
|
+
|
50
|
+
* **Embedly** - Covers several services, such as SoundCloud, Spotify, Scribd, Google
|
51
|
+
Maps, and others. See
|
52
|
+
[the list of Embedly's providers](http://embed.ly/embed/features/providers).
|
53
|
+
Embedly doesn't always work perfectly, so Embeditor provides manual adapters
|
54
|
+
for some of the providers that Embedly claims to support.
|
50
55
|
* **Cover It Live**
|
51
|
-
* **
|
56
|
+
* **Polldaddy**
|
52
57
|
* **KPCC's Fire Tracker**
|
53
|
-
* **
|
58
|
+
* **Instagram**
|
59
|
+
* **Facebook**
|
60
|
+
* **Twitter**
|
61
|
+
* **Storify**
|
62
|
+
* **Document Cloud** - Not yet supported.
|
63
|
+
* **Rebel Mouse** - Not yet supported.
|
54
64
|
|
55
65
|
None of these are included automatically. To install just the ones you need,
|
56
66
|
add them to your `application.js` :
|
@@ -80,6 +90,20 @@ You can also selectively require templates:
|
|
80
90
|
|
81
91
|
### Configuration
|
82
92
|
|
93
|
+
#### Embeditor
|
94
|
+
|
95
|
+
You can configure:
|
96
|
+
|
97
|
+
* `defaultAdapter` - The adapter that will be used if no adapter is found for
|
98
|
+
the provided service.
|
99
|
+
* `defaultService` - The service that will be used if no service is provided
|
100
|
+
on the placeholder link.
|
101
|
+
* `wrapperClass` - The class of the div that will get wrapped around the embed.
|
102
|
+
* `placeholderClass` - The class of the `<A>` tags that Embeditor will look for.
|
103
|
+
|
104
|
+
|
105
|
+
#### Embeds
|
106
|
+
|
83
107
|
Embeditor offers a system of configuration precedence.
|
84
108
|
The order of precedence is:
|
85
109
|
|
@@ -181,8 +205,31 @@ new Embeditor.Base({
|
|
181
205
|
```
|
182
206
|
|
183
207
|
|
208
|
+
### oEmbed vs. non-oEmbed
|
209
|
+
|
210
|
+
This library isn't necessarily tied to oEmbed, however it does have support for
|
211
|
+
it. Even for services which support oEmbed, there are static templates which
|
212
|
+
are able to render the embed properly just based off of the provided URL.
|
213
|
+
This eliminates any oEmbed headaches (Access-Control-Allowed-Origin, for
|
214
|
+
example), and also reduces the time it takes for an embed to load.
|
215
|
+
|
216
|
+
|
217
|
+
|
184
218
|
## Extending
|
185
219
|
|
186
220
|
You can/should add your own adapters! It's easy, I promise. If you add one
|
187
221
|
which you think could be useful to a lot of people, please submit a PR and
|
188
222
|
share the wealth!
|
223
|
+
|
224
|
+
You can extend your adapter from:
|
225
|
+
|
226
|
+
* `Embeditor.Adapter`, which is the base adapter.
|
227
|
+
* `Embeditor.Adapters.Oembed`, for oEmbed endpoints.
|
228
|
+
* `Embeditor.Adapters.StaticTemplate`, for embeds where the embed code is
|
229
|
+
stored in the `/templates` directory and rendered with JST.
|
230
|
+
|
231
|
+
|
232
|
+
## Contributing
|
233
|
+
|
234
|
+
If you have an adapter that you think would be useful for many, please open
|
235
|
+
up a pull request.
|
@@ -1,24 +1,34 @@
|
|
1
|
-
# Your Adapter
|
2
|
-
# * QueryDefaults -
|
1
|
+
# Your Adapter SHOULD define:
|
2
|
+
# * @QueryDefaults - The default parameters if no others are passed in.
|
3
3
|
|
4
4
|
class Embeditor.Adapter
|
5
|
-
|
5
|
+
className: "Adapter"
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
@QueryDefaults = {}
|
8
|
+
|
9
|
+
constructor: (@element, @options={}) ->
|
10
|
+
@adapter = Embeditor.Adapters[@className]
|
11
|
+
@href = @element.attr('href')
|
12
|
+
@dataOptions = @_extractData()
|
13
|
+
@queryParams = @_buildParams(@dataOptions, options)
|
9
14
|
|
10
15
|
|
11
16
|
swap: ->
|
12
17
|
return
|
13
18
|
|
14
19
|
|
20
|
+
embed: (html) ->
|
21
|
+
@wrapper = $("<div />", class: @options.wrapperClass)
|
22
|
+
@wrapper.html(html)
|
23
|
+
@element.after @wrapper
|
24
|
+
|
25
|
+
|
15
26
|
_extractData: ->
|
16
|
-
adapter = @constructor.name
|
17
27
|
dataOptions = {}
|
18
28
|
|
19
29
|
for key,val of @element.data()
|
20
30
|
# Make sure we care about this attribute
|
21
|
-
if
|
31
|
+
if @adapter.QueryDefaults?[key]
|
22
32
|
dataOptions[key] = val
|
23
33
|
|
24
34
|
dataOptions
|
@@ -31,8 +41,8 @@ class Embeditor.Adapter
|
|
31
41
|
# 3. The global options specified at Embeditor initialization,
|
32
42
|
# 4. This adapter's default options (fallback options).
|
33
43
|
_buildParams: (dataOptions, options) ->
|
34
|
-
adapter = @constructor.name
|
35
|
-
|
36
44
|
_.defaults(dataOptions,
|
37
|
-
|
38
|
-
|
45
|
+
@adapter.query,
|
46
|
+
options['query'],
|
47
|
+
@adapter.QueryDefaults
|
48
|
+
)
|
@@ -1,24 +1,25 @@
|
|
1
|
-
class Embeditor.Adapters.CoverItLive extends Embeditor.
|
2
|
-
|
1
|
+
class Embeditor.Adapters.CoverItLive extends Embeditor.Adapters.StaticTemplate
|
2
|
+
className: "CoverItLive"
|
3
|
+
|
4
|
+
@Template = Embeditor.Template('cover_it_live')
|
3
5
|
|
4
6
|
@QueryDefaults =
|
5
|
-
maxheight : 550
|
6
7
|
maxwidth : 620
|
8
|
+
maxheight : 550
|
7
9
|
|
8
|
-
@
|
9
|
-
|
10
|
-
|
11
|
-
constructor: (@element, options={}) ->
|
12
|
-
@dataOptions = @_extractData()
|
13
|
-
@queryParams = @_buildParams(@dataOptions, options)
|
14
|
-
|
15
|
-
super
|
16
|
-
|
10
|
+
@Matchers = [
|
11
|
+
new RegExp "/altcast_code=([^/]+)/", "gi"
|
12
|
+
]
|
17
13
|
|
18
14
|
swap: ->
|
19
|
-
|
15
|
+
# If the href doesn't match our known URL schemes
|
16
|
+
# for this adapter, then let's not bother trying.
|
17
|
+
match = @_parseUrl()
|
18
|
+
return false if not match
|
19
|
+
|
20
|
+
event_id = match[1]
|
20
21
|
|
21
|
-
@
|
22
|
+
@embed CoverItLive.Template
|
22
23
|
maxheight : @queryParams.maxheight,
|
23
24
|
maxwidth : @queryParams.maxwidth,
|
24
|
-
event_id :
|
25
|
+
event_id : event_id
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# This doesn't inherit from Adapters.Oembed because the Embedly plugin
|
2
2
|
# handles most of that stuff on its own.
|
3
3
|
class Embeditor.Adapters.Embedly extends Embeditor.Adapter
|
4
|
+
className: "Embedly"
|
5
|
+
|
4
6
|
# This object should hold any keys that we want to
|
5
7
|
# send to the API. Any key not in this object will
|
6
8
|
# be ignored as a data attribute.
|
@@ -14,7 +16,7 @@ class Embeditor.Adapters.Embedly extends Embeditor.Adapter
|
|
14
16
|
# Key must be specified
|
15
17
|
|
16
18
|
|
17
|
-
constructor: (@element, options={}) ->
|
19
|
+
constructor: (@element, @options={}) ->
|
18
20
|
pluginOpts = options['Embedly']?['plugin'] or {}
|
19
21
|
@pluginOptions = _.defaults(pluginOpts, Embedly.PluginDefaults)
|
20
22
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Embeditor.Adapters.Facebook extends Embeditor.Adapters.StaticTemplate
|
2
|
+
className: "Facebook"
|
3
|
+
|
4
|
+
@Template = Embeditor.Template('facebook')
|
5
|
+
|
6
|
+
@QueryDefaults =
|
7
|
+
maxwidth : 550
|
8
|
+
maxheight : 600
|
9
|
+
|
10
|
+
# For facebook, we just use the full URL, so no matchers are needed.
|
11
|
+
@Matchers = []
|
12
|
+
|
13
|
+
|
14
|
+
swap: ->
|
15
|
+
@embed Facebook.Template
|
16
|
+
maxheight : @queryParams.maxheight,
|
17
|
+
maxwidth : @queryParams.maxwidth,
|
18
|
+
url : @href
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Instagram's oembed endpoint returns "photo" oembed types (instead of "rich"),
|
2
|
+
# and only a URL to the photo, not an actual embed code. Therefore, we need to
|
3
|
+
# use StaticTemplate to use the iframe embed code.
|
4
|
+
class Embeditor.Adapters.Instagram extends Embeditor.Adapters.StaticTemplate
|
5
|
+
className: "Instagram"
|
6
|
+
|
7
|
+
@Template = Embeditor.Template('instagram')
|
8
|
+
|
9
|
+
@QueryDefaults =
|
10
|
+
maxwidth : 612
|
11
|
+
maxheight : 710
|
12
|
+
|
13
|
+
@Matchers = [
|
14
|
+
# http://instagram.com/p/e8hJe6CvTW/
|
15
|
+
new RegExp "instagram\.com\/p\/([^/]+)", "gi"
|
16
|
+
]
|
17
|
+
|
18
|
+
|
19
|
+
swap: ->
|
20
|
+
match = @_parseUrl()
|
21
|
+
return false if not match
|
22
|
+
|
23
|
+
photo_id = match[1]
|
24
|
+
|
25
|
+
@embed Instagram.Template
|
26
|
+
maxheight : @queryParams.maxheight
|
27
|
+
maxwidth : @queryParams.maxwidth
|
28
|
+
photo_id : photo_id
|
@@ -1,17 +1,23 @@
|
|
1
|
+
# Oembed adapters MUST define:
|
2
|
+
# * @Endpoint - The URL to the oembed endpoint
|
3
|
+
#
|
4
|
+
# Oembed adapters SHOULD defined:
|
5
|
+
# * @QueryDefaults - The fallback query parameters if no others are specified.
|
1
6
|
class Embeditor.Adapters.Oembed extends Embeditor.Adapter
|
2
|
-
|
3
|
-
@Path = null
|
7
|
+
className: "Oembed"
|
4
8
|
|
5
|
-
|
6
|
-
|
7
|
-
@queryParams = @_buildParams(@dataOptions, options)
|
9
|
+
# Override this. Oembed endpoint.
|
10
|
+
@Endpoint = null
|
8
11
|
|
9
|
-
|
12
|
+
swap: ->
|
13
|
+
$.ajax
|
14
|
+
url : @adapter.Endpoint
|
15
|
+
type : 'GET'
|
16
|
+
dataType : 'json'
|
17
|
+
data : _.extend(@queryParams, {url: @href})
|
10
18
|
|
19
|
+
success: (data, textStatus, jqXHR) =>
|
20
|
+
@embed data.html
|
11
21
|
|
12
|
-
|
13
|
-
|
14
|
-
Embeditor.Adapters[@constructor.name].Path,
|
15
|
-
_.extend({url: @href}, @queryParams),
|
16
|
-
(data, textStatus, jqXHR) => @element.after(data.html)
|
17
|
-
)
|
22
|
+
error: (jqXHR, textStatus, errorThrown) =>
|
23
|
+
console.log('[embeditor oembed] error.', jqXHR)
|
@@ -1,7 +1,17 @@
|
|
1
1
|
class Embeditor.Adapters.Polldaddy extends Embeditor.Adapters.Oembed
|
2
|
-
|
2
|
+
className: "Polldaddy"
|
3
|
+
|
4
|
+
@Endpoint = "http://polldaddy.com/oembed/" # Doesn't work w/o trailing slash...
|
3
5
|
|
4
6
|
@QueryDefaults =
|
5
|
-
maxwidth
|
6
|
-
maxheight
|
7
|
-
format
|
7
|
+
maxwidth : 620
|
8
|
+
maxheight : 550
|
9
|
+
format : 'json'
|
10
|
+
|
11
|
+
|
12
|
+
constructor: (@element, @options={}) ->
|
13
|
+
super
|
14
|
+
|
15
|
+
# Work around a polldaddy bug where the oembed endpoint doesn't
|
16
|
+
# properly recognize SSL URL's given to it.
|
17
|
+
@href = Embeditor.Utility.convertProtocolToHttp(@href)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# StaticTemplate is for when you just want to hard-code the embed code
|
2
|
+
# into the /templates directory. This is either to avoid an expensive
|
3
|
+
# call to an oEmbed endpoint, or if there simply isn't another way to
|
4
|
+
# programatically retrieve the embed code.
|
5
|
+
#
|
6
|
+
# Your StaticTemplate adapter MUST define:
|
7
|
+
# * @Tempalte - The name of the template to use (in the templates directory)
|
8
|
+
#
|
9
|
+
# Your StaticTemplate adapter SHOULD define:
|
10
|
+
# * @QueryDefaults - The default query paramters if no others are passed in.
|
11
|
+
#
|
12
|
+
# Your StaticTemplate adapter MAY define:
|
13
|
+
# * @Matchers - An array of regular expressions which will be used to extract
|
14
|
+
# important information from the URL (such as an ID).
|
15
|
+
# If your adapter doesn't need a Matcher, then you don't have to
|
16
|
+
# define this property. This property is used by _parseUrl(),
|
17
|
+
# which doesn't get called automatically.
|
18
|
+
#
|
19
|
+
class Embeditor.Adapters.StaticTemplate extends Embeditor.Adapter
|
20
|
+
className: "StaticTemplate"
|
21
|
+
|
22
|
+
# The template to use.
|
23
|
+
@Template = null
|
24
|
+
|
25
|
+
# Query parameter defaults
|
26
|
+
@QueryDefaults = {}
|
27
|
+
|
28
|
+
# The matchers to extract the info out of the URL.
|
29
|
+
@Matchers = []
|
30
|
+
|
31
|
+
|
32
|
+
swap: ->
|
33
|
+
# Extract the info and render the template
|
34
|
+
return
|
35
|
+
|
36
|
+
|
37
|
+
_parseUrl: ->
|
38
|
+
match = null
|
39
|
+
|
40
|
+
_.find @adapter.Matchers, (m) =>
|
41
|
+
match = m.exec(@href)
|
42
|
+
|
43
|
+
match
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Embeditor.Adapters.Storify extends Embeditor.Adapters.StaticTemplate
|
2
|
+
className: "Storify"
|
3
|
+
|
4
|
+
@Template = Embeditor.Template('storify')
|
5
|
+
|
6
|
+
@QueryDefaults =
|
7
|
+
maxwidth : 550
|
8
|
+
maxheight : 750
|
9
|
+
|
10
|
+
# For storify, we just use the full URL, so no matchers are needed.
|
11
|
+
@Matchers = []
|
12
|
+
|
13
|
+
|
14
|
+
swap: ->
|
15
|
+
# Storify's embed code doesn't provide a protocol (http/s), so let's
|
16
|
+
# strip it out. We also want to make sure that there is no trailing
|
17
|
+
# slash so that we can concatenate other things to the URL.
|
18
|
+
url = Embeditor.Utility.stripProtocol(
|
19
|
+
Embeditor.Utility.stripTrailingSlash(@href))
|
20
|
+
|
21
|
+
# Storify embed is responsive, so we don't need to provide a width.
|
22
|
+
@embed Storify.Template
|
23
|
+
maxheight : @queryParams.maxheight
|
24
|
+
url : url
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Embeditor.Adapters.Twitter extends Embeditor.Adapters.StaticTemplate
|
2
|
+
className: "Twitter"
|
3
|
+
|
4
|
+
@Template = Embeditor.Template('twitter')
|
5
|
+
|
6
|
+
# Twitter doesn't give a damn about you or your dimensions.
|
7
|
+
@QueryDefaults = {}
|
8
|
+
|
9
|
+
# For twitter, we just use the full URL, so no matchers are needed.
|
10
|
+
@Matchers = []
|
11
|
+
|
12
|
+
|
13
|
+
swap: ->
|
14
|
+
@embed Twitter.Template(url : @href)
|
@@ -7,21 +7,26 @@ window.Embeditor = {
|
|
7
7
|
# 'brightcove' : 'Embedly'
|
8
8
|
'ustream' : 'Embedly'
|
9
9
|
'vine' : 'Embedly'
|
10
|
-
|
10
|
+
'googlemaps' : 'Embedly'
|
11
11
|
'scribd' : 'Embedly'
|
12
12
|
# 'documentcloud' : 'DocumentCloud'
|
13
13
|
'polldaddy' : 'Polldaddy'
|
14
|
-
'facebook' : '
|
15
|
-
|
14
|
+
'facebook' : 'Facebook'
|
15
|
+
'storify' : 'Storify'
|
16
16
|
'coveritlive' : 'CoverItLive'
|
17
17
|
# 'rebelmouse' : 'RebelMouse'
|
18
18
|
'firetracker' : 'FireTracker'
|
19
|
-
|
20
|
-
'instagram' : '
|
19
|
+
'twitter' : 'Twitter'
|
20
|
+
'instagram' : 'Instagram'
|
21
21
|
'soundcloud' : 'Embedly'
|
22
22
|
'spotify' : 'Embedly'
|
23
23
|
'other' : 'Embedly'
|
24
24
|
|
25
|
+
TemplatePath : 'embeditor/templates/'
|
26
|
+
|
27
|
+
Template : (template) ->
|
28
|
+
JST[@TemplatePath + template]
|
29
|
+
|
25
30
|
DefaultOptions :
|
26
31
|
defaultAdapter : 'Embedly' # Adapter that gets used when the service isn't recognized
|
27
32
|
defaultService : 'other' # Service that gets used when the `data-service` attribute is missing
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
|
2
|
+
<div class="fb-post" data-href="<%=@url%>" data-width="<%=@maxwidth%>"></div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<iframe src="//instagram.com/p/<%=@photo_id%>/embed/" width="<%=@maxwidth%>" height="<%=@maxheight%>" frameborder="0" scrolling="no" allowtransparency="true"></iframe>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<div class="pd-embed" data-settings="{"type":"iframe","auto":true,"domain":"<%=@domain%>\/s\/","id":"<%=@poll_id%>"}"></div>
|
2
|
+
<script type="text/javascript">
|
3
|
+
(function(d,c,j){if(!document.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src=('https:'==document.location.protocol)?'https://polldaddy.com/survey.js':'http://i0.poll.fm/survey.js';s=document.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);}}(document,'script','pd-embed'));
|
4
|
+
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="storify"><iframe src="<%=@url%>/embed" width="100%" height=<%=@maxheight%>frameborder=no allowtransparency=true></iframe><script src="<%=@url%>.js"></script></div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Embeditor.Utility
|
2
|
+
@stripProtocol: (str) ->
|
3
|
+
str.replace(/^https?:/, "")
|
4
|
+
|
5
|
+
|
6
|
+
@stripTrailingSlash: (str) ->
|
7
|
+
str.replace(/\/$/, "")
|
8
|
+
|
9
|
+
|
10
|
+
@convertProtocolToHttp: (str) ->
|
11
|
+
str.replace(/^https:/, 'http:')
|
12
|
+
|
13
|
+
|
14
|
+
@convertProtocolToHttps: (str) ->
|
15
|
+
str.replace(/^http:/, 'https:')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embeditor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -72,14 +72,25 @@ files:
|
|
72
72
|
- app/assets/javascripts/embeditor/adapters/cover_it_live.js.coffee
|
73
73
|
- app/assets/javascripts/embeditor/adapters/document_cloud.js.coffee
|
74
74
|
- app/assets/javascripts/embeditor/adapters/embedly.js.coffee
|
75
|
+
- app/assets/javascripts/embeditor/adapters/facebook.js.coffee
|
75
76
|
- app/assets/javascripts/embeditor/adapters/fire_tracker.js.coffee
|
77
|
+
- app/assets/javascripts/embeditor/adapters/instagram.js.coffee
|
76
78
|
- app/assets/javascripts/embeditor/adapters/oembed.js.coffee
|
77
79
|
- app/assets/javascripts/embeditor/adapters/polldaddy.js.coffee
|
78
80
|
- app/assets/javascripts/embeditor/adapters/rebel_mouse.js.coffee
|
81
|
+
- app/assets/javascripts/embeditor/adapters/static_template.js.coffee
|
82
|
+
- app/assets/javascripts/embeditor/adapters/storify.js.coffee
|
83
|
+
- app/assets/javascripts/embeditor/adapters/twitter.js.coffee
|
79
84
|
- app/assets/javascripts/embeditor/adapters.js
|
80
85
|
- app/assets/javascripts/embeditor/embeditor.js.coffee
|
81
86
|
- app/assets/javascripts/embeditor/templates/cover_it_live.jst.eco
|
87
|
+
- app/assets/javascripts/embeditor/templates/facebook.jst.eco
|
88
|
+
- app/assets/javascripts/embeditor/templates/instagram.jst.eco
|
89
|
+
- app/assets/javascripts/embeditor/templates/polldaddy.jst.eco
|
90
|
+
- app/assets/javascripts/embeditor/templates/storify.jst.eco
|
91
|
+
- app/assets/javascripts/embeditor/templates/twitter.jst.eco
|
82
92
|
- app/assets/javascripts/embeditor/templates.js
|
93
|
+
- app/assets/javascripts/embeditor/utility.js.coffee
|
83
94
|
- app/assets/javascripts/embeditor.js
|
84
95
|
- lib/embeditor-rails/version.rb
|
85
96
|
- lib/embeditor-rails.rb
|
@@ -87,7 +98,8 @@ files:
|
|
87
98
|
- Rakefile
|
88
99
|
- README.md
|
89
100
|
homepage: https://github.com/SCPR/embeditor-rails
|
90
|
-
licenses:
|
101
|
+
licenses:
|
102
|
+
- MIT
|
91
103
|
post_install_message:
|
92
104
|
rdoc_options: []
|
93
105
|
require_paths:
|
@@ -111,3 +123,4 @@ signing_key:
|
|
111
123
|
specification_version: 3
|
112
124
|
summary: Embeditor plugin for Rails.
|
113
125
|
test_files: []
|
126
|
+
has_rdoc:
|