migajas 0.9.0 → 1.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.
- checksums.yaml +5 -5
- data/README.md +49 -3
- data/lib/migajas.rb +11 -1
- data/lib/migajas/rails.rb +50 -0
- data/lib/migajas/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d1c73bd0ffb5454b4eee7071c06cfac143401de7274bd379bf32cdd6209f328f
|
4
|
+
data.tar.gz: d7e83df30e99e86080d09e600b6b0d4cb2b76be50e062175d5d4a3799c446e84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5b3b988e648cf63a565c1dc6c417ddbe395cd404f7a83bfb10198351b3eeec22c309468a37c4c203bd6b7998c303a8cd70e06e4750d1da24e1473706ccb0331
|
7
|
+
data.tar.gz: fa02e81e1f6dc39ad0ee0ce48b76764c243259d946ebbe591e761907203e0d7995644402108d70d6e074a0fb4c9d63ee89c1a91072441e98b7fc3d0d941b0077
|
data/README.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# Migajas
|
2
2
|
|
3
|
-
Migajas is a tiny library for adding breadcrumbs to
|
4
|
-
like Cuba or Roda
|
3
|
+
Migajas is a tiny library for adding breadcrumbs to any Rack application. It was
|
4
|
+
designed with routing tree frameworks like Cuba or Roda in mind, but works well
|
5
|
+
with any Rack-based framework, including Rails.
|
5
6
|
|
6
7
|
## Usage
|
7
8
|
|
@@ -46,14 +47,59 @@ Then, in the view, go over the `breadcrumbs` list:
|
|
46
47
|
|
47
48
|
That's it :)
|
48
49
|
|
50
|
+
## Rails
|
51
|
+
|
52
|
+
Start by adding `Migajas::Rails` to your controllers:
|
53
|
+
|
54
|
+
``` ruby
|
55
|
+
class ApplicationController < ActionController::Base
|
56
|
+
include Migajas::Rails
|
57
|
+
end
|
58
|
+
```
|
59
|
+
|
60
|
+
This gives you a `breadcrumbs` method that you can access from your controllers
|
61
|
+
and views. The recommended approach is to use action callbacks to add
|
62
|
+
breadcrumbs:
|
63
|
+
|
64
|
+
``` ruby
|
65
|
+
class ApplicationController < ActionController::Base
|
66
|
+
include Migajas::Rails
|
67
|
+
|
68
|
+
before_action { breadcrumbs.add "Home", root_path }
|
69
|
+
end
|
70
|
+
|
71
|
+
class UsersController < ApplicationController
|
72
|
+
before_action { breadcrumbs.add "Users", users_path }
|
73
|
+
before_action(only: [:show, :edit, :update]) { breadcrumbs.add @user.name, user_path(@user) }
|
74
|
+
end
|
75
|
+
```
|
76
|
+
|
77
|
+
Then, in your layout, you can iterate over the Array:
|
78
|
+
|
79
|
+
``` erb
|
80
|
+
<ol class="breadcrumbs">
|
81
|
+
<% breadcrumbs.each do |crumb| %>
|
82
|
+
<%= tag.li class: { active: crumb.current? } do %>
|
83
|
+
<%= link_to crumb.name, crumb.url %>
|
84
|
+
<% end %>
|
85
|
+
<% end %>
|
86
|
+
</ol>
|
87
|
+
```
|
88
|
+
|
49
89
|
## Install
|
50
90
|
|
51
91
|
gem install migajas
|
52
92
|
|
93
|
+
## Do we need a gem for this?
|
94
|
+
|
95
|
+
Probably not, but after 2 years of using this code, I got bored of copying and
|
96
|
+
pasting it from [a gist](https://gist.github.com/foca/44c9f24a759238fba9fb).
|
97
|
+
|
53
98
|
## What's in a name?
|
54
99
|
|
55
100
|
`Migajas` is the Spanish word for `breadcrumbs`. It's pronounced like you'd
|
56
|
-
pronounce `
|
101
|
+
pronounce `me-gha-has` in English (`me` as in the word "me", `gha` as in
|
102
|
+
"ghast", and `has` as the word "has".)
|
57
103
|
|
58
104
|
## License
|
59
105
|
|
data/lib/migajas.rb
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
+
require_relative "migajas/version"
|
2
|
+
require_relative "migajas/rails" if defined?(Rails)
|
3
|
+
|
1
4
|
module Migajas
|
5
|
+
# Public: Reader method to get the Rack env. Override if your framework does
|
6
|
+
# not expose an `env` method in the context used when evaluating routing
|
7
|
+
# actions or views (such as Rails).
|
8
|
+
def migajas_env
|
9
|
+
env
|
10
|
+
end
|
11
|
+
|
2
12
|
# Public: List of breadcrumbs encountered in this request. Add to this list
|
3
13
|
# any breadcrumb as you go through your routing tree in the app:
|
4
14
|
#
|
@@ -41,7 +51,7 @@ module Migajas
|
|
41
51
|
#
|
42
52
|
# Returns a Migajas::Trail.
|
43
53
|
def breadcrumbs
|
44
|
-
|
54
|
+
migajas_env["app.breadcrumbs"] ||= Trail.new(migajas_env)
|
45
55
|
end
|
46
56
|
|
47
57
|
# The Trail is just an `env`-aware Array, with some convenient sugar for
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "migajas"
|
2
|
+
|
3
|
+
module Migajas
|
4
|
+
# Provides a bridge for Migajas to work in Rails controllers, giving you the
|
5
|
+
# `breadcrumbs` method both in controllers and views.
|
6
|
+
#
|
7
|
+
# You can then add to it via action callbacks, like so:
|
8
|
+
#
|
9
|
+
# class ApplicationController
|
10
|
+
# before_action { breadcrumbs.add "Home", root_path }
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# class UsersController < ApplicationController
|
14
|
+
# before_action { breadcrumbs.add "Users", users_path }
|
15
|
+
# before_action(only: [:show, :edit, :update]) do
|
16
|
+
# breadcrumbs.add @user.name, @user
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# You can also call `breadcrumbs.add` directly from your controller action:
|
21
|
+
#
|
22
|
+
# class UsersController < ApplicationController
|
23
|
+
# def edit_security
|
24
|
+
# breadcrumbs.add "Password", edit_security_user_path(@user)
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# Then, from the view, you can just iterate over the `breadcrumbs` trail:
|
29
|
+
#
|
30
|
+
# <nav class="breadcrumbs" aria-label="Breadcrumb">
|
31
|
+
# <ol>
|
32
|
+
# <% breadcrumbs.each do |crumb| %>
|
33
|
+
# <li><%= link_to_unless crumb.current?, crumb.name, crumb.url %></li>
|
34
|
+
# <% end %>
|
35
|
+
# </ol>
|
36
|
+
# </nav>
|
37
|
+
#
|
38
|
+
module Rails
|
39
|
+
extend ActiveSupport::Concern
|
40
|
+
include Migajas
|
41
|
+
|
42
|
+
included do
|
43
|
+
helper_method :breadcrumbs
|
44
|
+
end
|
45
|
+
|
46
|
+
def migajas_env # :nodoc:
|
47
|
+
request.env
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/migajas/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: migajas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Sanguinetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cutest
|
@@ -31,16 +31,16 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.0'
|
34
|
-
type: :
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
|
-
description: Simple library to add breadcrumbs to your
|
41
|
+
description: Simple library to add breadcrumbs to your Rack app
|
42
42
|
email:
|
43
|
-
-
|
43
|
+
- foca@foca.io
|
44
44
|
executables: []
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- LICENSE
|
49
49
|
- README.md
|
50
50
|
- lib/migajas.rb
|
51
|
+
- lib/migajas/rails.rb
|
51
52
|
- lib/migajas/version.rb
|
52
53
|
homepage: http://github.com/foca/migajas
|
53
54
|
licenses:
|
@@ -68,9 +69,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: '0'
|
70
71
|
requirements: []
|
71
|
-
|
72
|
-
rubygems_version: 2.4.5.1
|
72
|
+
rubygems_version: 3.0.3
|
73
73
|
signing_key:
|
74
74
|
specification_version: 4
|
75
|
-
summary: Breadcrumbs for your
|
75
|
+
summary: Breadcrumbs for your Rack app
|
76
76
|
test_files: []
|