easy_html_generator 1.0.3 → 1.0.4

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: bc54c42e3b8dbf0a17a5e8c9230c9cb41b142823
4
- data.tar.gz: 0549d73e2cf263dafe4721a8dd3a45e7d0a64f0f
3
+ metadata.gz: 4121de001c06afef8a4674c5027e2327efc693c9
4
+ data.tar.gz: c67d23e2d49c758f6278ee9a1dc88cb9fb19cef8
5
5
  SHA512:
6
- metadata.gz: c07365b28f8aaf47c7d8d63ec863fef847cb1cab3d9747d13affa36915687d68555b17649d40d3f1742c9fdb0a2b82f1d2b311d463cddc2d36b1c4510119930b
7
- data.tar.gz: 5fdef7471df56eaa4bf8cb1408ea6c09752035ad2f77288bf54e91923b6d4a63db8aebe2b00b8b65cb05cec5f9dca26fba9b6573dfe6eeca563c8934a5076c14
6
+ metadata.gz: 65d9714558acef3e3feaf91b4e9904225529fee83f4b293fec3717cd2acd2d099a0c10f0f28ac1ee9d97b6315ae795e7775b62a5572268b4511b1ef75fe2e348
7
+ data.tar.gz: e48670c042579af8ebbf2a4690ff75cbbf4a42eaf7d6faefb2bf336f9b7ea238a89500308d44095abe69ae4715ec9260fdeb04922cf5351047cca8086a9e47b2
data/README.md CHANGED
@@ -146,7 +146,8 @@ generators:
146
146
 
147
147
  #### Copy
148
148
  * operates on: `dist` and `src`
149
- * copies folder or files from dist to src
149
+ * copies folder or files from dist to src per default
150
+ * supports `src://` and `dist://`
150
151
  * config:
151
152
 
152
153
  ```
@@ -159,14 +160,15 @@ generators:
159
160
  target: 'styles'
160
161
  selector: '**/*.css'
161
162
  -
162
- source: 'assets/scripts'
163
- target: 'scripts'
163
+ source: 'src://assets/scripts'
164
+ target: 'dist://scripts'
164
165
  selector: '**/*.js'
165
166
  ```
166
167
 
167
168
  #### Combine
168
169
  * operates on: `dist`
169
- * combines merges files on dist
170
+ * combines merges files on dist per default
171
+ * supports `src://` and `dist://`
170
172
  * config:
171
173
 
172
174
  ```
@@ -179,14 +181,15 @@ generators:
179
181
  files:
180
182
  - 'scripts/**/*.js'
181
183
  -
182
- file: 'styles/combined.css'
184
+ file: 'dist://styles/combined.css'
183
185
  files:
184
- - 'styles/**/*.css'
186
+ - 'src://styles/**/*.css'
185
187
  ```
186
188
 
187
189
  #### Delete
188
190
  * operates on: `dist`
189
- * deletes files or folders on dist
191
+ * deletes files or folders on dist per default
192
+ * supports `src://` and `dist://`
190
193
  * config:
191
194
 
192
195
  ```
@@ -195,6 +198,7 @@ generators:
195
198
  enabled: false
196
199
  files:
197
200
  - '*'
201
+ - 'src://bower_components'
198
202
  ```
199
203
 
200
204
  ### Compile-Generators
@@ -8,6 +8,7 @@ require 'bootstrap-sass'
8
8
  require 'bundler'
9
9
  require 'colorize'
10
10
  require 'rack'
11
+ require 'rack/contrib'
11
12
  require 'thin'
12
13
 
13
14
  # main module loads projects and dispatches rack requests
@@ -83,17 +84,17 @@ module EasyHtmlGenerator
83
84
 
84
85
  def self.rack_app
85
86
  Rack::Builder.new do
87
+ use Rack::ShowExceptions
86
88
  use Rack::Reloader, 0
87
89
  use EasyHtmlGenerator::RackDispatcher
90
+ use Rack::Deflater
91
+ use Rack::ContentLength
92
+ use Rack::StaticCache, urls: [''], root: EasyHtmlGenerator::DIST_PATH
88
93
  use Rack::Static,
89
94
  urls: [''],
90
95
  root: EasyHtmlGenerator::DIST_PATH,
91
96
  index: 'index.html'
92
97
 
93
- use Rack::ContentLength
94
- use Rack::Deflater
95
- use Rack::ETag
96
-
97
98
  run lambda { |env| [404, {'Content-Type' => 'text/plain'}, ['404 File not found!']] }
98
99
  end
99
100
  end
@@ -80,4 +80,16 @@ class EasyHtmlGenerator::Generator::Base
80
80
  STDERR.puts " | #{msg.sub(@project.src_path, '')
81
81
  .sub('EasyHtmlGenerator::', '')}"
82
82
  end
83
+
84
+ def resolve_path_prefix(path, default_prefix = '')
85
+ if path.include? 'src://'
86
+ default_prefix = @project.src_path
87
+ path.sub!('src://', '')
88
+ end
89
+ if path.include? 'dist://'
90
+ default_prefix = @project.dist_path
91
+ path.sub!('dist://', '')
92
+ end
93
+ File.join(default_prefix, path)
94
+ end
83
95
  end
@@ -17,12 +17,15 @@ class EasyHtmlGenerator::Generator::Combine <
17
17
  end
18
18
 
