Module: Middleman::Sculptor::Helpers::Resources
- Defined in:
- lib/middleman-sculptor/helpers/resources.rb
Instance Method Summary collapse
-
#append_class(block_name, appended_classes = '') ⇒ Object
Use in layouts, in templates either Frontmatter or this method can be used.
- #get(url, options = {}) ⇒ Object
- #include_javascripts(javascripts) ⇒ Object
- #include_stylesheets(stylesheets) ⇒ Object
- #local_data(path) ⇒ Object
- #main_sections ⇒ Object
- #post(url, params = {}, headers = {}) ⇒ Object
- #resource_dir(resource) ⇒ Object
- #resource_file(resource) ⇒ Object
- #resource_tree(dir, ext: 'html', data_fields: [:title], exclude_indexes: false, sort_by: nil, ignore: nil) ⇒ Object
- #resources_for(dir, ext: 'html', exclude_indexes: false, sort_by: nil, ignore: nil, allow_hidden: false) ⇒ Object
Instance Method Details
#append_class(block_name, appended_classes = '') ⇒ Object
Use in layouts, in templates either Frontmatter or this method can be used
71 72 73 74 75 76 77 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 71 def append_class(block_name, appended_classes='') current_page_classes = current_page.data[block_name] || '' existing_classes_a = current_page_classes.split(' ') appended_classes_a = appended_classes.split(' ') classes = existing_classes_a.concat(appended_classes_a).reverse.join(' ') content_for(block_name, classes) end |
#get(url, options = {}) ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 79 def get(url, = {}) begin result = RestClient.get(url, ) rescue => e raise "GET - #{e.}: '#{url}'" end Oj.load(result) end |
#include_javascripts(javascripts) ⇒ Object
7 8 9 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 7 def include_javascripts(javascripts) include_assets(:javascript_include_tag, javascripts) end |
#include_stylesheets(stylesheets) ⇒ Object
11 12 13 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 11 def include_stylesheets(stylesheets) include_assets(:stylesheet_link_tag, stylesheets) end |
#local_data(path) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 52 def local_data(path) current_path = current_resource.path if current_resource..page.has_key? :local_url current_path = current_resource..page.local_url end result = sitemap.find_resource_by_path(relative_dir(current_path, path).to_s) raise "#{path} not found" unless result case result.ext when '.yaml', '.yml' result = YAML.load(result.render) when '.json' result = Oj.load(result.render) end result end |
#main_sections ⇒ Object
46 47 48 49 50 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 46 def main_sections resources_for('/') .select {|r| r.parent.url == '/' } .reject {|r| r.url == '/./'} end |
#post(url, params = {}, headers = {}) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 89 def post(url, params = {}, headers = {}) begin result = RestClient.post(url, params, headers) rescue => e raise "POST - #{e.}: '#{url}'" end Oj.load(result) end |
#resource_dir(resource) ⇒ Object
19 20 21 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 19 def resource_dir(resource) resource.url.split('/').last end |
#resource_file(resource) ⇒ Object
15 16 17 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 15 def resource_file(resource) resource.path.split('/').last.gsub(resource.ext, '') end |
#resource_tree(dir, ext: 'html', data_fields: [:title], exclude_indexes: false, sort_by: nil, ignore: nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 33 def resource_tree(dir, ext: 'html', data_fields: [:title], exclude_indexes: false, sort_by: nil, ignore: nil) resources_for(dir, ext: ext, exclude_indexes: exclude_indexes, sort_by: sort_by, ignore: ignore) .map { |r| parse_resource(r, { ext: ext, data_fields: data_fields, exclude_indexes: exclude_indexes, sort_by: sort_by, ignore: ignore }) } .reject { |r| r[:parent] != '/' } # Remove non-root directories from the root end |
#resources_for(dir, ext: 'html', exclude_indexes: false, sort_by: nil, ignore: nil, allow_hidden: false) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/middleman-sculptor/helpers/resources.rb', line 23 def resources_for(dir, ext: 'html', exclude_indexes: false, sort_by: nil, ignore: nil, allow_hidden: false) filtered = sitemap.resources .reject {|r| r.url == dir} # Exclude main directory index .select {|r| r.url.start_with?(dir)} # Select files in the given dir collect_resources(filtered, { ext: ext, exclude_indexes: exclude_indexes, sort_by: sort_by, ignore: ignore, allow_hidden: allow_hidden} ) end |