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: []
         |