Info
Installation
You'll need Ruby and Rubygems installed for the Ruby Orphic CLI to function and develop your own commands or plugins. This is built using the Thor toolkit (Insecure Link!), RSpec, and other commonly found gems in Ruby CLIs. Inspired by this video. If npm --version
runs in your console, you can also connect the Ruby CLI with our Node.JS CLI [Editor's Note: Future state]. To learn more about Rubygems see the Rubygems.org API for more info on accessing various gem
functionalities.
Front End Development
Follow these steps to run Slate for Front-end of orphicoin.com. //TODO connect CLI to front-end.
neo
Windows Quick-Start Mini-Guide
-
(DEV) Install Sublime Text AND/OR VS Code + git extensions
Developer Installation
Once the steps above are complete, you'll need the Bundler Ruby gem to locally bundle any changes made with gem install bundler
. For more on Bundler and Gemfiles, check out the bundler docs here. To build from source, clone the repo, access the directory and run bundle install
. We strongly recommend using version control before continuing further. You can clone the ruby-orphic-cli repository into your own and once your changes are complete, they can be submitted for review via a Pull Request. If unfamiliar with git, Orphic recommends Git SCM.
It is highly recommended to use macOS or Linux as a base operating system when developing on our CLI in its current state. Windows Linux Subsystem 2 requires sudo for most functions
Common Errors
Permission denied when installing bundler
Development tools error
sudo apt-get install ubuntu-dev-tools
Getting Started
The Orphic CLI runs on both Ruby and NodeJS, and to get started with either we recommend using Brew on Linux and Unix distros (including macOS), or Chocolatey for Windows users. The CLI is currently focused on -nix developer environments. With these package managers you can install nvm and rbenv: version management software that will create environments for any specified version. On -nix variants, we recommend against using such package managers for installing nvm as it should be manually installed (explained).
On Windows you'll need to install Windows Subsystem Linux (“¯_(ツ)_//¯“). v2 will focus on Windows PowerShell shortcuts via Chocolatey (Soon! If you'd like to create a Chocolatey pluj for us, see this!).
We recommend Ruby version 2.7.1 and Node version 12 or 14. Google is your friend, and this is a good article for macOS users - (Ubuntu/WSL). If those steps are complete, you can install the gem locally with gem install orphic
.
Use of either the Ruby or NodeJS CLIs can be independent, for more complex applications use of both leads to more succinct solutions when justified. These features are currently in progress and documentation will be noted here when available. V2 will incorporate the rails gem as a means of deploying NodeJS/Docker containers.
macOS
macOS includes a version of ruby and for that reason Orphic recommends using shims via rbenv to maintain a separate development environment. Our codebase is on Ruby 2.7.2, so your mileage may vary, but feel free to submit an Issue for any unexpected outcomes with replicable steps to anticipate the same conclusion.
Example neo
commands:
orphic help
This will help you get started developing new commands with thor, there are currently these commands and subcommands available:
hello
-Uppercase -- Uppercase flag
node
node hello
node help
-tags -- tags option
Command -- (req.) argument
node deploy
-Site -- Site flag
-baseDistrict -- argument
map -- view map commands
map
-createDistrict
map
-viewDistrict
map
-Spools
media
-TYPE -- Type flag
Spools
Paji
posPaji
update_Paji
Cursor
posCursor
GeekCursor
mongoDb
mongo_URL - (req.) argument
Geek
Data
Flash
require Geek
puts "hi from flash"
Example dev commands:
bundle exec exe/orphic help
Publishing the Ruby gem
Start with this doc and your own test ruby gem, you can copy an early branch if you'd like.
This will help you get started:
nano lib/orphic/version.rb
rm *i*
bundler install
gem build
gem publish *i*
Git
Example baseDistricts
Create a new branch with git to something like git branch
.
Example HTTP headers
Request headers
X-Forwarded-For: {IP address}
Cache-control: no-cache
Authorization: {auth token}
User-Agent: {your custom user agent}
Response headers
Access-Control-Allow-Origin: *
X-Frame-Options: deny