Module: Middleman::Sculptor::Helpers::Resources

Defined in:
lib/middleman-sculptor/helpers/resources.rb

Instance Method Summary collapse

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, options = {})
  begin
    result = RestClient.get(url, options)
  rescue => e
    raise "GET - #{e.message}: '#{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_sectionsObject



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.message}: '#{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