walrus-rails 0.0.1
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/lib/sprockets/walrus_template.rb +45 -0
- data/lib/walrus-rails.rb +3 -0
- data/lib/walrus/rails/version.rb +5 -0
- data/walrus-rails.gemspec +26 -0
- metadata +87 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# walrus-rails
|
2
|
+
|
3
|
+
JST style templates with walrus.js via Sprockets
|
4
|
+
|
5
|
+
## Summary
|
6
|
+
|
7
|
+
Write files named `app/assets/javascripts/templates/tmpl.js.wal`
|
8
|
+
and use them client-side like this:
|
9
|
+
|
10
|
+
``` javascript
|
11
|
+
window.walrus_templates["templates/tmpl"].compile(obj)
|
12
|
+
```
|
13
|
+
|
14
|
+
## Installation
|
15
|
+
|
16
|
+
Add `walrus-rails` to your Gemfile
|
17
|
+
|
18
|
+
``` ruby
|
19
|
+
gem "walrus-rails"
|
20
|
+
```
|
21
|
+
|
22
|
+
This will register a new template engine in `Sprockets` to handle `.wal` files
|
23
|
+
|
24
|
+
Make sure to include your templates in your main application.js, for example:
|
25
|
+
|
26
|
+
``` javascript
|
27
|
+
//= require_tree ./templates
|
28
|
+
```
|
29
|
+
|
30
|
+
You'll also need [walrus.js](http://github.com/jeremyruppel/walrus)
|
31
|
+
|
32
|
+
That's it!
|
33
|
+
|
34
|
+
## Configuration
|
35
|
+
|
36
|
+
You can change the namespace `walrus_templates` if you like:
|
37
|
+
|
38
|
+
``` ruby
|
39
|
+
# In some initialization code
|
40
|
+
Sprockets::WalrusTemplate.namespace = 'this.JST'
|
41
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'action_view/helpers'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
class WalrusTemplate < Tilt::Template
|
5
|
+
|
6
|
+
def self.default_mime_type
|
7
|
+
'application/javascript'
|
8
|
+
end
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_accessor :namespace
|
12
|
+
end
|
13
|
+
|
14
|
+
self.namespace = 'this.walrus_templates'
|
15
|
+
|
16
|
+
def prepare
|
17
|
+
@namespace = self.class.namespace
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :namespace
|
21
|
+
|
22
|
+
def evaluate(scope, locals, &block)
|
23
|
+
<<-JST
|
24
|
+
(function() {
|
25
|
+
#{namespace} || (#{namespace} = {});
|
26
|
+
#{namespace}[#{scope.logical_path.inspect}] = #{wrap_in_walrus_parser(data)};
|
27
|
+
}).call(this);
|
28
|
+
JST
|
29
|
+
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
module JSHelper
|
34
|
+
include ActionView::Helpers::JavaScriptHelper
|
35
|
+
extend self
|
36
|
+
end
|
37
|
+
|
38
|
+
def wrap_in_walrus_parser(source)
|
39
|
+
"Walrus.Parser.parse('%s')" % JSHelper.escape_javascript(source)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
register_engine '.wal', ::Sprockets::WalrusTemplate
|
44
|
+
end
|
45
|
+
|
data/lib/walrus-rails.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "walrus/rails/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "walrus-rails"
|
7
|
+
s.version = Walrus::Rails::VERSION
|
8
|
+
s.authors = ["Ben Marini"]
|
9
|
+
s.email = ["bmarini@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{JST style object for walrus.js templates }
|
12
|
+
s.description = %q{JST style object for walrus.js templates }
|
13
|
+
|
14
|
+
s.rubyforge_project = "walrus-rails"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "tilt"
|
24
|
+
s.add_runtime_dependency "sprockets"
|
25
|
+
s.add_runtime_dependency "actionpack"
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: walrus-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Ben Marini
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: tilt
|
16
|
+
requirement: &70114013418020 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70114013418020
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sprockets
|
27
|
+
requirement: &70114013417520 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70114013417520
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: actionpack
|
38
|
+
requirement: &70114013416880 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70114013416880
|
47
|
+
description: ! 'JST style object for walrus.js templates '
|
48
|
+
email:
|
49
|
+
- bmarini@gmail.com
|
50
|
+
executables: []
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files: []
|
53
|
+
files:
|
54
|
+
- .gitignore
|
55
|
+
- Gemfile
|
56
|
+
- README.md
|
57
|
+
- Rakefile
|
58
|
+
- lib/sprockets/walrus_template.rb
|
59
|
+
- lib/walrus-rails.rb
|
60
|
+
- lib/walrus/rails/version.rb
|
61
|
+
- walrus-rails.gemspec
|
62
|
+
homepage: ''
|
63
|
+
licenses: []
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project: walrus-rails
|
82
|
+
rubygems_version: 1.8.11
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: JST style object for walrus.js templates
|
86
|
+
test_files: []
|
87
|
+
has_rdoc:
|