19
19
  def do_config(config)
20
+ target_file = resolve_path_prefix(config.file, @project.dist_path)
20
21
  o = ''
21
22
  config.files.each do |file_pattern|
22
- Dir[File.join(@project.dist_path, file_pattern)].each do |file|
23
+ resolved_pattern = resolve_path_prefix(file_pattern, @project.dist_path)
24
+ Dir[resolved_pattern].each do |file|
25
+ next if target_file == file
23
26
  o += File.read(file) + "\n"
24
27
  end
25
28
  end
26
- File.write(File.join(@project.dist_path, config.file), o)
29
+ File.write(target_file, o)
27
30
  end
28
31
  end
@@ -43,9 +43,7 @@ class EasyHtmlGenerator::Generator::Compile::Haml::Context
43
43
  # Use it if it's there.
44
44
  file_to_render = scope_file if File.exist? scope_file
45
45
  end
46
- if File.exist? file_to_render
47
- Haml::Engine.new(File.read(file_to_render), @config).render self
48
- end
46
+ Haml::Engine.new(File.read(file_to_render), @config).render self
49
47
  rescue StandardError => e
50
48
  raise e, "#{e.message} in #{file_name} ", e.backtrace
51
49
  end
@@ -26,23 +26,16 @@ module ActivesupportOverride
26
26
 
27
27
  def path_to_css(path)
28
28
  return path if external_path?(path)
29
- test = @project.uri_path_to(:styles, path)
30
- file_exists?(test) ? test : path
29
+ @project.uri_path_to(:styles, path)
31
30
  end
32
31
 
33
32
  def path_to_js(path)
34
33
  return path if external_path? path
35
- test = @project.uri_path_to(:scripts, path)
36
- file_exists?(test) ? test : path
34
+ @project.uri_path_to(:scripts, path)
37
35
  end
38
36
 
39
37
  def path_to_image(path)
40
38
  return path if external_path? path
41
- test = @project.uri_path_to(:images, path)
42
- file_exists?(test) ? test : path
39
+ @project.uri_path_to(:images, path)
43
40
  end
44
-
45
- # def url_for(options = '')
46
- # return options
47
- # end
48
41
  end
@@ -10,8 +10,8 @@ class EasyHtmlGenerator::Generator::Copy < EasyHtmlGenerator::Generator::Base
10
10
  log_running
11
11
 
12
12
  @config.dirs.each do |config|
13
- src_path = "#{@project.src_path}/#{config.source}"
14
- dest_path = "#{@project.dist_path}/#{config.target}"
13
+ src_path = resolve_path_prefix(config.source, @project.src_path)
14
+ dest_path = resolve_path_prefix(config.target, @project.dist_path)
15
15
 
16
16
  self.class.copy_r(src_path, dest_path, config.selector)
17
17
  end
@@ -10,7 +10,8 @@ class EasyHtmlGenerator::Generator::Delete < EasyHtmlGenerator::Generator::Base
10
10
  log_running
11
11
 
12
12
  @config.files.each do |file_pattern|
13
- Dir[File.join(@project.dist_path, file_pattern)].each do |file|
13
+ resolved_pattern = resolve_path_prefix(file_pattern, @project.dist_path)
14
+ Dir[resolved_pattern].each do |file|
14
15
  EasyHtmlGenerator::Checksum.invalidate_file file
15
16
 
16
17
  FileUtils.rm_rf file
@@ -15,7 +15,7 @@ class EasyHtmlGenerator::Generator::Service::Bower <
15
15
 
16
16
  def do_file(bower_file, *_args)
17
17
  input_folder = File.dirname(bower_file)
18
- output_folder = File.join(@project.dist_path_to(:scripts), @config.target)
18
+ output_folder = File.join(@project.dist_path, @config.target)
19
19
 
20
20
  cmd = "cd #{input_folder} && bower install"
21
21
  cmd = "if which bower >/dev/null; then echo '\e[32mrunning bower\e[0m' \
@@ -23,7 +23,9 @@ class EasyHtmlGenerator::Project
23
23
  end
24
24
 
25
25
  def uri_path_to(type, relative_path = '')
26
- File.join('/', @name, @config.paths.dist[type.to_sym], relative_path)
26
+ uri_path = File.join(@config.paths.dist[type.to_sym], relative_path)
27
+ local_path = File.join(@dist_path, uri_path)
28
+ File.exist?(local_path) ? uri_path : relative_path
27
29
  end
28
30
 
29
31
  def generate
@@ -22,10 +22,17 @@ class EasyHtmlGenerator::RackDispatcher
22
22
  case request.path_info
23
23
  when '/'
24
24
  create_directory_listening_index_file
25
+ env['PATH_INFO'] = '/index.html'
25
26
  else
26
27
  EasyHtmlGenerator.dispatch(request)
27
28
  end
28
- @app.call(env)
29
+ status, headers, body = @app.call(env)
30
+
31
+ headers['Connection'] = 'Keep-Alive'
32
+ headers['Charset'] = 'UTF-8'
33
+ headers['Vary'] = 'Accept-Encoding'
34
+
35
+ [status, headers, body]
29
36
  end
30
37
 
31
38
  def create_directory_listening_index_file
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.3
4
+ version: 1.0.4
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-07-14 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rack-contrib
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: shotgun
43
57
  requirement: !ruby/object:Gem::Requirement