mozrepl_tools 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Jorge Falcão
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,37 @@
1
+ = mozrepl_tools
2
+
3
+ Reload css or js (and Ext.component) through your editor. Thanks to MozRepl :)
4
+
5
+ == Before install
6
+
7
+ install MozRepl
8
+ http://wiki.github.com/bard/mozrepl/
9
+
10
+ == Install
11
+
12
+ gem install mozrepl_tools
13
+
14
+ == Reload css (<link /> tag only)
15
+
16
+ #> mozrepl 'main.css'
17
+
18
+ == Adding a js file to current tab
19
+
20
+ #> mozrepl 'my/path/file.js'
21
+
22
+ It's works with Sencha(ExtJS) Components!!!
23
+
24
+ == Using with Textmate (~/Library/Application Support/TextMate/Bundles/MozRepl.tmbundle)
25
+
26
+ #> mozrepl textmate
27
+
28
+ And now, use "Command+Shif+R" (like magic)
29
+
30
+ == TODO
31
+
32
+ #TODO: use watchr to reload automatic
33
+
34
+ == Copyright
35
+
36
+ Copyright (c) 2010 Jorge Falcão. See LICENSE for details.
37
+
data/bin/mozrepl ADDED
@@ -0,0 +1,16 @@
1
+
2
+ if ARGV[0] == 'textmate'
3
+ puts "textmate plugin ok!"
4
+ textmate = File.expand_path("~/Library/Application Support/TextMate/Bundles/MozRepl.tmbundle")
5
+
6
+ basedir = File.join(File.dirname(File.dirname(__FILE__)))
7
+
8
+ bundle = File.join basedir, 'lib', 'textmate'
9
+
10
+ File.unlink(textmate)
11
+ File.symlink(bundle, textmate)
12
+ system %Q{osascript -e 'tell app "TextMate" to reload bundles'}
13
+ exit
14
+ end
15
+
16
+ require 'mozrepl_tools'
@@ -0,0 +1,5 @@
1
+
2
+ pwd = File.dirname(__FILE__)
3
+
4
+ puts "ruby '#{pwd}/textmate/Support/lib/mozrepl_tools.rb' #{ARGV[0]}"
5
+ system("ruby '#{pwd}/textmate/Support/lib/mozrepl_tools.rb' #{ARGV[0]}")
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>command</key>
6
+ <string>#!/usr/bin/env sh
7
+
8
+ ${TM_RUBY:-ruby} "$TM_BUNDLE_SUPPORT/lib/mozrepl_tools.rb"
9
+
10
+ </string>
11
+ <key>fallbackInput</key>
12
+ <string>document</string>
13
+ <key>input</key>
14
+ <string>none</string>
15
+ <key>keyEquivalent</key>
16
+ <string>@R</string>
17
+ <key>name</key>
18
+ <string>Reload Using MozRepl</string>
19
+ <key>output</key>
20
+ <string>showAsTooltip</string>
21
+ <key>uuid</key>
22
+ <string>E36D6544-2445-4B6B-82FF-61B233ED7901</string>
23
+ </dict>
24
+ </plist>
@@ -0,0 +1,100 @@
1
+
2
+ require 'socket'
3
+
4
+ s = TCPSocket.open('localhost', 4242)
5
+
6
+ script = DATA.read
7
+
8
+ filepath = ENV["TM_FILEPATH"] || ARGV[0]
9
+ file = File.basename filepath
10
+ ext = File.extname filepath
11
+ filename = File.expand_path filepath
12
+ # p ext
13
+ s.puts(script)
14
+
15
+ if ext == ".css"
16
+ s.puts("reload.css('#{file}')")
17
+ puts "reloaded #{file}"
18
+ elsif ext == ".js"
19
+ s.puts("reload.js('#{filename}')")
20
+ puts "reloaded #{filename}"
21
+ end
22
+
23
+ # puts script
24
+
25
+ # workaround
26
+ sleep 1
27
+
28
+ s.close
29
+
30
+ __END__
31
+
32
+
33
+ var reload = (function(content, window) {
34
+ var window = (function() {
35
+ for ( var i = 0; i < window.length; i++ ) {
36
+ if ( content.location == window[i].location ) {
37
+ return window[i];
38
+ }
39
+ }
40
+ })();
41
+
42
+ var document = doc = window.document;
43
+ var Ext = window.Ext;
44
+
45
+ // firebug
46
+ var console = window.console || {debug:function(){}};
47
+
48
+ console.debug("loading...");
49
+
50
+ // add development Ext.reg
51
+ if ( ! Ext._reg ) {
52
+ console.debug('saving original Ext.reg');
53
+ Ext._reg = Ext.reg;
54
+ }
55
+
56
+ Ext.reg = function(xtype) {
57
+ console.debug("Ext.reg:", arguments);
58
+ // calling old Ext.reg
59
+ Ext._reg.apply(Ext, arguments);
60
+
61
+ // reinstance all xtypes
62
+ var items = Ext.ComponentMgr.all.filterBy(function(e) { return e.getXType() == xtype }).each(function(item) {
63
+ repl.print(item)
64
+ var ic = item.initialConfig;
65
+ var o = item.ownerCt;
66
+ o.remove(item);
67
+ var it = o.add(ic)
68
+ if ( o.getLayout().setActiveItem ) {
69
+ o.getLayout().setActiveItem(it);
70
+ };
71
+ o.doLayout();
72
+ });
73
+ };
74
+
75
+ var head = document.getElementsByTagName("head")[0];
76
+
77
+ return {
78
+ css:function(file) {
79
+ var l = doc.getElementsByTagName('link');
80
+ for ( var i = 0; i < l.length; i++ ) {
81
+ var ss = l[i];
82
+ console.debug("reloading:", ss);
83
+ if ( ss.href && ss.href.indexOf(file) != -1 ) {
84
+ try {
85
+ ss.href = (ss.href.split("?")[0]) + "?" + Math.random();
86
+ } catch (e) {
87
+ repl.print(e);
88
+ }
89
+ }
90
+ }
91
+ },
92
+ js:function(filename) {
93
+ var script = document.createElement('script');
94
+ script.type = "text/javascript";
95
+ script.src = filename;
96
+ repl.print(filename);
97
+ head.appendChild(script);
98
+ }
99
+ };
100
+ })(content, window);
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>name</key>
6
+ <string>MozRepl</string>
7
+ <key>uuid</key>
8
+ <string>16A1485C-204A-4160-9B43-541DD45E4386</string>
9
+ </dict>
10
+ </plist>
data/test/helper.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ require 'mozrepl_tools'
8
+
9
+ class Test::Unit::TestCase
10
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestMozreplTools < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mozrepl_tools
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - "Jorge Falc\xC3\xA3o"
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-08-12 00:00:00 -03:00
19
+ default_executable: mozrepl
20
+ dependencies: []
21
+
22
+ description: ""
23
+ email: jlbfalcao@gmail.com
24
+ executables:
25
+ - mozrepl
26
+ extensions: []
27
+
28
+ extra_rdoc_files:
29
+ - LICENSE
30
+ - README.rdoc
31
+ files:
32
+ - lib/mozrepl_tools.rb
33
+ - lib/textmate/Commands/repl.tmCommand
34
+ - lib/textmate/Support/lib/mozrepl_tools.rb
35
+ - lib/textmate/info.plist
36
+ - LICENSE
37
+ - README.rdoc
38
+ - test/helper.rb
39
+ - test/test_mozrepl_tools.rb
40
+ - bin/mozrepl
41
+ has_rdoc: true
42
+ homepage: http://github.com/jlbfalcao/mozrepl_tools
43
+ licenses: []
44
+
45
+ post_install_message:
46
+ rdoc_options:
47
+ - --charset=UTF-8
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ requirements: []
69
+
70
+ rubyforge_project:
71
+ rubygems_version: 1.3.7
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: Some mozrepl tools
75
+ test_files:
76
+ - test/helper.rb
77
+ - test/test_mozrepl_tools.rb