manatee 0.0.1.pre1
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.
- checksums.yaml +7 -0
- data/Gemfile +23 -0
- data/LICENSE.txt +22 -0
- data/README.mdown +55 -0
- data/Rakefile +7 -0
- data/app/assets/javascripts/manatee.js +1 -0
- data/app/assets/javascripts/manatee/helpers.js +4 -0
- data/app/assets/javascripts/manatee/helpers/asset_tag.jsh.coffee +138 -0
- data/app/assets/javascripts/manatee/helpers/asset_url.jsh.coffee +90 -0
- data/app/assets/javascripts/manatee/helpers/csrf.jsh.coffee +5 -0
- data/app/assets/javascripts/manatee/helpers/date.jsh.coffee +54 -0
- data/app/assets/javascripts/manatee/helpers/debug.jsh.coffee +2 -0
- data/app/assets/javascripts/manatee/helpers/form.jsh.coffee +25 -0
- data/app/assets/javascripts/manatee/helpers/form_builder.jsh.coffee +24 -0
- data/app/assets/javascripts/manatee/helpers/form_options.jsh.coffee +267 -0
- data/app/assets/javascripts/manatee/helpers/form_tag.jsh.coffee +204 -0
- data/app/assets/javascripts/manatee/helpers/javascript.jsh.coffee +15 -0
- data/app/assets/javascripts/manatee/helpers/number.jsh.coffee +58 -0
- data/app/assets/javascripts/manatee/helpers/sanitize.jsh.coffee +5 -0
- data/app/assets/javascripts/manatee/helpers/tag.jsh.coffee +58 -0
- data/app/assets/javascripts/manatee/helpers/text.jsh.coffee +12 -0
- data/app/assets/javascripts/manatee/helpers/translation.jsh.coffee +7 -0
- data/app/assets/javascripts/manatee/helpers/url.jsh.coffee +36 -0
- data/app/assets/javascripts/manatee/helpers/util.jsh.coffee +41 -0
- data/app/assets/javascripts/manatee/rails_helpers.js +2 -0
- data/app/assets/javascripts/manatee/rails_helpers/routes.js.erb +195 -0
- data/app/assets/javascripts/manatee/rails_routes.js +1 -0
- data/app/assets/javascripts/manatee/renderer.js.erb +53 -0
- data/app/assets/javascripts/manatee_railsless.js +1 -0
- data/lib/manatee.rb +87 -0
- data/lib/manatee/config.rb +51 -0
- data/lib/manatee/handler.rb +45 -0
- data/lib/manatee/rails.rb +6 -0
- data/lib/manatee/rails/extensions.rb +23 -0
- data/lib/manatee/rails/handler.rb +16 -0
- data/lib/manatee/rails/hash_visitor.rb +35 -0
- data/lib/manatee/rails/helper.rb +9 -0
- data/lib/manatee/rails/resolver.rb +70 -0
- data/lib/manatee/rails/routes_compiler.rb +34 -0
- data/lib/manatee/sprockets.rb +8 -0
- data/lib/manatee/sprockets/jsh_processor_2x.rb +32 -0
- data/lib/manatee/sprockets/jsh_processor_3x.rb +31 -0
- data/lib/manatee/version.rb +3 -0
- data/manatee.gemspec +32 -0
- data/test/example/renderer.js.erb +8 -0
- data/test/example/translations.en.yml +410 -0
- data/test/example/views/index.jst.eco +12 -0
- data/test/helpers/asset_tag_test.rb +175 -0
- data/test/helpers/asset_url_test.rb +349 -0
- data/test/helpers/form_options_test.rb +718 -0
- data/test/helpers/form_tag_test.rb +387 -0
- data/test/helpers/javascript_test.rb +39 -0
- data/test/helpers/number_test.rb +111 -0
- data/test/helpers/tag_test.rb +71 -0
- data/test/support/dom_assertion.rb +49 -0
- data/test/support/view_test.rb +91 -0
- data/test/test_helper.rb +17 -0
- metadata +213 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class TagTest < Manatee::ViewTest
|
4
|
+
|
5
|
+
def test_simple_tag
|
6
|
+
assert_dom_helper '<simple />', :tag, 'simple'
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_simple_with_attributes
|
10
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'/>", :tag, 'attributed', attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_simple_escapes_attribute
|
14
|
+
assert_dom_helper %(<escaped attribute="'escaped' "attribute""/>), :tag, 'escaped', attribute: %('escaped' "attribute")
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_empty_content_tag
|
18
|
+
assert_dom_helper '<simple></simple>', :contentTag, 'simple'
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_empty_content_with_attributes
|
22
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'></attributed>", :contentTag, 'attributed', attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_null_content_tag
|
26
|
+
assert_dom_helper '<simple></simple>', :contentTag, 'simple', nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_null_content_with_attributes
|
30
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'></attributed>", :contentTag, 'attributed', nil, attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false
|
31
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'></attributed>", :contentTag, 'attributed', { attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false }, nil
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_block_content_tag
|
35
|
+
assert_dom_helper '<simple>content from block</simple>', :contentTag, 'simple', lambda{ 'content from block' }
|
36
|
+
assert_dom_js_helper '<simple>content from function</simple>', :contentTag, %('simple', function(){ return 'content from function'; })
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_block_content_with_attributes
|
40
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'>content from block</attributed>", :contentTag, 'attributed', lambda{ 'content from block' }, attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false
|
41
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'>content from block</attributed>", :contentTag, 'attributed', { attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false }, lambda{ 'content from block' }
|
42
|
+
assert_dom_js_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'>content from function</attributed>", :contentTag, %( 'attributed', function(){ return 'content from function'; }, { attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false } )
|
43
|
+
assert_dom_js_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'>content from function</attributed>", :contentTag, %( 'attributed', { attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false }, function(){ return 'content from function'; } )
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_content_tag
|
47
|
+
assert_dom_helper '<simple>some data</simple>', :contentTag, 'simple', 'some data'
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_content_with_attributes
|
51
|
+
assert_dom_helper "<attributed attribute='lorem' data-attribute='this is a data attribute' booleantrue='booleantrue' booleanfalse='false'>some data</attributed>", :contentTag, 'attributed', 'some data', attribute: 'lorem', data: { attribute: 'this is a data attribute' }, booleantrue: true, booleanfalse: false
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_content_escaped_attribute
|
55
|
+
assert_dom_helper %(<escaped attribute="'escaped' "attribute""></escaped>), :contentTag, 'escaped', attribute: %('escaped' "attribute")
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_composing_some_tags
|
59
|
+
raw_template = <<-EOT
|
60
|
+
this.contentTag('body', { class: 'body_class'}, function(){
|
61
|
+
return this.tag('br', { style: 'line-height: 10px' }) +
|
62
|
+
this.contentTag('h1', 'Headline', {class: 'main_headline'}) +
|
63
|
+
this.tag('hr') +
|
64
|
+
this.contentTag('p', 'Once upon a time...');
|
65
|
+
})
|
66
|
+
EOT
|
67
|
+
html_code = %(<body class="body_class"><br style="line-height: 10px"/><h1 class="main_headline">Headline</h1><hr/><p>Once upon a time...</p></body>)
|
68
|
+
assert_dom_template html_code, raw_template
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Manatee
|
2
|
+
class DomAssertion
|
3
|
+
attr_reader :node
|
4
|
+
|
5
|
+
def initialize(node)
|
6
|
+
@node = node
|
7
|
+
end
|
8
|
+
|
9
|
+
def attributes
|
10
|
+
Hash[ @node.attributes.map{ |name, attr| [name.to_sym, attr.value] } ]
|
11
|
+
end
|
12
|
+
|
13
|
+
def children
|
14
|
+
@node.children.map do |child|
|
15
|
+
DomAssertion.new child
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def text
|
20
|
+
@node.to_s
|
21
|
+
end
|
22
|
+
|
23
|
+
def inspect
|
24
|
+
content = if @node.is_a? Nokogiri::XML::Element
|
25
|
+
@node.children.map(&:to_s).join
|
26
|
+
else
|
27
|
+
@node.to_s
|
28
|
+
end
|
29
|
+
"DomAssertion: #{content}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def ==(other)
|
33
|
+
case @node
|
34
|
+
when Nokogiri::XML::Element
|
35
|
+
other.node.class == Nokogiri::XML::Element && self.attributes == other.attributes && self.children == other.children
|
36
|
+
when Nokogiri::XML::CDATA
|
37
|
+
other.node.class == Nokogiri::XML::CDATA && self.text == other.text
|
38
|
+
when Nokogiri::XML::Text
|
39
|
+
other.node.class == Nokogiri::XML::Text && self.text == other.text
|
40
|
+
else
|
41
|
+
false
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.parse(xml_code)
|
46
|
+
DomAssertion.new Nokogiri::XML("<root_tag>#{xml_code}</root_tag>").children.first
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module Manatee
|
2
|
+
class ViewTest < Test::Unit::TestCase
|
3
|
+
|
4
|
+
CSRF_TOKEN = "gYGgKHmGVZdc56rk5atNpQed2Vntd16L+LVxcBsrEEU="
|
5
|
+
|
6
|
+
protected
|
7
|
+
def assert_template(expected, template_identifier, *params)
|
8
|
+
assert_equal template_handler.eval_template(template_identifier, params), expected
|
9
|
+
end
|
10
|
+
|
11
|
+
def assert_js_helper(expected, helper_name, js_params)
|
12
|
+
assert_equal expected, js_helper_call(helper_name, js_params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def assert_dom_js_helper(expected, helper_name, js_params)
|
16
|
+
assert_equal DomAssertion.parse(expected), DomAssertion.parse( js_helper_call(helper_name, js_params) )
|
17
|
+
end
|
18
|
+
|
19
|
+
def assert_helper(expected, helper_name, *attributes, &block)
|
20
|
+
assert_equal helper_call(helper_name, *attributes, &block), expected
|
21
|
+
end
|
22
|
+
|
23
|
+
def assert_dom_helper(expected, helper_name, *attributes, &block)
|
24
|
+
assert_equal DomAssertion.parse( helper_call(helper_name, *attributes, &block) ), DomAssertion.parse(expected)
|
25
|
+
end
|
26
|
+
|
27
|
+
def js_helper_call(helper_name, js_params)
|
28
|
+
javascript_call "#{Manatee.renderer_namespace}[#{helper_name.to_s.inspect}](#{js_params})"
|
29
|
+
end
|
30
|
+
|
31
|
+
def helper_call(helper_name, *attributes, &block)
|
32
|
+
helper_function = "#{Manatee.renderer_namespace}[#{helper_name.to_s.inspect}]"
|
33
|
+
if block_given?
|
34
|
+
attributes << block
|
35
|
+
end
|
36
|
+
template_handler.context.call helper_function, *attributes
|
37
|
+
end
|
38
|
+
|
39
|
+
def assert_javascript(expected, javascript_code)
|
40
|
+
assert_equal javascript_call(javascript_code), expected
|
41
|
+
end
|
42
|
+
|
43
|
+
def assert_dom_javascript(expected, javascript_code)
|
44
|
+
assert_equal DomAssertion.parse(javascript_call(javascript_code)), DomAssertion.parse(expected)
|
45
|
+
end
|
46
|
+
|
47
|
+
def assert_dom_template(expected, raw_template)
|
48
|
+
assert_equal DomAssertion.parse(eval_simulated_template(raw_template)), DomAssertion.parse(expected)
|
49
|
+
end
|
50
|
+
|
51
|
+
def javascript_call(javascript_code)
|
52
|
+
template_handler.eval javascript_code
|
53
|
+
end
|
54
|
+
|
55
|
+
def template_handler
|
56
|
+
Manatee::Handler.instance
|
57
|
+
end
|
58
|
+
|
59
|
+
def config_renderer(&block)
|
60
|
+
return if self.class.config_js_already?
|
61
|
+
|
62
|
+
Manatee.config do |config|
|
63
|
+
config.assets = self.class.sprockets_environment
|
64
|
+
yield config
|
65
|
+
end
|
66
|
+
|
67
|
+
template_handler.reset!
|
68
|
+
end
|
69
|
+
|
70
|
+
def eval_simulated_template(raw_template)
|
71
|
+
javascript_call "function(){ return (#{raw_template}); }.call(#{Manatee.renderer_namespace})"
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.sprockets_environment
|
75
|
+
environment = ::Sprockets::Environment.new
|
76
|
+
environment.append_path File.expand_path('../../example', __FILE__)
|
77
|
+
environment.append_path File.expand_path('../../../app/assets/javascripts', __FILE__)
|
78
|
+
environment.append_path File.join(Gem.loaded_specs['i18n-js'].full_gem_path, 'app/assets/javascripts')
|
79
|
+
|
80
|
+
# Done this way to handle differences between sprockets 3.x and 2.x
|
81
|
+
Manatee::Sprockets::JshProcessor.subscribe environment
|
82
|
+
|
83
|
+
environment
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.config_js_already?
|
87
|
+
@config_js_already || ( (@config_js_already = true) && false )
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
load File.expand_path('../../lib/manatee.rb', __FILE__)
|
2
|
+
|
3
|
+
require 'pry'
|
4
|
+
require 'nokogiri'
|
5
|
+
require 'test/unit'
|
6
|
+
|
7
|
+
Dir.glob(File.expand_path('../support/**/*.rb', __FILE__)) do |file|
|
8
|
+
load file
|
9
|
+
end
|
10
|
+
|
11
|
+
Manatee.config do |config|
|
12
|
+
config.assets = Manatee::ViewTest.sprockets_environment
|
13
|
+
config.views_asset = 'renderer'
|
14
|
+
config.assets_path = '/'
|
15
|
+
config.full_domain = 'http://www.example.com'
|
16
|
+
config.assets_domain = 'http://www.example.com'
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,213 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: manatee
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dalton Pinto
|
8
|
+
- Felipe JAPM
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-03-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: i18n-js
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: execjs
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: sprockets
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: coffee-script
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: bundler
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: nokogiri
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
description: Renders javascript templates with ease on client and server sides
|
113
|
+
email:
|
114
|
+
- dalton@akidog.com.br
|
115
|
+
- felipe@akidog.com.br
|
116
|
+
executables: []
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- Gemfile
|
121
|
+
- LICENSE.txt
|
122
|
+
- README.mdown
|
123
|
+
- Rakefile
|
124
|
+
- app/assets/javascripts/manatee.js
|
125
|
+
- app/assets/javascripts/manatee/helpers.js
|
126
|
+
- app/assets/javascripts/manatee/helpers/asset_tag.jsh.coffee
|
127
|
+
- app/assets/javascripts/manatee/helpers/asset_url.jsh.coffee
|
128
|
+
- app/assets/javascripts/manatee/helpers/csrf.jsh.coffee
|
129
|
+
- app/assets/javascripts/manatee/helpers/date.jsh.coffee
|
130
|
+
- app/assets/javascripts/manatee/helpers/debug.jsh.coffee
|
131
|
+
- app/assets/javascripts/manatee/helpers/form.jsh.coffee
|
132
|
+
- app/assets/javascripts/manatee/helpers/form_builder.jsh.coffee
|
133
|
+
- app/assets/javascripts/manatee/helpers/form_options.jsh.coffee
|
134
|
+
- app/assets/javascripts/manatee/helpers/form_tag.jsh.coffee
|
135
|
+
- app/assets/javascripts/manatee/helpers/javascript.jsh.coffee
|
136
|
+
- app/assets/javascripts/manatee/helpers/number.jsh.coffee
|
137
|
+
- app/assets/javascripts/manatee/helpers/sanitize.jsh.coffee
|
138
|
+
- app/assets/javascripts/manatee/helpers/tag.jsh.coffee
|
139
|
+
- app/assets/javascripts/manatee/helpers/text.jsh.coffee
|
140
|
+
- app/assets/javascripts/manatee/helpers/translation.jsh.coffee
|
141
|
+
- app/assets/javascripts/manatee/helpers/url.jsh.coffee
|
142
|
+
- app/assets/javascripts/manatee/helpers/util.jsh.coffee
|
143
|
+
- app/assets/javascripts/manatee/rails_helpers.js
|
144
|
+
- app/assets/javascripts/manatee/rails_helpers/routes.js.erb
|
145
|
+
- app/assets/javascripts/manatee/rails_routes.js
|
146
|
+
- app/assets/javascripts/manatee/renderer.js.erb
|
147
|
+
- app/assets/javascripts/manatee_railsless.js
|
148
|
+
- lib/manatee.rb
|
149
|
+
- lib/manatee/config.rb
|
150
|
+
- lib/manatee/handler.rb
|
151
|
+
- lib/manatee/rails.rb
|
152
|
+
- lib/manatee/rails/extensions.rb
|
153
|
+
- lib/manatee/rails/handler.rb
|
154
|
+
- lib/manatee/rails/hash_visitor.rb
|
155
|
+
- lib/manatee/rails/helper.rb
|
156
|
+
- lib/manatee/rails/resolver.rb
|
157
|
+
- lib/manatee/rails/routes_compiler.rb
|
158
|
+
- lib/manatee/sprockets.rb
|
159
|
+
- lib/manatee/sprockets/jsh_processor_2x.rb
|
160
|
+
- lib/manatee/sprockets/jsh_processor_3x.rb
|
161
|
+
- lib/manatee/version.rb
|
162
|
+
- manatee.gemspec
|
163
|
+
- test/example/renderer.js.erb
|
164
|
+
- test/example/translations.en.yml
|
165
|
+
- test/example/views/index.jst.eco
|
166
|
+
- test/helpers/asset_tag_test.rb
|
167
|
+
- test/helpers/asset_url_test.rb
|
168
|
+
- test/helpers/form_options_test.rb
|
169
|
+
- test/helpers/form_tag_test.rb
|
170
|
+
- test/helpers/javascript_test.rb
|
171
|
+
- test/helpers/number_test.rb
|
172
|
+
- test/helpers/tag_test.rb
|
173
|
+
- test/support/dom_assertion.rb
|
174
|
+
- test/support/view_test.rb
|
175
|
+
- test/test_helper.rb
|
176
|
+
homepage: ''
|
177
|
+
licenses:
|
178
|
+
- MIT
|
179
|
+
metadata: {}
|
180
|
+
post_install_message:
|
181
|
+
rdoc_options: []
|
182
|
+
require_paths:
|
183
|
+
- lib
|
184
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - ">"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: 1.3.1
|
194
|
+
requirements: []
|
195
|
+
rubyforge_project:
|
196
|
+
rubygems_version: 2.4.6
|
197
|
+
signing_key:
|
198
|
+
specification_version: 4
|
199
|
+
summary: Javascript Template Render [for Rails]?
|
200
|
+
test_files:
|
201
|
+
- test/example/renderer.js.erb
|
202
|
+
- test/example/translations.en.yml
|
203
|
+
- test/example/views/index.jst.eco
|
204
|
+
- test/helpers/asset_tag_test.rb
|
205
|
+
- test/helpers/asset_url_test.rb
|
206
|
+
- test/helpers/form_options_test.rb
|
207
|
+
- test/helpers/form_tag_test.rb
|
208
|
+
- test/helpers/javascript_test.rb
|
209
|
+
- test/helpers/number_test.rb
|
210
|
+
- test/helpers/tag_test.rb
|
211
|
+
- test/support/dom_assertion.rb
|
212
|
+
- test/support/view_test.rb
|
213
|
+
- test/test_helper.rb
|