nesta-plugin-metadata-extensions 0.0.1

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.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in nesta-plugin-metadata-extensions.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,3 @@
1
+ require "nesta-plugin-metadata-extensions/version"
2
+
3
+ Nesta::Plugin.register(__FILE__)
@@ -0,0 +1,129 @@
1
+ module Nesta
2
+ module Plugin
3
+ module Metadata::Extensions
4
+ module Helpers
5
+ # If your plugin needs any helper methods, add them here...
6
+ end
7
+ end
8
+ end
9
+
10
+ class Config
11
+ # expose any definitions of a support contact
12
+ def self.support
13
+ environment_config = {}
14
+ %w[name uri email].each do |setting|
15
+ variable = "NESTA_SUPPORT__#{setting.upcase}"
16
+ ENV[variable] && environment_config[setting] = ENV[variable]
17
+ end
18
+ environment_config.empty? ? from_yaml("support") : environment_config
19
+ end
20
+ end
21
+
22
+ class App
23
+ helpers Nesta::Plugin::Metadata::Extensions::Helpers
24
+
25
+ # Override not_found to include additional config variables
26
+ not_found do
27
+ set_common_variables
28
+ set_from_config(:support)
29
+ haml(:not_found)
30
+ end
31
+
32
+ # Override error to include additional config variables
33
+ error do
34
+ set_common_variables
35
+ set_from_config(:support)
36
+ haml(:error)
37
+ end unless Nesta::App.development?
38
+ end
39
+
40
+ class Page
41
+
42
+ # Custom login to infer the page title, useful if you want to template
43
+ # the page heading
44
+ def full_title
45
+ @full_title ||= if inferred_heading
46
+ inferred_heading
47
+ elsif h1
48
+ h1
49
+ elsif menu_label
50
+ menu_label
51
+ else
52
+ "<unknown>"
53
+ end
54
+ end
55
+
56
+ # A label for this page to be used in menus
57
+ def menu_label
58
+ @menu_label ||= if metadata('menu label')
59
+ metadata('menu label')
60
+ elsif inferred_heading
61
+ inferred_heading
62
+ elsif h1
63
+ h1
64
+ else
65
+ "<unknown>"
66
+ end
67
+ end
68
+
69
+ def h1
70
+ metadata('h1')
71
+ end
72
+
73
+ def inferred_heading
74
+ regex = case @format
75
+ when :mdown
76
+ /^#\s*(.*?)(\s*#+|$)/
77
+ when :haml
78
+ /^\s*%h1\s+(.*)/
79
+ when :textile
80
+ /^\s*h1\.\s+(.*)/
81
+ end
82
+ markup =~ regex
83
+ Regexp.last_match(1)
84
+ end
85
+
86
+ def heading
87
+ full_title
88
+ end
89
+
90
+ def url
91
+ metadata('url')
92
+ end
93
+
94
+ def contact
95
+ metadata('contact')
96
+ end
97
+
98
+ end
99
+
100
+ module Navigation
101
+ module Renderers
102
+ # Override nesta's display_menu_item to show the menu attribute
103
+ # in the menu, if given
104
+ def display_menu_item(item, options = {})
105
+ if item.respond_to?(:each)
106
+ if (options[:levels] - 1) > 0
107
+ haml_tag :li do
108
+ display_menu(item, :levels => (options[:levels] - 1))
109
+ end
110
+ end
111
+ else
112
+ html_class = (request.path == item.abspath) ? "current" : nil
113
+ haml_tag :li, :class => html_class do
114
+ haml_tag :a, :<, :href => item.abspath do
115
+ haml_concat item.menu_label
116
+ end
117
+ end
118
+ end
119
+ end
120
+
121
+ # Override nesta's breadcrumb_label to show the menu attribute
122
+ # in the breadcrumbs, if given
123
+ def breadcrumb_label(page)
124
+ (page.abspath == '/') ? 'Home' : ( page.metadata('menu').nil? ? page.heading : page.metadata('menu') )
125
+ end
126
+ end
127
+ end
128
+
129
+ end
@@ -0,0 +1,9 @@
1
+ module Nesta
2
+ module Plugin
3
+ module Metadata
4
+ module Extensions
5
+ VERSION = "0.0.1"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "nesta-plugin-metadata-extensions/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "nesta-plugin-metadata-extensions"
7
+ s.version = Nesta::Plugin::Metadata::Extensions::VERSION
8
+ s.authors = ["Craig Rindt"]
9
+ s.email = ["crindt@gmail.com"]
10
+ s.homepage = "http://crindt.heroku.com"
11
+ s.summary = %q{Some simple extensions to expose and use more metadata in nesta.}
12
+ s.description = %q{Some simple extensions to expose and use more metadata in nesta.}
13
+
14
+ s.rubyforge_project = "nesta-plugin-metadata-extensions"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+ s.add_dependency("nesta", ">= 0.9.11")
21
+ s.add_development_dependency("rake")
22
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nesta-plugin-metadata-extensions
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Craig Rindt
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-12-15 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: nesta
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 45
29
+ segments:
30
+ - 0
31
+ - 9
32
+ - 11
33
+ version: 0.9.11
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :development
49
+ version_requirements: *id002
50
+ description: Some simple extensions to expose and use more metadata in nesta.
51
+ email:
52
+ - crindt@gmail.com
53
+ executables: []
54
+
55
+ extensions: []
56
+
57
+ extra_rdoc_files: []
58
+
59
+ files:
60
+ - .gitignore
61
+ - Gemfile
62
+ - Rakefile
63
+ - lib/nesta-plugin-metadata-extensions.rb
64
+ - lib/nesta-plugin-metadata-extensions/init.rb
65
+ - lib/nesta-plugin-metadata-extensions/version.rb
66
+ - nesta-plugin-metadata-extensions.gemspec
67
+ homepage: http://crindt.heroku.com
68
+ licenses: []
69
+
70
+ post_install_message:
71
+ rdoc_options: []
72
+
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 3
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ requirements: []
94
+
95
+ rubyforge_project: nesta-plugin-metadata-extensions
96
+ rubygems_version: 1.8.10
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: Some simple extensions to expose and use more metadata in nesta.
100
+ test_files: []
101
+