cloudrider 0.3.0 → 0.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/cloudrider.gemspec +1 -0
- data/generica/.gitignore +18 -0
- data/generica/Gemfile +8 -1
- data/generica/Gemfile.lock +3 -0
- data/generica/app/assets/javascripts/apiv1.js.ls +6 -1
- data/generica/app/assets/javascripts/components/offers-summary.js.em +2 -0
- data/generica/app/assets/javascripts/components/picture-chunk.js.em +17 -0
- data/generica/app/assets/javascripts/components/pictures-group.js.em +21 -0
- data/generica/app/assets/javascripts/components/search-and-filter.js.em +4 -0
- data/generica/app/assets/javascripts/components/site-nav.js.em +5 -1
- data/generica/app/assets/javascripts/components/taggable-field.js.em +28 -0
- data/generica/app/assets/javascripts/components/tree/taxon-li.js.em +6 -2
- data/generica/app/assets/javascripts/controllers/index_controller.js.em +19 -2
- data/generica/app/assets/javascripts/controllers/modals/login_controller.js.em +23 -9
- data/generica/app/assets/javascripts/controllers/modals/register_controller.js.em +24 -0
- data/generica/app/assets/javascripts/controllers/products/index_controller.js.em +23 -13
- data/generica/app/assets/javascripts/controllers/products/product/offers/new_controller.js.em +17 -0
- data/generica/app/assets/javascripts/controllers/users/offers/index_controller.js.em +10 -0
- data/generica/app/assets/javascripts/controllers/users/product/edit_controller.js.em +31 -0
- data/generica/app/assets/javascripts/controllers/users/products/index_controller.js.em +8 -0
- data/generica/app/assets/javascripts/controllers/users/products/new_controller.js.em +22 -0
- data/generica/app/assets/javascripts/controllers/users/products/slice_controller.js.em +4 -0
- data/generica/app/assets/javascripts/helpers/filte_previewer.js.ls +21 -0
- data/generica/app/assets/javascripts/helpers/listing_picture.js.em +17 -0
- data/generica/app/assets/javascripts/models/offer.js.em +9 -8
- data/generica/app/assets/javascripts/models/user.js.em +12 -0
- data/generica/app/assets/javascripts/models/users/product.js.em +12 -0
- data/generica/app/assets/javascripts/routes/application_route.js.em +10 -2
- data/generica/app/assets/javascripts/routes/products/index_route.js.em +23 -2
- data/generica/app/assets/javascripts/routes/products/product/offers/new_route.js.em +18 -0
- data/generica/app/assets/javascripts/routes/users/offers/index_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/users/product_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/users/products/index_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/users/products/new_route.js.em +3 -0
- data/generica/app/assets/javascripts/templates/admin/product/edit.emblem +2 -0
- data/generica/app/assets/javascripts/templates/admin/products/_form-core.emblem +44 -0
- data/generica/app/assets/javascripts/templates/admin/products/new.emblem +4 -42
- data/generica/app/assets/javascripts/templates/components/offers-summary.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/picture-chunk.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/pictures-group.emblem +6 -0
- data/generica/app/assets/javascripts/templates/components/search-and-filter.emblem +5 -1
- data/generica/app/assets/javascripts/templates/components/taggable-field.emblem +1 -0
- data/generica/app/assets/javascripts/templates/modals/register.emblem +57 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/_anonymous-form.emblem +11 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/_offer-form.emblem +55 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/new.emblem +37 -0
- data/generica/app/assets/javascripts/templates/products/product/show.emblem +26 -1
- data/generica/app/assets/javascripts/templates/users.emblem +24 -0
- data/generica/app/assets/javascripts/templates/users/index.emblem +3 -0
- data/generica/app/assets/javascripts/templates/users/offers/index.emblem +25 -0
- data/generica/app/assets/javascripts/templates/users/offers/slice.emblem +31 -0
- data/generica/app/assets/javascripts/templates/users/product/edit.emblem +82 -0
- data/generica/app/assets/javascripts/templates/users/products/index.emblem +22 -0
- data/generica/app/assets/javascripts/templates/users/products/new.emblem +28 -0
- data/generica/app/assets/javascripts/templates/users/products/slice.emblem +27 -0
- data/generica/app/assets/stylesheets/apiv1/_application.css.scss +4 -0
- data/generica/app/assets/stylesheets/apiv1/components/_offers-summary.css.scss +20 -0
- data/generica/app/assets/stylesheets/apiv1/components/_pictures-group.css.scss +32 -0
- data/generica/app/assets/stylesheets/apiv1/components/_taggable-field.css.scss +32 -0
- data/generica/app/assets/stylesheets/apiv1/products/product/offers/_new.css.scss +8 -0
- data/generica/app/controllers/admin/base_controller.rb +1 -1
- data/generica/app/controllers/admin/sessions/destroy_controller.rb +16 -0
- data/generica/app/controllers/apiv1/offers/create_controller.rb +30 -0
- data/generica/app/controllers/apiv1/offers/index_controller.rb +22 -0
- data/generica/app/controllers/apiv1/offers/show_controller.rb +12 -0
- data/generica/app/controllers/apiv1/products/destroy_controller.rb +6 -0
- data/generica/app/controllers/apiv1/products/index_controller.rb +8 -2
- data/generica/app/controllers/apiv1/products/show_controller.rb +7 -3
- data/generica/app/controllers/apiv1/taxons/index_controller.rb +5 -1
- data/generica/app/controllers/apiv1/users/create_controller.rb +17 -0
- data/generica/app/controllers/apiv1/users/show_controller.rb +12 -0
- data/generica/app/controllers/apiv1/users_controller.rb +9 -0
- data/generica/app/controllers/application_controller.rb +3 -0
- data/generica/app/controllers/users/offers/create_controller.rb +26 -0
- data/generica/app/controllers/users/products/create_controller.rb +26 -0
- data/generica/app/controllers/users/products/update_controller.rb +35 -0
- data/generica/app/mailers/apiv1/aggregate_mailer.rb +13 -0
- data/generica/app/mailers/apiv1/aggregate_mailer/summary_context.rb +121 -0
- data/generica/app/mailers/apiv1/notifications_mailer.rb +19 -0
- data/generica/app/mailers/apiv1/notifications_mailer/new_offer_context.rb +53 -0
- data/generica/app/models/admin/user.rb +43 -2
- data/generica/app/models/apiv1/attachment.rb +2 -0
- data/generica/app/models/apiv1/email_object.rb +35 -0
- data/generica/app/models/apiv1/email_request.rb +107 -0
- data/generica/app/models/apiv1/offer_message.rb +53 -0
- data/generica/app/models/apiv1/offer_postboy.rb +33 -0
- data/generica/app/models/apiv1/picture.rb +2 -0
- data/generica/app/models/apiv1/product.rb +28 -6
- data/generica/app/models/apiv1/products/offer_message_factory.rb +13 -0
- data/generica/app/models/apiv1/products_machine.rb +8 -2
- data/generica/app/models/apiv1/taxon.rb +1 -1
- data/generica/app/models/apiv1/users/product_factory.rb +22 -0
- data/generica/app/models/apiv1/users/product_relationship.rb +19 -0
- data/generica/app/models/users/products/offer_factory.rb +40 -0
- data/generica/app/varissets/javascripts/templates/application.emblem.erb +2 -2
- data/generica/app/varissets/javascripts/templates/components/offers-overview.emblem.erb +1 -0
- data/generica/app/varissets/javascripts/templates/components/search-and-filter.emblem.erb +33 -0
- data/generica/app/varissets/javascripts/templates/components/site-nav.emblem.erb +8 -0
- data/generica/app/varissets/javascripts/templates/components/taggable-field.emblem.erb +11 -0
- data/generica/app/varissets/javascripts/templates/modals/login.emblem.erb +36 -0
- data/generica/app/varissets/javascripts/templates/products.emblem.erb +4 -0
- data/generica/app/varissets/javascripts/templates/products/index.emblem.erb +17 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/_anonymous-form.emblem.erb +11 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/_offer-form.emblem.erb +55 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/new.emblem.erb +37 -0
- data/generica/app/varissets/javascripts/templates/products/product/show.emblem.erb +108 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_offers-overview.css.scss.erb +3 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_offers_overview.css.scss.erb +3 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_search-and-filter.css.scss.erb +15 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_site-footer.css.scss.erb +23 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_taggable-field.css.scss.erb +32 -0
- data/generica/app/views/apiv1/home/index.html.haml +3 -1
- data/generica/app/views/apiv1/layouts/application.html.haml +37 -2
- data/generica/config/{database.yml.erb → database.yml.str} +3 -3
- data/generica/config/email.yml +11 -0
- data/generica/config/email_slave.god +9 -0
- data/generica/config/initializers/premailer.rb +1 -0
- data/generica/config/initializers/squash.rb.erb +3 -0
- data/generica/config/nginx.conf.erb +4 -4
- data/generica/config/routes.rb +14 -0
- data/generica/db/migrate/20141114213427_add_user_rank_to_admin_users.rb +9 -0
- data/generica/db/migrate/20141114225019_create_apiv1_users_products.rb +9 -0
- data/generica/db/migrate/20141116053522_create_apiv1_offer_messages.rb +16 -0
- data/generica/db/migrate/20141116235011_add_deleted_at_to_apiv1_products.rb +5 -0
- data/generica/db/migrate/20141116235209_add_deleted_at_to_apiv1_offer_messages.rb +5 -0
- data/generica/db/migrate/20141116235651_add_deleted_at_to_apiv1_pictures.rb +5 -0
- data/generica/db/migrate/20141116235808_add_deleted_at_to_apiv1_attachments.rb +5 -0
- data/generica/db/migrate/20141127230304_create_apiv1_email_requests.rb +16 -0
- data/generica/db/migrate/20141127230455_create_apiv1_email_objects.rb +11 -0
- data/generica/lib/generica/assets_unretardifier.rb +32 -0
- data/generica/lib/generica/email_slave.rb +92 -0
- data/generica/lib/tasks/email_slave.rake +11 -0
- data/generica/lib/tasks/production.rake +1 -1
- data/generica/public/tests/bermese.jpg +0 -0
- data/generica/public/tests/chow.jpg +0 -0
- data/generica/public/tests/malamute.jpg +0 -0
- data/generica/public/tests/malamute2.JPG +0 -0
- data/generica/spec/controllers/apiv1/users/create_controller_spec.rb +17 -0
- data/generica/spec/controllers/users/products/create_controller_spec.rb +31 -0
- data/generica/spec/mailers/apiv1/aggregate_mailer_spec.rb +29 -0
- data/generica/spec/models/apiv1/email_request_spec.rb +4 -0
- data/generica/spec/models/apiv1/offer_postboy_spec.rb +22 -0
- data/generica/spec/models/apiv1/product_spec.rb +1 -0
- data/generica/spec/models/apiv1/products/offer_message_factory_spec.rb +37 -0
- data/generica/spec/models/apiv1/products_machine_spec.rb +77 -0
- data/generica/spec/models/apiv1/users/product_factory_spec.rb +47 -0
- data/generica/spec/models/users/products/offer_factory_spec.rb +38 -0
- data/generica/test/mailers/.keep +0 -0
- data/generica/test/mailers/previews/apiv1/aggregate_preview.rb +6 -0
- data/generica/test/mailers/previews/apiv1/notifications_preview.rb +5 -0
- data/lib/cloudrider.rb +1 -1
- data/lib/cloudrider/apiv1/base.rb +2 -2
- data/lib/cloudrider/apiv1/login_modal_emblem.rb +25 -0
- data/lib/cloudrider/apiv1/offers_anonymous_form_partial_emblem.rb +12 -0
- data/lib/cloudrider/apiv1/offers_new_emblem.rb +15 -0
- data/lib/cloudrider/apiv1/offers_overview_component.rb +8 -0
- data/lib/cloudrider/apiv1/offers_overview_sass.rb +8 -0
- data/lib/cloudrider/apiv1/product_show_emblem.rb +31 -0
- data/lib/cloudrider/apiv1/products_emblem.rb +11 -0
- data/lib/cloudrider/apiv1/products_index_emblem.rb +14 -0
- data/lib/cloudrider/apiv1/search_and_filter_component.rb +11 -0
- data/lib/cloudrider/apiv1/search_and_filter_sass.rb +11 -0
- data/lib/cloudrider/apiv1/site_footer_component.rb +7 -7
- data/lib/cloudrider/apiv1/site_footer_sass.rb +9 -0
- data/lib/cloudrider/application_commander.rb +46 -34
- data/lib/cloudrider/backend_commander.rb +15 -9
- data/lib/cloudrider/protofile.rb +18 -2
- data/lib/cloudrider/protosite.example.json +26 -0
- data/lib/cloudrider/protosite.rb +66 -0
- data/lib/cloudrider/serverside/base.rb +2 -2
- data/lib/cloudrider/serverside/database_yaml.rb +9 -4
- data/lib/cloudrider/serverside/nginx_conf.rb +7 -2
- data/lib/cloudrider/serverside/squash_ruby.rb +14 -0
- data/lib/cloudrider/serverside/unicorn_conf_ruby.rb +2 -1
- data/lib/cloudrider/version.rb +1 -1
- data/lib/cloudrider/web_firm.rb +16 -0
- data/lib/cloudrider/web_firm/component_architect.rb +23 -0
- data/lib/cloudrider/web_firm/page_designer.rb +13 -0
- data/lib/cloudrider/web_firm/project_lead.rb +30 -0
- data/lib/cloudrider/web_firm/scumbag_engineer.rb +40 -0
- data/lib/cloudrider/web_firm/support_intern.rb +113 -0
- data/lib/generators/cloudrider/server/server_generator.rb +4 -8
- data/lib/generators/cloudrider/website/website_generator.rb +25 -0
- data/spec/cloudrider/protosite_spec.rb +63 -0
- data/vanilla/.bowerrc +4 -0
- data/vanilla/.editorconfig +33 -0
- data/vanilla/.ember-cli +9 -0
- data/vanilla/.gitignore +17 -0
- data/vanilla/.jshintrc +32 -0
- data/vanilla/.travis.yml +16 -0
- data/vanilla/Brocfile.js +20 -0
- data/vanilla/README.md +51 -0
- data/vanilla/app/app.js +16 -0
- data/vanilla/app/components/.gitkeep +0 -0
- data/vanilla/app/controllers/.gitkeep +0 -0
- data/vanilla/app/controllers/admin.coffee +5 -0
- data/vanilla/app/helpers/.gitkeep +0 -0
- data/vanilla/app/index.html +21 -0
- data/vanilla/app/models/.gitkeep +0 -0
- data/vanilla/app/router.js +11 -0
- data/vanilla/app/routes/.gitkeep +0 -0
- data/vanilla/app/styles/.gitkeep +0 -0
- data/vanilla/app/styles/app.css +3 -0
- data/vanilla/app/templates/.gitkeep +0 -0
- data/vanilla/app/templates/application.hbs +3 -0
- data/vanilla/app/templates/components/.gitkeep +0 -0
- data/vanilla/app/views/.gitkeep +0 -0
- data/vanilla/bower.json +17 -0
- data/vanilla/config/environment.js +47 -0
- data/vanilla/package.json +39 -0
- data/vanilla/public/.gitkeep +0 -0
- data/vanilla/public/crossdomain.xml +15 -0
- data/vanilla/public/robots.txt +3 -0
- data/vanilla/testem.json +11 -0
- data/vanilla/tests/.jshintrc +74 -0
- data/vanilla/tests/helpers/resolver.js +11 -0
- data/vanilla/tests/helpers/start-app.js +25 -0
- data/vanilla/tests/index.html +45 -0
- data/vanilla/tests/test-helper.js +12 -0
- data/vanilla/tests/unit/.gitkeep +0 -0
- data/vanilla/tests/unit/controllers/admin-test.coffee +12 -0
- data/vanilla/vendor/.gitkeep +0 -0
- metadata +189 -5
- data/generica/app/views/layouts/application.html.erb +0 -14
- data/lib/cloudrider/master_context.rb +0 -105
@@ -1,6 +1,6 @@
|
|
1
1
|
class Cloudrider::Serverside::DatabaseYaml < Cloudrider::Serverside::Base
|
2
2
|
class Context
|
3
|
-
attr_accessor :
|
3
|
+
attr_accessor :project_name
|
4
4
|
end
|
5
5
|
private
|
6
6
|
def _file_name
|
@@ -8,9 +8,14 @@ class Cloudrider::Serverside::DatabaseYaml < Cloudrider::Serverside::Base
|
|
8
8
|
end
|
9
9
|
def _context
|
10
10
|
Context.new.tap do |c|
|
11
|
-
c.
|
12
|
-
c.project_name = @
|
11
|
+
c.project_name = @style.first if @style.present?
|
12
|
+
c.project_name = @protosite.project_name if @protosite.present?
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
def _template
|
16
|
+
@template ||= Tilt::StringTemplate.new _source
|
17
|
+
end
|
18
|
+
def _source_file
|
19
|
+
_file_name + ".str"
|
20
|
+
end
|
16
21
|
end
|
@@ -9,8 +9,13 @@ class Cloudrider::Serverside::NginxConf < Cloudrider::Serverside::Base
|
|
9
9
|
end
|
10
10
|
def _context
|
11
11
|
Context.new.tap do |c|
|
12
|
-
|
13
|
-
|
12
|
+
if @protosite.present?
|
13
|
+
c.web_urls = @protosite.domain_names
|
14
|
+
c.project_name = @protosite.project_name
|
15
|
+
else
|
16
|
+
c.web_urls = @style.tail
|
17
|
+
c.project_name = @style.first
|
18
|
+
end
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Cloudrider::Serverside::SquashRuby < Cloudrider::Serverside::Base
|
2
|
+
class Context
|
3
|
+
attr_accessor :api_key
|
4
|
+
end
|
5
|
+
private
|
6
|
+
def _file_name
|
7
|
+
"initializers/squash.rb"
|
8
|
+
end
|
9
|
+
def _context
|
10
|
+
Context.new.tap do |c|
|
11
|
+
c.api_key = @protosite.squash_api_key
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -10,7 +10,8 @@ class Cloudrider::Serverside::UnicornConfRuby < Cloudrider::Serverside::Base
|
|
10
10
|
|
11
11
|
def _context
|
12
12
|
Context.new.tap do |c|
|
13
|
-
c.project_name = @style.
|
13
|
+
c.project_name = @style.first if @style.present?
|
14
|
+
c.project_name = @protosite.project_name if @protosite.present?
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
data/lib/cloudrider/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
Dir[File.join(__dir__, "*.rb")].each { |f| require f }
|
2
|
+
module Cloudrider
|
3
|
+
module WebFirm
|
4
|
+
class Slave
|
5
|
+
def initialize(protosite)
|
6
|
+
@protosite = protosite
|
7
|
+
end
|
8
|
+
end
|
9
|
+
Dir[File.join(__dir__, "web_firm", "*.rb")].each { |f| require f }
|
10
|
+
class << self
|
11
|
+
def make_me_a_fucking_website_you_shit(protosite)
|
12
|
+
Cloudrider::WebFirm::ProjectLead.new(protosite).protofiles
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class Cloudrider::WebFirm::ComponentArchitect < Cloudrider::WebFirm::Slave
|
2
|
+
def protofiles
|
3
|
+
_component_protofiles + _standardized_component_protofiles
|
4
|
+
end
|
5
|
+
|
6
|
+
private
|
7
|
+
def _component_names
|
8
|
+
@protosite.pages.map(&:components).flatten.uniq
|
9
|
+
end
|
10
|
+
def _component_protofiles
|
11
|
+
_component_names.map do |name|
|
12
|
+
_v name: name, protosite: @protosite
|
13
|
+
end.flatten
|
14
|
+
end
|
15
|
+
def _standardized_component_protofiles
|
16
|
+
["site-nav", "site-footer"].map do |name|
|
17
|
+
_v name: name, protosite: @protosite
|
18
|
+
end.flatten
|
19
|
+
end
|
20
|
+
def _v(opts={})
|
21
|
+
Cloudrider::ApplicationCommander.varisset_protofiles_for opts
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Cloudrider::WebFirm::PageDesigner < Cloudrider::WebFirm::Slave
|
2
|
+
|
3
|
+
def protofiles
|
4
|
+
_page_names.map do |name|
|
5
|
+
Cloudrider::ApplicationCommander.varisset_protofiles_for name: name, protosite: @protosite
|
6
|
+
end.flatten
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def _page_names
|
11
|
+
@protosite.pages.map(&:name)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class Cloudrider::WebFirm::ProjectLead < Cloudrider::WebFirm::Slave
|
2
|
+
|
3
|
+
def protofiles
|
4
|
+
_constant_protofiles + _dynamic_protofiles
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
def _engineer
|
9
|
+
@engineer ||= Cloudrider::WebFirm::ScumbagEngineer.new(@protosite)
|
10
|
+
end
|
11
|
+
def _constant_protofiles
|
12
|
+
_engineer.protofiles
|
13
|
+
end
|
14
|
+
|
15
|
+
def _dynamic_protofiles
|
16
|
+
_always_needed_protofiles + _page_protofiles + _component_protofiles
|
17
|
+
end
|
18
|
+
|
19
|
+
def _always_needed_protofiles
|
20
|
+
Cloudrider::WebFirm::SupportIntern.new(@protosite).protofiles
|
21
|
+
end
|
22
|
+
|
23
|
+
def _page_protofiles
|
24
|
+
Cloudrider::WebFirm::PageDesigner.new(@protosite).protofiles
|
25
|
+
end
|
26
|
+
|
27
|
+
def _component_protofiles
|
28
|
+
Cloudrider::WebFirm::ComponentArchitect.new(@protosite).protofiles
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class Cloudrider::WebFirm::ScumbagEngineer < Cloudrider::WebFirm::Slave
|
2
|
+
|
3
|
+
def protofiles
|
4
|
+
_copy_file "bower.json", "bower.json"
|
5
|
+
_copy_file ".bowerrc", ".bowerrc"
|
6
|
+
_directory "app/models", "app/models"
|
7
|
+
_directory "app/controllers", "app/controllers"
|
8
|
+
_directory "app/views", "app/views"
|
9
|
+
_directory "spec", "spec"
|
10
|
+
_directory "db/seeds", "db/seeds"
|
11
|
+
_directory "lib/tasks", "lib/tasks"
|
12
|
+
_directory "lib/generica", "lib/generica"
|
13
|
+
_copy_file "lib/generica.rb", "lib/generica.rb"
|
14
|
+
_copy_file "config/desired_languages.yml", "config/desired_languages.yml"
|
15
|
+
_copy_file ".rspec", ".rspec"
|
16
|
+
_directory "public/tests", "public/tests"
|
17
|
+
_copy_file "config/routes.rb", "config/routes.rb"
|
18
|
+
_copy_file "config/initializers/sorcery.rb", "config/initializers/sorcery.rb"
|
19
|
+
_copy_file "config/initializers/i18n_backend.rb", "config/initializers/i18n_backend.rb"
|
20
|
+
_copy_file "Gemfile", "Gemfile"
|
21
|
+
_copy_file ".gitignore", ".gitignore"
|
22
|
+
_directory "test", "test"
|
23
|
+
_push_protofile *_backend_commander.files_to_write
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
def _backend_commander
|
28
|
+
@backend_commander ||= Cloudrider::BackendCommander.new name: "configs", protosite: @protosite
|
29
|
+
end
|
30
|
+
def _copy_file(source, target)
|
31
|
+
_push_protofile Cloudrider::Protofile.new(type: :copy_file, source: source, target: target)
|
32
|
+
end
|
33
|
+
def _directory(source, target)
|
34
|
+
_push_protofile Cloudrider::Protofile.new(type: :directory, source: source, target: target)
|
35
|
+
end
|
36
|
+
def _push_protofile(*protofiles)
|
37
|
+
@protofiles ||= []
|
38
|
+
@protofiles += protofiles
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
class Cloudrider::WebFirm::SupportIntern < Cloudrider::WebFirm::Slave
|
2
|
+
|
3
|
+
def protofiles
|
4
|
+
_copy_config_files
|
5
|
+
_copy_support_folders
|
6
|
+
_copy_support_styles
|
7
|
+
_copy_static_style_folders
|
8
|
+
_copy_asset_images
|
9
|
+
_copy_static_components
|
10
|
+
_copy_static_pages
|
11
|
+
_copy_static_component_styles
|
12
|
+
_copy_admin_templates
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def _copy_file(source, target)
|
17
|
+
_push_protofile Cloudrider::Protofile.new(type: :copy_file, source: source, target: target)
|
18
|
+
end
|
19
|
+
def _directory(source, target)
|
20
|
+
_push_protofile Cloudrider::Protofile.new(type: :directory, source: source, target: target)
|
21
|
+
end
|
22
|
+
def _push_protofile(*protofiles)
|
23
|
+
@protofiles ||= []
|
24
|
+
@protofiles += protofiles
|
25
|
+
end
|
26
|
+
def _copy_admin_templates
|
27
|
+
_directory "app/assets/javascripts/templates/admin", "app/assets/javascripts/templates/admin"
|
28
|
+
end
|
29
|
+
def _copy_asset_images
|
30
|
+
_directory "app/assets/images", "app/assets/images"
|
31
|
+
end
|
32
|
+
def _copy_config_files
|
33
|
+
["apiv1.js.ls", "application.js"].each do |file|
|
34
|
+
_copy_file "app/assets/javascripts/#{file}", "app/assets/javascripts/#{file}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
def _copy_support_folders
|
38
|
+
[
|
39
|
+
"adapters",
|
40
|
+
"components",
|
41
|
+
"config",
|
42
|
+
"controllers",
|
43
|
+
"helpers",
|
44
|
+
"mixins",
|
45
|
+
"models",
|
46
|
+
"packages",
|
47
|
+
"routes",
|
48
|
+
"transforms",
|
49
|
+
"views",
|
50
|
+
"templates/modals"
|
51
|
+
].each do |folder|
|
52
|
+
_directory "app/assets/javascripts/#{folder}", "app/assets/javascripts/#{folder}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
def _copy_support_styles
|
56
|
+
[
|
57
|
+
"application.css",
|
58
|
+
"apiv1.css.scss",
|
59
|
+
"foundation_and_overrides.scss",
|
60
|
+
"apiv1/_admin.css.scss"
|
61
|
+
].each do |file|
|
62
|
+
_copy_file "app/assets/stylesheets/#{file}", "app/assets/stylesheets/#{file}"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
def _copy_static_style_folders
|
66
|
+
["admin", "shared", "modals"].each do |folder|
|
67
|
+
_directory "app/assets/stylesheets/apiv1/#{folder}", "app/assets/stylesheets/apiv1/#{folder}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
def _copy_static_components
|
71
|
+
[
|
72
|
+
"tr-span",
|
73
|
+
"fancy-paginator",
|
74
|
+
"form-for",
|
75
|
+
"flash-message",
|
76
|
+
"block-grid-pictures",
|
77
|
+
"block-picture",
|
78
|
+
"flash-slice",
|
79
|
+
"promise-button",
|
80
|
+
"select-locale",
|
81
|
+
"tree-taxon-li",
|
82
|
+
"tree-taxon-ul",
|
83
|
+
"preload-billboard",
|
84
|
+
"tree-taxon-wrapper",
|
85
|
+
"pictures-group",
|
86
|
+
"picture-chunk",
|
87
|
+
"offers-summary"
|
88
|
+
].each do |component|
|
89
|
+
_copy_file "app/assets/javascripts/templates/components/#{component}.emblem", "app/assets/javascripts/templates/components/#{component}.emblem"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
def _copy_static_pages
|
93
|
+
["admin"].each do |file|
|
94
|
+
_copy_file "app/assets/javascripts/templates/#{file}.emblem", "app/assets/javascripts/templates/#{file}.emblem"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
def _copy_static_component_styles
|
98
|
+
[
|
99
|
+
"block-grid-pictures",
|
100
|
+
"fancy-paginator",
|
101
|
+
"files-field",
|
102
|
+
"flash-message",
|
103
|
+
"promise-button",
|
104
|
+
"select-locale",
|
105
|
+
"type-ahead",
|
106
|
+
"preload-billboard",
|
107
|
+
"tree-taxon-wrapper",
|
108
|
+
"pictures-group",
|
109
|
+
"offers-summary"].each do |file|
|
110
|
+
_copy_file "app/assets/stylesheets/apiv1/components/_#{file}.css.scss", "app/assets/stylesheets/apiv1/components/_#{file}.css.scss"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -5,6 +5,8 @@ class Cloudrider::Generators::ServerGenerator < Rails::Generators::NamedBase
|
|
5
5
|
|
6
6
|
desc "Generates backend server rubies and conf files and puts them into their right places.
|
7
7
|
Known backend files are: #{Cloudrider::BackendCommander::KnownBackends}"
|
8
|
+
|
9
|
+
argument :project_specs, type: :array, default: ["cloudrider", "cloudrider.com"]
|
8
10
|
def create_the_variable_files
|
9
11
|
_selective_backend_rubies
|
10
12
|
end
|
@@ -13,17 +15,11 @@ class Cloudrider::Generators::ServerGenerator < Rails::Generators::NamedBase
|
|
13
15
|
Cloudrider::BackendCommander.backend_ruby_protofiles_for(_backend_ruby_opts).each do |protofile|
|
14
16
|
create_file protofile.full_name, protofile.content
|
15
17
|
end
|
16
|
-
end
|
18
|
+
end
|
17
19
|
def _all_backend_rubies?
|
18
20
|
_backend_ruby_name == "all"
|
19
21
|
end
|
20
22
|
def _backend_ruby_opts
|
21
|
-
{ name:
|
22
|
-
end
|
23
|
-
def _backend_ruby_name
|
24
|
-
name.split(":").first
|
25
|
-
end
|
26
|
-
def _backend_ruby_style
|
27
|
-
name.split(":").second
|
23
|
+
{ name: name, style: project_specs }
|
28
24
|
end
|
29
25
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "cloudrider/web_firm"
|
2
|
+
module Cloudrider::Generators; end
|
3
|
+
class Cloudrider::Generators::WebsiteGenerator < Rails::Generators::NamedBase
|
4
|
+
source_root File.expand_path "../../../../../generica", __FILE__
|
5
|
+
desc "Builds a website when given a json file specifying the desired functionalities and such"
|
6
|
+
def create_the_variable_files
|
7
|
+
_protofiles.each do |protofile|
|
8
|
+
case protofile.type.to_s
|
9
|
+
when "copy_file"
|
10
|
+
copy_file protofile.source, protofile.target
|
11
|
+
when "directory"
|
12
|
+
directory protofile.source, protofile.target
|
13
|
+
else
|
14
|
+
create_file protofile.full_name, protofile.content
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
private
|
19
|
+
def _protofiles
|
20
|
+
Cloudrider::WebFirm.make_me_a_fucking_website_you_shit(_protosite)
|
21
|
+
end
|
22
|
+
def _protosite
|
23
|
+
Cloudrider::Protosite.from_hash JSON.parse File.read name
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Cloudrider::Protosite do
|
4
|
+
before do
|
5
|
+
@hash = {
|
6
|
+
project_name: "craigslist inspired market",
|
7
|
+
domain_names: ['www.craigslist-clone.com', 'craigslist-clone.com'],
|
8
|
+
pages: [
|
9
|
+
{
|
10
|
+
name: :index,
|
11
|
+
components: ["products-showcase", "product-display", "search-and-filter"]
|
12
|
+
},
|
13
|
+
{
|
14
|
+
name: :products_index,
|
15
|
+
components: ["produts-catalog", "product-listing", "search-and-filter"]
|
16
|
+
},
|
17
|
+
{
|
18
|
+
name: :product_show,
|
19
|
+
components: ["offers-overview"]
|
20
|
+
},
|
21
|
+
{
|
22
|
+
name: :offers_new,
|
23
|
+
components: []
|
24
|
+
}
|
25
|
+
],
|
26
|
+
functionalities: [:admin_panel, :user_accounts, :offerable_products, :categorizable_products],
|
27
|
+
theme: :craigslist,
|
28
|
+
layout: "mixed-width, hero-narrow"
|
29
|
+
}
|
30
|
+
@json = JSON.parse @hash.to_json
|
31
|
+
end
|
32
|
+
let(:protosite) { described_class.from_hash @hash }
|
33
|
+
let(:shitsite) { described_class.from_hash @json }
|
34
|
+
context "sanity" do
|
35
|
+
subject { Cloudrider::Protosite }
|
36
|
+
specify { should be_a Class }
|
37
|
+
end
|
38
|
+
|
39
|
+
context '#pages' do
|
40
|
+
subject { protosite.pages.count }
|
41
|
+
specify { should eq 4 }
|
42
|
+
end
|
43
|
+
|
44
|
+
context '#project_name' do
|
45
|
+
subject { protosite.project_name }
|
46
|
+
specify { should eq @hash[:project_name] }
|
47
|
+
end
|
48
|
+
|
49
|
+
context '#domain_names' do
|
50
|
+
subject { protosite.domain_names }
|
51
|
+
specify { should eq @hash[:domain_names] }
|
52
|
+
end
|
53
|
+
|
54
|
+
context '#project_name' do
|
55
|
+
subject { shitsite.project_name }
|
56
|
+
specify { should eq @hash[:project_name] }
|
57
|
+
end
|
58
|
+
|
59
|
+
context '#domain_names' do
|
60
|
+
subject { shitsite.domain_names }
|
61
|
+
specify { should eq @hash[:domain_names] }
|
62
|
+
end
|
63
|
+
end
|