appril 0.0.2 → 0.0.3

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