tennpipes-init 3.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +163 -0
- data/Rakefile +1 -0
- data/bin/tennpipes-init +16 -0
- data/lib/tennpipes-init.rb +73 -0
- data/lib/tennpipes-init/command.rb +18 -0
- data/lib/tennpipes-init/generators/actions.rb +630 -0
- data/lib/tennpipes-init/generators/app.rb +75 -0
- data/lib/tennpipes-init/generators/app/app.rb.tt +72 -0
- data/lib/tennpipes-init/generators/app/app.rb.tt~ +72 -0
- data/lib/tennpipes-init/generators/cli.rb +57 -0
- data/lib/tennpipes-init/generators/component.rb +73 -0
- data/lib/tennpipes-init/generators/components/actions.rb +208 -0
- data/lib/tennpipes-init/generators/components/mocks/mocha.rb +10 -0
- data/lib/tennpipes-init/generators/components/mocks/rr.rb +13 -0
- data/lib/tennpipes-init/generators/components/orms/activerecord.rb +201 -0
- data/lib/tennpipes-init/generators/components/orms/couchrest.rb +55 -0
- data/lib/tennpipes-init/generators/components/orms/datamapper.rb +140 -0
- data/lib/tennpipes-init/generators/components/orms/dynamoid.rb +67 -0
- data/lib/tennpipes-init/generators/components/orms/minirecord.rb +165 -0
- data/lib/tennpipes-init/generators/components/orms/mongoid.rb +113 -0
- data/lib/tennpipes-init/generators/components/orms/mongomapper.rb +43 -0
- data/lib/tennpipes-init/generators/components/orms/mongomatic.rb +84 -0
- data/lib/tennpipes-init/generators/components/orms/ohm.rb +65 -0
- data/lib/tennpipes-init/generators/components/orms/ripple.rb +75 -0
- data/lib/tennpipes-init/generators/components/orms/sequel.rb +99 -0
- data/lib/tennpipes-init/generators/components/renderers/erb.rb +3 -0
- data/lib/tennpipes-init/generators/components/renderers/haml.rb +3 -0
- data/lib/tennpipes-init/generators/components/renderers/liquid.rb +4 -0
- data/lib/tennpipes-init/generators/components/renderers/slim.rb +3 -0
- data/lib/tennpipes-init/generators/components/scripts/dojo.rb +10 -0
- data/lib/tennpipes-init/generators/components/scripts/extcore.rb +10 -0
- data/lib/tennpipes-init/generators/components/scripts/jquery.rb +10 -0
- data/lib/tennpipes-init/generators/components/scripts/mootools.rb +10 -0
- data/lib/tennpipes-init/generators/components/scripts/prototype.rb +12 -0
- data/lib/tennpipes-init/generators/components/scripts/rightjs.rb +10 -0
- data/lib/tennpipes-init/generators/components/stylesheets/compass.rb +39 -0
- data/lib/tennpipes-init/generators/components/stylesheets/compass/application.scss +43 -0
- data/lib/tennpipes-init/generators/components/stylesheets/compass/partials/_base.scss +12 -0
- data/lib/tennpipes-init/generators/components/stylesheets/less.rb +25 -0
- data/lib/tennpipes-init/generators/components/stylesheets/sass.rb +15 -0
- data/lib/tennpipes-init/generators/components/stylesheets/scss.rb +16 -0
- data/lib/tennpipes-init/generators/components/tests/bacon.rb +103 -0
- data/lib/tennpipes-init/generators/components/tests/cucumber.rb +86 -0
- data/lib/tennpipes-init/generators/components/tests/minitest.rb +110 -0
- data/lib/tennpipes-init/generators/components/tests/riot.rb +117 -0
- data/lib/tennpipes-init/generators/components/tests/rspec.rb +111 -0
- data/lib/tennpipes-init/generators/components/tests/shoulda.rb +114 -0
- data/lib/tennpipes-init/generators/components/tests/steak.rb +114 -0
- data/lib/tennpipes-init/generators/controller.rb +77 -0
- data/lib/tennpipes-init/generators/helper.rb +50 -0
- data/lib/tennpipes-init/generators/mailer.rb +52 -0
- data/lib/tennpipes-init/generators/migration.rb +43 -0
- data/lib/tennpipes-init/generators/model.rb +113 -0
- data/lib/tennpipes-init/generators/plugin.rb +67 -0
- data/lib/tennpipes-init/generators/project.rb +160 -0
- data/lib/tennpipes-init/generators/project/config.ru +9 -0
- data/lib/tennpipes-init/generators/project/config/apps.rb.tt +35 -0
- data/lib/tennpipes-init/generators/project/config/boot.rb +49 -0
- data/lib/tennpipes-init/generators/project/public/favicon.ico +0 -0
- data/lib/tennpipes-init/generators/project/public/images/booking.com.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/causes.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/ennkeypee_bg.jpg +0 -0
- data/lib/tennpipes-init/generators/project/public/images/ennkeypee_bluelogo.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/ennkeypee_bluelogo.svg +68 -0
- data/lib/tennpipes-init/generators/project/public/images/ennkeypee_whitelogo.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/ennkeypee_whitelogo.svg +65 -0
- data/lib/tennpipes-init/generators/project/public/images/forever21.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/icons/foundation-icons.eot +0 -0
- data/lib/tennpipes-init/generators/project/public/images/icons/foundation-icons.svg +970 -0
- data/lib/tennpipes-init/generators/project/public/images/icons/foundation-icons.ttf +0 -0
- data/lib/tennpipes-init/generators/project/public/images/icons/foundation-icons.woff +0 -0
- data/lib/tennpipes-init/generators/project/public/images/icons/tennpipes-icons.css +598 -0
- data/lib/tennpipes-init/generators/project/public/images/image1.jpg +0 -0
- data/lib/tennpipes-init/generators/project/public/images/image11.jpg +0 -0
- data/lib/tennpipes-init/generators/project/public/images/image2.jpg +0 -0
- data/lib/tennpipes-init/generators/project/public/images/image3.jpg +0 -0
- data/lib/tennpipes-init/generators/project/public/images/intuit.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/krispykreme.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/README.md +302 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/bower.json +4 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/composer.json +34 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/gulpfile.js +92 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/holder.js +1920 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/holder.min.js +12 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/package.json +46 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/holder.js +1411 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/lib/augment.js +27 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/lib/ondomready.js +155 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/lib/polyfills.js +177 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/scenegraph.js +101 -0
- data/lib/tennpipes-init/generators/project/public/images/placeholders/src/utils.js +129 -0
- data/lib/tennpipes-init/generators/project/public/images/priceline.com.png +0 -0
- data/lib/tennpipes-init/generators/project/public/images/stripe.png +0 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes.min.js +6081 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.abide.js +340 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.accordion.js +67 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.alert.js +43 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.clearing.js +556 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.dropdown.js +448 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.equalizer.js +77 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.interchange.js +354 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.joyride.js +932 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.js +703 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.magellan.js +203 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.offcanvas.js +152 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.orbit.js +476 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.reveal.js +471 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.slider.js +263 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.tab.js +237 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.tooltip.js +307 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/tennpipes/tennpipes.topbar.js +452 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/vendor/fastclick.js +8 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/vendor/jquery.cookie.js +8 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/vendor/jquery.js +26 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/vendor/modernizr.js +8 -0
- data/lib/tennpipes-init/generators/project/public/javascripts/vendor/placeholder.js +2 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/app.css~ +178 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/app1.css~ +177 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/ennkeypee.css +214 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/ennkeypee.css~ +214 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/normalize.css +427 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/tennpipes.css +6201 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/tennpipes.css~ +6201 -0
- data/lib/tennpipes-init/generators/project/public/stylesheets/tennpipes.min.css +1 -0
- data/lib/tennpipes-init/generators/runner.rb +139 -0
- data/lib/tennpipes-init/generators/task.rb +45 -0
- data/lib/tennpipes-init/generators/templates/Gemfile.tt +32 -0
- data/lib/tennpipes-init/generators/templates/Rakefile.tt +8 -0
- data/lib/tennpipes-init/generators/templates/controller.rb.tt +22 -0
- data/lib/tennpipes-init/generators/templates/gem/README.md.tt +29 -0
- data/lib/tennpipes-init/generators/templates/gem/gemspec.tt +19 -0
- data/lib/tennpipes-init/generators/templates/gem/lib/libname.tt +6 -0
- data/lib/tennpipes-init/generators/templates/gem/lib/libname/version.tt +3 -0
- data/lib/tennpipes-init/generators/templates/helper.rb.tt +13 -0
- data/lib/tennpipes-init/generators/templates/initializer.rb.tt +5 -0
- data/lib/tennpipes-init/generators/templates/mailer.rb.tt +54 -0
- data/lib/tennpipes-init/generators/templates/project_bin.tt +14 -0
- data/lib/tennpipes-init/generators/templates/task.rb.tt +7 -0
- data/lib/tennpipes-init/tennpipes-tasks/activerecord.rb +377 -0
- data/lib/tennpipes-init/tennpipes-tasks/database.rb +12 -0
- data/lib/tennpipes-init/tennpipes-tasks/datamapper.rb +94 -0
- data/lib/tennpipes-init/tennpipes-tasks/minirecord.rb +19 -0
- data/lib/tennpipes-init/tennpipes-tasks/mongoid.rb +215 -0
- data/lib/tennpipes-init/tennpipes-tasks/mongomapper.rb +55 -0
- data/lib/tennpipes-init/tennpipes-tasks/sequel.rb +85 -0
- data/lib/tennpipes-init/tennpipes-tasks/sql-helpers.rb +72 -0
- data/test/fixtures/admin_template.rb +7 -0
- data/test/fixtures/example_template.rb +15 -0
- data/test/fixtures/git_template.rb +4 -0
- data/test/fixtures/plugin_template.rb +13 -0
- data/test/fixtures/rake_template.rb +9 -0
- data/test/helper.rb +103 -0
- data/test/test_app_generator.rb +142 -0
- data/test/test_cli.rb +27 -0
- data/test/test_component_generator.rb +98 -0
- data/test/test_controller_generator.rb +272 -0
- data/test/test_generator.rb +13 -0
- data/test/test_helper_generator.rb +133 -0
- data/test/test_mailer_generator.rb +69 -0
- data/test/test_migration_generator.rb +222 -0
- data/test/test_model_generator.rb +553 -0
- data/test/test_plugin_generator.rb +152 -0
- data/test/test_project_generator.rb +757 -0
- data/test/test_task_generator.rb +53 -0
- metadata +285 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
RIPPLE_DB = (<<-RIAK) unless defined?(RIPPLE_DB)
|
2
|
+
development:
|
3
|
+
http_port: 8098
|
4
|
+
pb_port: 8087
|
5
|
+
host: localhost
|
6
|
+
|
7
|
+
# The test environment has additional keys for configuring the
|
8
|
+
# Riak::TestServer for your test/spec suite:
|
9
|
+
#
|
10
|
+
# * bin_dir specifies the path to the "riak" script that you use to
|
11
|
+
# start Riak (just the directory)
|
12
|
+
# * js_source_dir specifies where your custom Javascript functions for
|
13
|
+
# MapReduce should be loaded from. Usually app/mapreduce.
|
14
|
+
test:
|
15
|
+
http_port: 9000
|
16
|
+
pb_port: 9002
|
17
|
+
host: localhost
|
18
|
+
bin_dir: /usr/local/bin # Default for Homebrew.
|
19
|
+
js_source_dir: <%%= Tennpipes.root + "app/mapreduce" %>
|
20
|
+
|
21
|
+
production:
|
22
|
+
http_port: 8098
|
23
|
+
pb_port: 8087
|
24
|
+
host: localhost
|
25
|
+
RIAK
|
26
|
+
RIPPLE_CFG = (<<RIAK) unless defined?(RIPPLE_CFG)
|
27
|
+
# encoding: utf-8
|
28
|
+
|
29
|
+
require 'ripple'
|
30
|
+
|
31
|
+
if File.exist?(Tennpipes.root + "config/riak.yml")
|
32
|
+
Ripple.load_configuration Tennpipes.root.join('config', 'riak.yml'), [Tennpipes.env]
|
33
|
+
end
|
34
|
+
RIAK
|
35
|
+
|
36
|
+
def setup_orm
|
37
|
+
require_dependencies 'ripple'
|
38
|
+
create_file("config/riak.yml", RIPPLE_DB.gsub(/!NAME!/, @project_name.underscore))
|
39
|
+
create_file("config/database.rb", RIPPLE_CFG)
|
40
|
+
end
|
41
|
+
|
42
|
+
RIPPLE_MODEL = (<<-MODEL) unless defined?(RIPPLE_MODEL)
|
43
|
+
# encoding: utf-8
|
44
|
+
|
45
|
+
class !NAME!
|
46
|
+
include Ripple::Document
|
47
|
+
|
48
|
+
# Standart properties
|
49
|
+
# property :name, String
|
50
|
+
!FIELDS!
|
51
|
+
|
52
|
+
# Relations
|
53
|
+
# many :addresses
|
54
|
+
# many :friends, :class_name => "Person"
|
55
|
+
# one :account
|
56
|
+
end
|
57
|
+
|
58
|
+
MODEL
|
59
|
+
# options => { :fields => ["title:string", "body:string"], :app => 'app' }
|
60
|
+
def create_model_file(name, options={})
|
61
|
+
model_path = destination_root(options[:app], 'models', "#{name.to_s.underscore}.rb")
|
62
|
+
field_tuples = options[:fields].map { |value| value.split(":") }
|
63
|
+
column_declarations = field_tuples.map { |field, kind| "property :#{field}, #{kind.underscore.camelize}" }.join("\n ")
|
64
|
+
model_contents = RIPPLE_MODEL.gsub(/!NAME!/, name.to_s.underscore.camelize)
|
65
|
+
model_contents.gsub!(/!FIELDS!/, column_declarations)
|
66
|
+
create_file(model_path, model_contents)
|
67
|
+
end
|
68
|
+
|
69
|
+
def create_model_migration(filename, name, fields)
|
70
|
+
# NO MIGRATION NEEDED
|
71
|
+
end
|
72
|
+
|
73
|
+
def create_migration_file(migration_name, name, columns)
|
74
|
+
# NO MIGRATION NEEDED
|
75
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
SEQUEL = (<<-SEQUEL) unless defined?(SEQUEL)
|
2
|
+
Sequel::Model.plugin(:schema)
|
3
|
+
Sequel::Model.raise_on_save_failure = false # Do not throw exceptions on failure
|
4
|
+
Sequel::Model.db = case Tennpipes.env
|
5
|
+
when :development then Sequel.connect(!DB_DEVELOPMENT!, :loggers => [logger])
|
6
|
+
when :production then Sequel.connect(!DB_PRODUCTION!, :loggers => [logger])
|
7
|
+
when :test then Sequel.connect(!DB_TEST!, :loggers => [logger])
|
8
|
+
end
|
9
|
+
SEQUEL
|
10
|
+
|
11
|
+
def setup_orm
|
12
|
+
sequel = SEQUEL
|
13
|
+
db = @project_name.underscore
|
14
|
+
require_dependencies 'sequel'
|
15
|
+
case options[:adapter]
|
16
|
+
when 'mysql-gem'
|
17
|
+
sequel.gsub!(/!DB_DEVELOPMENT!/, "\"mysql://localhost/#{db}_development\"")
|
18
|
+
sequel.gsub!(/!DB_PRODUCTION!/, "\"mysql://localhost/#{db}_production\"")
|
19
|
+
sequel.gsub!(/!DB_TEST!/,"\"mysql://localhost/#{db}_test\"")
|
20
|
+
require_dependencies 'mysql', :version => "~> 2.8.1"
|
21
|
+
'mysql'
|
22
|
+
when 'mysql', 'mysql2'
|
23
|
+
sequel.gsub!(/!DB_DEVELOPMENT!/, "\"mysql2://localhost/#{db}_development\"")
|
24
|
+
sequel.gsub!(/!DB_PRODUCTION!/, "\"mysql2://localhost/#{db}_production\"")
|
25
|
+
sequel.gsub!(/!DB_TEST!/,"\"mysql2://localhost/#{db}_test\"")
|
26
|
+
require_dependencies 'mysql2'
|
27
|
+
'mysql2'
|
28
|
+
when 'postgres'
|
29
|
+
sequel.gsub!(/!DB_DEVELOPMENT!/, "\"postgres://localhost/#{db}_development\"")
|
30
|
+
sequel.gsub!(/!DB_PRODUCTION!/, "\"postgres://localhost/#{db}_production\"")
|
31
|
+
sequel.gsub!(/!DB_TEST!/,"\"postgres://localhost/#{db}_test\"")
|
32
|
+
require_dependencies 'pg'
|
33
|
+
'pg'
|
34
|
+
else
|
35
|
+
sequel.gsub!(/!DB_DEVELOPMENT!/,"\"sqlite://db/#{db}_development.db\"")
|
36
|
+
sequel.gsub!(/!DB_PRODUCTION!/, "\"sqlite://db/#{db}_production.db\"")
|
37
|
+
sequel.gsub!(/!DB_TEST!/, "\"sqlite://db/#{db}_test.db\"")
|
38
|
+
require_dependencies 'sqlite3'
|
39
|
+
'sqlite3'
|
40
|
+
end
|
41
|
+
create_file("config/database.rb", sequel)
|
42
|
+
empty_directory('db/migrate')
|
43
|
+
end
|
44
|
+
|
45
|
+
SQ_MODEL = (<<-MODEL) unless defined?(SQ_MODEL)
|
46
|
+
class !NAME! < Sequel::Model
|
47
|
+
|
48
|
+
end
|
49
|
+
MODEL
|
50
|
+
|
51
|
+
# options => { :fields => ["title:string", "body:string"], :app => 'app' }
|
52
|
+
def create_model_file(name, options={})
|
53
|
+
model_path = destination_root(options[:app], 'models', "#{name.to_s.underscore}.rb")
|
54
|
+
model_contents = SQ_MODEL.gsub(/!NAME!/, name.to_s.underscore.camelize)
|
55
|
+
create_file(model_path, model_contents)
|
56
|
+
end
|
57
|
+
|
58
|
+
SQ_MIGRATION = (<<-MIGRATION) unless defined?(SQ_MIGRATION)
|
59
|
+
Sequel.migration do
|
60
|
+
up do
|
61
|
+
!UP!
|
62
|
+
end
|
63
|
+
|
64
|
+
down do
|
65
|
+
!DOWN!
|
66
|
+
end
|
67
|
+
end
|
68
|
+
MIGRATION
|
69
|
+
|
70
|
+
SQ_MODEL_UP_MG = (<<-MIGRATION).gsub(/^/, ' ') unless defined?(SQ_MODEL_UP_MG)
|
71
|
+
create_table :!TABLE! do
|
72
|
+
primary_key :id
|
73
|
+
!FIELDS!
|
74
|
+
end
|
75
|
+
MIGRATION
|
76
|
+
|
77
|
+
SQ_MODEL_DOWN_MG = (<<-MIGRATION) unless defined?(SQ_MODEL_DOWN_MG)
|
78
|
+
drop_table :!TABLE!
|
79
|
+
MIGRATION
|
80
|
+
|
81
|
+
def create_model_migration(migration_name, name, columns)
|
82
|
+
output_model_migration(migration_name, name, columns,
|
83
|
+
:column_format => Proc.new { |field, kind| "#{kind.underscore.camelize} :#{field}" },
|
84
|
+
:base => SQ_MIGRATION, :up => SQ_MODEL_UP_MG, :down => SQ_MODEL_DOWN_MG)
|
85
|
+
end
|
86
|
+
|
87
|
+
SQ_CHANGE_MG = (<<-MIGRATION).gsub(/^/, ' ') unless defined?(SQ_CHANGE_MG)
|
88
|
+
alter_table :!TABLE! do
|
89
|
+
!COLUMNS!
|
90
|
+
end
|
91
|
+
MIGRATION
|
92
|
+
|
93
|
+
def create_migration_file(migration_name, name, columns)
|
94
|
+
output_migration_file(migration_name, name, columns,
|
95
|
+
:base => SQ_MIGRATION, :change_format => SQ_CHANGE_MG,
|
96
|
+
:add => Proc.new { |field, kind| "add_column :#{field}, #{kind.underscore.camelize}" },
|
97
|
+
:remove => Proc.new { |field, kind| "drop_column :#{field}" }
|
98
|
+
)
|
99
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/dojo.js', destination_root("/public/javascripts/dojo.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/dojo.js', destination_root("/public/javascripts/dojo-ujs.js"))
|
5
|
+
rescue
|
6
|
+
copy_file('templates/static/js/dojo.js', destination_root("/public/javascripts/dojo.js"))
|
7
|
+
copy_file('templates/static/ujs/dojo.js', destination_root("/public/javascripts/dojo-ujs.js"))
|
8
|
+
end
|
9
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/ext.js', destination_root("/public/javascripts/ext.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/ext.js', destination_root("/public/javascripts/ext-ujs.js"))
|
5
|
+
rescue
|
6
|
+
copy_file('templates/static/js/ext.js', destination_root("/public/javascripts/ext.js"))
|
7
|
+
copy_file('templates/static/ujs/ext.js', destination_root("/public/javascripts/ext-ujs.js"))
|
8
|
+
end
|
9
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/jquery.js', destination_root("/public/javascripts/jquery.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/jquery.js', destination_root("/public/javascripts/jquery-ujs.js"))
|
5
|
+
rescue
|
6
|
+
copy_file('templates/static/js/jquery.js', destination_root("/public/javascripts/jquery.js"))
|
7
|
+
copy_file('templates/static/ujs/jquery.js', destination_root("/public/javascripts/jquery-ujs.js"))
|
8
|
+
end
|
9
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/mootools.js', destination_root("/public/javascripts/mootools.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/mootools.js', destination_root("/public/javascripts/mootools-ujs.js"))
|
5
|
+
rescue
|
6
|
+
copy_file('templates/static/js/mootools.js', destination_root("/public/javascripts/mootools.js"))
|
7
|
+
copy_file('templates/static/ujs/mootools.js', destination_root("/public/javascripts/mootools-ujs.js"))
|
8
|
+
end
|
9
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/protopak.js', destination_root("/public/javascripts/protopak.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/lowpro.js', destination_root("/public/javascripts/lowpro.js"))
|
5
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/prototype.js', destination_root("/public/javascripts/prototype-ujs.js"))
|
6
|
+
rescue
|
7
|
+
copy_file('templates/static/js/protopak.js', destination_root("/public/javascripts/protopak.js"))
|
8
|
+
copy_file('templates/static/js/lowpro.js', destination_root("/public/javascripts/lowpro.js"))
|
9
|
+
copy_file('templates/static/ujs/prototype.js', destination_root("/public/javascripts/prototype-ujs.js"))
|
10
|
+
end
|
11
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
12
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def setup_script
|
2
|
+
begin
|
3
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/js/right.js', destination_root("/public/javascripts/right.js"))
|
4
|
+
get('https://raw.github.com/tennpipes/tennpipes-static/master/ujs/right.js', destination_root("/public/javascripts/right-ujs.js"))
|
5
|
+
rescue
|
6
|
+
copy_file('templates/static/js/right.js', destination_root("/public/javascripts/right.js"))
|
7
|
+
copy_file('templates/static/ujs/right.js', destination_root("/public/javascripts/right-ujs.js"))
|
8
|
+
end
|
9
|
+
create_file(destination_root('/public/javascripts/application.js'), "// Put your application scripts here")
|
10
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
COMPASS_INIT = <<-COMPASS unless defined?(COMPASS_INIT)
|
2
|
+
# Enables support for Compass, a stylesheet authoring framework based on SASS.
|
3
|
+
# See http://compass-style.org/ for more details.
|
4
|
+
# Store Compass/SASS files (by default) within 'app/stylesheets'.
|
5
|
+
|
6
|
+
module CompassInitializer
|
7
|
+
def self.registered(app)
|
8
|
+
require 'sass/plugin/rack'
|
9
|
+
|
10
|
+
Compass.configuration do |config|
|
11
|
+
config.project_path = Tennpipes.root
|
12
|
+
config.sass_dir = "app/stylesheets"
|
13
|
+
config.project_type = :stand_alone
|
14
|
+
config.http_path = "/"
|
15
|
+
config.css_dir = "public/stylesheets"
|
16
|
+
config.images_dir = "public/images"
|
17
|
+
config.javascripts_dir = "public/javascripts"
|
18
|
+
config.output_style = :compressed
|
19
|
+
end
|
20
|
+
|
21
|
+
Compass.configure_sass_plugin!
|
22
|
+
Compass.handle_configuration_change!
|
23
|
+
|
24
|
+
app.use Sass::Plugin::Rack
|
25
|
+
end
|
26
|
+
end
|
27
|
+
COMPASS
|
28
|
+
|
29
|
+
COMPASS_REGISTER = <<-COMPASSR unless defined?(COMPASS_REGISTER)
|
30
|
+
register CompassInitializer\n
|
31
|
+
COMPASSR
|
32
|
+
|
33
|
+
def setup_stylesheet
|
34
|
+
require_dependencies 'compass'
|
35
|
+
create_file destination_root('/lib/compass_plugin.rb'), COMPASS_INIT
|
36
|
+
inject_into_file destination_root('/app/app.rb'), COMPASS_REGISTER, :after => "register Tennpipes::Helpers\n"
|
37
|
+
|
38
|
+
directory "components/stylesheets/compass/", destination_root('/app/stylesheets')
|
39
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// This import applies a global reset to any page that imports this stylesheet.
|
2
|
+
@import "blueprint/reset";
|
3
|
+
|
4
|
+
// To configure blueprint, edit the partials/base.sass file.
|
5
|
+
@import "partials/base";
|
6
|
+
|
7
|
+
// Import all the default blueprint modules so that we can access their mixins.
|
8
|
+
@import "blueprint";
|
9
|
+
|
10
|
+
// Import the non-default scaffolding module.
|
11
|
+
@import "blueprint/scaffolding";
|
12
|
+
|
13
|
+
// To generate css equivalent to the blueprint css but with your
|
14
|
+
// configuration applied, uncomment:
|
15
|
+
// @include blueprint
|
16
|
+
|
17
|
+
// But Compass recommends that you scope your blueprint styles
|
18
|
+
// So that you can better control what pages use blueprint
|
19
|
+
// when stylesheets are concatenated together.
|
20
|
+
@include blueprint-scaffolding("body.bp");
|
21
|
+
|
22
|
+
body.bp {
|
23
|
+
@include blueprint-typography(true);
|
24
|
+
@include blueprint-utilities;
|
25
|
+
@include blueprint-debug;
|
26
|
+
@include blueprint-interaction;
|
27
|
+
// Remove the scaffolding when you're ready to start doing visual design.
|
28
|
+
// Or leave it in if you're happy with how blueprint looks out-of-the-box
|
29
|
+
}
|
30
|
+
|
31
|
+
form.bp {
|
32
|
+
@include blueprint-form;
|
33
|
+
}
|
34
|
+
|
35
|
+
.two-col {
|
36
|
+
@include container;
|
37
|
+
background-color: #cccccc;
|
38
|
+
#header, #footer {
|
39
|
+
@include column(24); }
|
40
|
+
#sidebar {
|
41
|
+
@include column(3); }
|
42
|
+
#content {
|
43
|
+
@include column(21, true); } }
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// Here is where you can define your constants for your application and to
|
2
|
+
// configure the blueprint framework. Feel free to delete these if you want
|
3
|
+
// keep the defaults:
|
4
|
+
|
5
|
+
$blueprint-grid-columns: 24;
|
6
|
+
$blueprint-container-size: 950px;
|
7
|
+
$blueprint-grid-margin: 10px;
|
8
|
+
|
9
|
+
// Use this to calculate the width based on the total width.
|
10
|
+
// Or you can set !blueprint_grid_width to a fixed value and
|
11
|
+
// unset !blueprint_container_size -- it will be calculated for you.
|
12
|
+
$blueprint-grid-width: ($blueprint-container-size + $blueprint-grid-margin) / $blueprint-grid-columns - $blueprint-grid-margin;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
LESS_INIT = <<-LESS unless defined?(LESS_INIT)
|
2
|
+
# Enables support for Less template reloading for rack.
|
3
|
+
# Store Less files by default within 'app/stylesheets/'.
|
4
|
+
# See http://github.com/kelredd/rack-less for more details.
|
5
|
+
require 'rack/less'
|
6
|
+
# optional - use as necessary
|
7
|
+
Rack::Less.configure do |config|
|
8
|
+
config.compress = true
|
9
|
+
# config.cache = true
|
10
|
+
# other configs ...
|
11
|
+
end
|
12
|
+
app.use Rack::Less,
|
13
|
+
:root => Tennpipes.root,
|
14
|
+
:source => 'app/stylesheets',
|
15
|
+
:public => 'public',
|
16
|
+
:hosted_at => 'stylesheets'
|
17
|
+
LESS
|
18
|
+
|
19
|
+
def setup_stylesheet
|
20
|
+
require_dependencies 'less'
|
21
|
+
require_dependencies 'rack-less'
|
22
|
+
require_dependencies 'therubyracer'
|
23
|
+
initializer :less, LESS_INIT
|
24
|
+
empty_directory destination_root('/app/stylesheets')
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
SASS_INIT = <<-SASS unless defined?(SASS_INIT)
|
2
|
+
# Enables support for SASS template reloading in rack applications.
|
3
|
+
# See http://nex-3.com/posts/88-sass-supports-rack for more details.
|
4
|
+
# Store SASS files (by default) within 'app/stylesheets'.
|
5
|
+
require 'sass/plugin/rack'
|
6
|
+
Sass::Plugin.options[:template_location] = Tennpipes.root("app/stylesheets")
|
7
|
+
Sass::Plugin.options[:css_location] = Tennpipes.root("public/stylesheets")
|
8
|
+
app.use Sass::Plugin::Rack
|
9
|
+
SASS
|
10
|
+
|
11
|
+
def setup_stylesheet
|
12
|
+
require_dependencies 'sass'
|
13
|
+
initializer :sass, SASS_INIT.chomp
|
14
|
+
empty_directory destination_root('/app/stylesheets')
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
SCSS_INIT = <<-SCSS unless defined?(SCSS_INIT)
|
2
|
+
# Enables support for SCSS template reloading in rack applications.
|
3
|
+
# See http://nex-3.com/posts/88-sass-supports-rack for more details.
|
4
|
+
# Store SCSS files (by default) within 'app/stylesheets'.
|
5
|
+
require 'sass/plugin/rack'
|
6
|
+
Sass::Plugin.options[:syntax] = :scss
|
7
|
+
Sass::Plugin.options[:template_location] = Tennpipes.root("app/stylesheets")
|
8
|
+
Sass::Plugin.options[:css_location] = Tennpipes.root("public/stylesheets")
|
9
|
+
app.use Sass::Plugin::Rack
|
10
|
+
SCSS
|
11
|
+
|
12
|
+
def setup_stylesheet
|
13
|
+
require_dependencies 'sass'
|
14
|
+
initializer :scss, SCSS_INIT.chomp
|
15
|
+
empty_directory destination_root('/app/stylesheets')
|
16
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
BACON_SETUP = (<<-TEST).gsub(/^ {10}/, '') unless defined?(BACON_SETUP)
|
2
|
+
RACK_ENV = 'test' unless defined?(RACK_ENV)
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/boot")
|
4
|
+
Dir[File.expand_path(File.dirname(__FILE__) + "/../app/helpers/**/*.rb")].each(&method(:require))
|
5
|
+
|
6
|
+
class Bacon::Context
|
7
|
+
include Rack::Test::Methods
|
8
|
+
end
|
9
|
+
|
10
|
+
# You can use this method to custom specify a Rack app
|
11
|
+
# you want rack-test to invoke:
|
12
|
+
#
|
13
|
+
# app CLASS_NAME
|
14
|
+
# app CLASS_NAME.tap { |a| }
|
15
|
+
# app(CLASS_NAME) do
|
16
|
+
# set :foo, :bar
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
def app(app = nil, &blk)
|
20
|
+
@app ||= block_given? ? app.instance_eval(&blk) : app
|
21
|
+
@app ||= Tennpipes.application
|
22
|
+
end
|
23
|
+
TEST
|
24
|
+
|
25
|
+
BACON_CONTROLLER_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(BACON_CONTROLLER_TEST)
|
26
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
|
27
|
+
|
28
|
+
describe "!PATH!" do
|
29
|
+
it 'returns text at root' do
|
30
|
+
get "!EXPANDED_PATH!"
|
31
|
+
last_response.body.should == "some text"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
TEST
|
35
|
+
|
36
|
+
BACON_RAKE = (<<-TEST).gsub(/^ {10}/, '') unless defined?(BACON_RAKE)
|
37
|
+
require 'rake/testtask'
|
38
|
+
|
39
|
+
test_tasks = Dir['test/*/'].map { |d| File.basename(d) }
|
40
|
+
|
41
|
+
test_tasks.each do |folder|
|
42
|
+
Rake::TestTask.new("test:\#{folder}") do |test|
|
43
|
+
test.pattern = "test/\#{folder}/**/*_test.rb"
|
44
|
+
test.verbose = true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "Run application test suite"
|
49
|
+
task 'test' => test_tasks.map { |f| "test:\#{f}" }
|
50
|
+
TEST
|
51
|
+
|
52
|
+
BACON_MODEL_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(BACON_MODEL_TEST)
|
53
|
+
require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
|
54
|
+
|
55
|
+
describe "!NAME! Model" do
|
56
|
+
it 'can be created' do
|
57
|
+
@!DNAME! = !NAME!.new
|
58
|
+
@!DNAME!.should.not.be.nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
TEST
|
62
|
+
|
63
|
+
BACON_HELPER_TEST = <<-TEST unless defined?(BACON_HELPER_TEST)
|
64
|
+
require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
|
65
|
+
|
66
|
+
describe "!NAME!" do
|
67
|
+
before do
|
68
|
+
@helpers = Class.new
|
69
|
+
@helpers.extend !NAME!
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should return nil" do
|
73
|
+
@helpers.foo.should.equal nil
|
74
|
+
end
|
75
|
+
end
|
76
|
+
TEST
|
77
|
+
|
78
|
+
def setup_test
|
79
|
+
require_dependencies 'rack-test', :require => 'rack/test', :group => 'test'
|
80
|
+
require_dependencies 'bacon', :group => 'test'
|
81
|
+
insert_test_suite_setup BACON_SETUP, :path => 'test/test_config.rb'
|
82
|
+
create_file destination_root("test/test.rake"), BACON_RAKE
|
83
|
+
end
|
84
|
+
|
85
|
+
def generate_controller_test(name, path)
|
86
|
+
bacon_contents = BACON_CONTROLLER_TEST.gsub(/!PATH!/, path).gsub(/!EXPANDED_PATH!/, path.gsub(/:\w+?_id/, "1"))
|
87
|
+
controller_test_path = File.join('test',options[:app],'controllers',"#{name.to_s.underscore}_controller_test.rb")
|
88
|
+
create_file destination_root(controller_test_path), bacon_contents, :skip => true
|
89
|
+
end
|
90
|
+
|
91
|
+
def generate_model_test(name)
|
92
|
+
bacon_contents = BACON_MODEL_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize).gsub(/!DNAME!/, name.to_s.underscore)
|
93
|
+
bacon_contents.gsub!(/!PATH!/, recognize_path)
|
94
|
+
model_test_path = File.join('test',options[:app],'models',"#{name.to_s.underscore}_test.rb")
|
95
|
+
create_file destination_root(model_test_path), bacon_contents, :skip => true
|
96
|
+
end
|
97
|
+
|
98
|
+
def generate_helper_test(name, project_name, app_name)
|
99
|
+
bacon_contents = BACON_HELPER_TEST.gsub(/!NAME!/, "#{project_name}::#{app_name}::#{name}")
|
100
|
+
bacon_contents.gsub!(/!PATH!/, recognize_path)
|
101
|
+
helper_spec_path = File.join('test', options[:app], 'helpers', "#{name.underscore}_test.rb")
|
102
|
+
create_file destination_root(helper_spec_path), bacon_contents, :skip => true
|
103
|
+
end
|