slimview 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: 492f4ca1ae763a6bdeca63357861cbf17816717e5fb7e488845cea73c9162ae7
4
- data.tar.gz: c4ff4d48bd84127875aeb75e95f91b366e7ae5c45ee83b18f86ff11f72ae56b2
3
+ metadata.gz: 2dedf9869b30963a26ede0f0321d8306ca389bb7689726ad6e56b5dac0956cb6
4
+ data.tar.gz: 2d38bf535f127f9aac501c4f5be967314cec3643445ee2b5d0b353170a718c4b
5
5
  SHA512:
6
- metadata.gz: a642281c5d19fea3be9e5bdce0abb49c2ce503ca361313f3bf8491e05bf9752a8ee343b2ffd455424df3392d23a0583f266fd91ded177313f5cf6f3deb4d05d7
7
- data.tar.gz: 826f6a2e7edf508e2b29252c94d56509e9d6336448cbc9e66a4cae1b92adefe33fa14e347a44c25b936790391c0bdc1eb951214020c8b167a37f335901cb5753
6
+ metadata.gz: 4182b5be878c07f1150418342d3fd9c589a580ed3660a45b995d7d17a95095df918a0381ea37e6f6d15e66ee4cc34bce495835f6dc0a832fd249968e9ea90cd7
7
+ data.tar.gz: 32d63537999fedce6a8edfe9dd1072776386e89a3407152d0080acc6b415b464bc1e1b8398dc1388013764223b3bd303a39607973f533cb7d66ac1dbb77292a7
data/README.md CHANGED
@@ -59,14 +59,14 @@ You can also use Slimview programmatically from Ruby:
59
59
  require 'slimview'
60
60
 
61
61
  # Start the server with default port 3000 and default 'templates' root
62
- Slimview.new.start
62
+ Slimview::Server.new.start
63
63
 
64
64
  # Customize port and templates root
65
- server = Slimview.new port: 4000, root: 'views/slim'
65
+ server = Slimview::Server.new port: 4000, root: 'views/slim'
66
66
  server.start
67
67
 
68
68
  # Pass locals (available as variables inside your Slim templates)
69
- server = Slimview.new items: ['one', 'two'], title: 'Hello'
69
+ server = Slimview::Server.new items: ['one', 'two'], title: 'Hello'
70
70
  server.start
71
71
  ```
72
72
 
data/bin/slimview CHANGED
@@ -29,15 +29,15 @@ end
29
29
  port = nil
30
30
  root = nil
31
31
 
32
- if i = args.index '--port'
32
+ if (i = args.index '--port')
33
33
  port = args[i + 1]
34
34
  end
35
35
 
36
- if i = args.index '--root'
36
+ if (i = args.index '--root')
37
37
  root = args[i + 1]
38
38
  end
39
39
 
40
40
  port = port.to_i if port
41
41
 
42
- server = Slimview.new port: port, root: root
42
+ server = Slimview::Server.new port: port, root: root
43
43
  server.start
@@ -0,0 +1,34 @@
1
+ require 'sinatra/base'
2
+ require 'slim'
3
+
4
+ module Slimview
5
+ class App < Sinatra::Base
6
+ def self.configure!(root:, port:, locals:)
7
+ Slim::Engine.set_options pretty: true
8
+
9
+ views_path = File.expand_path(root, Dir.pwd)
10
+
11
+ set :bind, '0.0.0.0'
12
+ set :port, port
13
+ set :views, views_path
14
+ set :root, File.expand_path('.')
15
+ set :public_folder, File.join(settings.root, 'assets')
16
+ set :environment, :development
17
+ set :reload_templates, true
18
+ set :protection, except: :host_authorization
19
+ set :host_authorization, permitted_hosts: []
20
+ set :slimview_locals, locals
21
+
22
+ get '/*' do
23
+ page = params[:splat].first
24
+ page = 'index' if page.empty?
25
+ slim_path = File.join(settings.views, "#{page}.slim")
26
+ halt 404, "Template not found: #{page}" unless File.exist?(slim_path)
27
+
28
+ slim page.to_sym, locals: settings.slimview_locals
29
+ end
30
+
31
+ self
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,12 @@
1
+ module Slimview
2
+ class Server
3
+ def initialize(port: nil, root: nil, **locals)
4
+ @port = port || ENV['SLIMVIEW_PORT']&.to_i || 3000
5
+ @root = root || ENV['SLIMVIEW_ROOT'] || 'templates'
6
+ @locals = locals
7
+ end
8
+
9
+ def start = app.run!
10
+ def app = App.configure!(root: @root, port: @port, locals: @locals)
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
- class Slimview
2
- VERSION = '0.2.0'
1
+ module Slimview
2
+ VERSION = '0.2.1'
3
3
  end
data/lib/slimview.rb CHANGED
@@ -1,42 +1,2 @@
1
- require 'sinatra/base'
2
- require 'slim'
3
-
4
- class Slimview
5
- def initialize(port: nil, root: nil, **locals)
6
- @port = port || ENV['SLIMVIEW_PORT']&.to_i || 3000
7
- @root = root || ENV['SLIMVIEW_ROOT'] || 'templates'
8
- @locals = locals
9
- end
10
-
11
- def start = app.run!
12
-
13
- private
14
-
15
- def app = @app ||= app!
16
-
17
- def app!
18
- root = @root
19
- port = @port
20
- locals = @locals
21
-
22
- Class.new Sinatra::Base do
23
- Slim::Engine.set_options pretty: true
24
-
25
- set :bind, '0.0.0.0'
26
- set :port, port
27
- set :views, root
28
- set :public_folder, File.join(settings.root, 'assets')
29
- set :environment, :development
30
- set :reload_templates, true
31
-
32
- get '/*' do
33
- page = params[:splat].first
34
- page = 'index' if page.empty?
35
- slim_path = File.join settings.views, "#{page}.slim"
36
- halt 404, "Template not found: #{page}" unless File.exist? slim_path
37
-
38
- slim page.to_sym, locals: locals
39
- end
40
- end
41
- end
42
- end
1
+ require 'slimview/server'
2
+ require 'slimview/app'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slimview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
@@ -10,61 +10,61 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: slim
13
+ name: puma
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '5.2'
18
+ version: '7.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '5.2'
25
+ version: '7.0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: sinatra
27
+ name: rackup
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '4.1'
32
+ version: '2.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '4.1'
39
+ version: '2.2'
40
40
  - !ruby/object:Gem::Dependency
41
- name: puma
41
+ name: sinatra
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '7.0'
46
+ version: '4.1'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '7.0'
53
+ version: '4.1'
54
54
  - !ruby/object:Gem::Dependency
55
- name: rackup
55
+ name: slim
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '2.2'
60
+ version: '5.2'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '2.2'
67
+ version: '5.2'
68
68
  description: Command-line tool and library for quickly previewing Slim templates in
69
69
  a local web server
70
70
  email: db@dannyben.com
@@ -76,6 +76,8 @@ files:
76
76
  - README.md
77
77
  - bin/slimview
78
78
  - lib/slimview.rb
79
+ - lib/slimview/app.rb
80
+ - lib/slimview/server.rb
79
81
  - lib/slimview/version.rb
80
82
  homepage: https://github.com/DannyBen/slimview
81
83
  licenses: