Skip to content

Commit

Permalink
Setup dev env (rake starts everything that is needed).
Browse files Browse the repository at this point in the history
  • Loading branch information
joakimk committed May 10, 2012
1 parent 009a387 commit 9c916c3
Show file tree
Hide file tree
Showing 20 changed files with 170 additions and 116 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
*.txt
prototype.rb
unversioned
1 change: 1 addition & 0 deletions .rvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rvm $(rvm list|grep ruby-1.9.3-p0-patched > /dev/null && echo 'ruby-1.9.3-p0-patched' || echo 'ruby-1.9')@macruby-docs-js --create
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem 'sinatra'
gem 'foreman'
21 changes: 21 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
GEM
remote: https://rubygems.org/
specs:
foreman (0.46.0)
thor (>= 0.13.6)
rack (1.4.1)
rack-protection (1.2.0)
rack
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
thor (0.15.2)
tilt (1.3.3)

PLATFORMS
ruby

DEPENDENCIES
foreman
sinatra
2 changes: 2 additions & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
coffee: script/coffee_watcher
dev_web_server: script/dev_web_server
17 changes: 17 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
task :default do
system("foreman start")
end

task :spec do
if File.exists?("/Users")
system("open run_specs.html")
else
puts "Open 'run_specs.html' to run the specs."
end
end

task :release do
cmd = "cp lib/macruby-docs.js lib/macruby-docs.stable.js"
puts "Running: #{cmd}"
system(cmd)
end
33 changes: 33 additions & 0 deletions src/declaration.coffee → lib/macruby-docs.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,36 @@ class Declaration
[ value, type ] = arg.match(pattern)[1..2].reverse()
[ "#{key}: #{value}", type ]

class DocRenderer
constructor: (@declaration) ->

render: ->
"text"

if !window.in_tests
addJQuery = (callback) ->
script = document.createElement("script")
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js")

addScriptToPage = ->
script = document.createElement("script")
script.textContent = "(" + callback.toString() + ")();"
document.body.appendChild(script)

script.addEventListener 'load', addScriptToPage, false
document.body.appendChild(script)

main = ->
$.noConflict()
check = ->
try
className = jQuery("#pageTitle", window.parent.frames[0].document).html().split(" ")[0]
jQuery.each jQuery(".declaration", window.parent.frames[0].document), (i, element) ->
content = element.innerHTML
if content.indexOf("MacRuby") == -1
element.innerHTML = element.innerHTML + "<br/><br/><h5>MacRuby</h5>" + new DocRenderer(content).render()
catch err
console.log(err)

setInterval(check, 3000)
addJQuery(main)
48 changes: 46 additions & 2 deletions src/declaration.js → lib/macruby-docs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var Declaration;
var Declaration, DocRenderer, addJQuery, main;
Declaration = (function() {
function Declaration(declaration) {
this.declaration = declaration;
Expand Down Expand Up @@ -51,4 +51,48 @@ Declaration = (function() {
}
};
return Declaration;
})();
})();
DocRenderer = (function() {
function DocRenderer(declaration) {
this.declaration = declaration;
}
DocRenderer.prototype.render = function() {
return "text";
};
return DocRenderer;
})();
if (!window.in_tests) {
addJQuery = function(callback) {
var addScriptToPage, script;
script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
addScriptToPage = function() {
script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
return document.body.appendChild(script);
};
script.addEventListener('load', addScriptToPage, false);
return document.body.appendChild(script);
};
main = function() {
var check;
$.noConflict();
check = function() {
var className;
try {
className = jQuery("#pageTitle", window.parent.frames[0].document).html().split(" ")[0];
return jQuery.each(jQuery(".declaration", window.parent.frames[0].document), function(i, element) {
var content;
content = element.innerHTML;
if (content.indexOf("MacRuby") === -1) {
return element.innerHTML = element.innerHTML + "<br/><br/><h5>MacRuby</h5>" + new DocRenderer(content).render();
}
});
} catch (err) {
return console.log(err);
}
};
return setInterval(check, 3000);
};
addJQuery(main);
}
107 changes: 3 additions & 104 deletions macruby-docs.user.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// ==UserScript==
// @name Translate Objective-C Docs to MacRuby
// @name MacRuby Docs JS - Adds MacRuby/RubyMotion syntax to Apple's Objective-C/Cocoa docs.
// @namespace http://twitter.com/joakimk
// @description Inserts MacRuby / RubyMotion syntax below Obj-c declarations in Apple documentation.
// @description Adds MacRuby/RubyMotion syntax to Apple's Objective-C/Cocoa docs.
// @include http://developer.apple.com/library/mac/*
// @include https://developer.apple.com/library/mac/*
// @version 1.0
Expand All @@ -18,108 +18,7 @@
};

var load_latest = function() {
//require("https://raw.github.com/joakimk/macruby-docs-js/master/dist/latest.js");
////
//////////

function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}

function main() {
$.noConflict()
//alert("There are " + $('a').length + " links on this page.");

function check()
{
var Declaration;
Declaration = (function() {
function Declaration(declaration) {
this.declaration = declaration;
}
Declaration.prototype.returnType = function() {
var pattern;
pattern = /.\((.+?)\)/;
return this.declaration.match(pattern)[1];
};
Declaration.prototype.methodName = function() {
var pattern;
pattern = /.+?\)(.+?):/;
return this.declaration.match(pattern)[1];
};
Declaration.prototype.isInstanceMethod = function() {
var pattern;
pattern = /-.+/;
return !!this.declaration.match(pattern);
};
Declaration.prototype.parameters = function() {
var parameter, parameters, pattern, _i, _len, _results;
pattern = /.+?:(.+)/;
parameters = this.declaration.match(pattern)[1].replace(new RegExp(" \\*", "g"), "#*").split(' ');
parameters = (function() {
var _i, _len, _results;
_results = [];
for (_i = 0, _len = parameters.length; _i < _len; _i++) {
parameter = parameters[_i];
_results.push(parameter.replace('#*', ' *'));
}
return _results;
})();
_results = [];
for (_i = 0, _len = parameters.length; _i < _len; _i++) {
parameter = parameters[_i];
_results.push(this.mapParameter(parameter));
}
return _results;
};
Declaration.prototype.mapParameter = function(parameter) {
var arg, key, pattern, type, value, _ref, _ref2;
if (parameter[0] === "(") {
pattern = /\((.+?)\)(.+)/;
return parameter.match(pattern).slice(1, 3).reverse();
} else {
pattern = /\((.+?)\)(.+)/;
_ref = parameter.split(':'), key = _ref[0], arg = _ref[1];
_ref2 = arg.match(pattern).slice(1, 3).reverse(), value = _ref2[0], type = _ref2[1];
return ["" + key + ": " + value, type];
}
};
return Declaration;
})();

try {
className = jQuery("#pageTitle", window.parent.frames[0].document).html().split(" ")[0];
jQuery.each(jQuery(".declaration", window.parent.frames[0].document), function(i, element) {
content = element.innerHTML;
if(content.indexOf("MacRuby") == -1) {
dec = new Declaration(element.textContent)
try {
element.innerHTML = element.innerHTML + "<br/><br/><h5>MacRuby:</h5>" + className + dec.methodName();
}
catch(err2) {
}
}
});
}
catch(err) {
console.log(err)
}
}

setInterval(check, 3000);
}

// load jQuery and execute the main function
addJQuery(main);
//////////

require("https://raw.github.com/joakimk/macruby-docs-js/master/lib/macruby-docs.stable.js");
};

load_latest();
Expand Down
18 changes: 9 additions & 9 deletions SpecRunner.html → run_specs.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@
<head>
<title>Jasmine Spec Runner</title>

<link rel="shortcut icon" type="image/png" href="lib/jasmine-1.2.0.rc3/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="lib/jasmine-1.2.0.rc3/jasmine.css">
<script type="text/javascript" src="lib/jasmine-1.2.0.rc3/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-1.2.0.rc3/jasmine-html.js"></script>
<link rel="shortcut icon" type="image/png" href="tools/jasmine-1.2.0.rc3/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="tools/jasmine-1.2.0.rc3/jasmine.css">
<script type="text/javascript" src="tools/jasmine-1.2.0.rc3/jasmine.js"></script>
<script type="text/javascript" src="tools/jasmine-1.2.0.rc3/jasmine-html.js"></script>

<!-- include source files here... -->
<script type="text/javascript" src="src/declaration.js"></script>
<script type="text/javascript">
window.in_tests = true;
</script>
<script type="text/javascript" src="lib/macruby-docs.js"></script>

<!-- include spec files here... -->
<script type="text/javascript" src="spec/declaration_spec.js"></script>
<script type="text/javascript" src="spec/macruby-docs.js"></script>

<script type="text/javascript">
(function() {
Expand All @@ -40,9 +43,6 @@
function execJasmine() {
jasmineEnv.execute();
}

setTimeout("window.location.reload()", 500)

})();
</script>

Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions script/dev_web_server
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
bundle exec ruby tools/dev_web_server.rb
File renamed without changes.
File renamed without changes.
7 changes: 7 additions & 0 deletions tools/dev_web_server.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
require 'sinatra'

set :port, 55444

get "/dev.js" do
send_file "lib/macruby-docs.js"
end
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
25 changes: 25 additions & 0 deletions tools/macruby-docs-dev.user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// ==UserScript==
// @name MacRuby Docs JS - DEV version.
// @namespace http://twitter.com/joakimk
// @description
// @include http://developer.apple.com/library/mac/*
// @include https://developer.apple.com/library/mac/*
// @version 1.0
// ==/UserScript==

(function() {
var head = document.getElementsByTagName("head")[0];

var require = function(src) {
var script = document.createElement("script");
script.setAttribute("language", "javascript");
script.setAttribute("src", src);
head.appendChild(script);
};

var load_latest = function() {
require("http://localhost:55444/dev.js");
};

load_latest();
})();

0 comments on commit 9c916c3

Please sign in to comment.