Sidenav 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.
- checksums.yaml +7 -0
- data/src/Menu.rb +71 -0
- data/src/Sidenav.rb +113 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e5eb12191e0ac304d72163d241281beaa6122eac
|
4
|
+
data.tar.gz: 941fc267f8d99fd4b5535f703a0bb9f3c5c5ff6b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b691fec5709e5963ca7cca89a569be3c5950df8d5c68aa7743e86101d836b9a7b7bffbe3a3cfe6348e54c246fd3ee81b0e7601509b4f49daf22a991dffb801d7
|
7
|
+
data.tar.gz: 406ecfac937b447f5112247d2e13b8fdcc4a7f1854adfc1125e82be1f5b35b025dc97a20953da225fbfe21e5de5a30de0c244903f986809804af0da84c183f34
|
data/src/Menu.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
class Menu
|
2
|
+
|
3
|
+
## setter and getter options
|
4
|
+
attr_accessor :name , :link , :title , :icon
|
5
|
+
|
6
|
+
##
|
7
|
+
# set link option of item
|
8
|
+
#
|
9
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
10
|
+
# @since 24 Nov 2016
|
11
|
+
# @param [string] link
|
12
|
+
# @return [string]
|
13
|
+
def link(link)
|
14
|
+
@link = link
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# set title option of item
|
19
|
+
#
|
20
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
21
|
+
# @since 24 Nov 2016
|
22
|
+
# @param [string] title
|
23
|
+
# @return [Object]
|
24
|
+
def title(title)
|
25
|
+
@title = title
|
26
|
+
end
|
27
|
+
|
28
|
+
##
|
29
|
+
# set icon option of item
|
30
|
+
#
|
31
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
32
|
+
# @since 24 Nov 2016
|
33
|
+
# @param [string] icon
|
34
|
+
# @return [Object]
|
35
|
+
def icon(icon)
|
36
|
+
@icon = icon
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# set route name
|
41
|
+
#
|
42
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
43
|
+
# @since 24 Nov 2016
|
44
|
+
# @param [string] name
|
45
|
+
# @return [Object]
|
46
|
+
def set_item_name(name)
|
47
|
+
@route = name
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# make array of items
|
52
|
+
#
|
53
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
54
|
+
# @since 24 Nov 2016
|
55
|
+
# @return [Object]
|
56
|
+
def make(item)
|
57
|
+
|
58
|
+
# set route name
|
59
|
+
self.set_item_name(item)
|
60
|
+
|
61
|
+
# return render object
|
62
|
+
{
|
63
|
+
route: @route,
|
64
|
+
title: @title,
|
65
|
+
link: @link ,
|
66
|
+
icon: @icon
|
67
|
+
}
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
data/src/Sidenav.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
class Sidenav
|
2
|
+
|
3
|
+
# setter and getter results
|
4
|
+
attr_accessor :group , :currentRoute , :menu , :routes
|
5
|
+
|
6
|
+
##
|
7
|
+
# Sidenav initialize
|
8
|
+
#
|
9
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
10
|
+
# @since 24 Nov 2016
|
11
|
+
# @return [object]
|
12
|
+
def initialize
|
13
|
+
@menu = Hash.new
|
14
|
+
@routes = Array.new
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Register a group items
|
19
|
+
#
|
20
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
21
|
+
# @since 24 Nov 2016
|
22
|
+
# @param [string] name
|
23
|
+
# @param [lambda] callback
|
24
|
+
def group(name,callback)
|
25
|
+
# set group menu name
|
26
|
+
@group = name
|
27
|
+
|
28
|
+
# set group menu
|
29
|
+
@menu[name] = []
|
30
|
+
|
31
|
+
# run callback lambda
|
32
|
+
callback.call
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Register a new item
|
37
|
+
#
|
38
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
39
|
+
# @since 24 Nov 2016
|
40
|
+
# @param [string] name
|
41
|
+
# @param [lambda] callback
|
42
|
+
# @return [Object]
|
43
|
+
def register(name,callback)
|
44
|
+
|
45
|
+
@current_route = name
|
46
|
+
|
47
|
+
@routes.push(name)
|
48
|
+
|
49
|
+
item = self.add(name,callback)
|
50
|
+
|
51
|
+
if self.check_group_name(@group)
|
52
|
+
@menu[@group].push(item)
|
53
|
+
else
|
54
|
+
@menu.push(item)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Add item
|
60
|
+
#
|
61
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
62
|
+
# @since 24 Nov 2016
|
63
|
+
# @param [string] item
|
64
|
+
# @param [lambda] callback
|
65
|
+
# @return [Object]
|
66
|
+
def add(item,callback)
|
67
|
+
menu_object = Menu.new
|
68
|
+
|
69
|
+
callback.call(menu_object)
|
70
|
+
|
71
|
+
menu_object.make(item)
|
72
|
+
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Check group name was set
|
76
|
+
#
|
77
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
78
|
+
# @since 24 Nov 2016
|
79
|
+
# @param [string] group
|
80
|
+
# @return [bool]
|
81
|
+
def check_group_name(group)
|
82
|
+
if group != nil
|
83
|
+
true
|
84
|
+
else
|
85
|
+
false;
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# get registered routes
|
91
|
+
#
|
92
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
93
|
+
# @since 24 Nov 2016
|
94
|
+
# @return [Object]
|
95
|
+
def routes
|
96
|
+
puts @routes
|
97
|
+
end
|
98
|
+
|
99
|
+
##
|
100
|
+
# get render of menu array
|
101
|
+
#
|
102
|
+
# @author Alireza Josheghani <a.josheghani@anetwork.ir>
|
103
|
+
# @since 24 Nov 2016
|
104
|
+
# @param [Object] group
|
105
|
+
def render(group = nil)
|
106
|
+
if group != nil
|
107
|
+
puts @menu[group]
|
108
|
+
else
|
109
|
+
puts @menu
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: Sidenav
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alireza Josheghani
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-11-25 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: SideNav is a Ruby package which helps you generate powerful sidebar navigation.
|
14
|
+
email: josheghani.dev@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- src/Menu.rb
|
20
|
+
- src/Sidenav.rb
|
21
|
+
homepage: https://github.com/iamalirezaj/Sidenav-ruby
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.9'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.6.3
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Sidebar navigation management
|
45
|
+
test_files: []
|