nekonote-framework 1.0.0.pre.beta → 1.0.0.pre.beta2

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
- SHA1:
3
- metadata.gz: 5de2cc68d527ef357666746ae5cc4423a2c2a0a3
4
- data.tar.gz: 68348bd3c64514ea3738588c5678158fb07fe42f
2
+ SHA256:
3
+ metadata.gz: 0a343528a091a4bfe3b21f2594fbc199f2953b4a9bc563a5b25bc426b06177e4
4
+ data.tar.gz: 453e2a25ed4ebbf0283f73b5b6d7b3bca39eb27e07b5a3ae3074cf9d265d9840
5
5
  SHA512:
6
- metadata.gz: af4a645150d95e69f18663b56b31d0cb28c54187d1e286df35e9d89254e7295b40eb681b9fcc42dcbe34527be5912cff3c64aef9cf1b926ed2a8a8540de228c6
7
- data.tar.gz: 441702f028749ca8df4b0d0770c66cde538f17ff52882d7803e61e23725e1d193cfcd1e67858a45edc4f3e560195c6518cf057b90c292121c9a88618833d4d3d
6
+ metadata.gz: 1380fd33c592621e1168d17a429014a7a235df3f9182942d7d543ab6a0fad95f4d6f1a5500312fc33bab6c23335054eeca00fff80c29b6d3ac8c25d75b6c099a
7
+ data.tar.gz: 61de9d860e68b232e3969c6504bb770ab8ada5df13814f8b289103664a0ed3f50085c2b0f82302a11c357fa70850a632db73869aad532b98b71541d1745fdb03
data/README.md CHANGED
@@ -44,6 +44,10 @@ Liquid is a well-known powerful template engine. Templates are rendered by Liqui
44
44
 
