{"id":16019602,"url":"https://github.com/iboard/rst","last_synced_at":"2025-04-05T03:25:09.053Z","repository":{"id":7407327,"uuid":"8738118","full_name":"iboard/rst","owner":"iboard","description":"Ruby Shell Tools (GEM)","archived":false,"fork":false,"pushed_at":"2013-05-07T03:45:16.000Z","size":460,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T08:08:48.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jinzhu/gorm","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iboard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-12T20:50:48.000Z","updated_at":"2022-12-27T05:08:27.000Z","dependencies_parsed_at":"2022-08-26T17:10:51.787Z","dependency_job_id":null,"html_url":"https://github.com/iboard/rst","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboard%2Frst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboard%2Frst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboard%2Frst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboard%2Frst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iboard","download_url":"https://codeload.github.com/iboard/rst/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247283362,"owners_count":20913561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T17:04:53.359Z","updated_at":"2025-04-05T03:25:09.028Z","avatar_url":"https://github.com/iboard.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ruby Shell Tools\n================\n\nRubyShellTools, RST is an experimental Ruby2-gem by Andreas Altendorfer \u003candreas@altendorfer.at\u003e\n\n\nInspired by this [talk about nodoc][] and by the clean style of\n[Martin's code][],  I've playing around with Ruby2, Yard, and my idea of\nclean code with this gem named 'RubyShellTools' (short RST, but this\nname wasn't available at rubygems anymore ;-)\n\nSince bash-history isn't always enough persistent for my daily work, I deal with the idea to create a kinda 'central toolbox' for my shell. RST represents the first steps in this direction. I'm not sure if the 'project' will survive, tho. I'll give it a try.\n\nCurrent version features a very simple 'ls' and 'calendar'-command. \nThere is a command-line-version `bin/rst` and a Curses-version `bin/rst-ui`.\nA Sinatra-version will be added later.\n\nThe plan is to play around with the structure of the gem until I'm satisfied and feel comfortable to start implementing more features. There's a ton of ideas what RST could do, I'm just not sure what it shall do. Let's see ...\n\n\nInstall from rubygems.org\n-------------------------\n \nFind the gem at [RubyGems.org][]\n\n    gem install rubyshelltools\n    export RST_DATA=$HOME/.rst # default:  GEM_PATH/rubyshelltools/data\n    export RST_ENV=production  # defaults: development\n    rst --help\n\n\nClone/Fork from Github\n----------------------\n\nYou can clone from or fork the project at =\u003e [Github][]\n\n    git clone git://github.com/iboard/rst.git\n\n### First steps ...\n\nAfter downloading the project you can do\n\n    cd rst\n    bundle       # install required Gems\n    rake         # Run all specs\n    rake build   # build the gem\n    rake install # build and install gem\n\n\nUsage\n-----\n\nsee file EXAMPLES.md:\n\n * [EXAMPLES on Github][]\n * [loacal copy](./file.examples.html)\n \nor run\n\n    bin/rst --examples\n\nif you have done `rake install` you don't have to use `bin/rst` in \nthe project-directory but you can use `rst ...` directly from the shell.\n\nDocumentation\n-------------\n\nrun `yard; open doc/index.html` to build the rdocs and open\nit in your browser.\n\nThe latest version is online at my [DAV-server][] too.\n\nBrowsing the code\n-----------------\n\n  **To get a glue what's goin on**\n\n  do a `rspec --format d specs/` in the project's root\n\n        Command-line arguments\n          --verbose - should list interpreted options and files with --verbose\n          ls - should list files with 'ls'\n          --help - should print help\n          --examples - should print out examples from doc/examples.md\n        \n        ..... cut out a lot of lines .....\n\n  \n  **modules**\n  \n Modules are the core of this project. Within the directory\n `lib/modules` you'll find\n\n     * calendar           # Everything about Calendars \n       * calendar         # The Calendar-module and -class\n       * eventable        # Eventable API (module to make a class an event)\n       * calendar_event   # CalendarEvent-class\n      \n     * persistent         # Make things persistent\n       * persistent       # The Persistent-Module defines Persistentable/API\n       * store            # The abstract Store-class\n       * memory_store     # Store-descendant for a non-persistent memory-store\n       * disk_store       # Store-descendant using ruby-PStore to save to disk\n\n\n  **command-line implementation**\n  \n     * ./rst.rb           # Defines global Constants and the Logger\n     * ./lib/rst.rb       # Defines the class RstCommand used for the\n                          #   command-line-implementation\n     * ./lib/load.rb      # requires all necessary files\n                          #   used by bin/rst and spec/spec_helper.rb\n     * ./bin/rst          # Loads the library and instantiates a\n                          #   RstCommand-object\n\n  **RstCommand**\n\nCan handle two commands by now: \n\n_ls_, \n  the directory-listing, is coded\ninline and does a simple Dir for the given wildcards.\n\n_print_calendar_,\n  opens the calendar-file (all calendars are stored in one file) and acts on the calendar \nnamed by the --name parameter. It uses _DiskStore_ to make the calendars\npersistent.\n\n      cal = find_calendar( Persistent::DiskStore.new(CALENDAR_FILE) )\n      cal.list_days(options[:from], options[:to], options[:show_empty]).compact.join(\"\\n\")\n  \nCurses-interface\n----------------\n\n`bin/rst-ui` is a Curses-program to display the calendar for -1 to +5 weeks\nfrom today. You can walk around by weeks and years, using arrow-keys.\nAnd you can display a nice 'banner' for the current year (clear the\ncalendar-screen)\n\n`rst-ui` uses `CursesController` which handles the curses-implementation\nnothing has to change in our module's source.\n\n\nTDD\n---\n\nAnd as always we are **green**\n\nSee the current [coverage output][] (generated with [simplecov][])\n\nRunning `rake` and `yard` from the project-directory the output should include\nthe following lines ...\n\n    Finished in _a few_ seconds\n    _n_ examples, *0* failures\n    Coverage report generated for RSpec to rst/coverage. _n_ / _n+-0_ LOC (**100.0%**) covered.\n    **100.00% documented**\n\nTo run specs you can use rake-tasks\n\n    rake [test]      # Run Module-specs w/o command-line calls (default)\n    rake all         # Run all tests including specs/commands\n    rake commands    # Run command-specs only (slower because of system-calls)\n    rake modules     # Run module-specs only\n\nLicense\n=======\n\nThis is free software\n---------------------\n\nUse it without restrications and on your own risk.\nLeaving the copyright is appreciated, though.\n\n\nCopyright\n---------\n\n(c) 2013 by Andreas Altendorfer\n\n\n[simplecov]: http://github.com/colszowka/simplecov \n[RubyGems.org]: https://rubygems.org/gems/rubyshelltools\n[coverage output]: http://dav.iboard.cc/container/rst-coverage\n[Github]: https://github.com/iboard/rst\n[EXAMPLES on Github]: https://github.com/iboard/rst/blob/master/assets/docs/examples.md#examples\n[DAV-Server]: http://dav.iboard.cc/container/rst-doc\n[talk about nodoc]: http://www.youtube.com/watch?v=tCw7CpRvYOE\n[Martin's code]: https://github.com/snusnu\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiboard%2Frst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiboard%2Frst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiboard%2Frst/lists"}