navigasmic 0.5.6 → 1.0.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.
- data/LICENSE +7 -1
- data/lib/generators/navigasmic/install/POST_INSTALL +6 -0
- data/lib/generators/navigasmic/install/install_generator.rb +17 -0
- data/lib/generators/navigasmic/install/templates/initializer.rb +145 -0
- data/lib/navigasmic.rb +5 -146
- data/lib/navigasmic/builders/crumb_builder.rb +20 -0
- data/lib/navigasmic/builders/list_builder.rb +90 -0
- data/lib/navigasmic/builders/map_builder.rb +77 -0
- data/lib/navigasmic/core/builders.rb +109 -0
- data/lib/navigasmic/core/configuration.rb +38 -0
- data/lib/navigasmic/core/item.rb +66 -0
- data/lib/navigasmic/rails.rb +2 -0
- data/lib/navigasmic/rails/engine.rb +9 -0
- data/lib/navigasmic/rails/view_helpers.rb +18 -0
- data/lib/navigasmic/version.rb +3 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +13 -0
- data/spec/dummy/app/controllers/blog/links_controller.rb +7 -0
- data/spec/dummy/app/controllers/blog/posts_controller.rb +7 -0
- data/spec/dummy/app/views/application/welcome.html.erb +4 -0
- data/spec/dummy/app/views/application/welcome.xml.builder +2 -0
- data/spec/dummy/app/views/blog/links/index.html +4 -0
- data/spec/dummy/app/views/blog/links/show.html +4 -0
- data/spec/dummy/app/views/blog/posts/index.html +4 -0
- data/spec/dummy/app/views/blog/posts/show.html +4 -0
- data/spec/dummy/app/views/layouts/_navigation.html.erb +73 -0
- data/spec/dummy/app/views/layouts/application.html.erb +40 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +57 -0
- data/spec/dummy/config/boot.rb +9 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/evergreen.rb +47 -0
- data/spec/dummy/config/initializers/additional_navigasmic.rb +14 -0
- data/spec/dummy/config/initializers/navigasmic.rb +145 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +68 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/bootstrap.min.css +9 -0
- data/spec/dummy/public/bootstrap.min.js +6 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/jquery.min.js +2 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/spec_helper.rb +39 -0
- metadata +139 -63
- data/.document +0 -5
- data/README.textile +0 -276
- data/Rakefile +0 -57
- data/VERSION +0 -1
- data/lib/builders/html_builder.rb +0 -69
- data/lib/builders/xml_builder.rb +0 -51
- data/navigasmic.gemspec +0 -49
- data/test/navigasmic_test.rb +0 -7
- data/test/test_helper.rb +0 -10
data/Rakefile
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "navigasmic"
|
8
|
-
gem.summary = %Q{Semantic navigation for Rails}
|
9
|
-
gem.description = %Q{Semantic navigation; a semantic way to build beautifully simple navigation structures in Rails.}
|
10
|
-
gem.email = "jejacks0n@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/jejacks0n/navigasmic"
|
12
|
-
gem.authors = ["Jeremy Jackson"]
|
13
|
-
gem.add_development_dependency "thoughtbot-shoulda"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
end
|
16
|
-
Jeweler::GemcutterTasks.new
|
17
|
-
rescue LoadError
|
18
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
19
|
-
end
|
20
|
-
|
21
|
-
require 'rake/testtask'
|
22
|
-
Rake::TestTask.new(:test) do |test|
|
23
|
-
test.libs << 'lib' << 'test'
|
24
|
-
test.pattern = 'test/**/*_test.rb'
|
25
|
-
test.verbose = true
|
26
|
-
end
|
27
|
-
|
28
|
-
begin
|
29
|
-
require 'rcov/rcovtask'
|
30
|
-
Rcov::RcovTask.new do |test|
|
31
|
-
test.libs << 'test'
|
32
|
-
test.pattern = 'test/**/*_test.rb'
|
33
|
-
test.verbose = true
|
34
|
-
end
|
35
|
-
rescue LoadError
|
36
|
-
task :rcov do
|
37
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
task :test => :check_dependencies
|
42
|
-
|
43
|
-
task :default => :test
|
44
|
-
|
45
|
-
require 'rake/rdoctask'
|
46
|
-
Rake::RDocTask.new do |rdoc|
|
47
|
-
if File.exist?('VERSION')
|
48
|
-
version = File.read('VERSION')
|
49
|
-
else
|
50
|
-
version = ""
|
51
|
-
end
|
52
|
-
|
53
|
-
rdoc.rdoc_dir = 'rdoc'
|
54
|
-
rdoc.title = "navigasmic #{version}"
|
55
|
-
rdoc.rdoc_files.include('README*')
|
56
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
57
|
-
end
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.5.6
|
@@ -1,69 +0,0 @@
|
|
1
|
-
module Navigasmic
|
2
|
-
class HtmlNavigationBuilder
|
3
|
-
|
4
|
-
@@classnames = {
|
5
|
-
:with_group => 'with-group',
|
6
|
-
:disabled => 'disabled',
|
7
|
-
:highlighted => 'highlighted'
|
8
|
-
}
|
9
|
-
@@wrapper_tag = :ul
|
10
|
-
@@group_tag = :ul
|
11
|
-
@@item_tag = :li
|
12
|
-
@@label_tag = :span
|
13
|
-
|
14
|
-
attr_accessor :template, :name, :items
|
15
|
-
|
16
|
-
def initialize(template, name, options = {}, &proc)
|
17
|
-
@template, @name, @items = template, name.to_s, []
|
18
|
-
render(options.delete(:html), &proc)
|
19
|
-
end
|
20
|
-
|
21
|
-
def render(options, &proc)
|
22
|
-
buffer = template.capture(self, &proc)
|
23
|
-
template.concat(template.content_tag(@@wrapper_tag, buffer, options))
|
24
|
-
end
|
25
|
-
|
26
|
-
def group(label = nil, options = {}, &proc)
|
27
|
-
raise ArgumentError, "Missing block" unless block_given?
|
28
|
-
|
29
|
-
options[:html] ||= {}
|
30
|
-
options[:html][:class] = template.add_html_class(options[:html][:class], @@classnames[:with_group])
|
31
|
-
options[:html][:id] ||= label.to_s.gsub(/\s/, '_').underscore unless label.blank? || options[:html].has_key?(:id)
|
32
|
-
|
33
|
-
buffer = template.capture(self, &proc)
|
34
|
-
group = template.content_tag(@@group_tag, buffer)
|
35
|
-
label = label_for_group(label) unless label.blank?
|
36
|
-
|
37
|
-
visible = options[:hidden_unless].nil? ? true : options[:hidden_unless].is_a?(Proc) ? template.instance_eval(&options[:hidden_unless]) : options[:hidden_unless]
|
38
|
-
visible ? template.content_tag(@@item_tag, (label.to_s + group).html_safe, options.delete(:html)) : ''
|
39
|
-
end
|
40
|
-
|
41
|
-
def item(label, options = {}, &proc)
|
42
|
-
buffer = block_given? ? template.capture(self, &proc) : ''
|
43
|
-
|
44
|
-
item = NavigationItem.new(label, options, template)
|
45
|
-
|
46
|
-
options[:html] ||= {}
|
47
|
-
options[:html][:id] = label.to_s.gsub(/\s/, '_').underscore unless options[:html].has_key?(:id)
|
48
|
-
|
49
|
-
options[:html][:class] = template.add_html_class(options[:html][:class], @@classnames[:disabled]) if item.disabled?
|
50
|
-
options[:html][:class] = template.add_html_class(options[:html][:class], @@classnames[:highlighted]) if item.highlighted?(template.request.path, template.params, template)
|
51
|
-
|
52
|
-
label = label_for_item(label)
|
53
|
-
link = item.link.is_a?(Proc) ? template.instance_eval(&item.link) : item.link
|
54
|
-
|
55
|
-
label = template.link_to(label, link, options.delete(:link_html)) unless !item.link? || item.disabled?
|
56
|
-
|
57
|
-
item.hidden? ? '' : template.content_tag(@@item_tag, label + buffer, options.delete(:html))
|
58
|
-
end
|
59
|
-
|
60
|
-
def label_for_group(label)
|
61
|
-
template.content_tag(@@label_tag, label.to_s)
|
62
|
-
end
|
63
|
-
|
64
|
-
def label_for_item(label)
|
65
|
-
template.content_tag(@@label_tag, label.to_s)
|
66
|
-
end
|
67
|
-
|
68
|
-
end
|
69
|
-
end
|
data/lib/builders/xml_builder.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
module Navigasmic
|
2
|
-
class XmlNavigationBuilder
|
3
|
-
|
4
|
-
@@wrapper_tag = :urlset
|
5
|
-
@@group_tag = :urlset
|
6
|
-
@@item_tag = :url
|
7
|
-
|
8
|
-
attr_accessor :template, :name, :items, :host
|
9
|
-
|
10
|
-
def initialize(template, name, options = {}, &proc)
|
11
|
-
@template, @name, @items = template, name.to_s, []
|
12
|
-
@host = options[:host] || "http://#{template.request.host_with_port}"
|
13
|
-
@changefreq = options[:changefreq] || 'yearly'
|
14
|
-
render(options.delete(:xml), &proc)
|
15
|
-
end
|
16
|
-
|
17
|
-
def render(options, &proc)
|
18
|
-
buffer = template.capture(self, &proc)
|
19
|
-
|
20
|
-
options ||= {}
|
21
|
-
options['xmlns'] ||= 'http://www.sitemaps.org/schemas/sitemap/0.9'
|
22
|
-
options['xmlns:xsi'] ||= 'http://www.w3.org/2001/XMLSchema-instance'
|
23
|
-
options['xsi:schemaLocation'] ||= 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'
|
24
|
-
|
25
|
-
template.concat(template.content_tag(@@wrapper_tag, buffer, options))
|
26
|
-
end
|
27
|
-
|
28
|
-
def group(label = nil, options = {}, &proc)
|
29
|
-
raise ArgumentError, "Missing block" unless block_given?
|
30
|
-
|
31
|
-
buffer = template.capture(self, &proc)
|
32
|
-
|
33
|
-
visible = options[:hidden_unless].nil? ? true : options[:hidden_unless].is_a?(Proc) ? template.instance_eval(&options[:hidden_unless]) : options[:hidden_unless]
|
34
|
-
visible ? template.concat(template.content_tag(@@group_tag, buffer)) : ''
|
35
|
-
end
|
36
|
-
|
37
|
-
def item(label, options = {}, &proc)
|
38
|
-
buffer = block_given? ? template.capture(self, &proc) : ''
|
39
|
-
|
40
|
-
item = NavigationItem.new(label, options, template)
|
41
|
-
|
42
|
-
contents = template.content_tag(:loc, @host + template.url_for(item.link))
|
43
|
-
contents << template.content_tag(:changefreq, options[:changefreq] || @changefreq)
|
44
|
-
contents << template.content_tag(:lastmod, options[:lastmod]) if options[:lastmod]
|
45
|
-
contents << template.content_tag(:priority, options[:priority]) if options[:priority]
|
46
|
-
|
47
|
-
item.hidden? ? '' : template.concat(template.content_tag(@@item_tag, contents + buffer, options.delete(:xml)))
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
data/navigasmic.gemspec
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{navigasmic}
|
8
|
-
s.version = "0.5.6"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Jeremy Jackson"]
|
12
|
-
s.date = %q{2011-07-01}
|
13
|
-
s.description = %q{Semantic navigation; a semantic way to build beautifully simple navigation structures in Rails.}
|
14
|
-
s.email = %q{jejacks0n@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE",
|
17
|
-
"README.textile"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"LICENSE",
|
22
|
-
"README.textile",
|
23
|
-
"Rakefile",
|
24
|
-
"VERSION",
|
25
|
-
"lib/builders/html_builder.rb",
|
26
|
-
"lib/builders/xml_builder.rb",
|
27
|
-
"lib/navigasmic.rb",
|
28
|
-
"navigasmic.gemspec",
|
29
|
-
"test/navigasmic_test.rb",
|
30
|
-
"test/test_helper.rb"
|
31
|
-
]
|
32
|
-
s.homepage = %q{http://github.com/jejacks0n/navigasmic}
|
33
|
-
s.require_paths = ["lib"]
|
34
|
-
s.rubygems_version = %q{1.7.2}
|
35
|
-
s.summary = %q{Semantic navigation for Rails}
|
36
|
-
|
37
|
-
if s.respond_to? :specification_version then
|
38
|
-
s.specification_version = 3
|
39
|
-
|
40
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
41
|
-
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
42
|
-
else
|
43
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
44
|
-
end
|
45
|
-
else
|
46
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
data/test/navigasmic_test.rb
DELETED
data/test/test_helper.rb
DELETED