pakman 0.6.0 → 0.7.0

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: bf628523ec0e01ade19c4d0b9967ff96a2e93c70
4
- data.tar.gz: d807a80bd056b41af7fcf8727527a9ba9e297c68
3
+ metadata.gz: 8627dadb6e570d024eada852f7661770864c3238
4
+ data.tar.gz: 2c8f9252f3bceb14c559d06d7851d23fb11dfe45
5
5
  SHA512:
6
- metadata.gz: 153efdc52b28be5f10a99e3cda57d52aa2b9409c24040d907793cdcc4737ebb4b41b4a555b075b0a115ef9af668d329fa21b4ba28efc7d9a3d33e984ce5fd33b
7
- data.tar.gz: 0706462e1b030112b656624be971eeb66f4db754f37f28917f3351acdc266cbaa50edfa4704f67f9c26e9c47858920256360d491404cabfa8e5061d3309b7e1e
6
+ metadata.gz: 1d1f9cdab69b5084546f7d52cbb1471a5159e84d591105b9b83198697eca19e415da4943de9a6b69d4804cd7e8b0973116f33c4a3f2e2b77e2d9c3c27131bfb4
7
+ data.tar.gz: 674ef0df51ad6fe5ffea55cd194ad12fdcaa286d5a432ec16b1d80f1c03d4c255decd15b84ef517ff80bb9db9ce35b9116e746ee6fb2ffe47f470f1818533700
@@ -26,8 +26,12 @@ test/data/test.yml
26
26
  test/erb/pak/test.html.erb
27
27
  test/erb/pak/test.txt
28
28
  test/helper.rb
29
+ test/liquid/pak/hello.doc
30
+ test/liquid/pak/hello.txt
31
+ test/liquid/pak/s9logo.png
29
32
  test/liquid/pak/test.html
30
33
  test/liquid/pak/test.txt
34
+ test/liquid/pak/testbin.txt
31
35
  test/liquid/test.html
32
36
  test/pages/empty.txt
33
37
  test/pages/page1.txt
@@ -36,5 +40,6 @@ test/pages/page3.txt
36
40
  test/pages/text.txt
37
41
  test/test_erb.rb
38
42
  test/test_liquid.rb
43
+ test/test_liquid_binaries.rb
39
44
  test/test_liquid_drops.rb
40
45
  test/test_page.rb
@@ -7,14 +7,30 @@ class LiquidTemplater
7
7
 
8
8
  include LogUtils::Logging
9
9
 
10
+
11
+ ###
12
+ ## check these file extensions for processing
13
+ ## processing (w/ liquid) if front matter header found / present
14
+
15
+ EXTS = ['html', 'svg',
16
+ 'js', 'json',
17
+ 'css',
18
+ 'txt', 'text',
19
+ 'md', 'markdown']
20
+
21
+ ## convert html to \.html$ (e.g. match end-of-string and leading dot)
22
+ ## e.g. /\.(html|svg|...)$|/ etc.
23
+ REGEX_EXT = Regexp.new( "\\.(#{EXTS.join('|')})$", Regexp::IGNORECASE )
24
+
25
+
10
26
  def initialize
11
27
  end
12
28
 
13
29
  ## rename binding/hash to assigns or something more specific - why? why not?
14
30
  def merge_pak( manifestsrc, pakpath, binding, name )
15
-
31
+
16
32
  start = Time.now
17
-
33
+
18
34
  pakname = Pakman.pakname_from_file( manifestsrc )
19
35
 
20
36
  puts "Merging template pack '#{pakname}'"
@@ -25,11 +41,11 @@ class LiquidTemplater
25
41
  manifest.each do |entry|
26
42
  dest = entry[0]
27
43
  source = entry[1]
28
-
44
+
29
45
  if dest =~ /__file__/ # replace w/ name
30
46
  dest = dest.gsub( '__file__', name )
31
47
  end
32
-
48
+
33
49
  # get full (absolute) path and make sure path exists
34
50
  destfull = File.expand_path( dest, pakpath )
35
51
  destpath = File.dirname( destfull )
@@ -37,16 +53,29 @@ class LiquidTemplater
37
53
 
38
54
  logger.debug "destfull=>#{destfull}<"
39
55
  logger.debug "destpath=>#{destpath}<"
40
-
56
+
41
57
  ###
42
58
  # note:
43
59
  # use jekyll convention for now
44
60
  # check if file starts with front matter (yaml block)
45
61
  # if yes, process (with liquid) otherwise copy as is 1:1
46
62
 
