awestruct 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,7 @@ module Awestruct
17
17
  copy_file( '_ext/pipeline.rb', Init.framework_path( 'base_pipeline.rb' ) )
18
18
  copy_file( '.awestruct_ignore', Init.framework_path( 'base_awestruct_ignore' ) )
19
19
  copy_file( 'Rakefile', Init.framework_path( 'base_Rakefile' ) )
20
+ copy_file( 'Gemfile', Init.framework_path( 'base_Gemfile' ) )
20
21
  mkdir( 'stylesheets' )
21
22
  }
22
23
 
@@ -4,7 +4,6 @@ require 'awestruct/cli/init'
4
4
  require 'awestruct/cli/generate'
5
5
  require 'awestruct/cli/auto'
6
6
  require 'awestruct/cli/server'
7
- require 'awestruct/cli/deploy'
8
7
  require 'awestruct/logger'
9
8
 
10
9
  require 'pathname'
@@ -105,6 +104,8 @@ module Awestruct
105
104
  end
106
105
 
107
106
  def invoke_deploy()
107
+ require 'awestruct/cli/deploy'
108
+
108
109
  deploy_config = profile[ 'deploy' ]
109
110
 
110
111
  if ( deploy_config.nil? )
@@ -2,16 +2,20 @@ module Awestruct
2
2
  module Extensions
3
3
  class Indexifier
4
4
 
5
+ def initialize(exclude_regex_paths = [])
6
+ @exclude_regex_paths = exclude_regex_paths
7
+ @exclude_regex_paths << /^(.*\/)?index.html$/
8
+ end
9
+
5
10
  def execute(site)
6
11
  site.pages.each do |page|
7
- if ( page.inhibit_indexifier || ( page.output_path =~ /^(.*\/)?index.html$/ ) )
12
+ if ( page.inhibit_indexifier || Regexp.union(@exclude_regex_paths).match(page.output_path) )
8
13
  # skip it!
9
14
  else
10
15
  page.output_path = page.output_path.gsub( /.html$/, '/index.html' )
11
16
  end
12
17
  end
13
- end
14
-
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -64,17 +64,17 @@ module Awestruct
64
64
  if @types.include?(ext_sym)
65
65
  case ext_sym
66
66
  when :html
67
- print "minifying html #{page.output_path}"
67
+ $LOG.debug "minifying html #{page.output_path}" if $LOG.debug?
68
68
  input = htmlcompressor(page, input, site.minify_html_opts)
69
69
  when :css
70
70
  # TODO: Figure out how to do this is sass / less and document it
71
71
  #print "minifying css #{page.output_path}"
72
72
  #input = yuicompressor_css(page, input)
73
73
  when :js
74
- print "minifying js #{page.output_path}"
74
+ $LOG.debug "minifying js #{page.output_path}" if $LOG.debug?
75
75
  input = js_compressor(page, input)
76
76
  when :png
77
- print "minifying png #{page.output_path}"
77
+ $LOG.debug "minifying png #{page.output_path}" if $LOG.debug?
78
78
  input = pngcrush(page, input)
79
79
  end
80
80
  end
@@ -135,7 +135,7 @@ module Awestruct
135
135
  input
136
136
  end
137
137
  end
138
- end
139
-
138
+ end
140
139
  end
141
140
  end
141
+
@@ -29,6 +29,8 @@ module Awestruct
29
29
  date = DateTime.parse date
30
30
  elsif date.kind_of? Date
31
31
  date = DateTime.new(date.year, date.month, date.day)
32
+ elsif date.kind_of? Time
33
+ date = date.to_datetime
32
34
  end
33
35
  end
34
36
  year = date.year
@@ -0,0 +1,40 @@
1
+ # This file is a Bundler dependency descriptor file. Its purpose is to list all of
2
+ # the dependencies you are using to build your site. It is highly recommended you use
3
+ # this to keep your dependencies up to date and not cause conflicts with other gems
4
+ # already on your system.
5
+ #
6
+ # If you do not already have Bundler installed on your computer, run:
7
+ #
8
+ # gem install bundler
9
+ #
10
+ # To use this dependecy file simply run:
11
+ #
12
+ # bundle install
13
+ #
14
+ # We do recommend that you install the gems into another directory however, to ensure
15
+ # your awestruct site is pristine and isn't using versions of gems from other programs.
16
+ # To do this execute:
17
+ #
18
+ # bundle install --path .bundle
19
+ #
20
+ # More information about Bundler and its other commands can be found at http://gembundler.com/.
21
+ # To add other dependencies for your awestruct site simply follow the same pattern as you'll
22
+ # find below. To make use of dependecies listed here, simply remove the '#' from the start of
23
+ # the line to uncomment the dependency. We hope you enjoy using Awestruct!
24
+
25
+ source 'https://rubygems.org' # This tells Bundler where to look for gems
26
+
27
+ gem 'awestruct', '>= 0.5.1' # Goes without saying
28
+ gem 'rake', '>= 0.9.2' # Needed for the Rakefile to work
29
+ # gem 'coffee-script', '>= 2.2.0' # If using coffee-script or to remove the warning
30
+ # gem 'therubyracer', '0.10.0', :platforms => :ruby # Javascript runtime on mri (needed for LESS and coffee-script)
31
+ # gem 'therubyrhino', '~> 2.0.2', :platforms => :jruby # Javascript runtime on jruby (needed for LESS and coffee-script)
32
+ # gem 'less', '>= 2.2.2' # If using LESS instead of sass
33
+ # gem 'org-ruby', '>= 0.8' # If using Org-Mode
34
+ # gem 'RedCloth', '>= 4.2.9' # If using Textile
35
+ # gem 'asciidoctor', '>= 0.1.1' # If using AsciiDoc syntax, need 0.1.1 for Header support
36
+ # gem 'slim', '>= 1.3.6' # If using slim instead of haml
37
+ # gem 'kramdown', '>= 0.14.2' # If using Markdown
38
+ # gem 'uglifier', '>= 1.3.0' # If using the minify transformer
39
+ # gem 'htmlcompressor', '>= 0.0.3' # If using the minify transformer
40
+
@@ -0,0 +1,181 @@
1
+
2
+ require 'awestruct/context'
3
+
4
+ require 'awestruct/handlers/no_op_handler'
5
+ require 'awestruct/handlers/page_delegating_handler'
6
+ require 'ostruct'
7
+ require 'awestruct/astruct'
8
+
9
+ module Awestruct
10
+
11
+ class Page < Awestruct::AStruct
12
+
13
+ attr_accessor :site
14
+ attr_accessor :handler
15
+ attr_reader :dependencies
16
+
17
+ def initialize(site, handler=nil)
18
+ @site = site
19
+ case (handler)
20
+ when Page
21
+ @handler = Awestruct::Handlers::LayoutHandler.new( site, Awestruct::Handlers::PageDelegatingHandler.new( site, handler ) )
22
+ when nil
23
+ @handler = Awestruct::Handlers::NoOpHandler.new( site )
24
+ else
25
+ @handler = handler
26
+ end
27
+ @dependencies = Awestruct::Dependencies.new( self )
28
+ end
29
+
30
+ def prepare!
31
+ handler.inherit_front_matter( self )
32
+ end
33
+
34
+ def inspect
35
+ "Awestruct::Page{ #{self.object_id}: output_path=>#{output_path}, source_path=>#{source_path}, layout=>#{layout} }"
36
+ end
37
+
38
+ def create_context(content='')
39
+ context = Awestruct::Context.new( :site=>site, :page=>self, :content=>content )
40
+ site.engine.pipeline.mixin_helpers( context )
41
+ context
42
+ end
43
+
44
+ def inherit_front_matter_from(hash)
45
+ hash.each do |k,v|
46
+ $LOG.debug "#{self.output_path} overwrite key: #{k}:#{self[k]} -> #{v}" if ( key?( k ) and !self[k].nil? and !self[k].eql? v) if $LOG.debug?
47
+ unless ( key?( k ) )
48
+ self[k.to_sym] = v
49
+ end
50
+ end
51
+ end
52
+
53
+ def relative_source_path
54
+ @relative_source_path || handler.relative_source_path
55
+ end
56
+
57
+ def relative_source_path=(path)
58
+ @relative_source_path = path
59
+ end
60
+
61
+ def simple_name
62
+ handler.simple_name
63
+ end
64
+
65
+ def output_path
66
+ (@output_path || handler.output_path).to_s
67
+ end
68
+
69
+ def output_path=(path)
70
+ case ( path )
71
+ when Pathname then @output_path = path
72
+ else @output_path = Pathname.new( path )
73
+ end
74
+ end
75
+
76
+ def output_extension
77
+ handler.output_extension
78
+ end
79
+
80
+ def output_filename
81
+ handler.output_filename
82
+ end
83
+
84
+ def source_path
85
+ handler.path.to_s
86
+ end
87
+
88
+ def stale?
89
+ handler.stale? || @dependencies.dependencies.any?(&:stale?)
90
+ end
91
+
92
+ def stale_output?(output_path)
93
+ return true if ! File.exist?( output_path )
94
+ return true if input_mtime > File.mtime( output_path )
95
+ false
96
+ end
97
+
98
+ def input_mtime
99
+ handler.input_mtime( self )
100
+ end
101
+
102
+ def collective_dependencies_mtime
103
+ t = nil
104
+ @dependencies.each do |e|
105
+ if ( t == nil )
106
+ t = e.mtime
107
+ elsif ( t < e.mtime )
108
+ t = e.mtime
109
+ end
110
+ end
111
+ t
112
+ end
113
+
114
+ def all_dependencies
115
+ @dependencies + handler.dependencies
116
+ end
117
+
118
+ def content_syntax
119
+ handler.content_syntax
120
+ end
121
+
122
+ def raw_content
123
+ handler.raw_content
124
+ end
125
+
126
+ def rendered_content(context=create_context(), with_layouts=true)
127
+ if context.site.config.track_dependencies
128
+ Awestruct::Dependencies.push_page( self )
129
+ end
130
+ c = nil
131
+
132
+ begin
133
+ $LOG.debug "calling rendered_content on handler for page #{self.output_path}" if $LOG.debug?
134
+ c = handler.rendered_content( context, with_layouts )
135
+ # c = site.engine.pipeline.apply_transformers( context.site, self, c )
136
+ rescue StandardError => e
137
+ lineno = nil
138
+ if e.respond_to?(:lineno)
139
+ lineno = e.lineno
140
+ elsif e.respond_to?(:line)
141
+ lineno = e.line
142
+ end
143
+ if lineno
144
+ if self.handler.respond_to?(:content_line_offset)
145
+ lineno += self.handler.content_line_offset
146
+ end
147
+ end
148
+ lineinfo = lineno ? " at line #{lineno}" : ''
149
+ raise StandardError, "ERROR: Failed to render: #{self.relative_source_path}#{lineinfo}\n#{e.class}: #{e.message.rstrip}\n" + e.backtrace.join("\n")
150
+ end
151
+
152
+ if context.site.config.track_dependencies
153
+ Awestruct::Dependencies.pop_page
154
+
155
+ # temp disable traqcking when we collect the hash to not dirty the results
156
+ Awestruct::Dependencies.track_dependencies = false
157
+ if with_layouts
158
+ @dependencies.content_hash = Digest::SHA2.hexdigest(c)
159
+
160
+ # create a new Page so we can inherit the updated values not reflected in self
161
+ tmp_page = Awestruct::Page.new @site
162
+ @handler.inherit_front_matter(tmp_page)
163
+ string_to_hash = tmp_page.to_a.each{|x| x[0]=x[0].to_s; x[1]=x[1].to_s; x}.sort.to_s
164
+ hash = Digest::SHA2.hexdigest(string_to_hash)
165
+ @dependencies.key_hash = hash
166
+ end
167
+ Awestruct::Dependencies.track_dependencies = true
168
+ end
169
+ c
170
+ end
171
+
172
+ def content(with_layouts=false)
173
+ rendered_content( create_context(), with_layouts )
174
+ end
175
+
176
+ def ==(other_page)
177
+ self.object_id == other_page.object_id
178
+ end
179
+
180
+ end
181
+ end
@@ -16,7 +16,7 @@ module Awestruct
16
16
  return [ 301,
17
17
  { 'location'=>File.join(path, '') },
18
18
  ["Redirecting to: #{path}"] ]
19
- elsif ( File.exist?( File.join( fs_path, 'index.html' ) ) )
19
+ elsif ( File.file?( File.join( fs_path, 'index.html' ) ) )
20
20
  fs_path = File.join( fs_path, 'index.html' )
21
21
  end
22
22
  end
@@ -27,7 +27,7 @@ module Awestruct
27
27
  # The Body must respond to each and must only yield String
28
28
  # values. The Body itself should not be an instance of String,
29
29
  # as this will break in Ruby 1.9.
30
- if ( File.exist?( fs_path ) )
30
+ if ( File.file?( fs_path ) )
31
31
  body = read_content( fs_path )
32
32
  content_type = ::Rack::Mime.mime_type( File.extname(fs_path) )
33
33
  length = body.size.to_s
@@ -35,10 +35,10 @@ module Awestruct
35
35
  {"Content-Type" => content_type, "Content-Length" => length},
36
36
  [body] ]
37
37
  else
38
- body = read_error_document(path)
38
+ body, content_type = read_error_document(path)
39
39
  length = body.size.to_s
40
40
  [ 404,
41
- {"Content-Type" => 'text/plain', "Content-Length" => length},
41
+ {"Content-Type" => content_type || 'text/plain', "Content-Length" => length},
42
42
  [body] ]
