easymarklet 0.0.2 → 0.0.3

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.
@@ -8,6 +8,7 @@
8
8
  if(bookmarklet.producer == null){ alert('Your bookmarklet definition is missing a producer.'); return; }
9
9
 
10
10
  var _this = this;
11
+ _this.producer = null;
11
12
  //console.log('Easymarklet.Consumer : init');
12
13
  var bookmarklet = bookmarklet
13
14
  var s1, s2, isLoaded = false, xhr, head = document.getElementsByTagName('head')[0];
@@ -42,10 +43,13 @@
42
43
  var dest = full_host + bookmarklet.producer.path
43
44
 
44
45
  // here we put the main code, in this case we expose an ajax endpoint
45
- xhr = new easyXDM.Rpc({
46
+ _this.producer = new easyXDM.Rpc({
46
47
  remote: dest,
47
48
  container: easymarkletDiv,
48
- onReady: function(){
49
+ onReady: function(){
50
+ if(bookmarklet.consumer.init){
51
+ bookmarklet.consumer.init();
52
+ }
49
53
  //xhr.post("example/glossary.php", {
50
54
  // param1: "a",
51
55
  // param2: "b"
@@ -9,7 +9,6 @@
9
9
 
10
10
  var _this = this;
11
11
  _this.consumer = null;
12
- //console.log('Easymarklet.Producert : init');
13
12
 
14
13
  this.init = function(){
15
14
  _this.createRpcChannel();
@@ -22,8 +21,8 @@
22
21
  for (var key in bookmarklet.consumer.methods) {
23
22
  if (bookmarklet.consumer.methods.hasOwnProperty(key)) {
24
23
  //console.log(key);
25
- rpcConfig.remote[key] = bookmarklet.consumer.methods[key];
26
- _this[key]
24
+ rpcConfig.remote[key] = {}; //bookmarklet.consumer.methods[key];
25
+ //_this[key]
27
26
  }
28
27
  }
29
28
  rpcConfig.remote.closeFrame = {};
@@ -33,7 +32,7 @@
33
32
  for (var key in bookmarklet.producer.methods) {
34
33
  if (bookmarklet.producer.methods.hasOwnProperty(key)) {
35
34
  //console.log(key);
36
- rpcConfig.local[key] = {}; //We just stub these since they're not called on this side
35
+ rpcConfig.local[key] = bookmarklet.producer.methods[key]; //We just stub these since they're not called on this side
37
36
  }
38
37
  }
39
38
 
@@ -41,12 +40,16 @@
41
40
  }
42
41
 
43
42
  this.createRpcChannel = function(){
43
+
44
44
  _this.consumer = new easyXDM.Rpc(
45
45
  /** The channel configuration*/
46
46
  {
47
- local: "/assets/cors/index.html",
48
- swf: "/assets/easyxdm.swf",
47
+ //local: "/assets/cors/index.html",
48
+ //swf: "/assets/easyxdm.swf",
49
49
  onReady: function(){
50
+ if(bookmarklet.producer.init){
51
+ bookmarklet.producer.init();
52
+ }
50
53
  //console.log("calling the remote test....");
51
54
  //Cicero.EasymarkletFrame.remote.alertMessage("just a test...");
52
55
  }
@@ -0,0 +1,52 @@
1
+ (function(){
2
+
3
+ var Easymarklet = window.Easymarklet || {}
4
+
5
+ Easymarklet.Simple = function(bookmarklet){
6
+ if(bookmarklet == null){ alert('You must pass some bookmarklet to Easymarklet.Simple.'); return;}
7
+ if(bookmarklet.init == null){ alert('Your bookmarklet is missing an init function.'); return; }
8
+ //if(bookmarklet.consumer == null){ alert('Your bookmarklet definition is missing a consumer.'); return; }
9
+ //if(bookmarklet.producer == null){ alert('Your bookmarklet definition is missing a producer.'); return; }
10
+
11
+ var _this = this;
12
+ var bookmarklet = bookmarklet
13
+ var head = document.getElementsByTagName('head')[0];
14
+
15
+ var consumer_url = encodeURIComponent(document.location);
16
+ var protocol = 'http://'
17
+ var host = '<%= Rails.application.config.action_controller.default_url_options[:host] %>';
18
+ var port = '<%= Rails.application.config.action_controller.default_url_options[:port] %>';
19
+ port = port === '' ? '' : ':' + port;
20
+ var full_host = protocol + host + port;
21
+
22
+ this.loadCss = function(){
23
+ //Load the css
24
+ bookmarklet.css = [].concat(bookmarklet.css)
25
+ for(var i = 0; i<bookmarklet.css.length; i++){
26
+ var src = bookmarklet.css[i]
27
+ var css = document.createElement('LINK');
28
+ css.href = full_host + src;
29
+ css.type = 'text/css';
30
+ css.media = 'screen';
31
+ css.rel = 'stylesheet';
32
+ head.appendChild(css);
33
+ }
34
+ }
35
+
36
+ this.init = function(){
37
+ this.loadCss();
38
+ if(bookmarklet.init){
39
+ bookmarklet.init();
40
+ }
41
+ }
42
+
43
+ } // Easymarklet.Simple = function(){
44
+
45
+
46
+ // Now expose the Easymarklet to the global object
47
+ window.Easymarklet = Easymarklet;
48
+
49
+
50
+ })();
51
+
52
+
@@ -1,3 +1,3 @@
1
1
  module Easymarklet
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,12 @@
1
+ Description:
2
+ Generate a simple (non-xdm) bookmarklet.
3
+
4
+ Example:
5
+ rails generate easymarklet:simple foobaz
6
+
7
+ This will create:
8
+ app/assets/javascripts/foobaz_bookmarklet.js
9
+
10
+ Then you could link to it with:
11
+ <%= link_to "FooBaz Simple", easymarklet_js('foobaz_bookmarklet.js') %>
12
+
@@ -0,0 +1,19 @@
1
+ module Easymarklet
2
+ class BareGenerator < Rails::Generators::NamedBase
3
+ source_root File.expand_path('../templates', __FILE__)
4
+
5
+ def copy_js_file
6
+ template "bare_bookmarklet.js", "app/assets/javascripts/#{file_name}_bookmarklet.js"
7
+ end
8
+
9
+ def display_msg
10
+ puts ""
11
+ puts "You can link to your new bookmarklet with this :"
12
+ puts ""
13
+ puts "<%= link_to '#{file_name.titleize}', easymarklet_js('#{file_name}_bookmarklet.js') %>"
14
+ puts ""
15
+ end
16
+
17
+ end
18
+ end
19
+
@@ -0,0 +1,7 @@
1
+ (function(){
2
+
3
+ // Your simple bookmarklet code goes here.
4
+ // For instance
5
+ alert('You just clicked the <%= name %> bookmarklet.');
6
+
7
+ })();
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Generate a new xdm bookmarklet.
3
+
4
+ Example:
5
+ rails generate easymarklet:xdm foobaz
6
+
7
+ This will create:
8
+ app/assets/javascripts/foobaz_bookmarklet.js
9
+ app/assets/javascripts/foobaz_consumer.js
10
+ app/assets/javascripts/foobaz_producer.js
11
+
12
+
13
+ Then you could link to it with:
14
+ <%= link_to "FooBaz XDM", easymarklet_js('foobaz_consumer.js') %>
15
+
@@ -0,0 +1,27 @@
1
+ module Easymarklet
2
+ class IframeGenerator < Rails::Generators::NamedBase
3
+ source_root File.expand_path('../templates', __FILE__)
4
+
5
+ def copy_files
6
+ template "iframe_bookmarklet.js", "app/assets/javascripts/#{file_name}_bookmarklet.js"
7
+ template "iframe_consumer.js", "app/assets/javascripts/#{file_name}_consumer.js"
8
+ template "iframe_producer.js", "app/assets/javascripts/#{file_name}_producer.js"
9
+ template "iframe_producer_controller.rb", "app/controllers/#{file_name}_producer_controller.rb"
10
+ template "iframe_producer_index.html.erb", "app/views/#{file_name}_producer/index.html.erb"
11
+ template "views/easymarklet_layout.html.erb", "app/views/layouts/#{file_name}_producer.html.erb"
12
+ end
13
+
14
+ def create_routes
15
+ route("match '#{file_name}_producer' => '#{file_name}_producer#index'")
16
+ end
17
+
18
+ def display_msg
19
+ puts ""
20
+ puts "You can link to your new bookmarklet with this :"
21
+ puts ""
22
+ puts "<%= link_to '#{file_name.titleize}', easymarklet_js('#{file_name}_consumer.js') %>"
23
+ puts ""
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ (function(){
2
+
3
+ var <%= name.camelize %>Bookmarklet = {
4
+
5
+ visible : true,
6
+ consumer : {
7
+ css : [], // could be an array or a string
8
+ methods : { // The methods that the producer can call
9
+
10
+ }
11
+ },
12
+ producer : {
13
+ path : "/<%= name %>_producer", // The path on your app that provides your data service
14
+ methods : { // The methods that the consumer can call
15
+
16
+ }
17
+ }
18
+ }
19
+
20
+ window.<%= name.camelize %>Bookmarklet = <%= name.camelize %>Bookmarklet;
21
+
22
+ })();
23
+
@@ -0,0 +1,5 @@
1
+ //= require easymarklet/consumer
2
+ //= require <%= name %>_bookmarklet
3
+ //
4
+ var <%= name %>_consumer = new Easymarklet.Consumer(<%= name.camelize %>Bookmarklet);
5
+ <%= name %>_consumer.init();
@@ -0,0 +1,6 @@
1
+ //= require easyXDM
2
+ //= require easymarklet/producer
3
+ //= require <%= name %>_bookmarklet
4
+
5
+ var <%= name %>_producer = new Easymarklet.Producer(<%= name.camelize %>Bookmarklet);
6
+ <%= name %>_producer.init();
@@ -0,0 +1,8 @@
1
+ class <%= name.camelize %>ProducerController < ApplicationController
2
+
3
+ layout '<%= name %>_producer'
4
+
5
+ def index
6
+ end
7
+
8
+ end
@@ -0,0 +1,3 @@
1
+ This is the <%= name %> producer.
2
+
3
+ <%%= link_to_function "Close", "<%= name %>_producer.closeFrame()" %>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= name.titleize %> Producer</title>
5
+ <%%= stylesheet_link_tag "application", :media => "all" %>
6
+ <%%= javascript_include_tag "application" %>
7
+ <%%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%%= yield %>
12
+
13
+ <%%= javascript_include_tag "<%= name %>_producer" %>
14
+
15
+ </body>
16
+ </html>
@@ -3,7 +3,8 @@ module Easymarklet
3
3
  source_root File.expand_path('../templates', __FILE__)
4
4
 
5
5
  def copy_js_file
6
- copy_file "simple_bookmarklet.js", "app/assets/javascripts/#{file_name}_bookmarklet.js"
6
+ template "simple_bookmarklet.js", "app/assets/javascripts/#{file_name}_bookmarklet.js"
7
+ template "simple_bookmarklet.css", "app/assets/stylesheets/#{file_name}_bookmarklet.css"
7
8
  end
8
9
 
9
10
  def display_msg
@@ -0,0 +1,12 @@
1
+ #<%= name %>_insert{
2
+ position:absolute;
3
+ top:10px;
4
+ left:10px;
5
+ background:black;
6
+ border:3px double white;
7
+ color:white;
8
+ padding:10px;
9
+ -webkit-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);
10
+ -moz-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);
11
+ box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);
12
+ }
@@ -1,6 +1,24 @@
1
+ //= require easymarklet/simple
2
+
1
3
  (function(){
4
+
5
+ var <%= name.camelize %>Bookmarklet = {
6
+ css : ['/assets/<%= name %>_bookmarklet.css'], // could be an array or a single string
7
+ init : function(){
8
+ var div = document.createElement('div')
9
+ div.id = '<%= name %>_insert'
10
+ div.appendChild(document.createTextNode('<%= name.camelize %> Insert'))
11
+ div.onclick = function(){
12
+ document.body.removeChild(div);
13
+ }
14
+ document.body.appendChild(div);
15
+ }
16
+ }
17
+
18
+ window.<%= name.camelize %>Bookmarklet = <%= name.camelize %>Bookmarklet;
2
19
 
3
- // Your simple bookmarklet code goes here.
20
+ })();
4
21
 
22
+ var <%= name %>_simple = new Easymarklet.Simple(<%= name.camelize %>Bookmarklet);
23
+ <%= name %>_simple.init();
5
24
 
6
- })();
@@ -2,7 +2,7 @@
2
2
 
3
3
  var <%= name.camelize %>Bookmarklet = {
4
4
 
5
- visible : true,
5
+ visible : false,
6
6
  consumer : {
7
7
  css : [], // could be an array or a string
8
8
  methods : { // The methods that the producer can call
@@ -12,14 +12,14 @@ module Easymarklet
12
12
  end
13
13
 
14
14
  def create_routes
15
- route("match '#{file_name}' => '#{file_name}_producer#index'")
15
+ route("match '#{file_name}_producer' => '#{file_name}_producer#index'")
16
16
  end
17
17
 
18
18
  def display_msg
19
19
  puts ""
20
20
  puts "You can link to your new bookmarklet with this :"
21
21
  puts ""
22
- puts "<%= link_to '#{file_name.titleize}', bookmarklet_js('#{file_name}_consumer.js') %>"
22
+ puts "<%= link_to '#{file_name.titleize}', easymarklet_js('#{file_name}_consumer.js') %>"
23
23
  puts ""
24
24
  end
25
25
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easymarklet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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: 2012-11-13 00:00:00.000000000 Z
12
+ date: 2012-11-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -164,13 +164,26 @@ extra_rdoc_files: []
164
164
  files:
165
165
  - app/assets/javascripts/easymarklet/consumer.js.erb
166
166
  - app/assets/javascripts/easymarklet/producer.js.erb
167
+ - app/assets/javascripts/easymarklet/simple.js.erb
167
168
  - app/helpers/easymarklet/link_helper.rb
168
169
  - config/initializers/jasminerice.rb
169
170
  - config/routes.rb
170
171
  - lib/easymarklet/engine.rb
171
172
  - lib/easymarklet/version.rb
172
173
  - lib/easymarklet.rb
174
+ - lib/generators/easymarklet/bare/bare_generator.rb
175
+ - lib/generators/easymarklet/bare/templates/bare_bookmarklet.js
176
+ - lib/generators/easymarklet/bare/USAGE
177
+ - lib/generators/easymarklet/iframe/iframe_generator.rb
178
+ - lib/generators/easymarklet/iframe/templates/iframe_bookmarklet.js
179
+ - lib/generators/easymarklet/iframe/templates/iframe_consumer.js
180
+ - lib/generators/easymarklet/iframe/templates/iframe_producer.js
181
+ - lib/generators/easymarklet/iframe/templates/iframe_producer_controller.rb
182
+ - lib/generators/easymarklet/iframe/templates/iframe_producer_index.html.erb
183
+ - lib/generators/easymarklet/iframe/templates/views/easymarklet_layout.html.erb
184
+ - lib/generators/easymarklet/iframe/USAGE
173
185
  - lib/generators/easymarklet/simple/simple_generator.rb
186
+ - lib/generators/easymarklet/simple/templates/simple_bookmarklet.css
174
187
  - lib/generators/easymarklet/simple/templates/simple_bookmarklet.js
175
188
  - lib/generators/easymarklet/simple/USAGE
176
189
  - lib/generators/easymarklet/xdm/templates/views/easymarklet_layout.html.erb
@@ -199,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
212
  version: '0'
200
213
  segments:
201
214
  - 0
202
- hash: 1957519611268656497
215
+ hash: -4191531238921313582
203
216
  required_rubygems_version: !ruby/object:Gem::Requirement
204
217
  none: false
205
218
  requirements:
@@ -208,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
221
  version: '0'
209
222
  segments:
210
223
  - 0
211
- hash: 1957519611268656497
224
+ hash: -4191531238921313582
212
225
  requirements: []
213
226
  rubyforge_project:
214
227
  rubygems_version: 1.8.24