benoit 0.1.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.
Files changed (164) hide show
  1. data/.gitignore +4 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +1 -0
  4. data/.rspec-turnip +1 -0
  5. data/.ruby-version +1 -0
  6. data/Assetfile +44 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +110 -0
  9. data/Rakefile +9 -0
  10. data/benoit.gemspec +50 -0
  11. data/bin/benoit +121 -0
  12. data/bin/bundle-development +1 -0
  13. data/bin/bundle-sandbox +1 -0
  14. data/lib/benoit.rb +36 -0
  15. data/lib/benoit/cadenza.rb +11 -0
  16. data/lib/benoit/cadenza/output_filters.rb +21 -0
  17. data/lib/benoit/cleaner.rb +10 -0
  18. data/lib/benoit/compiler_error.rb +49 -0
  19. data/lib/benoit/configuration.rb +24 -0
  20. data/lib/benoit/current_site.rb +12 -0
  21. data/lib/benoit/file_wrapper_extensions.rb +13 -0
  22. data/lib/benoit/filters.rb +15 -0
  23. data/lib/benoit/filters/base_filter.rb +44 -0
  24. data/lib/benoit/filters/blacklist_filter.rb +18 -0
  25. data/lib/benoit/filters/cadenza_filter.rb +75 -0
  26. data/lib/benoit/filters/content_page_filter.rb +45 -0
  27. data/lib/benoit/filters/markdown_filter.rb +19 -0
  28. data/lib/benoit/filters/metadata_cleaner.rb +30 -0
  29. data/lib/benoit/filters/move_to_root_filter.rb +22 -0
  30. data/lib/benoit/filters/pagination_filter.rb +23 -0
  31. data/lib/benoit/filters/pass_thru_filter.rb +22 -0
  32. data/lib/benoit/filters/sass_filter.rb +74 -0
  33. data/lib/benoit/filters/set_metadata_filter.rb +15 -0
  34. data/lib/benoit/logger.rb +69 -0
  35. data/lib/benoit/page.rb +88 -0
  36. data/lib/benoit/page_metadata.rb +8 -0
  37. data/lib/benoit/page_metadata/container.rb +74 -0
  38. data/lib/benoit/page_metadata/json_converter.rb +28 -0
  39. data/lib/benoit/page_metadata/parser.rb +38 -0
  40. data/lib/benoit/page_metadata/store.rb +75 -0
  41. data/lib/benoit/pipeline.rb +1 -0
  42. data/lib/benoit/pipeline/dsl_extensions.rb +8 -0
  43. data/lib/benoit/pipeline/pagination_matcher.rb +53 -0
  44. data/lib/benoit/pipeline_project.rb +81 -0
  45. data/lib/benoit/site_context.rb +123 -0
  46. data/lib/benoit/utils/finds_layouts_for_template.rb +77 -0
  47. data/lib/benoit/utils/normalizes_path_to_template.rb +43 -0
  48. data/lib/benoit/utils/paginated_list.rb +102 -0
  49. data/lib/benoit/version.rb +3 -0
  50. data/lib/build_notifiers/file_built_notifier.rb +20 -0
  51. data/lib/build_notifiers/progress_notifier.rb +57 -0
  52. data/lib/cli.rb +39 -0
  53. data/spec/.rbenv-gemsets +1 -0
  54. data/spec/Gemfile +9 -0
  55. data/spec/Gemfile.lock +57 -0
  56. data/spec/bin/autospec +16 -0
  57. data/spec/bin/cucumber +16 -0
  58. data/spec/bin/htmldiff +16 -0
  59. data/spec/bin/ldiff +16 -0
  60. data/spec/bin/rspec +16 -0
  61. data/spec/features/build_command.feature +46 -0
  62. data/spec/features/frontmatter_metadata.feature +99 -0
  63. data/spec/features/javascript_files.feature +35 -0
  64. data/spec/features/output_filters.feature +20 -0
  65. data/spec/features/page_layouts.feature +72 -0
  66. data/spec/features/pagination.feature +58 -0
  67. data/spec/features/sass_files.feature +30 -0
  68. data/spec/features/version.feature +5 -0
  69. data/spec/lib/filters/base_filter_spec.rb +141 -0
  70. data/spec/lib/filters/markdown_filter_spec.rb +65 -0
  71. data/spec/lib/filters/sass_filter_spec.rb +73 -0
  72. data/spec/lib/metadata_json_converter_spec.rb +65 -0
  73. data/spec/lib/metadata_store_spec.rb +148 -0
  74. data/spec/lib/page_spec.rb +19 -0
  75. data/spec/lib/site_context_spec.rb +106 -0
  76. data/spec/spec_helper.rb +16 -0
  77. data/spec/steps/output_file_steps.rb +45 -0
  78. data/spec/steps/run_steps.rb +71 -0
  79. data/spec/steps/staticly_steps.rb +194 -0
  80. data/spec/support/aruba/rspec.rb +66 -0
  81. data/spec/support/files/img.png +0 -0
  82. data/spec/support/files/input.css.scss +7 -0
  83. data/spec/support/files/input.scss +7 -0
  84. data/spec/support/spec_helpers/file_helpers.rb +8 -0
  85. data/spec/support/spec_helpers/memory_file_wrapper.rb +43 -0
  86. data/spec/support/spec_helpers/memory_manifest.rb +19 -0
  87. data/spec/turnip_helper.rb +19 -0
  88. data/vendor/frontmatter/frontmatter.gemspec +24 -0
  89. data/vendor/frontmatter/lib/frontmatter.rb +92 -0
  90. data/vendor/frontmatter/lib/frontmatter/version.rb +3 -0
  91. data/vendor/rake-pipeline/.gitignore +18 -0
  92. data/vendor/rake-pipeline/.rspec +1 -0
  93. data/vendor/rake-pipeline/.travis.yml +12 -0
  94. data/vendor/rake-pipeline/.yardopts +2 -0
  95. data/vendor/rake-pipeline/GETTING_STARTED.md +268 -0
  96. data/vendor/rake-pipeline/Gemfile +14 -0
  97. data/vendor/rake-pipeline/LICENSE +20 -0
  98. data/vendor/rake-pipeline/README.markdown +11 -0
  99. data/vendor/rake-pipeline/README.yard +178 -0
  100. data/vendor/rake-pipeline/Rakefile +21 -0
  101. data/vendor/rake-pipeline/bin/rakep +4 -0
  102. data/vendor/rake-pipeline/examples/copying_files.md +12 -0
  103. data/vendor/rake-pipeline/examples/minifying_files.md +37 -0
  104. data/vendor/rake-pipeline/examples/modifying_pipelines.md +67 -0
  105. data/vendor/rake-pipeline/examples/multiple_pipelines.md +77 -0
  106. data/vendor/rake-pipeline/lib/generators/rake/pipeline/install/install_generator.rb +70 -0
  107. data/vendor/rake-pipeline/lib/rake-pipeline.rb +509 -0
  108. data/vendor/rake-pipeline/lib/rake-pipeline/cli.rb +57 -0
  109. data/vendor/rake-pipeline/lib/rake-pipeline/dsl.rb +9 -0
  110. data/vendor/rake-pipeline/lib/rake-pipeline/dsl/pipeline_dsl.rb +246 -0
  111. data/vendor/rake-pipeline/lib/rake-pipeline/dsl/project_dsl.rb +108 -0
  112. data/vendor/rake-pipeline/lib/rake-pipeline/dynamic_file_task.rb +194 -0
  113. data/vendor/rake-pipeline/lib/rake-pipeline/error.rb +17 -0
  114. data/vendor/rake-pipeline/lib/rake-pipeline/file_wrapper.rb +195 -0
  115. data/vendor/rake-pipeline/lib/rake-pipeline/filter.rb +267 -0
  116. data/vendor/rake-pipeline/lib/rake-pipeline/filters.rb +4 -0
  117. data/vendor/rake-pipeline/lib/rake-pipeline/filters/concat_filter.rb +63 -0
  118. data/vendor/rake-pipeline/lib/rake-pipeline/filters/gsub_filter.rb +56 -0
  119. data/vendor/rake-pipeline/lib/rake-pipeline/filters/ordering_concat_filter.rb +38 -0
  120. data/vendor/rake-pipeline/lib/rake-pipeline/filters/pipeline_finalizing_filter.rb +21 -0
  121. data/vendor/rake-pipeline/lib/rake-pipeline/graph.rb +178 -0
  122. data/vendor/rake-pipeline/lib/rake-pipeline/manifest.rb +82 -0
  123. data/vendor/rake-pipeline/lib/rake-pipeline/manifest_entry.rb +34 -0
  124. data/vendor/rake-pipeline/lib/rake-pipeline/matcher.rb +141 -0
  125. data/vendor/rake-pipeline/lib/rake-pipeline/middleware.rb +73 -0
  126. data/vendor/rake-pipeline/lib/rake-pipeline/precompile.rake +8 -0
  127. data/vendor/rake-pipeline/lib/rake-pipeline/project.rb +338 -0
  128. data/vendor/rake-pipeline/lib/rake-pipeline/rails_plugin.rb +10 -0
  129. data/vendor/rake-pipeline/lib/rake-pipeline/railtie.rb +34 -0
  130. data/vendor/rake-pipeline/lib/rake-pipeline/reject_matcher.rb +29 -0
  131. data/vendor/rake-pipeline/lib/rake-pipeline/server.rb +15 -0
  132. data/vendor/rake-pipeline/lib/rake-pipeline/sorted_pipeline.rb +19 -0
  133. data/vendor/rake-pipeline/lib/rake-pipeline/version.rb +6 -0
  134. data/vendor/rake-pipeline/rails/init.rb +2 -0
  135. data/vendor/rake-pipeline/rake-pipeline.gemspec +24 -0
  136. data/vendor/rake-pipeline/spec/cli_spec.rb +73 -0
  137. data/vendor/rake-pipeline/spec/concat_filter_spec.rb +37 -0
  138. data/vendor/rake-pipeline/spec/dsl/pipeline_dsl_spec.rb +165 -0
  139. data/vendor/rake-pipeline/spec/dsl/project_dsl_spec.rb +41 -0
  140. data/vendor/rake-pipeline/spec/dynamic_file_task_spec.rb +119 -0
  141. data/vendor/rake-pipeline/spec/encoding_spec.rb +106 -0
  142. data/vendor/rake-pipeline/spec/file_wrapper_spec.rb +132 -0
  143. data/vendor/rake-pipeline/spec/filter_spec.rb +367 -0
  144. data/vendor/rake-pipeline/spec/graph_spec.rb +56 -0
  145. data/vendor/rake-pipeline/spec/gsub_filter_spec.rb +87 -0
  146. data/vendor/rake-pipeline/spec/manifest_entry_spec.rb +46 -0
  147. data/vendor/rake-pipeline/spec/manifest_spec.rb +67 -0
  148. data/vendor/rake-pipeline/spec/matcher_spec.rb +141 -0
  149. data/vendor/rake-pipeline/spec/middleware_spec.rb +199 -0
  150. data/vendor/rake-pipeline/spec/ordering_concat_filter_spec.rb +42 -0
  151. data/vendor/rake-pipeline/spec/pipeline_spec.rb +232 -0
  152. data/vendor/rake-pipeline/spec/project_spec.rb +295 -0
  153. data/vendor/rake-pipeline/spec/rake_acceptance_spec.rb +720 -0
  154. data/vendor/rake-pipeline/spec/rake_tasks_spec.rb +21 -0
  155. data/vendor/rake-pipeline/spec/reject_matcher_spec.rb +31 -0
  156. data/vendor/rake-pipeline/spec/sorted_pipeline_spec.rb +27 -0
  157. data/vendor/rake-pipeline/spec/spec_helper.rb +38 -0
  158. data/vendor/rake-pipeline/spec/support/spec_helpers/file_utils.rb +35 -0
  159. data/vendor/rake-pipeline/spec/support/spec_helpers/filters.rb +37 -0
  160. data/vendor/rake-pipeline/spec/support/spec_helpers/input_helpers.rb +23 -0
  161. data/vendor/rake-pipeline/spec/support/spec_helpers/memory_file_wrapper.rb +35 -0
  162. data/vendor/rake-pipeline/spec/support/spec_helpers/memory_manifest.rb +19 -0
  163. data/vendor/rake-pipeline/tools/perfs +101 -0
  164. metadata +497 -0