43
43
  end
44
44
  end
@@ -46,7 +46,7 @@ module Awestruct
46
46
  def read_error_document( path )
47
47
  doc_path = nil
48
48
  htaccess = File.join( @doc_root, '.htaccess' )
49
- if ( File.exist?( htaccess ) )
49
+ if ( File.file?( htaccess ) )
50
50
  File.open( htaccess ).each_line do |line|
51
51
  if ( line =~ %r(^.*ErrorDocument[ \t]+404[ \t]+(.+)$) )
52
52
  doc_path = $1
@@ -55,7 +55,7 @@ module Awestruct
55
55
  end
56
56
  if ( doc_path )
57
57
  fs_doc_path = File.join( @doc_root, doc_path )
58
- return read_content( fs_doc_path ) if File.exist?( fs_doc_path )
58
+ return [read_content( fs_doc_path ), ::Rack::Mime.mime_type( File.extname(fs_doc_path) )] if File.file?( fs_doc_path )
59
59
  end
60
60
  "404: Not Found: #{path}"
61
61
  end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Awestruct
3
- VERSION='0.5.1'
3
+ VERSION='0.5.2'
4
4
  end
@@ -2,13 +2,9 @@ require 'spec_helper'
2
2
  require 'rspec/matchers.rb'
3
3
 
4
4
  verify = lambda { |output|
5
- output.gsub(/(^\s*\n|^\s*)/, '').should =~ %r(<div id="preamble">
6
- <div class="sectionbody">
7
- <div class="paragraph">
8
- <p>This is <strong>AsciiDoc</strong> in Awestruct.</p>
9
- </div>
10
- </div>
11
- </div>)
5
+ include EmmetMatchers
6
+ # clean whitespace to make comparison easier
7
+ output.should have_structure("div#preamble>div.sectionbody>div.paragraph>p>strong")
12
8
  }
13
9
 
