cloudrider 0.2.18 → 0.3.0

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 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"