easy_html_generator 1.0.2 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 875237a17ac5b7d76c3cb441fd2a7e896864f464
4
- data.tar.gz: 2bff580b44cbc05125ac28f6d3936c190b885ff7
3
+ metadata.gz: bc54c42e3b8dbf0a17a5e8c9230c9cb41b142823
4
+ data.tar.gz: 0549d73e2cf263dafe4721a8dd3a45e7d0a64f0f
5
5
  SHA512:
6
- metadata.gz: f7bed40940a5329e3669605abd96e37bbe6d28cc2ececcda8f88c5fc224daf9b44d6ccf15873247b083971ec8a4300fbe40b6e12e3f4a5296ed6e4e608c1d501
7
- data.tar.gz: 1704ff7de57756fef01cf1388eafb55fa1ace160a61399261f13fd698ccee0150991ed861189f19e2ea7ec514d27f43b448d82a442c05ceb09a9ef0a56e073d7
6
+ metadata.gz: c07365b28f8aaf47c7d8d63ec863fef847cb1cab3d9747d13affa36915687d68555b17649d40d3f1742c9fdb0a2b82f1d2b311d463cddc2d36b1c4510119930b
7
+ data.tar.gz: 5fdef7471df56eaa4bf8cb1408ea6c09752035ad2f77288bf54e91923b6d4a63db8aebe2b00b8b65cb05cec5f9dca26fba9b6573dfe6eeca563c8934a5076c14
data/README.md CHANGED
@@ -59,34 +59,34 @@ Run in terminal
59
59
  Now you should see the following folder structure with `ls -alR`
60
60
 
61
61
  my_workspace
62
- ├── dist # the generated result will be stored here
63
- └── src # the generation input is stored here
64
- ├── demo
65
- ├── my_project # this is a project and will be available via http://localhost:9292/my_project
66
- │   ├── assets
67
- │   │   ├── images # content will be copied to `dist/my_project/images`
68
- │   │   ├── public # public content gets directly copied to `dist/my_project/`
69
- │   │   ├── scripts # content will be copied to `dist/my_project/scripts`
70
- │   │   └── styles # content will be copied to `dist/my_project/styles`
71
- │   ├── lib
72
- │   │   ├── generators # project specific generators
73
- │   │   └── helper # project specific view helpers you can use in haml files
74
- │   ├── project.yml # project specific generators config
75
- │   └── views
76
- │   ├── index.html.haml # the ham file for index.html
77
- │   └── layout.haml # the layout file index.html will use
78
- |
79
- └── shared # shared content over all projects
80
- ├── assets # shared assets over all projects
81
- │   ├── images
82
- │   ├── public
83
- │   ├── scripts
84
- │   └── styles
85
- │   └── mixins # here are css helpers for bootstrap and head js
86
- ├── lib
87
- │   ├── generators # generators shared over all projects
88
- │   └── helper # view helpers you can use in haml files
89
- └── project.yml # if a project doesnt have a `project.yml` this config will be used
62
+ ├── dist # the generated result will be stored here
63
+ └── src # the generation input is stored here
64
+ ├── demo
65
+ ├── my_project # this is a project and will be available via http://localhost:9292/my_project
66
+ │   ├── assets
67
+ │   │   ├── images # content will be copied to `dist/my_project/images`
68
+ │   │   ├── public # public content gets directly copied to `dist/my_project/`
69
+ │   │   ├── scripts # content will be copied to `dist/my_project/scripts`
70
+ │   │   └── styles # content will be copied to `dist/my_project/styles`
71
+ │   ├── lib
72
+ │   │   ├── generators # project specific generators
73
+ │   │   └── helper # project specific view helpers you can use in haml files
74
+ │   ├── project.yml # project specific generators config
75
+ │   └── views
76
+ │   ├── index.html.haml # the ham file for index.html
77
+ │   └── layout.haml # the layout file index.html will use
78
+ |
79
+ └── shared # shared content over all projects
80
+ ├── assets # shared assets over all projects
81
+ │   ├── images
82
+ │   ├── public
83
+ │   ├── scripts
84
+ │   └── styles
85
+ │   └── mixins # here are css helpers for bootstrap and head js
86
+ ├── lib
87
+ │   ├── generators # generators shared over all projects
88
+ │   └── helper # view helpers you can use in haml files
89
+ └── project.yml # if a project doesnt have a `project.yml` this config will be used
90
90
 
91
91
  Now run
92
92
 
@@ -8,6 +8,7 @@ require 'bootstrap-sass'
8
8
  require 'bundler'
9
9
  require 'colorize'
10
10
  require 'rack'
11
+ require 'thin'
11
12
 
12
13
  # main module loads projects and dispatches rack requests
13
14
  module EasyHtmlGenerator
@@ -73,28 +74,34 @@ module EasyHtmlGenerator
73
74
  end
74
75
 
75
76
  def self.generate_all
76
- Workspace.projects.each(&:generate)
77
+ Workspace.projects.each{|name, project| project.generate }
77
78
  end
78
79
 
79
80
  def self.generate_project(project)
80
81
  Workspace.projects[project].generate
81
82
  end
82
83
 
83
- def self.start_server(host, port)
84
- app = Rack::Builder.new do
84
+ def self.rack_app
85
+ Rack::Builder.new do
85
86
  use Rack::Reloader, 0
87
+ use EasyHtmlGenerator::RackDispatcher
88
+ use Rack::Static,
89
+ urls: [''],
90
+ root: EasyHtmlGenerator::DIST_PATH,
91
+ index: 'index.html'
92
+
86
93
  use Rack::ContentLength
87
- use Rack::AbstractFormat
88
94
  use Rack::Deflater
89
95
  use Rack::ETag
90
96
 
91
- run EasyHtmlGenerator::Rackapp
97
+ run lambda { |env| [404, {'Content-Type' => 'text/plain'}, ['404 File not found!']] }
92
98
  end
99
+ end
93
100
 
94
- config = { app: app,
95
- Host: host,
101
+ def self.start_server(host, port)
102
+ config = { Host: host,
96
103
  Port: port}
97
104
 
98
- Rack::Server.start config
105
+ Rack::Handler.get('thin').run(rack_app, config)
99
106
  end
100
107
  end
@@ -1,12 +1,8 @@
1
1
  # encoding: utf-8
2
2
  require 'rack'
3
- require 'rack/abstract_format'
4
- require 'rack/respond_to'
5
3
 
6
4
  # this is the rack application for ehg
7
- class EasyHtmlGenerator::Rackapp
8
- include Rack::RespondTo
9
-
5
+ class EasyHtmlGenerator::RackDispatcher
10
6
  EHG_URL = 'https://github.com/creative-workflow/easy-html-generator'
11
7
  LIST_BODY = "<!DOCTYPE html><html><head>
12
8
  <style>*{ font-size: 20px;
@@ -17,35 +13,22 @@ class EasyHtmlGenerator::Rackapp
17
13
  {CONTENT}
18
14
  <a target='_blank' href='#{EHG_URL}'>ehc on Github</a></body></html>"
19
15
 
20
- def self.call(env)
21
- Rack::RespondTo.env = env
22
- request = Rack::Request.new(env)
16
+ def initialize(app)
17
+ @app = app
18
+ end
23
19
 
20
+ def call(env)
21
+ request = Rack::Request.new(env)
24
22
  case request.path_info
25
23
  when '/'
26
- list_dir
27
- else
28
- dispatch(request)
29
- end
30
- end
31
-
32
- def self.respond(body, status_code = 200)
33
- content_type = Rack::RespondTo.selected_media_type || 'text/html'
34
-
35
- [status_code, { 'Content-Type' => "#{content_type}; charset=UTF-8" }, [body || '']]
36
- end
37
-
38
- def self.dispatch(request)
39
- file = EasyHtmlGenerator.dispatch(request)
40
-
41
- if File.exist? file
42
- respond(File.read(file))
24
+ create_directory_listening_index_file
43
25
  else
44
- respond("404 not found #{file}", 404)
26
+ EasyHtmlGenerator.dispatch(request)
45
27
  end
28
+ @app.call(env)
46
29
  end
47
30
 
48
- def self.list_dir
31
+ def create_directory_listening_index_file
49
32
  content = ''
50
33
  EasyHtmlGenerator.projects.each do |_name, project|
51
34
  content += "<h3>#{project.name}</h3>"
@@ -55,10 +38,10 @@ class EasyHtmlGenerator::Rackapp
55
38
  end
56
39
  content = LIST_BODY.sub('{CONTENT}', "<ul>#{content}</ul>")
57
40
 
58
- respond(content)
41
+ File.write("#{EasyHtmlGenerator::DIST_PATH}/index.html", content)
59
42
  end
60
43
 
61
- def self.build_list_dir_row(file)
44
+ def build_list_dir_row(file)
62
45
  f = File.path(file)
63
46
  f_name = File.basename(f)
64
47
  f_path = File.dirname(f)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_html_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Hanoldt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-11 00:00:00.000000000 Z
11
+ date: 2015-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -25,21 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rack-respond_to
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rack-abstract-format
28
+ name: thin
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
@@ -315,7 +301,7 @@ files:
315
301
  - lib/easy_html_generator/generator/structure.rb
316
302
  - lib/easy_html_generator/generators.rb
317
303
  - lib/easy_html_generator/project.rb
318
- - lib/easy_html_generator/rackapp.rb
304
+ - lib/easy_html_generator/rack_dispatcher.rb
319
305
  - lib/easy_html_generator/workspace.rb
320
306
  - src/demo/assets/images/demo.png
321
307
  - src/demo/assets/public/robots.txt
@@ -380,4 +366,3 @@ specification_version: 4
380
366
  summary: This gem is a powerful and easy to use web development tool that helps developing
381
367
  modern web sites by generating static html pages.
382
368
  test_files: []
383
- has_rdoc: