cloudrider 0.2.18 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e41c6343e7641401018d24952562fa960a92ba9
4
- data.tar.gz: d1adcf123c3c0a9ee959d6f61f95a0582f06a5aa
3
+ metadata.gz: 9d4b94ed61a707034b8ccd0c682b2f68462344f4
4
+ data.tar.gz: 131dcbeb5d47dae64d81868ead5f1e6ee50c27d8
5
5
  SHA512:
6
- metadata.gz: e775b979c9366483f9ca798146882f4272b8b181d5bf591ded6bc002116c1157997a1e2e85d13d1195813adc607a08b6d64367d45e43d0f6c3ad9ecd9774aa9e
7
- data.tar.gz: bc893c4728d8b3f0cf07d32dbf31962dc903147bc1a79ec30601e26b6e9e662a147e16e9f94a2da660162d6bcbaa949d1fa1a51b4eae9cf992fe2692058ee80d
6
+ metadata.gz: 46ed9888ae4259ad837a82707cc9916058dbe1f4592be93daba3e78d7b7d2aeb4a0b7905c74bf1113b87c4572b186b65f58135e1f650a2b6956a2de2120028a0
7
+ data.tar.gz: c66088abfe37ef2e1bdc459a8c940ea642ae69862222ada8de414e8c492493f3af6fb7674ae7047238039c8d1068990055a98ca69805a3f1f53b87bd6600f92a
@@ -0,0 +1,36 @@
1
+ upstream app {
2
+ server unix:/home/ia/workspace/<%= project_name %>/tmp/sockets/unicorn.<%= project_name %>.sock fail_timeout=0;
3
+ }
4
+ server {
5
+ listen 80;
6
+ server_name <%= web_urls.join " " %>;
7
+
8
+ keepalive_timeout 5;
9
+ root /home/ia/workspace/<%= project_name %>/public;
10
+ access_log /home/ia/workspace/<%= project_name %>/log/access.log;
11
+ error_log off;
12
+
13
+ location ~ ^/(assets)/ {
14
+ gzip_static on;
15
+ expires max;
16
+ add_header Cache-Control public;
17
+ }
18
+
19
+ location / {
20
+ try_files $uri/index.html $uri.html $uri @app;
21
+ error_page 404 /404.html;
22
+ error_page 422 /422.html;
23
+ error_page 500 502 503 504 /500.html;
24
+ error_page 403 /403.html;
25
+ }
26
+
27
+ location @app {
28
+ proxy_pass http://app;
29
+ }
30
+
31
+ location = /favicon.ico {
32
+ expires max;
33
+ add_header Cache-Control public;
34
+ }
35
+
36
+ }
@@ -0,0 +1,101 @@
1
+ # Sample verbose configuration file for Unicorn (not Rack)
2
+ #
3
+ # This configuration file documents many features of Unicorn
4
+ # that may not be needed for some applications. See
5
+ # http://unicorn.bogomips.org/examples/unicorn.conf.minimal.rb
6
+ # for a much simpler configuration file.
7
+ #
8
+ # See http://unicorn.bogomips.org/Unicorn/Configurator.html for complete
9
+ # documentation.
10
+
11
+ # Use at least one worker per core if you're on a dedicated server,
12
+ # more will usually help for _short_ waits on databases/caches.
13
+ worker_processes 4
14
+
15
+ # Since Unicorn is never exposed to outside clients, it does not need to
16
+ # run on the standard HTTP port (80), there is no reason to start Unicorn
17
+ # as root unless it's from system init scripts.
18
+ # If running the master process as root and the workers as an unprivileged
19
+ # user, do this to switch euid/egid in the workers (also chowns logs):
20
+ # user "unprivileged_user", "unprivileged_group"
21
+
22
+ # Help ensure your application will always spawn in the symlinked
23
+ # "current" directory that Capistrano sets up.
24
+ working_directory "/home/ia/workspace/<%= project_name %>" # available in 0.94.0+
25
+
26
+ # listen on both a Unix domain socket and a TCP port,
27
+ # we use a shorter backlog for quicker failover when busy
28
+ listen "/home/ia/workspace/<%= project_name %>/tmp/sockets/unicorn.<%= project_name %>.sock", :backlog => 64
29
+
30
+ # nuke workers after 30 seconds instead of 60 seconds (the default)
31
+ timeout 30
32
+
33
+ # feel free to point this anywhere accessible on the filesystem
34
+ pid "/home/ia/workspace/<%= project_name %>/tmp/pids/unicorn.pid"
35
+
36
+ # By default, the Unicorn logger will write to stderr.
37
+ # Additionally, ome applications/frameworks log to stderr or stdout,
38
+ # so prevent them from going to /dev/null when daemonized here:
39
+ stderr_path "/home/ia/workspace/<%= project_name %>/log/unicorn.stderr.log"
40
+ stdout_path "/home/ia/workspace/<%= project_name %>/log/unicorn.stdout.log"
41
+
42
+ # combine Ruby 2.0.0dev or REE with "preload_app true" for memory savings
43
+ # http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
44
+ preload_app true
45
+ GC.respond_to?(:copy_on_write_friendly=) and
46
+ GC.copy_on_write_friendly = true
47
+
48
+ # Enable this flag to have unicorn test client connections by writing the
49
+ # beginning of the HTTP headers before calling the application. This
50
+ # prevents calling the application for connections that have disconnected
51
+ # while queued. This is only guaranteed to detect clients on the same
52
+ # host unicorn runs on, and unlikely to detect disconnects even on a
53
+ # fast LAN.
54
+ check_client_connection false
55
+
56
+ before_fork do |server, worker|
57
+ # the following is highly recomended for Rails + "preload_app true"
58
+ # as there's no need for the master process to hold a connection
59
+ defined?(ActiveRecord::Base) and
60
+ ActiveRecord::Base.connection.disconnect!
61
+
62
+ # The following is only recommended for memory/DB-constrained
63
+ # installations. It is not needed if your system can house
64
+ # twice as many worker_processes as you have configured.
65
+ #
66
+ # # This allows a new master process to incrementally
67
+ # # phase out the old master process with SIGTTOU to avoid a
68
+ # # thundering herd (especially in the "preload_app false" case)
69
+ # # when doing a transparent upgrade. The last worker spawned
70
+ # # will then kill off the old master process with a SIGQUIT.
71
+ # old_pid = "#{server.config[:pid]}.oldbin"
72
+ # if old_pid != server.pid
73
+ # begin
74
+ # sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
75
+ # Process.kill(sig, File.read(old_pid).to_i)
76
+ # rescue Errno::ENOENT, Errno::ESRCH
77
+ # end
78
+ # end
79
+ #
80
+ # Throttle the master from forking too quickly by sleeping. Due
81
+ # to the implementation of standard Unix signal handlers, this
82
+ # helps (but does not completely) prevent identical, repeated signals
83
+ # from being lost when the receiving process is busy.
84
+ # sleep 1
85
+ end
86
+
87
+ after_fork do |server, worker|
88
+ # per-process listener ports for debugging/admin/migrations
89
+ # addr = "127.0.0.1:#{9293 + worker.nr}"
90
+ # server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true)
91
+
92
+ # the following is *required* for Rails + "preload_app true",
93
+ defined?(ActiveRecord::Base) and
94
+ ActiveRecord::Base.establish_connection
95
+
96
+ # if preload_app is true, then you may also want to check and
97
+ # restart any other shared sockets/descriptors such as Memcached,
98
+ # and Redis. TokyoCabinet file handles are safe to reuse
99
+ # between any number of forked children (assuming your kernel
100
+ # correctly implements pread()/pwrite() system calls)
101
+ end
@@ -0,0 +1,55 @@
1
+ require "cloudrider/serverside"
2
+ require "cloudrider/protofile"
3
+ module Cloudrider; end
4
+ class Cloudrider::BackendCommander
5
+ class UnknownOrUnimplmenetedVarisset < StandardError; end
6
+ class << self
7
+ def backend_ruby_protofiles_for(params)
8
+ new(params).files_to_write
9
+ end
10
+ end
11
+
12
+ def initialize(params)
13
+ @params = params
14
+ end
15
+
16
+ def files_to_write
17
+ _related_backends.flatten.map { |ac| ac.new _backend_style }.map(&:protofile)
18
+ end
19
+ private
20
+ def _nginx
21
+ [Cloudrider::Serverside::NginxConf]
22
+ end
23
+ def _unicorn
24
+ [Cloudrider::Serverside::UnicornConfRuby]
25
+ end
26
+ def _database
27
+ [Cloudrider::Serverside::DatabaseYaml]
28
+ end
29
+ def _related_backends
30
+ case _backend_name
31
+ when "admin"
32
+ when "user"
33
+ when "employee"
34
+ when "product"
35
+ when "offer"
36
+ when "message"
37
+ when "taxon"
38
+ when "nginx"
39
+ _nginx
40
+ when "unicorn"
41
+ _unicorn
42
+ when "database"
43
+ _database
44
+ else
45
+ raise UnknownOrUnimplmenetedVarisset, _backend_name
46
+ end
47
+ end
48
+ def _backend_style
49
+ @params[:style]
50
+ end
51
+ def _backend_name
52
+ @params[:name]
53
+ end
54
+ KnownBackends = ["admin", "user", "employee", "product", "offer", "message", "taxon", "nginx", "unicorn", "database"]
55
+ end
@@ -0,0 +1,16 @@
1
+ require "tilt"
2
+ require "erb"
3
+ require 'active_support'
4
+ require "active_support/core_ext"
5
+ require "functional_support"
6
+ module Cloudrider; end
7
+ module Cloudrider::Serverside
8
+ require File.join(__dir__, "serverside", "base.rb")
9
+ Dir[File.join(__dir__, "serverside", "*.rb")].each { |f| require f }
10
+
11
+ class << self
12
+ def source_root
13
+ File.expand_path "../../../generica", __FILE__
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,34 @@
1
+ class Cloudrider::Serverside::Base
2
+ def initialize(style=nil)
3
+ @style = style.to_s
4
+ end
5
+ def protofile
6
+ Cloudrider::Protofile.new.tap do |p|
7
+ p.file_name = _file_name
8
+ p.folder = _folder
9
+ p.renderer = _renderer
10
+ end
11
+ end
12
+ private
13
+ def _file_name
14
+ throw "not implemented"
15
+ end
16
+ def _folder
17
+ "config"
18
+ end
19
+ def _renderer
20
+ -> { _template.render _context }
21
+ end
22
+ def _template
23
+ @template ||= Tilt::ERBTemplate.new _source
24
+ end
25
+ def _source
26
+ File.join Cloudrider::Serverside.source_root, _source_folder, _source_file
27
+ end
28
+ def _source_folder
29
+ "config"
30
+ end
31
+ def _source_file
32
+ _file_name + ".erb"
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ class Cloudrider::Serverside::DatabaseYaml < Cloudrider::Serverside::Base
2
+ class Context
3
+ attr_accessor :web_urls, :project_name
4
+ end
5
+ private
6
+ def _file_name
7
+ "database.yml"
8
+ end
9
+ def _context
10
+ Context.new.tap do |c|
11
+ c.web_urls = @style.split(" ").tail
12
+ c.project_name = @style.split(" ").first
13
+ end
14
+ end
15
+
16
+ end
@@ -0,0 +1,16 @@
1
+ class Cloudrider::Serverside::NginxConf < Cloudrider::Serverside::Base
2
+ class Context
3
+ attr_accessor :web_urls, :project_name
4
+ end
5
+
6
+ private
7
+ def _file_name
8
+ "nginx.conf"
9
+ end
10
+ def _context
11
+ Context.new.tap do |c|
12
+ c.web_urls = @style.split(" ").tail
13
+ c.project_name = @style.split(" ").first
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ class Cloudrider::Serverside::UnicornConfRuby < Cloudrider::Serverside::Base
2
+ class Context
3
+ attr_accessor :project_name
4
+ end
5
+
6
+ private
7
+ def _file_name
8
+ "unicorn.conf.rb"
9
+ end
10
+
11
+ def _context
12
+ Context.new.tap do |c|
13
+ c.project_name = @style.split(" ").first
14
+ end
15
+ end
16
+
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Cloudrider
2
- VERSION = "0.2.18"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -48,7 +48,8 @@ class Cloudrider::Generators::ClientGenerator < Rails::Generators::Base
48
48
  "models",
49
49
  "packages",
50
50
  "routes",
51
- "transforms",
51
+ "transforms",
52
+ "templates/products",
52
53
  "views"
53
54
  ].each do |folder|
54
55
  directory "app/assets/javascripts/#{folder}", "app/assets/javascripts/#{folder}"
@@ -0,0 +1,29 @@
1
+ require "cloudrider/backend_commander"
2
+
3
+ module Cloudrider::Generators; end
4
+ class Cloudrider::Generators::ServerGenerator < Rails::Generators::NamedBase
5
+
6
+ desc "Generates backend server rubies and conf files and puts them into their right places.
7
+ Known backend files are: #{Cloudrider::BackendCommander::KnownBackends}"
8
+ def create_the_variable_files
9
+ _selective_backend_rubies
10
+ end
11
+ private
12
+ def _selective_backend_rubies
13
+ Cloudrider::BackendCommander.backend_ruby_protofiles_for(_backend_ruby_opts).each do |protofile|
14
+ create_file protofile.full_name, protofile.content
15
+ end
16
+ end
17
+ def _all_backend_rubies?
18
+ _backend_ruby_name == "all"
19
+ end
20
+ def _backend_ruby_opts
21
+ { name: _backend_ruby_name, style: _backend_ruby_style }
22
+ end
23
+ def _backend_ruby_name
24
+ name.split(":").first
25
+ end
26
+ def _backend_ruby_style
27
+ name.split(":").second
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudrider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.18
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Chen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-13 00:00:00.000000000 Z
11
+ date: 2014-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -446,9 +446,11 @@ files:
446
446
  - generica/config/initializers/sorcery.rb
447
447
  - generica/config/initializers/wrap_parameters.rb
448
448
  - generica/config/nginx.conf
449
+ - generica/config/nginx.conf.erb
449
450
  - generica/config/routes.rb
450
451
  - generica/config/secrets.yml
451
452
  - generica/config/unicorn.conf.rb
453
+ - generica/config/unicorn.conf.rb.erb
452
454
  - generica/db/migrate/20140930052333_create_apiv1_taxons.rb
453
455
  - generica/db/migrate/20140930052559_create_apiv1_listings_plastics.rb
454
456
  - generica/db/migrate/20140930180107_create_apiv1_pictures.rb
@@ -556,14 +558,20 @@ files:
556
558
  - lib/cloudrider/apiv1/table_booths_component.rb
557
559
  - lib/cloudrider/apiv1/table_booths_sass.rb
558
560
  - lib/cloudrider/application_commander.rb
561
+ - lib/cloudrider/backend_commander.rb
559
562
  - lib/cloudrider/master_context.rb
560
563
  - lib/cloudrider/protofile.rb
561
- - lib/cloudrider/templates/application.emblem.erb
564
+ - lib/cloudrider/serverside.rb
565
+ - lib/cloudrider/serverside/base.rb
566
+ - lib/cloudrider/serverside/database_yaml.rb
567
+ - lib/cloudrider/serverside/nginx_conf.rb
568
+ - lib/cloudrider/serverside/unicorn_conf_ruby.rb
562
569
  - lib/cloudrider/version.rb
