mklabs / gimme-assets

A little, experimental tool to manage web assets from the CLI.
11 stars 2 forks source link

list : pagination #5

Closed k33g closed 12 years ago

k33g commented 12 years ago

would be helpful

mklabs commented 12 years ago

Now that the list of packages has been greatly increased with microjs' libs, that would indeed be helpful.

Not sure how to implement this though, maybe something like:

gimme list --from 0 --to 20

then it would return only the first 20 elements, sorted by package name.

Relatedly, I'd like to add a query parameter, that would help reducing the verbosity of that command. gimme list jquery would only return packages with jquery in the package name.

k33g commented 12 years ago

simply :

"press key for next page"

mklabs commented 12 years ago

@k33g you can now pass in terms to narrow the list or use a limit parameter to switch into paginated list.

gimme list jquery
» jquery                        jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event hand...
» jquery-easing                 Additional easings for jQuery.                                                                     
» jquery-throttle-debounce      jQuery throttle / debounce allows you to rate-limit your functions in multiple useful ways.        
» jquery-tools                  jQuery Tools is a collection of the most important user-interface components for modern websites. Us...
» jquery.cycle                  Cycle is an easy-to-use slideshow plugin that provides many options and effects for creating beautif...
» jqueryui                      jQuery UI provides abstractions for low-level interaction and animation, advanced effects and high-l...

Or maybe gimme list artemia spec :)

» speculoos                     Simple JavaScript Class notation, fully CoffeeScript compliant                                     
» species                       Java style OOP, and AOP ability, watchable members, inheritance and ability to call super members. 
» artemia                       Artemia is a clientside document store, inspired by Lawnchair.

I've taken your paginated feedback into account, the --limit parameter (alias -ll) let you specify the maximum number of results to display and that you want paginated list.

» ---------- 0 → 5 --------     «                                                                                                  
» bowser                        A browser detector. Because when there is no features to detect, sometimes you have to browser sniff...
» json-3                        A modern JSON implementation compatible with nearly all JavaScript platforms.                      
» jwerty                        Bind, fire and assert on keyboard events, with easy to use keyboard selector combos                
» remotestorage                 A library for adding remoteStorage support to your client-side app.                                
» smoke-signals                 Really, really lightweight event emitting                                                          
prompt: [N]ext, [P]revious, [Q]uit (n): n
» ---------- 5 → 10 --------    «                                                                                                  
» stapes                        A (really) tiny Javascript MVC microframework. Perfect for mobile.                                 
» mediator                      Flexible pubsub-ish framework for handling namespaced events.                                      
» list                          Add search, sort and flexibility to plain HTML lists (div, ul, table, everything!).                
» ytiframe                      A flexible, plain javascript youtube video embedding script in less than 40 lines.                 
» router                        controller/action convention for javascript. home/index would automatically instantiate Home js clas...
prompt: [N]ext, [P]revious, [Q]uit (n): n
» ---------- 10 → 15 --------   «                                                                                                  
» string::format                Adds a `format` method to `String.prototype`. Inspired by Python's `str.format()`.                 
» t-lite                        A lite but powerfull javascript template engine                                                    
» keyvent                       Keyboard events simulator.                                                                         
» radio                         Chainable publish/subscribe framework                                                              
» scaleapp                      scaleApp is a tiny JavaScript framework for scalable one-page-applications                         
prompt: [N]ext, [P]revious, [Q]uit (n): n
» ---------- 15 → 20 --------   «                                                                                                  
» path                          Simple, lightweight routing for web browsers                                                       
» speculoos                     Simple JavaScript Class notation, fully CoffeeScript compliant                                     
» traversty                     Headache-free DOM traversal using PrototypeJS inspired up(), down(), next() and previous(). Ideal fo...
» notificon                     Dynamic tab favicon notifications/alerts                                                           
» uuid-v4                       RFC-4122 Compliant Random (v4) UUID Generator
prompt: [N]ext, [P]revious, [Q]uit (n): q

That's a pretty cool feature, thanks you for creating the issue in the first place. Let me know if that works for you (it's on the dev branch).

Relatedly, I've added the possibility to specify which package properties the list command should display. Defaults is a simple name + description, but the --props option may be used to setup one or more name property to list:

gimme list artemia --props homepage --props name --props description --props repo --props source
» artemia                       
     » homepage:    https://github.com/k33g/artemia/
     » name:        artemia
     » description: Artemia is a clientside document store, inspired by Lawnchair.
     » repo:        k33g/artemia
     » source:      
          [ 'js/artemia.js',
            'js/adaptors.plugins/artemia.storage.js',
            'js/adaptors.plugins/artemia.sqlite.storage.js' ]

Or simply gimme list --props to see all package props.

Search terms, --limit and --props should be able to be used all together.