stitch_rails 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.
- data/VERSION +1 -1
- data/lib/assets/javascripts/stitch_rails.js.coffee +56 -0
- data/lib/stitch_rails.rb +35 -2
- data/stitch_rails.gemspec +2 -2
- metadata +7 -7
- data/lib/assets/javascripts/stitch_rails.js +0 -60
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# https://gist.github.com/1153919
|
2
|
+
|
3
|
+
modules = {}
|
4
|
+
cache = {}
|
5
|
+
|
6
|
+
require = (name, root) ->
|
7
|
+
if module = cache[name]
|
8
|
+
return module
|
9
|
+
|
10
|
+
path = expand(root, name)
|
11
|
+
if fn = modules[path] || modules[path = expand(path, './index')]
|
12
|
+
module = id: name, exports: {}
|
13
|
+
try
|
14
|
+
cache[name] = module.exports
|
15
|
+
fn(module.exports, ((name) -> require(name, dirname(path))), module)
|
16
|
+
cache[name] = module.exports
|
17
|
+
catch err
|
18
|
+
delete cache[name];
|
19
|
+
throw err
|
20
|
+
else
|
21
|
+
throw "module #{name} not found"
|
22
|
+
|
23
|
+
|
24
|
+
expand = (root, name) ->
|
25
|
+
results = []
|
26
|
+
if /^\.\.?(\/|$)/.test(name)
|
27
|
+
parts = [root, name].join('/').split('/')
|
28
|
+
else
|
29
|
+
parts = name.split('/')
|
30
|
+
|
31
|
+
for part in parts
|
32
|
+
if part is '..'
|
33
|
+
results.pop()
|
34
|
+
else if part isnt '.' && part isnt ''
|
35
|
+
results.push(part)
|
36
|
+
|
37
|
+
results.join('/')
|
38
|
+
|
39
|
+
dirname = (path) ->
|
40
|
+
path.split('/').slice(0, -1).join('/')
|
41
|
+
|
42
|
+
@require = (name) ->
|
43
|
+
require(name, '')
|
44
|
+
|
45
|
+
@requireIf = (nameAssertion, callback) ->
|
46
|
+
for name of modules when nameAssertion(name)
|
47
|
+
exports = require(name)
|
48
|
+
callback?(name, exports)
|
49
|
+
null
|
50
|
+
|
51
|
+
@require.define = (bundle) ->
|
52
|
+
for key of bundle
|
53
|
+
modules[key] = bundle[key];
|
54
|
+
bundle
|
55
|
+
|
56
|
+
module?.exports = { require, requireIf }
|
data/lib/stitch_rails.rb
CHANGED
@@ -2,20 +2,49 @@ module Stitch
|
|
2
2
|
class StitchyCoffeeScriptTemplate < Tilt::Template
|
3
3
|
self.default_mime_type = 'application/javascript'
|
4
4
|
|
5
|
+
@@default_bare = false
|
6
|
+
|
7
|
+
def self.default_bare
|
8
|
+
@@default_bare
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.default_bare=(value)
|
12
|
+
@@default_bare = value
|
13
|
+
end
|
14
|
+
|
15
|
+
@@excludes = []
|
16
|
+
|
5
17
|
def self.engine_initialized?
|
6
18
|
defined? ::CoffeeScript
|
7
19
|
end
|
8
20
|
|
21
|
+
def self.excludes=(excludes)
|
22
|
+
@@excludes = excludes
|
23
|
+
end
|
24
|
+
|
9
25
|
def initialize_engine
|
10
26
|
require_template_library 'coffee_script'
|
11
27
|
end
|
12
28
|
|
13
29
|
def prepare
|
14
|
-
options
|
30
|
+
if !options.key?(:bare)
|
31
|
+
options[:bare] = self.class.default_bare
|
32
|
+
end
|
15
33
|
end
|
16
34
|
|
17
35
|
def evaluate(scope, locals, &block)
|
18
|
-
|
36
|
+
name = module_name(scope)
|
37
|
+
if (name == 'stitch_rails') || @@excludes.include?(name)
|
38
|
+
@output ||= CoffeeScript.compile(data, options)
|
39
|
+
else
|
40
|
+
@output ||= <<JS
|
41
|
+
require.define({
|
42
|
+
'#{name}': function(exports, require, module) {
|
43
|
+
#{CoffeeScript.compile(data, options.merge(:bare => true))}
|
44
|
+
}
|
45
|
+
});
|
46
|
+
JS
|
47
|
+
end
|
19
48
|
end
|
20
49
|
|
21
50
|
private
|
@@ -27,6 +56,10 @@ module Stitch
|
|
27
56
|
end
|
28
57
|
|
29
58
|
class Railtie < ::Rails::Engine
|
59
|
+
config.before_configuration do
|
60
|
+
config.stitch = StitchyCoffeeScriptTemplate
|
61
|
+
end
|
62
|
+
|
30
63
|
initializer 'stitch.configure_rails_initialization' do |app|
|
31
64
|
app.assets.register_engine '.coffee', StitchyCoffeeScriptTemplate
|
32
65
|
end
|
data/stitch_rails.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "stitch_rails"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ian Yang"]
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
"README.rdoc",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
|
-
"lib/assets/javascripts/stitch_rails.js",
|
26
|
+
"lib/assets/javascripts/stitch_rails.js.coffee",
|
27
27
|
"lib/stitch_rails.rb",
|
28
28
|
"stitch_rails.gemspec"
|
29
29
|
]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stitch_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-18 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &21144680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.0.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21144680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jeweler
|
27
|
-
requirement: &
|
27
|
+
requirement: &21144180 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.8.3
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21144180
|
36
36
|
description: coffee CommonJS
|
37
37
|
email: me@iany.me
|
38
38
|
executables: []
|
@@ -47,7 +47,7 @@ files:
|
|
47
47
|
- README.rdoc
|
48
48
|
- Rakefile
|
49
49
|
- VERSION
|
50
|
-
- lib/assets/javascripts/stitch_rails.js
|
50
|
+
- lib/assets/javascripts/stitch_rails.js.coffee
|
51
51
|
- lib/stitch_rails.rb
|
52
52
|
- stitch_rails.gemspec
|
53
53
|
homepage: http://github.com/doitian/stitch_rails
|
@@ -65,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
65
65
|
version: '0'
|
66
66
|
segments:
|
67
67
|
- 0
|
68
|
-
hash:
|
68
|
+
hash: 714908353892359014
|
69
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
70
|
none: false
|
71
71
|
requirements:
|
@@ -1,60 +0,0 @@
|
|
1
|
-
// https://gist.github.com/1153919
|
2
|
-
|
3
|
-
(function(/*! Stitch !*/) {
|
4
|
-
if (!this.require) {
|
5
|
-
|
6
|
-
var modules = {},
|
7
|
-
cache = {},
|
8
|
-
require = function(name, root) {
|
9
|
-
var module = cache[name], path = expand(root, name), fn;
|
10
|
-
if (module) {
|
11
|
-
return module;
|
12
|
-
} else if (fn = modules[path] || modules[path = expand(path, './index')]) {
|
13
|
-
module = {id: name, exports: {}};
|
14
|
-
try {
|
15
|
-
cache[name] = module.exports;
|
16
|
-
|
17
|
-
fn(module.exports, function(name) {
|
18
|
-
return require(name, dirname(path));
|
19
|
-
}, module);
|
20
|
-
|
21
|
-
return cache[name] = module.exports;
|
22
|
-
} catch (err) {
|
23
|
-
delete cache[name];
|
24
|
-
throw err;
|
25
|
-
}
|
26
|
-
} else {
|
27
|
-
throw 'module "' + name + '" not found';
|
28
|
-
}
|
29
|
-
},
|
30
|
-
expand = function(root, name) {
|
31
|
-
var results = [], parts, part;
|
32
|
-
if (/^\.\.?(\/|$)/.test(name)) {
|
33
|
-
parts = [root, name].join('/').split('/');
|
34
|
-
} else {
|
35
|
-
parts = name.split('/');
|
36
|
-
}
|
37
|
-
for (var i = 0, length = parts.length; i < length; i++) {
|
38
|
-
part = parts[i];
|
39
|
-
if (part == '..') {
|
40
|
-
results.pop();
|
41
|
-
} else if (part != '.' && part != '') {
|
42
|
-
results.push(part);
|
43
|
-
}
|
44
|
-
}
|
45
|
-
return results.join('/');
|
46
|
-
},
|
47
|
-
dirname = function(path) {
|
48
|
-
return path.split('/').slice(0, -1).join('/');
|
49
|
-
};
|
50
|
-
|
51
|
-
this.require = function(name) {
|
52
|
-
return require(name, '');
|
53
|
-
}
|
54
|
-
|
55
|
-
this.require.define = function(bundle) {
|
56
|
-
for (var key in bundle)
|
57
|
-
modules[key] = bundle[key];
|
58
|
-
};
|
59
|
-
}
|
60
|
-
}).call(this)
|