appril 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/appril.gemspec +2 -2
  4. data/boilerplate/app/Gemfile +1 -0
  5. data/boilerplate/app/base/api/base_controller.rb +21 -0
  6. data/boilerplate/app/base/api/index/client.coffee +4 -0
  7. data/boilerplate/app/base/api/index/layout.html +3 -0
  8. data/boilerplate/app/base/api/index/server.rb +3 -0
  9. data/boilerplate/app/base/core.coffee +1 -1
  10. data/boilerplate/app/base/helpers/application_helpers.rb +3 -0
  11. data/boilerplate/app/base/templates/{layout.html → layout.liquid} +2 -2
  12. data/boilerplate/app/core/Gemfile +1 -1
  13. data/boilerplate/app/core/load.rb +8 -1
  14. data/boilerplate/app/core/load_controllers.rb +6 -7
  15. data/boilerplate/app/generators/api/client.coffee +4 -0
  16. data/boilerplate/app/generators/api/layout.html +0 -0
  17. data/boilerplate/app/generators/api/server.rb +3 -0
  18. data/boilerplate/app/package.json +5 -1
  19. data/boilerplate/app/webpack.config.js +14 -11
  20. data/boilerplate/crudle/Gemfile +1 -0
  21. data/boilerplate/crudle/base/core.coffee +5 -5
  22. data/boilerplate/crudle/base/templates/menu.html +3 -0
  23. data/boilerplate/crudle/package.json +7 -1
  24. data/boilerplate/crudle/webpack.config.js +54 -0
  25. data/lib/appril/version.rb +1 -1
  26. data/lib/appril.rb +1 -1
  27. metadata +19 -11
  28. data/boilerplate/app/base/base_controller.rb +0 -3
  29. data/boilerplate/app/base/load_controllers.rb +0 -2
  30. /data/boilerplate/app/base/{rtcp_controller.rb → api/rtcp_controller.rb} +0 -0
  31. /data/boilerplate/app/base/{api/.ignore → assets/styles.css} +0 -0
  32. /data/boilerplate/app/{generators/api/.ignore → base/models/base_model.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6cfd0738ee38c9557e639943e0d384167018d942
4
- data.tar.gz: 0eb8f64b480c7fe5ebfadefac6e1c34791392840
3
+ metadata.gz: 264e829d4ca44c9bb4e110f4f1e8685714c98289
4
+ data.tar.gz: 7ac85ae6496b3376aa5836926c79e4ff79e332b6
5
5
  SHA512:
6
- metadata.gz: 2707744851d065f95808f7552a8618d162643c590661010ec919ce583d1742c416848074dbeac45d376f52e03019707399b2b294855f7e60920777d625e764e7
7
- data.tar.gz: a3692719263760da21a28769f28fc6622186ba2d4a4ffc17d07def45ebff64650c420a332b19f83b8b38cd6b8f5b13c5585b9ba822c2e46da01c34cc3da99ac1
6
+ metadata.gz: 37518568d6fda073d37112fc012c054e5c68c3b00a49e864c96f218ca4e43839f60f9b52596f5d7c89fe1a7047649773bfff34bdd4f24f019069c8fe9e3be872
7
+ data.tar.gz: d1a9c85eef9e3249f0b417e77f3e9bfc623f91ef89324bd311cc06e9702c5eadbf28545b0d96fdc0dde76eeba9d83cef453df546d660cc52e815f8e8691dfefb
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ pkg
2
+ *.gem
data/appril.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.email = ['mail@sleewoo.com']
9
9
  spec.summary = [spec.name, spec.version]*'-',
10
10
  spec.description = 'Opinionated framework for building opinionated web applications'
11
- spec.homepage = 'https://github.com/appril/' + spec.name
11
+ spec.homepage = 'https://github.com/appril/ruby-server'
12
12
  spec.license = 'MIT'
13
13
 
14
14
  spec.files = Dir['**/{*,.[a-z]*}'].reject {|e| e =~ /(gem|lock)\z/}
@@ -17,6 +17,6 @@ Gem::Specification.new do |spec|
17
17
 
18
18
  spec.required_ruby_version = '~> 2.0'
19
19
 
20
- spec.add_runtime_dependency 'rocketio', '~> 0'
20
+ spec.add_runtime_dependency 'rocketio', '~> 0.0.8'
21
21
  spec.add_runtime_dependency 'tubesock', '~> 0'
22
22
  end
@@ -3,3 +3,4 @@ source 'https://rubygems.org'
3
3
  eval File.read(File.expand_path('../core/Gemfile', __FILE__))
4
4
 
5
5
  # add your gems here
6
+ gem 'liquid', '~> 3'
@@ -0,0 +1,21 @@
1
+ class BaseController < Appril::BaseController
2
+ include Helpers
3
+
4
+ map Cfg.server_url
5
+
6
+ define_layout :layout, file: '../templates/layout'
7
+ layout :layout
8
+ engine :Liquid
9
+ define_template(:get) {''}
10
+ define_template_var(:client_url, Cfg.client_url)
11
+
12
+ def get
13
+ render
14
+ end
15
+
16
+ error 500 do |e|
17
+ puts "\e[0;31m%s\e[0m" % e.inspect
18
+ e.backtrace && e.backtrace.each {|l| puts " \e[0;36m%s\e[0m" % l}
19
+ e.message
20
+ end
21
+ end
@@ -0,0 +1,4 @@
1
+
2
+ module.exports = (env) ->
3
+ env.render
4
+ template: require('./layout')
@@ -0,0 +1,3 @@
1
+ <h4>
2
+ Appril Successfully Installed!
3
+ </h4>
@@ -0,0 +1,3 @@
1
+ class Index < BaseController
2
+ map Cfg.server_url
3
+ end
@@ -8,8 +8,8 @@ Core = require('appril')
8
8
  Page = require('appril-page')
9
9
  Render = require('appril-ractive')
10
10
  Reporter = require('appril-reporter')
11
-
12
11
  require 'appril-polyfills'
12
+ require 'assets/styles.css'
13
13
 
14
14
  CONSIDER_IDLE_AFTER = 5 * 60
15
15
 
@@ -1 +1,4 @@
1
1
  # this file will be loaded before other files found in helpers/ folder
2
+ module Helpers
3
+
4
+ end
@@ -4,8 +4,8 @@
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
6
6
  <script type="text/javascript">window.module = {}</script>
7
- <script src="/app/core.js"></script>
8
- <link rel="stylesheet" href="/app/core.css">
7
+ <script src="{{client_url}}/core.js"></script>
8
+ <link rel="stylesheet" href="{{client_url}}/core.css">
9
9
  </head>
10
10
  <body></body>
11
11
  </html>
@@ -1,4 +1,4 @@
1
1
  # do NOT edit this file, edit ../Gemfile instead
2
2
  gem 'appril'
3
- gem 'rocketio'
3
+ gem 'rocketio', '~> 0.0.8'
4
4
  gem 'tubesock'
@@ -3,5 +3,12 @@
3
3
  %w[
4
4
  boot
5
5
  ../base/load
6
- load_controllers
7
6
  ].each {|f| require File.expand_path("../#{f}", __FILE__)}
7
+
8
+ %w[
9
+ base_model.rb
10
+ *.rb
11
+ **/*.rb
12
+ ].each {|p| Dir[File.expand_path("../../base/models/#{p}", __FILE__)].each {|f| require(f)}}
13
+
14
+ require File.expand_path('../load_controllers', __FILE__)
@@ -1,15 +1,14 @@
1
1
  # do NOT edit this file, edit base/load_controllers.rb instead
2
2
 
3
- Dir.chdir File.expand_path('../..', __FILE__) do
3
+ Dir.chdir File.expand_path('../../base/api', __FILE__) do
4
4
 
5
- require './base/base_controller'
6
- require './base/rtcp_controller'
5
+ require './base_controller'
6
+ require './rtcp_controller'
7
7
 
8
8
  %w[
9
- **/server.rb
10
- ].each_with_object([]) {|f,o| o.concat(Dir["./base/api/#{f}"])}.sort {|a,b|
9
+ ./**/server.rb
10
+ ].each_with_object([]) {|pattern,o| o.concat(Dir[pattern])}.sort {|a,b|
11
11
  a.split(/\/+/).size <=> b.split(/\/+/).size
12
12
  }.each {|f| require(f)}
13
-
14
- require './base/load_controllers'
13
+
15
14
  end
@@ -0,0 +1,4 @@
1
+
2
+ module.exports = (env) ->
3
+ env.render
4
+ template: require('./layout')
File without changes
@@ -0,0 +1,3 @@
1
+ class CONTROLLER_NAME < BaseController
2
+
3
+ end
@@ -1,6 +1,10 @@
1
1
  {
2
+ "name": "MyApp",
3
+ "version": "0.0.0",
4
+ "description": "...",
2
5
  "dependencies": {
3
6
  "appril": "*",
4
- "appril-ractive": "*"
7
+ "appril-ractive": "*",
8
+ "extract-text-webpack-plugin": "1"
5
9
  }
6
10
  }
@@ -1,5 +1,6 @@
1
1
  var webpack = require('webpack'),
2
2
  fs = require('fs'),
3
+ ExtractTextPlugin = require("extract-text-webpack-plugin"),
3
4
  child_process = require('child_process')
4
5
  ;
5
6
 
@@ -21,17 +22,17 @@ module.exports = {
21
22
  },
22
23
  module: {
23
24
  loaders: [
24
- // { test: /\.coffee$/, loader: 'coffee-loader' },
25
- // { test: /\.css$/, loader: 'style-loader!css-loader' },
26
- // { test: /\.json$/, loader: 'json-loader' },
27
- // { test: /\.otf($|\?)/, loader: require.resolve('file-loader') },
28
- // { test: /\.ttf($|\?)/, loader: require.resolve('file-loader') },
29
- // { test: /\.eot($|\?)/, loader: require.resolve('file-loader') },
30
- // { test: /\.svg($|\?)/, loader: require.resolve('file-loader') },
31
- // { test: /\.png($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=image/png' },
32
- // { test: /\.jpg($|\?)/, loader: require.resolve('file-loader') },
33
- // { test: /\.gif($|\?)/, loader: require.resolve('file-loader') },
34
- // { test: /\.woff[2]?($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=application/font-woff' },
25
+ { test: /\.coffee$/, loader: 'coffee-loader' },
26
+ { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") },
27
+ { test: /\.json$/, loader: 'json-loader' },
28
+ { test: /\.otf($|\?)/, loader: require.resolve('file-loader') },
29
+ { test: /\.ttf($|\?)/, loader: require.resolve('file-loader') },
30
+ { test: /\.eot($|\?)/, loader: require.resolve('file-loader') },
31
+ { test: /\.svg($|\?)/, loader: require.resolve('file-loader') },
32
+ { test: /\.png($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=image/png' },
33
+ { test: /\.jpg($|\?)/, loader: require.resolve('file-loader') },
34
+ { test: /\.gif($|\?)/, loader: require.resolve('file-loader') },
35
+ { test: /\.woff[2]?($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=application/font-woff' },
35
36
  ]
36
37
  },
37
38
  resolve: {
@@ -41,10 +42,12 @@ module.exports = {
41
42
  base: 'app/base',
42
43
  api: 'base/api',
43
44
  helpers: 'base/helpers',
45
+ assets: 'base/assets',
44
46
  templates: 'base/templates'
45
47
  }
46
48
  },
47
49
  plugins: [
48
50
  new webpack.optimize.CommonsChunkPlugin('core', 'core.js'),
51
+ new ExtractTextPlugin("[name].css")
49
52
  ]
50
53
  }
@@ -4,3 +4,4 @@ eval File.read(File.expand_path('../core/Gemfile', __FILE__))
4
4
 
5
5
  # add your gems here
6
6
  gem 'crudle'
7
+ gem 'liquid', '~> 3'
@@ -8,8 +8,8 @@ Core = require('appril')
8
8
  Page = require('appril-page')
9
9
  Render = require('appril-ractive')
10
10
  Reporter = require('appril-reporter')
11
-
12
11
  require 'appril-polyfills'
12
+ require 'assets/styles.css'
13
13
 
14
14
  CONSIDER_IDLE_AFTER = 5 * 60
15
15
 
@@ -56,9 +56,9 @@ Core.on_initialize = (msg) ->
56
56
  #end
57
57
 
58
58
  templates =
59
- none: require('templates/layouts/none')
60
- main: require('templates/layouts/main')
61
- access_denied: require('templates/access_denied')
59
+ none: require('templates/layouts/none.html')
60
+ main: require('templates/layouts/main.html')
61
+ access_denied: require('templates/access_denied.html')
62
62
  #end
63
63
 
64
64
  partials = {}
@@ -77,7 +77,7 @@ deploy_api = (api) ->
77
77
  }, page)
78
78
 
79
79
  crudle = Crudle(api.controller.ws, page)
80
- crudle.partials.menu = require('templates/menu')
80
+ crudle.partials.menu = require('templates/menu.html')
81
81
  crudle.data.url = api.controller.url
82
82
 
83
83
  api(
@@ -0,0 +1,3 @@
1
+ <a href="{{App.X.url}}" class="nav-item nav-link {{ url == App.X.url ? 'active' : '' }}">
2
+ X
3
+ </a>
@@ -1,9 +1,15 @@
1
1
  {
2
+ "name": "MyApp",
3
+ "version": "0.0.0",
4
+ "description": "...",
2
5
  "dependencies": {
3
6
  "appril": "*",
4
7
  "appril-ractive": "*",
8
+ "appril-reporter": "*",
9
+ "appril-polyfills": "*",
5
10
  "crudle": "*",
6
11
  "crudle-list": "*",
7
- "crudle-editor": "*"
12
+ "crudle-editor": "*",
13
+ "extract-text-webpack-plugin": "1"
8
14
  }
9
15
  }
@@ -0,0 +1,54 @@
1
+ var webpack = require('webpack'),
2
+ fs = require('fs'),
3
+ ExtractTextPlugin = require("extract-text-webpack-plugin"),
4
+ child_process = require('child_process')
5
+ ;
6
+
7
+ if (process.env.APP_ENV == 'development') {
8
+ console.log('Generating configs...');
9
+ child_process.execSync('./core/generate_configs.rb');
10
+ }
11
+
12
+ var setup = JSON.parse(fs.readFileSync('./config.json')).webpack;
13
+ console.log(JSON.stringify(setup, null, 2))
14
+
15
+ module.exports = {
16
+ entry: setup.entries,
17
+ output: {
18
+ path: [setup.path, setup.url].join('/'),
19
+ filename: '[name].js',
20
+ publicPath: setup.url + '/', // trailing slash required
21
+ libraryTarget: 'commonjs2'
22
+ },
23
+ module: {
24
+ loaders: [
25
+ { test: /\.coffee$/, loader: 'coffee-loader' },
26
+ { test: /\.html$/, loader: 'ractive-loader' },
27
+ { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") },
28
+ { test: /\.json$/, loader: 'json-loader' },
29
+ { test: /\.otf($|\?)/, loader: require.resolve('file-loader') },
30
+ { test: /\.ttf($|\?)/, loader: require.resolve('file-loader') },
31
+ { test: /\.eot($|\?)/, loader: require.resolve('file-loader') },
32
+ { test: /\.svg($|\?)/, loader: require.resolve('file-loader') },
33
+ { test: /\.png($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=image/png' },
34
+ { test: /\.jpg($|\?)/, loader: require.resolve('file-loader') },
35
+ { test: /\.gif($|\?)/, loader: require.resolve('file-loader') },
36
+ { test: /\.woff[2]?($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=application/font-woff' },
37
+ ]
38
+ },
39
+ resolve: {
40
+ extensions: ['', '.js', '.css', '.json', '.coffee', '.html'],
41
+ alias: {
42
+ app: __dirname,
43
+ base: 'app/base',
44
+ api: 'base/api',
45
+ helpers: 'base/helpers',
46
+ assets: 'base/assets',
47
+ templates: 'base/templates'
48
+ }
49
+ },
50
+ plugins: [
51
+ new webpack.optimize.CommonsChunkPlugin('core', 'core.js'),
52
+ new ExtractTextPlugin("[name].css")
53
+ ]
54
+ }
@@ -1,3 +1,3 @@
1
1
  module Appril
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
data/lib/appril.rb CHANGED
@@ -49,7 +49,7 @@ module Appril
49
49
  def controllers_map dir
50
50
  path_to_api = File.expand_path('base/api', dir)
51
51
  RocketIO.controllers.each_with_object([]) do |controller,o|
52
- next unless controller.dirname[path_to_api]
52
+ next unless controller.superclass == ::BaseController
53
53
 
54
54
  o << {
55
55
  path: controller.dirname.sub(path_to_api, '').gsub(/\A\/|\/\Z/, ''),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appril
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Slee Woo
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.0.8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.0.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tubesock
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -46,6 +46,7 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - ".gitignore"
49
50
  - Gemfile
50
51
  - Rakefile
51
52
  - appril.gemspec
@@ -54,17 +55,20 @@ files:
54
55
  - boilerplate/app/.pryrc
55
56
  - boilerplate/app/Gemfile
56
57
  - boilerplate/app/Rakefile
57
- - boilerplate/app/base/api/.ignore
58
- - boilerplate/app/base/base_controller.rb
58
+ - boilerplate/app/base/api/base_controller.rb
59
+ - boilerplate/app/base/api/index/client.coffee
60
+ - boilerplate/app/base/api/index/layout.html
61
+ - boilerplate/app/base/api/index/server.rb
62
+ - boilerplate/app/base/api/rtcp_controller.rb
63
+ - boilerplate/app/base/assets/styles.css
59
64
  - boilerplate/app/base/boot.rb
60
65
  - boilerplate/app/base/core.coffee
61
66
  - boilerplate/app/base/helpers/application_helpers.coffee
62
67
  - boilerplate/app/base/helpers/application_helpers.rb
63
68
  - boilerplate/app/base/load.rb
64
- - boilerplate/app/base/load_controllers.rb
65
- - boilerplate/app/base/rtcp_controller.rb
69
+ - boilerplate/app/base/models/base_model.rb
66
70
  - boilerplate/app/base/templates/access_denied.html
67
- - boilerplate/app/base/templates/layout.html
71
+ - boilerplate/app/base/templates/layout.liquid
68
72
  - boilerplate/app/base/templates/layouts/main.html
69
73
  - boilerplate/app/base/templates/layouts/none.html
70
74
  - boilerplate/app/config.ru
@@ -79,7 +83,9 @@ files:
79
83
  - boilerplate/app/core/generate_configs.rb
80
84
  - boilerplate/app/core/load.rb
81
85
  - boilerplate/app/core/load_controllers.rb
82
- - boilerplate/app/generators/api/.ignore
86
+ - boilerplate/app/generators/api/client.coffee
87
+ - boilerplate/app/generators/api/layout.html
88
+ - boilerplate/app/generators/api/server.rb
83
89
  - boilerplate/app/package.json
84
90
  - boilerplate/app/public/.ignore
85
91
  - boilerplate/app/tmp/.ignore
@@ -87,10 +93,12 @@ files:
87
93
  - boilerplate/app/webpack.config.js
88
94
  - boilerplate/crudle/Gemfile
89
95
  - boilerplate/crudle/base/core.coffee
96
+ - boilerplate/crudle/base/templates/menu.html
90
97
  - boilerplate/crudle/generators/api/client.coffee
91
98
  - boilerplate/crudle/generators/api/editor.html
92
99
  - boilerplate/crudle/generators/api/server.rb
93
100
  - boilerplate/crudle/package.json
101
+ - boilerplate/crudle/webpack.config.js
94
102
  - docker/Dockerfile
95
103
  - docker/run
96
104
  - docker/skel/build.sh
@@ -114,7 +122,7 @@ files:
114
122
  - lib/appril/cli/helpers.rb
115
123
  - lib/appril/rtcp_controller.rb
116
124
  - lib/appril/version.rb
117
- homepage: https://github.com/appril/appril
125
+ homepage: https://github.com/appril/ruby-server
118
126
  licenses:
119
127
  - MIT
120
128
  metadata: {}
@@ -137,5 +145,5 @@ rubyforge_project:
137
145
  rubygems_version: 2.5.1
138
146
  signing_key:
139
147
  specification_version: 4
140
- summary: '["appril-0.0.2", "Opinionated framework for building opinionated web applications"]'
148
+ summary: '["appril-0.0.3", "Opinionated framework for building opinionated web applications"]'
141
149
  test_files: []
@@ -1,3 +0,0 @@
1
- class BaseController < Appril::BaseController
2
- map Cfg.server_url
3
- end
@@ -1,2 +0,0 @@
1
- # All "official" controllers are loaded by core/load_controllers.rb
2
- # This file is intended to load any "custom" controllers, ones that are not seen by default loader.