Skip to content

A set of simple scripts to help maintain the compatibility of a Bundler project across development environments

License

Notifications You must be signed in to change notification settings

thearchitector/Neighborhood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neighborhood

A set of simple scripts to help maintain compatibility of a ruby project across development platforms. Collaborative, open-source projects are fantastic, but fundamentally limiting. There is a tendency in programming to simply ignore Unix-unlike systems, primarily Windows. A project cannot be truly collaborative without supporting all those who want to collaborate. What Fred Rogers believed and instilled in children, applied to software development.

"I like you just the way you are". - Fred Rogers

Prerequisites

  1. Your project must be using Bundler to maintain the gems its using.
  2. For the moment, Neighborhood does not support multiple pre-commit git hooks. If you have one already, Neighborhood will not work.
  3. If on Windows, you must have Git for Windows installed.

Install

For every ruby project you want to enforce cross-platform standards upon, run this command in the project's root directory:

    ruby -e "$(curl https://raw.githubusercontent.com/thearchitector/Neighborhood/master/install)"

If you are on Windows, you might get an error stating curl : The response content cannot be parsed because the Internet Explorer engine is not available. If you do get this error, add -UseBasicParsing as a flag option for the curl command like so:

    ruby -e "$(curl -UseBasicParsing https://raw.githubusercontent.com/thearchitector/Neighborhood/master/install)"

What does this do?

This project is ever-expanding, and will continue as new discrepancies are found, but as of now this script does a few simple things:

  1. Adds the ruby platform to your Gemfile.
  2. Enables LF line ending normalization on your .gitattributes file, creating one if it does not exist already.
  3. Adds a client-side pre-commit git hook to your repository that removes all non-ruby platform-specific gems.