easymarklet 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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