create http servers in pull streamy ways
A TDS driver, for connecting to MS SQLServer databases.
Node.js Streams, a user-land copy of the stream library from Node.js
OCSP Stapling implementation
Providing common fields for analytics integrations
The iconic font and CSS framework
An HTTP(s) proxy `http.Agent` implementation for HTTP
A simple zero-configuration command-line http server
Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js
Full BCP 47 language subtag data from the official IANA repository, in JSON format with multiple indices.
HTTP proxying for the masses
Interface used to connect Apollo Gateway to Apollo Server
Mongoose MongoDB ODM
Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.
Streaming http in the browser
server renderer for Vue 2.0
WebSocket protocol handler with pluggable I/O
[](http://www.typescriptlang.org/) [](https://www.npmjs.com/package/@n1ru4l/push-pull-async
A selenium server and browser driver manager for your end to end tests.
Library for HTTP request signing (JavaScript implementation)
SSH2 client and server modules written in pure JavaScript for node.js
Reference implementation of Joyent's HTTP Signature scheme.
Format and manipulate numbers.
Standards-compliant WebSocket server and client
Gem for pulling data from RETS (http://rets.org) servers.
Remote feature management for Cucumber. Bumps extends {Cucumber}[http://cukes.info] by allowing you to pull feature content and push run results to and from a remote server. This means that your feature files no longer need to live with your steps and other code. This also means that you can publish the results of a Cucumber run to another system. Bumps has been designed to work with {Bumpybot}[http://github.com/brentsnook/bumpybot] (a Google Wave robot) but it can be used with any server that meets the {push/pull contract}[http://wiki.github.com/brentsnook/bumps/push-pull-contract]. See the {wiki}[http://wiki.github.com/brentsnook/bumps] for more details.
EventMachine-LE (Live Edition) is a branch of EventMachine (https://github.com/eventmachine/eventmachine). This branch incorporates interesting pull requests that are not yet included in the mainline EventMachine repository. The maintainers of that version prefer to minimize change in order to keep the stability with already existing EventMachine deployments, which provides an impressive multi-platform base for IPv4 TCP servers (e.g., Web servers) that don't need good UDP or IPv6 support. This dedication to stability is helpful for production use, but can also lead to ossification. The present "Live Edition" or "Leading Edge" branch has its focus on supporting a somewhat wider use, including new Web servers or protocols beyond the HTTP Web. To provide even more focus, this branch is currently applying its energy towards Linux and Unix/BSD/OSX environments. Java reactor and pure Ruby reactor are for now removed in this branch, and Windows/Cygwin support is untested. This may very well change later, once interesting pull requests come in. EventMachine-LE draws from a number of dormant pull requests on the mainline version of EventMachine. New proposals will also directly come to EventMachine-LE and will be included once they are tested. This is not a "development branch", EventMachine-LE is ready for production, just beyond the focus of mainline EventMachine.
= rails_vcstatus_logger It adds current state of version control to the log when you start the server. * Currently only supports git Adds current version hash and result of `git diff` The idea is that you can be sure about what source was running when you look in the log. I recently had a situation where i wasn't sure when a change was put up on the live server. Please add support for your vc system and send me a pull request! Just add this to enivorment.rb config.gem 'bjornblomqvist-rails_vcstatus_logger', :lib => 'rails_vcstatus_logger', :source => 'http://gems.github.com' == Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. == Copyright Copyright (c) 2009 Bjorn Blomqvist. See LICENSE for details.
Quickly copy files (e.g. YMLs or configuration files) to multiple EngineYard servers
Quickly copy files (e.g. YMLs or configuration files) to multiple EngineYard servers
Remote syslog appender for Logging
# CheckChefConverge This is a Nagios/Sensu check that can check if nodes returned from a chef search have converged recently. ## Installation Add this line to your application's Gemfile: ```ruby gem 'check_chef_converge' ``` And then execute: $ bundle Or install it yourself as: $ gem install check_chef_converge ## Usage ``` Usage: check_chef_converge -w, --warn-minutes MINUTES Warning when chef has not converged in minutes.Default 65 -c, --crit-minutes MINUTES Critical when chef has not converged in minutes.Default 70 -q, --query SEARCH Chef query to filter on. Default 'fqdn:travis-work-mbp.local' --chef-client-config CONFIG Chef client configuration. --chef-server-url URL Chef Server URL. Must pass client-name and client-key or client-key-file with this option. --chef-client-name NAME Chef Client Name. Only used with server-url --chef-client-key KEY Chef Client Key (string). Only used with server-url. Takes precedence over client-key-file. --chef-client-key-file PATH Chef Client Key File. Only used with server-url -h, --help Show this message --version Show version ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/Altiscale/check_chef_converge. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
# SshSig - SSH signature verification in pure ruby SshSig is a Ruby gem which can be used to verify signatures signed created by `ssh-keygen`. This capability was [first added](https://github.com/openssh/openssh-portable/commit/2a9c9f7272c1e8665155118fe6536bebdafb6166) in OpenSSH 8.0 allows SSH keys to be used for GPG-like signing capabilities, [including signing git commits](https://github.com/git/git/pull/1041). ## Installation Add this line to your application's Gemfile: ```ruby gem 'ssh_sig' ``` And then execute: $ bundle install Or install it yourself as: $ gem install ssh_sig ## Usage Version 1 of [the SSH signature format](https://github.com/openssh/openssh-portable/blob/b7ffbb17e37f59249c31f1ff59d6c5d80888f689/PROTOCOL.sshsig) supports `ed25519` and `rsa` keys. It is recommended that you use `ed25519` over `rsa` where possible (`ssh-keygen -t ed25519`). In order to verify a signature you need: 1. The public key of the sender 1. The signature file 1. The message to be verified. ```ruby require 'ssh_sig' armored_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILXPkJPI4TMFWZP4xRBQjNeizUG99KuZCt9G23rX48kz" blob = ::SshSig::Blob.from_armor( <<~EOF -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtc+Qk8jhMwVZk/jFEFCM16LNQb 30q5kK30bbetfjyTMAAAAEZmlsZQAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUx OQAAAECJITeYJIlEeydsCTh1DkfdhlDJFBa73ojfWe0MbrIzoJKd9THd9WeQrhygSRGsNG cU/stk3/919nykg67yG2gN -----END SSH SIGNATURE----- EOF ) message = "This message was definitely sent by Brian Williams" valid = ::SshSig::Verifier .from_armored_pubkey(armored_pubkey) .verify(blob, message) if valid puts 'Signature is valid' else puts 'Signature is not valid' end ``` Signatures can be created using `ssh-keygen -Y sign -n file -f ~/.ssh/ed_25519 message.txt` and will be outputted in `message.txt.sig`. Public keys can be found in a variety of places, including: - Your `~/.ssh/id_<alg>.pub` file - `authorized_keys` files on servers - `https://gitlab.com/<username>.keys` - `https://github.com/<username>.keys` The `SshSig::Verifier#from_gitlab` and `SshSig::Verifier#from_github` methods are provided to automatically load public keys from the respective `<username>.keys` urls. ```ruby require 'ssh_sig' blob = ::SshSig::Blob.from_armor( <<~EOF -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtc+Qk8jhMwVZk/jFEFCM16LNQb 30q5kK30bbetfjyTMAAAAEZmlsZQAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUx OQAAAECJITeYJIlEeydsCTh1DkfdhlDJFBa73ojfWe0MbrIzoJKd9THd9WeQrhygSRGsNG cU/stk3/919nykg67yG2gN -----END SSH SIGNATURE----- EOF ) message = 'This message was definitely sent by Brian Williams' valid = ::SshSig::Verifier .from_gitlab('bwill') .verify(blob, message) if valid puts 'Signature is valid' else puts 'Signature is not valid' end ``` ## Is it safe to re-purpose SSH keys for signing? Yes. The [SSH signature protocol](https://github.com/openssh/openssh-portable/blob/d575cf44895104e0fcb0629920fb645207218129/PROTOCOL.sshsig) is designed to be resistant to cross-protocol attacks, where signatures created for one purpose (i.e. signing a git commit), may be re-used for another purpose (i.e. authenticating to a server). It does this using the magic pre-amble (to differentiate between messages signed by `ssh-keygen` and messages used for SSH authentication) and namespaces (to differentiate between messages signed by `ssh-keygen` but used for different purposes). This causes identical messages to produce different signatures for each different protocol. ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/ssh_sig. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/ssh_sig/blob/main/CODE_OF_CONDUCT.md). ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
# Payfast Payfast is a Ruby gem that simplifies the process of integrating the PayFast payment gateway into your Ruby on Rails application. It provides a generator that helps scaffold the necessary configuration, routes, models, and controllers required to integrate PayFast seamlessly. ## Demo  ## Installation Add this line to your application's Gemfile: ```bash bundle add payfast ``` ## Usage ```bash rails generate payfast:install ``` ## This generator will perform the following actions: insert config/routes.rb create app/controllers/carts_controller.rb create app/views/carts/index.html.erb create app/views/carts/make_payment.html.erb create app/helpers/carts_helper.rb create db/migrate/20230824105530_create_carts.rb create config/payfast.yml create app/models/cart.rb insert app/views/layouts/application.html.erb insert config/environments/development.rb ## Additional configuration Setup payfast credentials for your environment rails EDITOR="code --wait" bin/rails credentials:edit This will allow you to securely edit and store your credentials. once you save and exit the file, the credentials will be encrypted and can only be accessed withe rails master key. payfast: merchant_id: {your_merchant_id} merchant_key: {your_merchant_key} passphrase: {{your_passphrase}} ## Update your `payfast.yml` config file - setup the credentials to be use by the rails app - uncomment `Rails.application.credentials.payfast.merchant_id ` and wrap it in erb tags as instructed in the comments. ## Templates Update the `make_payment.html.erb` as instructed in the file. it should look like so: ```js <script> // set the uuid to uuid = @cart.payment_uid. surround @carts.payment_uid with erb tags const uuid = `<%= @cart.payment_uuid %>` window.payfast_do_onsite_payment({uuid}, function (result) { if (result === true) { // redirect success_path(@cart) window.location.href = `<%= success_cart_path(@cart) %>` } else { // Redirect to failure_path(@cart) window.location.href = `<%= failure_cart_path(@cart) %>` } }); </script> ``` ## Testing - payfast api allows only SSL communication from your server. inorder to test locally. you will have to use a tunneling service that allows you to expose your local development server to the internet. your rails development config has was modified by the generator to allow ngrok hosts to hit your rails server ```ruby config.hosts << /[a-z0-9-]+\.ngrok-free\.app/ ``` ## Contributing Thank you for considering contributing to our project! We welcome contributions from the community to help improve this project and make it better for everyone. ### Issues If you encounter any issues or bugs while using our project, please [open a new issue](https://github.com/mactunechy/payfast/issues) on GitHub. Please make sure to include detailed information about the problem, steps to reproduce it, and the environment in which you encountered it. ### Pull Requests We encourage pull requests from the community! If you have an improvement or new feature you'd like to contribute, please follow these steps: 1. Fork the repository and create a new branch for your feature or bug fix. 2. Make your changes and write tests to cover any new functionality. 3. Ensure that the existing tests pass and write additional tests for any bug fixes. 4. Commit your changes and push the new branch to your forked repository. 5. Submit a pull request to our main repository, including a detailed description of the changes you made and any relevant information. We will review your pull request as soon as possible and provide feedback if needed. We value your contributions and will work with you to ensure your changes are integrated smoothly. d Your contributions are essential to the success of this project, and we are grateful for your help in making it better for everyone. If you have any questions or need further assistance, feel free to reach out to us. Happy coding!
Contentful API wrapper library exposing an ActiveRecord-like interface
# Netchk Simple tool to troubleshoot internet connectivity issues. This tool verifies: - your computer has at least one IP address - you have at least one DNS configured - you can reach the configured nameservers - the nameservers can resolve hosts Finally, some ICMP ping statistics are presented with average durations and error rates. ## Installation ```sh gem install netchk ``` ## Usage Just run `netchk` from your terminal and basic diagnosis will start showing you progress and any error if present. Note: On Linux system, this gem requires `sudo` to perform the ICMP ping operations. On macOS, this is not needed. You also can configure how netchk verifies your connections by configuring a `~/.netchk.yaml` or `~/.netchk.yml` file like below. ```yaml # Settings to test DNS server connectivity. dns: # Path to resolv.conf file to check presence and connectivity of DNS. # Path should be absolute to avoid issues when running netchk # from different directories. resolv.conf: /etc/resolv.conf # Settings to test DNS resolution. resolv: # Path to resolv.conf file to use for testing DNS resolution. # Path should be absolute to avoid issues when running netchk # from different directories. It is advised to be the same # as dns.resolv.conf. resolv.conf: /etc/resolv.conf # The list of domains to test for DNS resolution. domains: - google.com - youtube.com - facebook.com # Settings to test icmp ping. icmp: # A list of hosts to ping with ICMP. It is advised to use # IP addresses instead of domains to rule out any issues with # DNS resolution, which is tested separately. hosts: - 1.1.1.1 - 8.8.8.8 # The number of ping to issue each host. count: 20 # The duration in seconds to wait between each ping. # Setting this value too low might cause timeouts. interval: 0.2 ``` Each value is optional. If one is missing the default value will be used. The file above shows the default values. ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/moray95/netchk.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.