emberjs-couchapp 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 +5 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +36 -0
- data/LICENSE +13 -0
- data/README.md +52 -0
- data/Rakefile +17 -0
- data/bin/emberjs-couchapp +5 -0
- data/emberjs-couchapp.gemspec +23 -0
- data/lib/emberjs-couchapp.rb +5 -0
- data/lib/emberjs-couchapp/app_generator.rb +25 -0
- data/lib/emberjs-couchapp/cli.rb +13 -0
- data/lib/emberjs-couchapp/templates/app/.couchappignore +7 -0
- data/lib/emberjs-couchapp/templates/app/.couchapprc.tt +10 -0
- data/lib/emberjs-couchapp/templates/app/.gitignore +3 -0
- data/lib/emberjs-couchapp/templates/app/Assetfile.tt +136 -0
- data/lib/emberjs-couchapp/templates/app/Gemfile +19 -0
- data/lib/emberjs-couchapp/templates/app/Guardfile +3 -0
- data/lib/emberjs-couchapp/templates/app/LICENSE +13 -0
- data/lib/emberjs-couchapp/templates/app/README.md +58 -0
- data/lib/emberjs-couchapp/templates/app/Rakefile.tt +34 -0
- data/lib/emberjs-couchapp/templates/app/_id.tt +1 -0
- data/lib/emberjs-couchapp/templates/app/app/css/bootstrap.css +4983 -0
- data/lib/emberjs-couchapp/templates/app/app/css/main.css +11 -0
- data/lib/emberjs-couchapp/templates/app/app/index.html.tt +24 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/controllers/.empty_directory +0 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/core.js.tt +11 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/ext.js.tt +20 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/main.js.tt +3 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/models/.empty_directory +0 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/state_manager.js.tt +11 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/states/start.js.tt +9 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/store.js.tt +5 -0
- data/lib/emberjs-couchapp/templates/app/app/lib/views/.empty_directory +0 -0
- data/lib/emberjs-couchapp/templates/app/app/modules/.empty_directory +0 -0
- data/lib/emberjs-couchapp/templates/app/app/plugins/loader.js +60 -0
- data/lib/emberjs-couchapp/templates/app/app/static/img/glyphicons-halflings-white.png +0 -0
- data/lib/emberjs-couchapp/templates/app/app/static/img/glyphicons-halflings.png +0 -0
- data/lib/emberjs-couchapp/templates/app/app/templates/main_page.handlebars.tt +1 -0
- data/lib/emberjs-couchapp/templates/app/app/tests/%name%_tests.js.tt +5 -0
- data/lib/emberjs-couchapp/templates/app/app/vendor/ember-data.js +3787 -0
- data/lib/emberjs-couchapp/templates/app/app/vendor/ember.js +20148 -0
- data/lib/emberjs-couchapp/templates/app/app/vendor/jquery.js +9404 -0
- data/lib/emberjs-couchapp/templates/app/config.ru.tt +18 -0
- data/lib/emberjs-couchapp/templates/app/couchapp.json.tt +4 -0
- data/lib/emberjs-couchapp/templates/app/filters/my_filter.js +3 -0
- data/lib/emberjs-couchapp/templates/app/language +1 -0
- data/lib/emberjs-couchapp/templates/app/lists/my_list.js +3 -0
- data/lib/emberjs-couchapp/templates/app/shows/my_show.js +3 -0
- data/lib/emberjs-couchapp/templates/app/tests/index.html +42 -0
- data/lib/emberjs-couchapp/templates/app/tests/qunit/qunit.css +235 -0
- data/lib/emberjs-couchapp/templates/app/tests/qunit/qunit.js +1669 -0
- data/lib/emberjs-couchapp/templates/app/tests/run-tests.js +93 -0
- data/lib/emberjs-couchapp/templates/app/views/my_view/map.js +3 -0
- data/lib/emberjs-couchapp/templates/app/views/my_view/reduce.js +3 -0
- data/lib/emberjs-couchapp/version.rb +3 -0
- data/spec/ember/cli_spec.rb +128 -0
- data/spec/spec_helper.rb +44 -0
- metadata +175 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
emberjs-couchapp (0.0.1)
|
5
|
+
thor
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
coderay (1.0.6)
|
11
|
+
diff-lcs (1.1.3)
|
12
|
+
method_source (0.7.1)
|
13
|
+
pry (0.9.9.6)
|
14
|
+
coderay (~> 1.0.5)
|
15
|
+
method_source (~> 0.7.1)
|
16
|
+
slop (>= 2.4.4, < 3)
|
17
|
+
rake (0.9.2.2)
|
18
|
+
rspec (2.10.0)
|
19
|
+
rspec-core (~> 2.10.0)
|
20
|
+
rspec-expectations (~> 2.10.0)
|
21
|
+
rspec-mocks (~> 2.10.0)
|
22
|
+
rspec-core (2.10.1)
|
23
|
+
rspec-expectations (2.10.0)
|
24
|
+
diff-lcs (~> 1.1.3)
|
25
|
+
rspec-mocks (2.10.1)
|
26
|
+
slop (2.4.4)
|
27
|
+
thor (0.15.2)
|
28
|
+
|
29
|
+
PLATFORMS
|
30
|
+
ruby
|
31
|
+
|
32
|
+
DEPENDENCIES
|
33
|
+
emberjs-couchapp!
|
34
|
+
pry
|
35
|
+
rake
|
36
|
+
rspec
|
data/LICENSE
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright (c) Clemens Müller
|
2
|
+
|
3
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
4
|
+
purpose with or without fee is hereby granted, provided that the above
|
5
|
+
copyright notice and this permission notice appear in all copies.
|
6
|
+
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
10
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
12
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
13
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
Gem to create a CouchApp using Ember.js
|
2
|
+
=======================================
|
3
|
+
|
4
|
+
Installation
|
5
|
+
------------
|
6
|
+
|
7
|
+
$ gem install emberjs-couchapp
|
8
|
+
|
9
|
+
Usage
|
10
|
+
-----
|
11
|
+
|
12
|
+
$ emberjs-couchapp new appname
|
13
|
+
|
14
|
+
Created App Structure
|
15
|
+
---------------------
|
16
|
+
|
17
|
+
appname
|
18
|
+
├── Assetfile - App build file
|
19
|
+
├── Gemfile - Package dependencies for rakep/rack
|
20
|
+
├── Gemfile.lock - Here be dragons: don't touch, always include
|
21
|
+
├── app - App specific code
|
22
|
+
│ ├── index.html - The app entry point
|
23
|
+
│ ├── css - App CSS or SCSS (.scss)
|
24
|
+
│ ├── lib - App code, *modularized during build*
|
25
|
+
│ ├── modules - Module code, *already modularized*
|
26
|
+
│ ├── plugins - Plugins (e.g. jquery.jsonrpc.js)
|
27
|
+
│ │ └── loader.js - JS module loader
|
28
|
+
│ ├── static - Static files, never touched, copied over during build
|
29
|
+
│ ├── templates - Handlebars templates, *modularized during build*
|
30
|
+
│ ├── tests - App tests
|
31
|
+
│ └── vendor - Vendor code, *modularized during build*
|
32
|
+
├── _attachments - Built out asset files
|
33
|
+
├── config.ru - Rack development web server configuration
|
34
|
+
└── tmp - Temporary build files used by rakep
|
35
|
+
|
36
|
+
Testing
|
37
|
+
-------
|
38
|
+
|
39
|
+
You can test the app by invoking
|
40
|
+
|
41
|
+
$ bundle exec rake test
|
42
|
+
|
43
|
+
This executes the tests by using [Phantom.JS](http://www.phantomjs.org/), which you need to have installed.
|
44
|
+
|
45
|
+
Or you can run the tests via
|
46
|
+
|
47
|
+
$ bundle exec rackup
|
48
|
+
$ open http://localhost:9292/tests/index.html
|
49
|
+
|
50
|
+
You can automatically execute the tests every time a file changes via
|
51
|
+
|
52
|
+
$ bundle exec guard
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require File.expand_path('../lib/emberjs-couchapp/version', __FILE__)
|
3
|
+
|
4
|
+
desc "run the specs"
|
5
|
+
task :spec do
|
6
|
+
sh "rspec -cfs spec"
|
7
|
+
end
|
8
|
+
|
9
|
+
desc "build gem"
|
10
|
+
task :build do
|
11
|
+
sh "gem build emberjs-couchapp.gemspec"
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "install gem"
|
15
|
+
task :install => :build do
|
16
|
+
sh "gem install pkg/emberjs-couchapp-#{EmberjsCouchapp::VERSION}.gem"
|
17
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/emberjs-couchapp/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Clemens Müller"]
|
6
|
+
gem.email = ["cmueller.418@gmail.com"]
|
7
|
+
gem.description = %q{Create CouchApp which uses Ember.js}
|
8
|
+
gem.summary = %q{CouchApp using Ember.js}
|
9
|
+
gem.homepage = "https://github.com/pangratz/emberjs-couchapp-gem"
|
10
|
+
|
11
|
+
gem.files = `git ls-files`.split($\)
|
12
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
13
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
|
+
gem.name = "emberjs-couchapp"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = EmberjsCouchapp::VERSION
|
17
|
+
|
18
|
+
gem.add_dependency 'thor'
|
19
|
+
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'rspec'
|
22
|
+
gem.add_development_dependency 'pry'
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
|
3
|
+
module EmberjsCouchapp
|
4
|
+
class AppGenerator < Thor::Group
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
source_root File.expand_path('../templates/app', __FILE__)
|
8
|
+
|
9
|
+
argument :path
|
10
|
+
|
11
|
+
def name
|
12
|
+
File.basename(path)
|
13
|
+
end
|
14
|
+
|
15
|
+
def title
|
16
|
+
name.capitalize
|
17
|
+
end
|
18
|
+
|
19
|
+
def create
|
20
|
+
self.destination_root = File.expand_path(path, destination_root)
|
21
|
+
directory '.'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'emberjs-couchapp/app_generator'
|
3
|
+
|
4
|
+
module EmberjsCouchapp
|
5
|
+
class CLI < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
desc 'new PATH', 'Create a new CouchApp using Ember.js'
|
9
|
+
def new(path)
|
10
|
+
EmberjsCouchapp::AppGenerator.start([path])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
APPNAME = '<%= name %>'
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'rake-pipeline-web-filters'
|
5
|
+
|
6
|
+
WebFilters = Rake::Pipeline::Web::Filters
|
7
|
+
|
8
|
+
class LoaderFilter < WebFilters::MinispadeFilter
|
9
|
+
def generate_output(inputs, output)
|
10
|
+
inputs.each do |input|
|
11
|
+
code = input.read
|
12
|
+
module_id = @module_id_generator.call(input)
|
13
|
+
contents = "function(require) {\n#{code}\n}"
|
14
|
+
ret = "\nloader.register('#{module_id}', #{contents});\n"
|
15
|
+
output.write ret
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class EmberAssertFilter < Filter
|
21
|
+
def generate_output(inputs, output)
|
22
|
+
inputs.each do |input|
|
23
|
+
result = input.read
|
24
|
+
result.gsub!(/ember_assert\((.*)\);/, '')
|
25
|
+
output.write(result)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class HandlebarsFilter < Filter
|
31
|
+
def generate_output(inputs, output)
|
32
|
+
inputs.each do |input|
|
33
|
+
code = input.read.to_json
|
34
|
+
name = File.basename(input.path, '.handlebars')
|
35
|
+
output.write "\nreturn Ember.Handlebars.compile(#{code});\n"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
output '_attachments'
|
41
|
+
|
42
|
+
input 'app' do
|
43
|
+
match 'index.html' do
|
44
|
+
concat 'index.html'
|
45
|
+
end
|
46
|
+
|
47
|
+
match 'lib/**/*.js' do
|
48
|
+
filter LoaderFilter,
|
49
|
+
:module_id_generator => proc { |input|
|
50
|
+
input.path.sub(/^lib\//, "#{APPNAME}/").sub(/\.js$/, '')
|
51
|
+
}
|
52
|
+
|
53
|
+
if ENV['RAKEP_MODE'] == 'production'
|
54
|
+
filter EmberAssertFilter
|
55
|
+
uglify {|input| input}
|
56
|
+
end
|
57
|
+
concat 'app.js'
|
58
|
+
end
|
59
|
+
|
60
|
+
match 'vendor/**/*.js' do
|
61
|
+
filter LoaderFilter,
|
62
|
+
:module_id_generator => proc { |input|
|
63
|
+
input.path.sub(/^vendor\//, '').sub(/\.js$/, '')
|
64
|
+
}
|
65
|
+
|
66
|
+
if ENV['RAKEP_MODE'] == 'production'
|
67
|
+
filter EmberAssertFilter
|
68
|
+
uglify {|input| input}
|
69
|
+
end
|
70
|
+
concat %w[
|
71
|
+
vendor/jquery.js
|
72
|
+
vendor/ember.js
|
73
|
+
vendor/ember-data.js
|
74
|
+
], 'app.js'
|
75
|
+
end
|
76
|
+
|
77
|
+
match 'modules/**/*.js' do
|
78
|
+
if ENV['RAKEP_MODE'] == 'production'
|
79
|
+
filter EmberAssertFilter
|
80
|
+
uglify {|input| input}
|
81
|
+
end
|
82
|
+
concat 'app.js'
|
83
|
+
end
|
84
|
+
|
85
|
+
match 'plugins/**/*.js' do
|
86
|
+
if ENV['RAKEP_MODE'] == 'production'
|
87
|
+
uglify {|input| input}
|
88
|
+
end
|
89
|
+
concat do |input|
|
90
|
+
input.sub(/plugins\//, '')
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
match 'templates/**/*.handlebars' do
|
95
|
+
filter HandlebarsFilter
|
96
|
+
filter LoaderFilter,
|
97
|
+
:module_id_generator => proc { |input|
|
98
|
+
input.path.sub(/^templates\//, "#{APPNAME}/~templates/").sub(/\.handlebars$/, '')
|
99
|
+
}
|
100
|
+
if ENV['RAKEP_MODE'] == 'production'
|
101
|
+
uglify {|input| input}
|
102
|
+
end
|
103
|
+
concat 'app.js'
|
104
|
+
end
|
105
|
+
|
106
|
+
match 'tests/**/*.js' do
|
107
|
+
filter LoaderFilter,
|
108
|
+
:module_id_generator => proc { |input|
|
109
|
+
input.path.sub(/^lib\//, "#{APPNAME}/").sub(/\.js$/, '')
|
110
|
+
}
|
111
|
+
concat 'app-tests.js'
|
112
|
+
end
|
113
|
+
|
114
|
+
match 'css/**/*.css' do
|
115
|
+
if ENV['RAKEP_MODE'] == 'production'
|
116
|
+
yui_css
|
117
|
+
end
|
118
|
+
concat ['bootstrap.css', 'main.css'], 'app.css'
|
119
|
+
end
|
120
|
+
|
121
|
+
match 'css/**/*.scss' do
|
122
|
+
sass
|
123
|
+
if ENV['RAKEP_MODE'] == 'production'
|
124
|
+
yui_css
|
125
|
+
end
|
126
|
+
concat 'app.css'
|
127
|
+
end
|
128
|
+
|
129
|
+
match "static/**/*" do
|
130
|
+
concat do |input|
|
131
|
+
input.sub(/static\//, '')
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
# vim: filetype=ruby
|
@@ -0,0 +1,19 @@
|
|
1
|
+
source :rubygems
|
2
|
+
|
3
|
+
gem 'colored'
|
4
|
+
|
5
|
+
gem 'guard'
|
6
|
+
gem 'guard-rake'
|
7
|
+
|
8
|
+
gem 'rack'
|
9
|
+
gem 'rack-rewrite'
|
10
|
+
gem 'rack-streaming-proxy'
|
11
|
+
|
12
|
+
gem 'sass'
|
13
|
+
gem 'compass'
|
14
|
+
|
15
|
+
gem 'uglifier'
|
16
|
+
gem 'yui-compressor'
|
17
|
+
|
18
|
+
gem 'rake-pipeline', :git => 'https://github.com/livingsocial/rake-pipeline.git'
|
19
|
+
gem 'rake-pipeline-web-filters', :git => 'https://github.com/wycats/rake-pipeline-web-filters.git'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright (c) Your Name Here
|
2
|
+
|
3
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
4
|
+
purpose with or without fee is hereby granted, provided that the above
|
5
|
+
copyright notice and this permission notice appear in all copies.
|
6
|
+
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
10
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
12
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
13
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Ember Skeleton
|
2
|
+
==============
|
3
|
+
|
4
|
+
A skeleton application framework using Ember.js and Rake Pipeline.
|
5
|
+
|
6
|
+
Running
|
7
|
+
-------
|
8
|
+
|
9
|
+
$ bundle install
|
10
|
+
$ bundle exec rackup
|
11
|
+
|
12
|
+
App Structure
|
13
|
+
-------------
|
14
|
+
|
15
|
+
ember-skeleton
|
16
|
+
├── Assetfile - App build file
|
17
|
+
├── Gemfile - Package dependencies for rakep/rack
|
18
|
+
├── Gemfile.lock - Here be dragons: don't touch, always include
|
19
|
+
├── app - App specific code
|
20
|
+
│ ├── css - App CSS or SCSS (.scss)
|
21
|
+
│ ├── lib - App code, *modularized during build*
|
22
|
+
│ ├── modules - Module code, *already modularized*
|
23
|
+
│ ├── plugins - Plugins (e.g. jquery.jsonrpc.js)
|
24
|
+
│ │ └── loader.js - JS module loader
|
25
|
+
│ ├── static - Static files, never touched, copied over during build
|
26
|
+
│ ├── templates - Handlebars templates, *modularized during build*
|
27
|
+
│ ├── tests - QUnit application tests
|
28
|
+
│ └── vendor - Vendor code, *modularized during build*
|
29
|
+
├── assets - Built out asset files, minified in production
|
30
|
+
│ ├── app.css - Built out app CSS/SCSS
|
31
|
+
│ ├── app.js - Built out app JS
|
32
|
+
│ └── loader.js - Built out JS module loader
|
33
|
+
├── config.ru - Rack development web server configuration
|
34
|
+
├── index.html - The app entry point
|
35
|
+
├── tests - QUnit testing files
|
36
|
+
│ ├── index.html - The testing entry point
|
37
|
+
│ ├── qunit - Testing support files
|
38
|
+
│ └── run-tests.js - The PhantomJS QUnit test runner
|
39
|
+
└── tmp - Temporary build files used by rakep
|
40
|
+
|
41
|
+
Testing
|
42
|
+
-------
|
43
|
+
|
44
|
+
You can test the app by invoking:
|
45
|
+
|
46
|
+
$ bundle exec rake test
|
47
|
+
|
48
|
+
This executes the tests by using [PhantomJS](http://www.phantomjs.org/),
|
49
|
+
which you need to have installed.
|
50
|
+
|
51
|
+
Or you can run the tests via:
|
52
|
+
|
53
|
+
$ bundle exec rackup
|
54
|
+
$ open http://localhost:9292/tests/index.html
|
55
|
+
|
56
|
+
If you want to continuously run the tests every time a file changes, invoke:
|
57
|
+
|
58
|
+
$ bundle exec guard
|