ember_script 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/.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:
|