563
570
  - lib/generators/cloudrider/USAGE
564
571
  - lib/generators/cloudrider/backend/backend_generator.rb
565
572
  - lib/generators/cloudrider/client/client_generator.rb
566
573
  - lib/generators/cloudrider/migrations/migrations_generator.rb
574
+ - lib/generators/cloudrider/server/server_generator.rb
567
575
  - lib/generators/cloudrider/varissets/varissets_generator.rb
568
576
  - spec/cloudrider/apiv1_base_spec.rb
569
577
  - spec/cloudrider/apiv1_spec.rb
@@ -1,28 +0,0 @@
1
- .application-container.toggle-shift.shifted
2
- <% if top_nav? %>
3
- #canvas-menu-top
4
- site-nav
5
- #page-wrapper
6
- .site-content
7
- .not-site-footer
8
- == outlet
9
- site-footer action="displayModal"
10
-
11
- <% else %>
12
- #canvas-menu-left
13
- site-nav
14
- #page-wrapper
15
- .small-time-header.hide-for-large-up.pointer click=toggleCanvasShift
16
- i.fa.fa-bars.fa-3x
17
- .site-content
18
- .not-site-footer
19
- == outlet
20
- site-footer action="displayModal"
21
- <% end %>
22
- #fixed-bottom
23
- .row
24
- flash-message
25
-
26
- .modal-background
27
- .modal-vertical-container
28
- == outlet "modal"