ember_script 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +49 -0
- data/.travis.yml +10 -0
- data/Gemfile +1 -16
- data/Gemfile.lock +7 -37
- data/README.md +16 -8
- data/Rakefile +1 -15
- data/ember_script.gemspec +16 -49
- data/lib/ember_script/version.rb +3 -0
- data/lib/ember_script.rb +26 -2
- data/spec/ember_script_spec.rb +31 -3
- metadata +14 -29
data/.gitignore
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# rcov generated
|
2
|
+
coverage
|
3
|
+
coverage.data
|
4
|
+
|
5
|
+
# rdoc generated
|
6
|
+
rdoc
|
7
|
+
|
8
|
+
# yard generated
|
9
|
+
doc
|
10
|
+
.yardoc
|
11
|
+
|
12
|
+
# bundler
|
13
|
+
.bundle
|
14
|
+
|
15
|
+
# jeweler generated
|
16
|
+
pkg
|
17
|
+
|
18
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
19
|
+
#
|
20
|
+
# * Create a file at ~/.gitignore
|
21
|
+
# * Include files you want ignored
|
22
|
+
# * Run: git config --global core.excludesfile ~/.gitignore
|
23
|
+
#
|
24
|
+
# After doing this, these files will be ignored in all your git projects,
|
25
|
+
# saving you from having to 'pollute' every project you touch with them
|
26
|
+
#
|
27
|
+
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
28
|
+
#
|
29
|
+
# For MacOS:
|
30
|
+
#
|
31
|
+
#.DS_Store
|
32
|
+
|
33
|
+
# For TextMate
|
34
|
+
#*.tmproj
|
35
|
+
#tmtags
|
36
|
+
|
37
|
+
# For emacs:
|
38
|
+
#*~
|
39
|
+
#\#*
|
40
|
+
#.\#*
|
41
|
+
|
42
|
+
# For vim:
|
43
|
+
#*.swp
|
44
|
+
|
45
|
+
# For redcar:
|
46
|
+
#.redcar
|
47
|
+
|
48
|
+
# For rubinius:
|
49
|
+
#*.rbc
|
data/.travis.yml
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.3
|
4
|
+
before_install:
|
5
|
+
- sudo apt-get -y install python-software-properties
|
6
|
+
- sudo add-apt-repository -y ppa:chris-lea/node.js
|
7
|
+
- sudo apt-get update
|
8
|
+
- sudo apt-get -y install nodejs npm
|
9
|
+
- sudo npm install -g 'git://github.com/ghempton/ember-script.git#HEAD'
|
10
|
+
script: "rspec"
|
data/Gemfile
CHANGED
@@ -1,17 +1,2 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
|
3
|
-
gem 'tilt'
|
4
|
-
|
5
|
-
group :development do
|
6
|
-
gem "bundler"
|
7
|
-
gem "jeweler"
|
8
|
-
end
|
9
|
-
|
10
|
-
group :test do
|
11
|
-
gem 'rspec'
|
12
|
-
gem 'pry'
|
13
|
-
gem 'pry-doc'
|
14
|
-
gem 'pry-remote'
|
15
|
-
gem 'pry-nav'
|
16
|
-
gem 'pry-stack_explorer'
|
17
|
-
end
|
2
|
+
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,34 +1,13 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
ember_script (0.0.3)
|
5
|
+
tilt
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: http://rubygems.org/
|
3
9
|
specs:
|
4
|
-
binding_of_caller (0.6.8)
|
5
|
-
coderay (1.0.8)
|
6
10
|
diff-lcs (1.1.3)
|
7
|
-
git (1.2.5)
|
8
|
-
jeweler (1.8.4)
|
9
|
-
bundler (~> 1.0)
|
10
|
-
git (>= 1.2.5)
|
11
|
-
rake
|
12
|
-
rdoc
|
13
|
-
json (1.7.5)
|
14
|
-
method_source (0.8.1)
|
15
|
-
pry (0.9.10)
|
16
|
-
coderay (~> 1.0.5)
|
17
|
-
method_source (~> 0.8)
|
18
|
-
slop (~> 3.3.1)
|
19
|
-
pry-doc (0.4.4)
|
20
|
-
pry (>= 0.9.9.6)
|
21
|
-
yard (~> 0.8.1)
|
22
|
-
pry-nav (0.2.2)
|
23
|
-
pry (~> 0.9.10)
|
24
|
-
pry-remote (0.1.6)
|
25
|
-
pry (~> 0.9)
|
26
|
-
slop (~> 3.0)
|
27
|
-
pry-stack_explorer (0.4.7)
|
28
|
-
binding_of_caller (~> 0.6.8)
|
29
|
-
rake (10.0.2)
|
30
|
-
rdoc (3.12)
|
31
|
-
json (~> 1.4)
|
32
11
|
rspec (2.12.0)
|
33
12
|
rspec-core (~> 2.12.0)
|
34
13
|
rspec-expectations (~> 2.12.0)
|
@@ -37,20 +16,11 @@ GEM
|
|
37
16
|
rspec-expectations (2.12.0)
|
38
17
|
diff-lcs (~> 1.1.3)
|
39
18
|
rspec-mocks (2.12.0)
|
40
|
-
slop (3.3.3)
|
41
19
|
tilt (1.3.3)
|
42
|
-
yard (0.8.3)
|
43
20
|
|
44
21
|
PLATFORMS
|
45
22
|
ruby
|
46
23
|
|
47
24
|
DEPENDENCIES
|
48
|
-
|
49
|
-
jeweler
|
50
|
-
pry
|
51
|
-
pry-doc
|
52
|
-
pry-nav
|
53
|
-
pry-remote
|
54
|
-
pry-stack_explorer
|
25
|
+
ember_script!
|
55
26
|
rspec
|
56
|
-
tilt
|
data/README.md
CHANGED
@@ -1,24 +1,32 @@
|
|
1
|
-
#
|
1
|
+
# EmberScript-Ruby
|
2
2
|
|
3
3
|
Provides a lightweight ruby wrapper around [EmberScript](https://github.com/ghempton/ember-script).
|
4
4
|
|
5
5
|
`EmberScript.compile(source)`
|
6
6
|
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
This gem requires that an `ember-script` command be available in the current path. Being as EmberScript is still in early development, it is best to install via npm from git. After installing [Node.js](http://nodejs.org/), run the following command:
|
10
|
+
|
11
|
+
```
|
12
|
+
sudo npm install -g 'git://github.com/ghempton/ember-script.git#HEAD'
|
13
|
+
```
|
14
|
+
|
7
15
|
## Rails Integration
|
8
16
|
|
9
|
-
|
17
|
+
After following the installation instructions above, simply add the following to your gemfile:
|
10
18
|
|
11
|
-
|
19
|
+
```
|
20
|
+
gem 'ember_script-rails'
|
21
|
+
```
|
12
22
|
|
13
|
-
|
23
|
+
## Plain Ruby
|
14
24
|
|
15
25
|
```
|
16
|
-
|
17
|
-
cd ember-script
|
18
|
-
sudo npm install -g
|
26
|
+
gem 'ember_script'
|
19
27
|
```
|
20
28
|
|
21
|
-
## Contributing to
|
29
|
+
## Contributing to EmberScript-Ruby
|
22
30
|
|
23
31
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
24
32
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
data/Rakefile
CHANGED
@@ -9,18 +9,4 @@ rescue Bundler::BundlerError => e
|
|
9
9
|
$stderr.puts "Run `bundle install` to install missing gems"
|
10
10
|
exit e.status_code
|
11
11
|
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "ember_script"
|
18
|
-
gem.homepage = "http://github.com/ghempton/ember-script-ruby"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{EmberScript ruby wrapper}
|
21
|
-
gem.description = %Q{Provides a ruby interface to EmberScript}
|
22
|
-
gem.email = "ghempton@gmail.com"
|
23
|
-
gem.authors = ["Gordon L. Hempton"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
12
|
+
require 'rake'
|
data/ember_script.gemspec
CHANGED
@@ -1,56 +1,23 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/ember_script/version", __FILE__)
|
5
3
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.name = "ember_script"
|
6
|
+
gem.version = EmberScript::VERSION
|
7
|
+
gem.authors = ["Gordon L. Hempton"]
|
8
|
+
gem.email = ["ghempton@gmail.com"]
|
9
|
+
gem.date = Date.today
|
10
|
+
gem.description = "Provides a ruby interface to EmberScript"
|
11
|
+
gem.summary = "EmberScript ruby wrapper"
|
12
|
+
gem.homepage = "http://github.com/ghempton/ember-script-ruby"
|
9
13
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.email = "ghempton@gmail.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.md"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
|
-
"LICENSE.txt",
|
24
|
-
"README.md",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"ember_script.gemspec",
|
28
|
-
"lib/ember_script.rb",
|
29
|
-
"spec/ember_script_spec.rb",
|
30
|
-
"spec/spec_helper.rb"
|
31
|
-
]
|
32
|
-
s.homepage = "http://github.com/ghempton/ember-script-ruby"
|
33
|
-
s.licenses = ["MIT"]
|
34
|
-
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = "1.8.23"
|
36
|
-
s.summary = "EmberScript ruby wrapper"
|
14
|
+
gem.files = `git ls-files`.split($/)
|
15
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
+
gem.require_paths = ["lib"]
|
37
18
|
|
38
|
-
|
39
|
-
s.specification_version = 3
|
19
|
+
gem.add_dependency "tilt"
|
40
20
|
|
41
|
-
|
42
|
-
s.add_runtime_dependency(%q<tilt>, [">= 0"])
|
43
|
-
s.add_development_dependency(%q<bundler>, [">= 0"])
|
44
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
45
|
-
else
|
46
|
-
s.add_dependency(%q<tilt>, [">= 0"])
|
47
|
-
s.add_dependency(%q<bundler>, [">= 0"])
|
48
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<tilt>, [">= 0"])
|
52
|
-
s.add_dependency(%q<bundler>, [">= 0"])
|
53
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
54
|
-
end
|
21
|
+
gem.add_development_dependency "rspec"
|
55
22
|
end
|
56
23
|
|
data/lib/ember_script.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'tilt'
|
4
|
+
require 'open3'
|
5
|
+
|
6
|
+
require 'ember_script/version'
|
4
7
|
|
5
8
|
module EmberScript
|
6
9
|
|
@@ -26,13 +29,31 @@ module EmberScript
|
|
26
29
|
def compile(script, options = {})
|
27
30
|
script = script.read if script.respond_to?(:read)
|
28
31
|
|
29
|
-
|
32
|
+
if options.key?(:bare)
|
33
|
+
elsif options.key?(:no_wrap)
|
34
|
+
options[:bare] = options[:no_wrap]
|
35
|
+
else
|
36
|
+
options[:bare] = false
|
37
|
+
end
|
38
|
+
bare = options[:bare] ? "--bare" : ""
|
39
|
+
|
40
|
+
Open3.capture3("ember-script --js #{bare}", :stdin_data=>script)[0]
|
30
41
|
end
|
31
42
|
end
|
32
43
|
|
33
44
|
class EmberScriptTemplate < ::Tilt::Template
|
34
45
|
self.default_mime_type = 'application/javascript'
|
35
46
|
|
47
|
+
@@default_bare = false
|
48
|
+
|
49
|
+
def self.default_bare
|
50
|
+
@@default_bare
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.default_bare=(value)
|
54
|
+
@@default_bare = value
|
55
|
+
end
|
56
|
+
|
36
57
|
def self.engine_initialized?
|
37
58
|
true
|
38
59
|
end
|
@@ -46,9 +67,12 @@ module EmberScript
|
|
46
67
|
end
|
47
68
|
|
48
69
|
def prepare
|
70
|
+
if !options.key?(:bare) and !options.key?(:no_wrap)
|
71
|
+
options[:bare] = self.class.default_bare
|
72
|
+
end
|
49
73
|
end
|
50
74
|
end
|
51
75
|
|
52
76
|
::Tilt.register EmberScriptTemplate, 'em'
|
53
77
|
|
54
|
-
end
|
78
|
+
end
|
data/spec/ember_script_spec.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
RSpec::Matchers.define :be_wrapped_in_closure do
|
4
|
+
match do |result|
|
5
|
+
result =~ /void function ()/
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
3
9
|
describe EmberScript do
|
4
10
|
|
5
11
|
source = <<-eos
|
@@ -16,14 +22,36 @@ eos
|
|
16
22
|
|
17
23
|
describe EmberScript::EmberScriptTemplate do
|
18
24
|
|
25
|
+
# Ensure default_bare has its default value.
|
26
|
+
default_bare = EmberScript::EmberScriptTemplate.default_bare
|
27
|
+
before { EmberScript::EmberScriptTemplate.default_bare = default_bare }
|
28
|
+
|
19
29
|
subject { EmberScript::EmberScriptTemplate.new{ source } }
|
20
30
|
|
21
|
-
|
31
|
+
def render_and_check_output
|
22
32
|
result = subject.render
|
23
33
|
result.should =~ /Ember\.Object\.extend/
|
24
34
|
result.should =~ /property/
|
35
|
+
result
|
25
36
|
end
|
26
37
|
|
27
|
-
|
38
|
+
it 'should render' do
|
39
|
+
result = render_and_check_output
|
40
|
+
result.should be_wrapped_in_closure
|
41
|
+
end
|
28
42
|
|
29
|
-
|
43
|
+
context 'without closure wrapping' do
|
44
|
+
it 'should render without closure if default_bare is true' do
|
45
|
+
EmberScript::EmberScriptTemplate.default_bare = true
|
46
|
+
result = render_and_check_output
|
47
|
+
result.should_not be_wrapped_in_closure
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should render without closure if options[:bare] is true' do
|
51
|
+
subject = EmberScript::EmberScriptTemplate.new(bare: true) { source }
|
52
|
+
result = subject.render
|
53
|
+
result.should_not be_wrapped_in_closure
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ember_script
|
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:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tilt
|
@@ -28,23 +28,7 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: jeweler
|
31
|
+
name: rspec
|
48
32
|
requirement: !ruby/object:Gem::Requirement
|
49
33
|
none: false
|
50
34
|
requirements:
|
@@ -60,14 +44,15 @@ dependencies:
|
|
60
44
|
- !ruby/object:Gem::Version
|
61
45
|
version: '0'
|
62
46
|
description: Provides a ruby interface to EmberScript
|
63
|
-
email:
|
47
|
+
email:
|
48
|
+
- ghempton@gmail.com
|
64
49
|
executables: []
|
65
50
|
extensions: []
|
66
|
-
extra_rdoc_files:
|
67
|
-
- LICENSE.txt
|
68
|
-
- README.md
|
51
|
+
extra_rdoc_files: []
|
69
52
|
files:
|
70
53
|
- .document
|
54
|
+
- .gitignore
|
55
|
+
- .travis.yml
|
71
56
|
- Gemfile
|
72
57
|
- Gemfile.lock
|
73
58
|
- LICENSE.txt
|
@@ -76,11 +61,11 @@ files:
|
|
76
61
|
- VERSION
|
77
62
|
- ember_script.gemspec
|
78
63
|
- lib/ember_script.rb
|
64
|
+
- lib/ember_script/version.rb
|
79
65
|
- spec/ember_script_spec.rb
|
80
66
|
- spec/spec_helper.rb
|
81
67
|
homepage: http://github.com/ghempton/ember-script-ruby
|
82
|
-
licenses:
|
83
|
-
- MIT
|
68
|
+
licenses: []
|
84
69
|
post_install_message:
|
85
70
|
rdoc_options: []
|
86
71
|
require_paths:
|
@@ -91,9 +76,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
76
|
- - ! '>='
|
92
77
|
- !ruby/object:Gem::Version
|
93
78
|
version: '0'
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
hash: 3780340409301024918
|
97
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
80
|
none: false
|
99
81
|
requirements:
|
@@ -106,4 +88,7 @@ rubygems_version: 1.8.23
|
|
106
88
|
signing_key:
|
107
89
|
specification_version: 3
|
108
90
|
summary: EmberScript ruby wrapper
|
109
|
-
test_files:
|
91
|
+
test_files:
|
92
|
+
- spec/ember_script_spec.rb
|
93
|
+
- spec/spec_helper.rb
|
94
|
+
has_rdoc:
|