@@ -0,0 +1,4 @@
1
+ .bundle
2
+ bundle/ruby/1.9.1/gems/compass-*/examples
3
+ bundle/ruby/1.9.1/gems/compass-*/test
4
+ tmp
@@ -0,0 +1,3 @@
1
+ [submodule "vendor/rake-pipeline"]
2
+ path = vendor/rake-pipeline
3
+ url = git://github.com/joefiorini/rake-pipeline.git
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ -I ./lib/benoit -I ./spec/support -I ./vendor/rake-pipeline/lib -fd
@@ -0,0 +1 @@
1
+ -r turnip/rspec -I spec/support
@@ -0,0 +1 @@
1
+ 1.9.3-p392
@@ -0,0 +1,44 @@
1
+ require 'benoit/pipeline/dsl_extensions'
2
+
3
+ before_filter Benoit::Filters::MetadataCleaner
4
+
5
+ input Dir.pwd do
6
+
7
+ reject "_*"
8
+ reject ".git"
9
+ reject ".gitignore"
10
+
11
+ match "**/*{.markdown,.md,.mkdown,.mdown}" do
12
+ filter Benoit::Filters::MarkdownFilter
13
+ end
14
+
15
+ match "**/*.js" do
16
+ concat do |input|
17
+ directory = File.dirname(input)
18
+ "#{directory}/app.js"
19
+ end
20
+ end
21
+
22
+ match "**/*.handlebars" do
23
+ filter Rake::Pipeline::Web::Filters::HandlebarsFilter
24
+ concat do |input|
25
+ directory = File.dirname(input)
26
+ js_dirs = Dir["**/*.js"].map { |js_file| File.dirname(js_file) }
27
+ js_root = js_dirs.sort(&:length).first
28
+ "#{js_root}/templates.js"
29
+ end
30
+ end
31
+
32
+ match "*.scss" do
33
+ filter Benoit::Filters::SassFilter, additional_load_paths: ["styles", "css"]
34
+ end
35
+
36
+ needs_pagination "*.html"
37
+
38
+ match "**/*.html" do
39
+ filter Benoit::Filters::ContentPageFilter
40
+ filter Benoit::Filters::CadenzaFilter
41
+ end
42
+
43
+ end
44
+
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://www.rubygems.org'
2
+
3
+ gem "rake-pipeline", path: "vendor/rake-pipeline"
4
+ gem "frontmatter", path: "vendor/frontmatter"
5
+ gemspec
@@ -0,0 +1,110 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ benoit (1.0.0.alpha.2)
5
+ cadenza (~> 0.8.0)
6
+ chunky_png (~> 1.2.0)
7
+ compass (~> 0.13.alpha)
8
+ gli (~> 2.5.3)
9
+ inflecto (~> 0.0.2)
10
+ kronic (~> 1.1.3)
11
+ multi_json (~> 1.5.0)
12
+ rake-pipeline-web-filters (~> 0.7.0)
13
+ redcarpet (~> 2.2.2)
14
+ sass (~> 3.2.0)
15
+ stamp (~> 0.5.0)
16
+
17
+ PATH
18
+ remote: vendor/frontmatter
19
+ specs:
20
+ frontmatter (0.0.1)
21
+
22
+ PATH
23
+ remote: vendor/rake-pipeline
24
+ specs:
25
+ rake-pipeline (0.8.0)
26
+ json
27
+ rake (~> 0.9.0)
28
+ thor
29
+
30
+ GEM
31
+ remote: https://www.rubygems.org/
32
+ specs:
33
+ aruba (0.5.2)
34
+ childprocess (~> 0.3.6)
35
+ cucumber (>= 1.1.1)
36
+ rspec-expectations (>= 2.7.0)
37
+ builder (3.2.0)
38
+ cadenza (0.8.0)
39
+ multi_json (>= 1.3.0)
40
+ childprocess (0.3.9)
41
+ ffi (~> 1.0, >= 1.0.11)
42
+ chunky_png (1.2.8)
43
+ coderay (1.0.9)
44
+ compass (0.13.alpha.4)
45
+ chunky_png (~> 1.2)
46
+ listen (<= 0.9.9)
47
+ sass (~> 3.2.5)
48
+ cucumber (1.2.5)
49
+ builder (>= 2.1.2)
50
+ diff-lcs (>= 1.1.3)
51
+ gherkin (~> 2.11.7)
52
+ multi_json (~> 1.3)
53
+ diff-lcs (1.2.4)
54
+ ffi (1.7.0)
55
+ gherkin (2.11.8)
56
+ multi_json (~> 1.3)
57
+ gli (2.5.6)
58
+ inflecto (0.0.2)
59
+ json (1.7.7)
60
+ kronic (1.1.3)
61
+ listen (0.7.3)
62
+ method_source (0.8.1)
63
+ multi_json (1.5.1)
64
+ pry (0.9.12)
65
+ coderay (~> 1.0.5)
66
+ method_source (~> 0.8)
67
+ slop (~> 3.4)
68
+ pry-nav (0.2.3)
69
+ pry (~> 0.9.10)
70
+ pry-remote (0.1.7)
71
+ pry (~> 0.9)
72
+ slop (~> 3.0)
73
+ rack (1.5.2)
74
+ rake (0.9.6)
75
+ rake-pipeline-web-filters (0.7.0)
76
+ rack
77
+ rake-pipeline (~> 0.6)
78
+ redcarpet (2.2.2)
79
+ rspec (2.13.0)
80
+ rspec-core (~> 2.13.0)
81
+ rspec-expectations (~> 2.13.0)
82
+ rspec-mocks (~> 2.13.0)
83
+ rspec-core (2.13.1)
84
+ rspec-expectations (2.13.0)
85
+ diff-lcs (>= 1.1.3, < 2.0)
86
+ rspec-mocks (2.13.1)
87
+ sass (3.2.7)
88
+ slop (3.4.4)
89
+ stamp (0.5.0)
90
+ thor (0.18.1)
91
+ turnip (1.1.0)
92
+ gherkin (>= 2.5)
93
+ rspec (~> 2.0)
94
+ turnip-kanban (0.0.1)
95
+ turnip
96
+
97
+ PLATFORMS
98
+ ruby
99
+
100
+ DEPENDENCIES
101
+ aruba
102
+ benoit!
103
+ frontmatter!
104
+ pry
105
+ pry-nav
106
+ pry-remote
107
+ rake-pipeline!
108
+ rspec
109
+ turnip (~> 1.1.0)
110
+ turnip-kanban
@@ -0,0 +1,9 @@
1
+ task :features do
2
+ exec "rspec -O .rspec-turnip spec/features"
3
+ end
4
+
5
+ task :spec do
6
+ exec "rspec spec"
7
+ end
8
+
9
+ task default: [:features, :spec]
@@ -0,0 +1,50 @@
1
+ # Ensure we require the local version and not one we might have installed already
2
+ require File.join([File.dirname(__FILE__),'lib','benoit','version.rb'])
3
+ spec = Gem::Specification.new do |s|
4
+ s.name = 'benoit'
5
+ s.version = Benoit::VERSION
6
+ s.author = 'Joe Fiorini'
7
+ s.email = 'joe@joefiorini.com'
8
+ s.homepage = 'http://static.ly'
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = 'The CLI interface behind the Benoit Mac app'
11
+
12
+ vendor_files = `git submodule foreach git ls-files`.split("\n")
13
+ vendor_files =
14
+ vendor_files.map do |file|
15
+ if match = /^Entering '(.*)'$/.match(file)
16
+ @current_dir = match[1]
17
+ nil
18
+ else
19
+ File.join(@current_dir, file)
20
+ end
21
+ end.compact
22
+
23
+ s.files = `git ls-files -z`.split("\0") + vendor_files
24
+
25
+ s.require_paths << 'lib'
26
+ s.bindir = 'bin'
27
+ s.executables << 'benoit'
28
+
29
+ s.add_dependency "gli", "~> 2.5.3"
30
+ s.add_dependency "sass", "~> 3.2.0"
31
+ s.add_dependency "multi_json", "~> 1.5.0"
32
+ s.add_dependency "redcarpet", "~> 2.2.2"
33
+ s.add_dependency "compass", "~> 0.13.alpha"
34
+ s.add_dependency "chunky_png", "~> 1.2.0"
35
+ s.add_dependency "inflecto", "~> 0.0.2"
36
+ s.add_dependency "cadenza", "~> 0.8.0"
37
+ s.add_dependency "rake-pipeline-web-filters", "~> 0.7.0"
38
+ s.add_dependency "kronic", "~> 1.1.3"
39
+ s.add_dependency "stamp", "~> 0.5.0"
40
+
41
+
42
+ s.add_development_dependency "rspec"
43
+ s.add_development_dependency "turnip", "~> 1.1.0"
44
+ s.add_development_dependency "turnip-kanban"
45
+ s.add_development_dependency "aruba"
46
+ s.add_development_dependency "pry"
47
+ s.add_development_dependency "pry-nav"
48
+ s.add_development_dependency "pry-remote"
49
+
50
+ end
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift File.expand_path("../../bundle", __FILE__)
3
+ $:.unshift File.expand_path("../../lib", __FILE__)
4
+
5
+ # Force bundler to load standalone bundle
6
+ # even if it's already loaded
7
+ load 'bundler/setup.rb'
8
+
9
+ require 'benoit'
10
+ require 'gli'
11
+
12
+ include GLI::App
13
+
14
+ default_command :noop
15
+
16
+ program_desc 'Describe your application here'
17
+
18
+ version Benoit::VERSION
19
+
20
+ desc 'Make Benoit\'s output friendly for app communication'
21
+ switch [:"app-mode"]
22
+
23
+ desc 'Path to the site to build'
24
+ arg_name 'Input path'
25
+ flag [:i,:"input-path"]
26
+
27
+ desc 'Path to which to output the site'
28
+ arg_name 'Output path'
29
+ flag [:o,:"output-path"]
30
+
31
+ desc 'Path in which to store temporary files'
32
+ arg_name 'Temp cache path'
33
+ flag [:c,:"cache-path"]
34
+
35
+ desc 'Describe build here'
36
+ arg_name 'Describe arguments to build here'
37
+ command :build do |c|
38
+ c.desc 'Clean up (delete) any existing build files for this site before building'
39
+ c.switch :clean
40
+
41
+ c.desc 'Describe a flag to build'
42
+ c.default_value 'default'
43
+ c.flag :f
44
+ c.action do |global_options,options,args|
45
+
46
+ # Your command logic here
47
+ # benoit build --app-mode --input-path ~/Sites/static.ly --output-path ../test\ site/tmp-output --cache-path ../test\ site/tmp-cache
48
+
49
+ site_path = global_options[:"input-path"] || Dir.pwd
50
+ assetfile_path = File.join(File.expand_path("../../", __FILE__), "Assetfile")
51
+ Dir.chdir(site_path) do
52
+ Benoit.configure do |config|
53
+ config.clean_before_build = options[:clean]
54
+ end
55
+ project = Benoit::PipelineProject.new(assetfile_path, Benoit.config.output_path, Benoit.config.cache_path)
56
+ project.invoke
57
+ end
58
+ # If you have any errors, just raise them
59
+ # raise "that command made no sense"
60
+
61
+ puts "build command ran"
62
+ end
63
+ end
64
+
65
+ desc 'Describe rebuild here'
66
+ arg_name 'Describe arguments to rebuild here'
67
+ command :rebuild do |c|
68
+ c.action do |global_options,options,args|
69
+ puts "rebuild command ran"
70
+ end
71
+ end
72
+
73
+ command :noop do |c|
74
+ c.action do |global_options,options,args|
75
+ if global_options[:version]
76
+ puts Benoit::VERSION
77
+ end
78
+ end
79
+ end
80
+
81
+ pre do |global,command,options,args|
82
+ # Pre logic here
83
+ # Return true to proceed; false to abort and not call the
84
+ # chosen command
85
+ # Use skips_pre before a command to skip this block
86
+ # on that command only
87
+ Benoit.configure do |config|
88
+ config.site_path = global[:"input-path"] || Dir.pwd
89
+ site_name = File.basename(config.site_path)
90
+ config.output_path = global[:"output-path"] || default_output_path
91
+ config.cache_path = global[:"cache-path"] || default_cache_path(site_name)
92
+ if global[:"app-mode"]
93
+ config.output_mode = :app
94
+ else
95
+ config.output_mode = :user
96
+ end
97
+ end
98
+ true
99
+ end
100
+
101
+ def default_output_path
102
+ File.expand_path(File.join(Dir.pwd, "_build"))
103
+ end
104
+
105
+ def default_cache_path(site_name)
106
+ File.expand_path("~/.benoit/tmpcache/#{site_name}")
107
+ end
108
+
109
+ post do |global,command,options,args|
110
+ # Post logic here
111
+ # Use skips_post before a command to skip this
112
+ # block on that command only
113
+ end
114
+
115
+ on_error do |exception|
116
+ # Error logic here
117
+ # return false to skip default error handling
118
+ Benoit::Logger.report_error(exception)
119
+ end
120
+
121
+ exit run(ARGV)
@@ -0,0 +1 @@
1
+ bundle install --gemfile spec/Gemfile --binstubs=../.bundle/bin
@@ -0,0 +1 @@
1
+ bundle install --standalone=release --binstubs=.bundle/bin
@@ -0,0 +1,36 @@
1
+ module Benoit
2
+
3
+ require "rake-pipeline-web-filters"
4
+
5
+ require_relative "./benoit/file_wrapper_extensions"
6
+
7
+ require_relative './benoit/configuration'
8
+ require_relative './benoit/logger'
9
+ require_relative './benoit/version'
10
+ require_relative "./benoit/site_context"
11
+ require_relative "./benoit/page"
12
+ require_relative "./benoit/pipeline_project"
13
+ require_relative "./benoit/compiler_error"
14
+ require_relative "./benoit/current_site"
15
+ require_relative "./benoit/cleaner"
16
+
17
+
18
+ require_relative "./benoit/cadenza"
19
+
20
+ require_relative "./benoit/filters"
21
+ require_relative "./benoit/pipeline"
22
+
23
+
24
+ require_relative "./benoit/page_metadata"
25
+
26
+ require_relative "./build_notifiers/file_built_notifier"
27
+ require_relative "./build_notifiers/progress_notifier"
28
+
29
+
30
+ require_relative "./benoit/utils/finds_layouts_for_template"
31
+ require_relative "./benoit/utils/normalizes_path_to_template"
32
+ require_relative "./benoit/utils/paginated_list"
33
+
34
+ extend Configuration
35
+
36
+ end
@@ -0,0 +1,11 @@
1
+ require 'stamp'
2
+
3
+ module Benoit
4
+ module Cadenza
5
+
6
+ def self.load_output_filters!
7
+ ::Cadenza::BaseContext.instance_eval File.read(File.join(File.dirname(__FILE__), 'cadenza', 'output_filters.rb'))
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ define_filter :format_like do |date,params|
2
+ date = Date.parse(date) unless date.respond_to? :stamp_like
3
+ date.stamp_like params[0]
4
+ end
5
+
6
+ define_filter :sort do |input,params|
7
+ field = params.first.to_sym
8
+ input.sort_by do |item|
9
+ ::Cadenza::Context.lookup_on_object(field, item)
10
+ end
11
+ end
12
+
13
+ define_filter :limit do |input,params|
14
+ length = params.first
15
+
16
+ if length > 0
17
+ input.take(length)
18
+ else
19
+ input.is_a?(Array) ? [] : ""
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ module Benoit
2
+ class Cleaner
3
+
4
+ def self.run
5
+ FileUtils.rm_rf(Benoit.config.cache_path)
6
+ FileUtils.rm_rf(Benoit.config.output_path)
7
+ end
8
+
9
+ end
10
+ end