45
45
  Please see [Getting Started](https://nekonote-framework.github.io/document/1.0.0-beta/getting-started.html) on the reference manual.
46
46
 
47
+ You need to use `--pre` option when install pre-beta version like:
48
+
49
+ $ gem install nekonote-framework --pre
50
+
47
51
  ## License
48
52
 
49
53
  Nekonote Framework is friendly license and is released under the [MIT License](https://opensource.org/licenses/MIT).
@@ -1,10 +1,15 @@
1
1
  # This is a configuration file about Rack which created automatically.
2
2
  # You must NOT delete this file.
3
3
 
4
- # for starting web server withouht 'nekonote server'
4
+ # for starting web server without 'nekonote server'
5
5
  if !defined? Nekonote
6
- require 'bundler/setup'
7
- require 'nekonote'
6
+ begin
7
+ require 'nekonote'
8
+ rescue LoadError
9
+ # installed via bundler? change LOAD_PATH to bundler's
10
+ require 'bundler/setup'
11
+ require 'nekonote'
12
+ end
8
13
  end
9
14
 
10
15
  # set-up your application
@@ -2,7 +2,7 @@ class ErrorHandler < BaseHandler
2
2
  def missing_route
3
3
  @subject = 'Invalid URL'
4
4
  @msg = 'The URL does not match any route'
5
- @detail = %('#{Nekonote::Env.get :REQUEST_URI}' does not match any route.)
5
+ @detail = %('#{Nekonote::Env.get :REQUEST_URI}' is not valid URL.)
6
6
  end
7
7
 
8
8
  def wrong_http_method
@@ -10,7 +10,7 @@ _app_root = 'REPLACE_ME_TO_APP_ROOT'
10
10
  _host = '0.0.0.0'
11
11
 
12
12
  # listen port
13
- _port = '2002'
13
+ _port = 2002
14
14
 
15
15
  # the directory to oparate out of
16
16
  directory _app_root
@@ -34,7 +34,7 @@ threads 0, 16
34
34
  environment 'none'
35
35
 
36
36
  # true to server is daemonize
37
- daemonize true
37
+ daemonize false
38
38
 
39
39
  # PID and state for puma web server
40
40
  pidfile "#{_app_root}/tmp/pids/puma.pid"
File without changes
data/lib/nekonote.rb CHANGED
@@ -1,9 +1,5 @@
1
1
  begin
2
2
  require_relative 'loader'
3
3
  rescue StandardError, ScriptError => e
4
- begin
5
- Nekonote::Error.abort e
6
- rescue
7
- raise e
8
- end
4
+ Nekonote::Error.abort e
9
5
  end
data/lib/nekonote/cli.rb CHANGED
@@ -369,7 +369,7 @@ EOS
369
369
  # generate files and directories
370
370
  cp_from = @path_structure + '/'
371
371
  files = ['Gemfile', 'config.ru']
372
- dirs = ['handler', 'lib', 'preference', 'public', 'static', 'tmp']
372
+ dirs = ['handler', 'lib', 'preference', 'public', 'template', 'tmp']
373
373
  free_dirs_to_make = ['cache', 'log']
374
374
 
375
375
  # copy files
@@ -3,18 +3,18 @@ module Nekonote
3
3
  class Error < StandardError
4
4
  SPACE = ' '
5
5
  MSG_MISSING_ENV = %(Environment variable NEKONOTE_ENV is empty or invalid environment name is set.)
6
- MSG_MISSING_ROOT = %(Missing root directory to the application structure.)
7
- MSG_NOT_DEFINED_ROOT = %(Application root is not defined yet.)
6
+ MSG_MISSING_ROOT = %(Not found a root directory to the application structure.)
7
+ MSG_NOT_DEFINED_ROOT = %(Application root has not set yet.)
8
8
  MSG_MISSING_FILE = %(No such file '%s' or can't read it.)
9
9
  MSG_MISSING_DIR = %(No such directory '%s' or can't read it.)
10
- MSG_MISSING_RACKUP = %(Missing config.ru under '%s' or can't read it.)
10
+ MSG_MISSING_RACKUP = %(No found config.ru under '%s' or can't read it.)
11
11
  MSG_LACK_FIELD_IN_YAML = %(Lack of the required field '%s'. Please check if '%s' is set properly.)
12
12
  MSG_EMPTY_YAML = %('%s' is empty. You must configure something.)
13
13
  MSG_WRONG_ROOT = %(You'd better run the command at the application root, or --root option will solve the problem.)
14
- MSG_WRONG_TYPE = %(You gave %s but the expected type is '%s'.)
14
+ MSG_WRONG_TYPE = %([%s] is invalid type. It must be passed [%s].)
15
15
  MSG_MISSING_FIELD = %(The required field '%s' was not found in '%s'.)
16
16
  MSG_INVALID_FIELD = %(Invalid format field '%s' in '%s'.)
17
- MSG_MISSING_CONST = %(Missing such class or module or contant -> '%s'.)
17
+ MSG_MISSING_CONST = %(Not found such class or module or contant -> '%s'.)
18
18
  MSG_EMPTY_FILE_NOT_EMPTY = %('%s' is not empty. Failed to create an empty file.)
19
19
 
20
20
  # write message as warning to log file if logging is enabled
@@ -4,8 +4,8 @@ module Nekonote
4
4
  MSG_WRONG_YAML_SYNTAX = %(The yaml file '%s' is invalid syntax.)
5
5
  MSG_MISSING_INCLUDE = %(No such field '%s' in %s.)
6
6
  MSG_INVALID_HANDLER_NAME = %(Handler class name '%s' is invalid.)
7
- MSG_NO_SUCH_HANDLER = %(No such handler class '%s'. You must make it at first.)
8
7
  MSG_DUPLICATE_PATH = %(There is the duplicate path in %s. Values of 'path' directive are supposed to be uniq.)
9
8
  MSG_EVAL_MIDDLEWARES = %(Unable to evaluate '%s' because there's something wrong.)
9
+ MSG_FAILED_INI_HANDLER = %(Failed to make a %s class object.)
10
10
  end
11
11
  end
@@ -94,6 +94,23 @@ module Nekonote
94
94
  return Nekonote::Env.keys
95
95
  end
96
96
 
97
+ # @param string path
98
+ protected
99
+ def __set_template(path)
100
+ @view.set_template path
101
+ end
102
+
103
+ # @param string path
104
+ protected
105
+ def __set_layout(path)
106
+ @view.set_layout path
107
+ end
108
+
109
+ # @return string
110
+ protected
111
+ def __root
112
+ return Nekonote::Env.root
113
+ end
97
114
 
98
115
  # @param string dest
99
116
  # @param int code
data/lib/nekonote/puma.rb CHANGED
@@ -59,7 +59,7 @@ module Nekonote
59
59
  case cmd
60
60
  when :start
61
61
  if pid != nil
62
- puts %(Already started with pid #{pid})
62
+ puts %(Already started -> pid #{pid})
63
63
  nothing_to_do = true
64
64
  end
65
65
 
@@ -67,7 +67,7 @@ module Nekonote
67
67
  if pid == nil
68
68
  puts %(Server is stopped)
69
69
  else
70
- puts %(Server is running with pid #{pid})
70
+ puts %(Server is running -> pid #{pid})
71
71
  end
72
72
  nothing_to_do = true
73
73
 
@@ -301,7 +301,7 @@ EOS
301
301
  begin
302
302
  routes[info[Preference::FIELD_ROUTE_PATH].strip] = Object.const_get(handler).new(info)
303
303
  rescue NameError
304
- raise PreferenceError, PreferenceError::MSG_NO_SUCH_HANDLER% info[Preference::FIELD_ROUTE_HANDLER]
304
+ raise PreferenceError, PreferenceError::MSG_FAILED_INI_HANDLER% info[Preference::FIELD_ROUTE_HANDLER]
305
305
  end
306
306
 
307
307
  paths << path
data/lib/nekonote/spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Nekonote
2
2
  LIBS_NAME = %(nekonote-framework).freeze
3
- VERSION = %(1.0.0-beta).freeze
3
+ VERSION = %(1.0.0-beta2).freeze
4
4
  HOMEPAGE = %(https://nekonote-framework.github.io).freeze
5
5
  SUMMARY = %(Simple and Lightweight Ruby Framework for Web Development).freeze
6
6
  DESCRIPTION = %(Nekonote Framework is a small web application framework that helps your web development.).freeze
@@ -9,9 +9,9 @@ module Nekonote
9
9
  .*・゜゚・*:.。..。.:・Thanks installing Nekonote Framework .*・゜゚・*:.。..。.:*・
10
10
 
11
11
  ^___^
12
- (=^x^=) < meow meow
13
- / ) !
14
- . ~~( h h . . . . . . =(**=)~~
12
+ (=^x^=) < meow
13
+ ~ / ) !
14
+ . \( h h . . . . . . =(**=)~~
15
15
 
16
16
  Note:
17
17
  Installing dependent libraries is not completed yet.
data/lib/nekonote/view.rb CHANGED
@@ -6,8 +6,8 @@ module Nekonote
6
6
  class View
7
7
  NO_USING_NAME = 'none'
8
8
  DEFAULT_LAYOUT_NAME = 'default'
9
- PATH_TO_TEMPLATE = 'static/template'
10
- PATH_TO_LAYOUT = 'static/layout'
9
+ PATH_TO_TEMPLATE = 'template'
10
+ PATH_TO_LAYOUT = 'template/layout'
11
11
 
12
12
  # accessor
13
13
  attr_accessor :is_redirect
@@ -49,33 +49,9 @@ module Nekonote
49
49
  @is_error_route = false
50
50
  end
51
51
 
52
- # set template
53
- if @info_template.is_a? String
54
- # use template described in route.yml
55
- @template_path = Nekonote.get_root_path + PATH_TO_TEMPLATE + '/' + @info_template + '.tpl'
56
- elsif @info_template == nil
57
- # set default if no template is specified
58
- @template_path = get_default_template_path handler_name
59
- else
60
- # no template with response
61
- @template_path = nil
62
- end
63
-
64
- # set layout
65
- if @info_layout.is_a? String
66
- # use layout described in route.yml
67
- @layout_path = Nekonote.get_root_path + PATH_TO_LAYOUT + '/' + @info_layout + '.tpl'
68
- elsif @info_layout == nil
69
- # if no layout is specified, try to use default layout
70
- @layout_path = Nekonote.get_root_path + PATH_TO_LAYOUT + '/' + DEFAULT_LAYOUT_NAME + '.tpl'
71
- if !Util::Filer.available_file? @layout_path
72
- # but if it's not available, no layout with response
73
- @layout_path = nil
74
- end
75
- else
76
- # no layout with response
77
- @layout_path = nil
78
- end
52
+ # initialize template and layout
53
+ init_template handler_name
54
+ init_layout
79
55
 
80
56
  # assign extra fields into templates
81
57
  assign_custom_fields info
@@ -263,6 +239,22 @@ module Nekonote
263
239
  end
264
240
  end
265
241
 
242
+ # Need reload after method was called and commented out it because view object will alive
243
+ # @param string path relative path from app root to template file
244
+ public
245
+ def set_template(path)
246
+ @info_template = path
247
+ init_template
248
+ end
249
+
250
+ # Need reload after method was called and commented out it because view object will alive
251
+ # @param string path relative path from app root to layout file
252
+ public
253
+ def set_layout(path)
254
+ @info_layout = path
255
+ init_layout
256
+ end
257
+
266
258
  # @param hash info
267
259
  private
268
260
  def register_info_properies(info)
@@ -283,6 +275,54 @@ module Nekonote
283
275
  @is_redirect = false
284
276
  end
285
277
 
278
+ # initialize conf about template by @info_template
279
+ # @param string|nil handler_name
280
+ private
281
+ def init_template(handler_name = nil)
282
+ if @info_template.is_a? String
283
+ # check exists later
284
+ @template_path = get_template_path @info_template
285
+ elsif @info_template == nil && handler_name.is_a?(String)
286
+ # try to set a default template
287
+ @template_path = get_default_template_path handler_name
288
+ else
289
+ # no use template
290
+ @template_path = nil
291
+ end
292
+ end
293
+
294
+ # initialize conf about layout by @info_layout
295
+ private
296
+ def init_layout
297
+ if @info_layout.is_a? String
298
+ # check exists later
299
+ @layout_path = get_layout_path @info_layout
300
+ elsif @info_layout == nil
301
+ # try to set a default layout
302
+ @layout_path = get_layout_path DEFAULT_LAYOUT_NAME
303
+ if !Util::Filer.available_file? @layout_path
304
+ @layout_path = nil
305
+ end
306
+ else
307
+ # no use layout
308
+ @layout_path = nil
309
+ end
310
+ end
311
+
312
+ # @param string template relative path to template file
313
+ # @return string absolute path
314
+ private
315
+ def get_template_path(template)
316
+ return Nekonote.get_root_path + PATH_TO_TEMPLATE + '/' + template + '.tpl'
317
+ end
318
+
319
+ # @param string layout relative path to layout file
320
+ # @return string absolute path
321
+ private
322
+ def get_layout_path(layout)
323
+ return Nekonote.get_root_path + PATH_TO_LAYOUT + '/' + layout + '.tpl'
324
+ end
325
+
286
326
  # Returns template path for the default when it was found and available
287
327
  # @param string|nil
288
328
  private
@@ -296,10 +336,13 @@ module Nekonote
296
336
  template = nil
297
337
  end
298
338
 
299
- # invalid template
339
+ # return nil if invalid template name
300
340
  return nil if (template.nil? || template == '')
301
341
 
302
- template_path = Nekonote.get_root_path + PATH_TO_TEMPLATE + '/' + template + '.tpl'
342
+ # get absolute path
343
+ template_path = get_template_path template
344
+
345
+ # set if available
303
346
  if Util::Filer.available_file? template_path
304
347
  template_path = template_path
305
348
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nekonote-framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.beta
4
+ version: 1.0.0.pre.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - khotta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-14 00:00:00.000000000 Z
11
+ date: 2018-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: color_echo
@@ -66,11 +66,11 @@ files:
66
66
  - data/structure/public/img/.gitkeep
67
67
  - data/structure/public/img/logo.png
68
68
  - data/structure/public/js/.gitkeep
69
- - data/structure/static/layout/default.tpl
70
- - data/structure/static/layout/error.tpl
71
- - data/structure/static/sass/welcome.scss
72
- - data/structure/static/template/error.tpl
73
- - data/structure/static/template/welcome/index.tpl
69
+ - data/structure/public/sass/welcome.scss
70
+ - data/structure/template/error.tpl
71
+ - data/structure/template/layout/default.tpl
72
+ - data/structure/template/layout/error.tpl
73
+ - data/structure/template/welcome/index.tpl
74
74
  - data/structure/tmp/pids/.gitkeep
75
75
  - lib/loader.rb
76
76
  - lib/nekonote.rb
@@ -113,9 +113,9 @@ post_install_message: |2+
113
113
  .*・゜゚・*:.。..。.:・Thanks installing Nekonote Framework .*・゜゚・*:.。..。.:*・
114
114
 
115
115
  ^___^
116
- (=^x^=) < meow meow
117
- / ) !
118
- . ~~( h h . . . . . . =(**=)~~
116
+ (=^x^=) < meow
117
+ ~ / ) !
118
+ . ( h h . . . . . . =(**=)~~
119
119
 
120
120
  Note:
121
121
  Installing dependent libraries is not completed yet.
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: 1.3.1
138
138
  requirements: []
139
139
  rubyforge_project:
140
- rubygems_version: 2.6.11
140
+ rubygems_version: 2.7.6
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: Simple and Lightweight Ruby Framework for Web Development