14
10
  verify_front_matter = lambda { |output, page|
@@ -22,6 +18,7 @@ verify_headers = lambda { |output, page|
22
18
  page.title.should == 'AsciiDoc'
23
19
  page.doctitle.should == 'AsciiDoc'
24
20
  page.name.should == 'Awestruct'
21
+ page.layout.should == 'haml-layout'
25
22
  page.tags.should be_a_kind_of(Array)
26
23
  page.tags.should == %w(a b c)
27
24
  page.date.should be_a_kind_of(Date)
@@ -69,7 +66,7 @@ theories =
69
66
  ]
70
67
 
71
68
  describe Awestruct::Handlers::AsciidoctorHandler do
72
- let(:additional_config_page) { {:name => 'Awestruct', :test => 10} }
69
+ let(:additional_config_page) { {:name => 'Awestruct', :test => 10, :layout => 'empty-layout'} }
73
70
  it_should_behave_like "a handler", theories
74
71
 
75
72
  end
data/spec/minify_spec.rb CHANGED
@@ -53,7 +53,7 @@ describe Awestruct::Extensions::Minify do
53
53
  page.should_receive(:output_path).any_number_of_times.and_return "test.js"
54
54
 
55
55
  input = "function a (a, c) { \n a = \"a\";\n }"
56
- expected_output = "function a(a,c){a=\"a\"};"
56
+ expected_output = "function a(a){a=\"a\"}" # we're minifying so we're going to strip dead or unreferenced code
57
57
 
58
58
  minifier = Awestruct::Extensions::Minify.new [:js]
59
59
  minifier.transform(site, page, input).should == expected_output
data/spec/server_spec.rb CHANGED
@@ -51,4 +51,11 @@ describe Awestruct::Rack::App do
51
51
  last_response.status.should == 404
52
52
  end
53
53
  end
54
+
55
+ describe "Directory with no index file" do
56
+ it "should return a 404 status code" do
57
+ get('/images/')
58
+ last_response.status.should == 404
59
+ end
60
+ end
54
61
  end
data/spec/spec_helper.rb CHANGED
@@ -12,6 +12,7 @@ RSpec.configure do |config|
12
12
  end
13
13
  config.mock_framework = :rspec
14
14
  config.include NokogiriMatchers
15
+ config.include EmmetMatchers
15
16
  config.after :all do
16
17
  FileUtils.rm_rf '.awestruct' if File.exists? '.awestruct'
17
18
  end
@@ -0,0 +1,51 @@
1
+ require 'nokogiri'
2
+
3
+ module EmmetMatchers
4
+ class EmmetStructureMatcher
5
+ def initialize(emmet_string)
6
+ @test_string = emmet_string
7
+ end
8
+
9
+ def matches?(html_snippet)
10
+ frag = Nokogiri::HTML.fragment html_snippet
11
+ emmet_string = ''
12
+ elem_stack = []
13
+ frag.traverse {|node| elem_stack.push node unless node.text?}
14
+
15
+ until elem_stack.empty? do
16
+ elem = elem_stack.pop
17
+ unless elem.name == '#document-fragment' || elem.text.rstrip.empty?
18
+ emmet_string << elem.name unless elem.text.chop.empty?
19
+ if elem.attr('id')
20
+ emmet_string << "#{'#'}#{elem.attr('id')}"
21
+ end
22
+ if elem.attr('class')
23
+ emmet_string << ".#{elem.attr('class')}"
24
+ end
25
+ if elem.child
26
+ child = elem.child
27
+ #if child.text? && !child.text.rstrip.empty?
28
+ #emmet_string << "{#{child.text.gsub(/\s+/, ' ')}}"
29
+ #elem_stack.delete child
30
+ #end
31
+ elem_stack.delete child
32
+ emmet_string << '>' unless elem_stack.last.nil?
33
+ next
34
+ end
35
+ end
36
+ end
37
+
38
+ @emmet_string = emmet_string
39
+
40
+ @emmet_string == @test_string
41
+ end
42
+
43
+ def failure_message_for_should
44
+ "expected to match #{@test_string} against #{@emmet_string}, but they are not equal"
45
+ end
46
+ end
47
+
48
+ def have_structure(expect)
49
+ EmmetStructureMatcher.new(expect)
50
+ end
51
+ end
@@ -79,8 +79,7 @@ shared_examples "a handler" do |theories|
79
79
  it "should render page '#{theory[:page]}'" do
80
80
  if theory[:unless].nil? or !theory[:unless][:exp].call()
81
81
  handler = create_handler theory[:page]
82
- handler.merge! additional_config_page if respond_to?("additional_config_page")
83
-
82
+ handler.update(additional_config_page) {|k, oldval, newval| oldval } if respond_to?("additional_config_page")
84
83
  output = handler.rendered_content( handler.create_context )
85
84
  output.should_not be_nil
86
85
 
@@ -2,7 +2,8 @@
2
2
  Stuart Rackham
3
3
  2013-02-06
4
4
  :awestruct-tags: [a, b, c]
5
+ :awestruct-layout: haml-layout
5
6
  :name: NOT_HANDLED
6
7
 
7
8
  This is *AsciiDoc* in {name}.
8
- {awestruct-version}
9
+ {awestruct-version}
@@ -0,0 +1 @@
1
+ =content
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awestruct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-13 00:00:00.000000000 Z
12
+ date: 2013-06-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml
@@ -32,7 +32,7 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ~>
35
+ - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: 1.5.6
38
38
  type: :runtime
@@ -40,7 +40,7 @@ dependencies:
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ~>
43
+ - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: 1.5.6
46
46
  - !ruby/object:Gem::Dependency
@@ -48,7 +48,7 @@ dependencies:
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ~>
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: 1.3.6
54
54
  type: :runtime
@@ -56,7 +56,7 @@ dependencies:
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ~>
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.3.6
62
62
  - !ruby/object:Gem::Dependency
@@ -64,7 +64,7 @@ dependencies:
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ~>
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: 0.12.1
70
70
  type: :runtime
@@ -72,7 +72,7 @@ dependencies:
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ~>
75
+ - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: 0.12.1
78
78
  - !ruby/object:Gem::Dependency
@@ -96,7 +96,7 @@ dependencies:
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
- - - ~>
99
+ - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: 2.3.1.0
102
102
  type: :runtime
@@ -104,7 +104,7 @@ dependencies:
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
- - - ~>
107
+ - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: 2.3.1.0
110
110
  - !ruby/object:Gem::Dependency
@@ -112,7 +112,7 @@ dependencies:
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
- - - ~>
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: 4.0.9
118
118
  type: :runtime
@@ -120,7 +120,7 @@ dependencies:
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
- - - ~>
123
+ - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: 4.0.9
126
126
  - !ruby/object:Gem::Dependency
@@ -128,7 +128,7 @@ dependencies:
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
- - - ~>
131
+ - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
133
  version: 1.7.7
134
134
  type: :runtime
@@ -136,7 +136,7 @@ dependencies:
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  none: false
138
138
  requirements:
139
- - - ~>
139
+ - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: 1.7.7
142
142
  - !ruby/object:Gem::Dependency
@@ -144,7 +144,7 @@ dependencies:
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
- - - ~>
147
+ - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
149
  version: 1.6.7
150
150
  type: :runtime
@@ -152,7 +152,7 @@ dependencies:
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  none: false
154
154
  requirements:
155
- - - ~>
155
+ - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: 1.6.7
158
158
  - !ruby/object:Gem::Dependency
@@ -192,7 +192,7 @@ dependencies:
192
192
  requirement: !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
- - - ~>
195
+ - - ! '>='
196
196
  - !ruby/object:Gem::Version
197
197
  version: 0.7.3
198
198
  type: :runtime
@@ -200,7 +200,7 @@ dependencies:
200
200
  version_requirements: !ruby/object:Gem::Requirement
201
201
  none: false
202
202
  requirements:
203
- - - ~>
203
+ - - ! '>='
204
204
  - !ruby/object:Gem::Version
205
205
  version: 0.7.3
206
206
  - !ruby/object:Gem::Dependency
@@ -235,6 +235,7 @@ files:
235
235
  - lib/awestruct/frameworks/base_index.html.haml
236
236
  - lib/awestruct/frameworks/base_pipeline.rb
237
237
  - lib/awestruct/frameworks/base_site.yml
238
+ - lib/awestruct/frameworks/base_Gemfile
238
239
  - lib/awestruct/frameworks/bootstrap/base_layout.html.haml
239
240
  - lib/awestruct/frameworks/bootstrap/base_index.html.haml
240
241
  - lib/awestruct/frameworks/foundation/base_layout.html.haml
@@ -313,6 +314,7 @@ files:
313
314
  - lib/awestruct/extensions/remotePartial.rb
314
315
  - lib/awestruct/extensions/minify.rb
315
316
  - lib/awestruct/page.rb
317
+ - lib/awestruct/page.rb.old
316
318
  - lib/awestruct/dependencies.rb
317
319
  - lib/awestruct/logger.rb
318
320
  - lib/awestruct/engine.rb
@@ -323,6 +325,7 @@ files:
323
325
  - spec/front_matter_handler_spec.rb
324
326
  - spec/orgmode_handler_spec.rb
325
327
  - spec/support/shared_handler_example.rb
328
+ - spec/support/emmet_matchers.rb
326
329
  - spec/support/nokogiri_matchers.rb
327
330
  - spec/astruct_spec.rb
328
331
  - spec/engine_spec.rb
@@ -354,6 +357,7 @@ files:
354
357
  - spec/test-data/handlers/outside_relative/git_keep
355
358
  - spec/test-data/handlers/asciidoctor_with_front_matter.ad
356
359
  - spec/test-data/handlers/slim-page.html.slim
360
+ - spec/test-data/handlers/empty-layout.haml
357
361
  - spec/test-data/handlers/mustache-page.html.mustache
358
362
  - spec/test-data/handlers/haml-page.atom.haml
359
363
  - spec/test-data/handlers/scss-page.scss
@@ -428,7 +432,8 @@ files:
428
432
  - man/awestruct.1
429
433
  - bin/awestruct
430
434
  homepage: http://awestruct.org
431
- licenses: []
435
+ licenses:
436
+ - MIT
432
437
  post_install_message:
433
438
  rdoc_options: []
434
439
  require_paths:
@@ -441,7 +446,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
441
446
  version: '0'
442
447
  segments:
443
448
  - 0
444
- hash: 2146477715422063346
449
+ hash: -3872694940837887019
445
450
  required_rubygems_version: !ruby/object:Gem::Requirement
446
451
  none: false
447
452
  requirements:
@@ -450,7 +455,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
450
455
  version: '0'
451
456
  segments:
452
457
  - 0
453
- hash: 2146477715422063346
458
+ hash: -3872694940837887019
454
459
  requirements:
455
460
  - Any markup languages you are using and its dependencies
456
461
  - If LESS is used, or some other fixes within tilt, it is required to use Bundler