tennpipes-init 3.6.6
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/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
|