47
- source_page = Page.from_file( source )
48
- if source_page.headers?
49
- puts " Merging to #{dest}..."
63
+ ####
64
+ # note: for now only check files with known source extensions!!!
65
+ # do NOT check binaries (e.g. gif, png, ico, etc. -- regex will fail w/ encoding error)
66
+ # todo/check: check how jekyll works e.g. does jekyll check binaries for front-matter etc. ????
67
+
68
+ is_source_page = REGEX_EXT.match( source ) # note: returns nil or MatchData - do NOT use check == false or true (will NOT work)
69
+
70
+ if is_source_page.nil?
71
+ puts " No (pre-)processing for '#{source}' (copy 1:1) - no matching (known) source extension e.g. #{EXTS.join('|')}"
72
+ source_page = nil
73
+ else
74
+ source_page = Page.from_file( source )
75
+ end
76
+
77
+ if source_page && source_page.headers?
78
+ puts " Bingo! Front matter (e.g. ---) found. Merging template to #{dest}..."
50
79
 
51
80
  out = File.new( destfull, 'w+' )
52
81
  ## note: only pass along contents (not headers e.g. front matter for now)
@@ -56,11 +85,11 @@ class LiquidTemplater
56
85
  out.close
57
86
  else
58
87
  puts " Copying to #{dest} from #{source}..."
59
-
88
+
60
89
  FileUtils.copy( source, destfull )
61
90
  end
62
91
  end # each entry in manifest
63
-
92
+
64
93
  puts "Done (in #{Time.now-start} s)."
65
94
  end # method merge_pak
66
95
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Pakman
3
- VERSION = '0.6.0'
3
+ VERSION = '0.7.0'
4
4
  end
@@ -0,0 +1,8 @@
1
+ ---
2
+ front matter here
3
+ ---
4
+
5
+ try "unkown extension"
6
+ just some text here
7
+
8
+ note: front matter will not matter, that is, will get ignored (e.g. not checked)
@@ -0,0 +1,3 @@
1
+
2
+ just some text
3
+ no front matter
@@ -0,0 +1,7 @@
1
+ ######
2
+ # test manifest with binary files e.g. graphics
3
+ # and "unknown" extensions (will get handled like binary e.g. copied 1:1)
4
+
5
+ s9logo.png
6
+ hello.txt
7
+ hello.doc
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # to run use
5
+ # ruby -I ./lib -I ./test test/test_liquid_binaries.rb
6
+
7
+
8
+ require 'helper'
9
+
10
+
11
+ class TestLiquidBinaries < MiniTest::Test
12
+
13
+
14
+ def setup
15
+ Liquid::Template.error_mode = :strict
16
+ end
17
+
18
+
19
+ def test_rx
20
+ rx = Pakman::LiquidTemplater::REGEX_EXT
21
+
22
+ pp rx
23
+
24
+ ## todo: check why assert rx.match( 'test.html' ) == true doesn't work
25
+ ## (note: regex.match will return MatchData or nil)
26
+
27
+ assert rx.match( 'test.html' ).nil? == false
28
+ assert rx.match( 'TEST.HTML' ).nil? == false
29
+ assert rx.match( 'test.js' ).nil? == false
30
+ assert rx.match( 'test.json' ).nil? == false
31
+ assert rx.match( 'test.gif' ).nil? == true
32
+ end
33
+
34
+
35
+ def test_merge
36
+ hash = YAML.load_file( "#{Pakman.root}/test/data/test.yml" )
37
+ ctx= { 'headers' => hash['headers'], 'slides' => hash['slides'] }
38
+ pp ctx
39
+
40
+ manifestsrc = "#{Pakman.root}/test/liquid/pak/testbin.txt"
41
+ outpath = "#{Pakman.root}/tmp/#{Time.now.to_i}" ## pakpath/output path
42
+
43
+ Pakman::LiquidTemplater.new.merge_pak( manifestsrc, outpath, ctx, 'test' )
44
+
45
+ assert true
46
+ end # method test_merge
47
+
48
+ end # class TestLiquidBinaries
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pakman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fetcher
@@ -118,8 +118,12 @@ files:
118
118
  - test/erb/pak/test.html.erb
119
119
  - test/erb/pak/test.txt
120
120
  - test/helper.rb
121
+ - test/liquid/pak/hello.doc
122
+ - test/liquid/pak/hello.txt
123
+ - test/liquid/pak/s9logo.png
121
124
  - test/liquid/pak/test.html
122
125
  - test/liquid/pak/test.txt
126
+ - test/liquid/pak/testbin.txt
123
127
  - test/liquid/test.html
124
128
  - test/pages/empty.txt
125
129
  - test/pages/page1.txt
@@ -128,6 +132,7 @@ files:
128
132
  - test/pages/text.txt
129
133
  - test/test_erb.rb
130
134
  - test/test_liquid.rb
135
+ - test/test_liquid_binaries.rb
131
136
  - test/test_liquid_drops.rb
132
137
  - test/test_page.rb
133
138
  homepage: https://github.com/rubylibs/pakman