All Projects → uber → Neal

uber / Neal

Licence: mit
🔎🐞 A language-agnostic linting platform

Programming Languages

python
139335 projects - #7 most used programming language
swift
15916 projects
ocaml
1615 projects

Labels

Projects that are alternatives of or similar to Neal

DLUberLogin
Imitate Uber LoginView
Stars: ✭ 19 (-95.2%)
Mutual labels:  uber
Flutter-Uber
Uber(Rider and Driver) app made using Flutter and Google Firebase.
Stars: ✭ 28 (-92.93%)
Mutual labels:  uber
Vehicle In Motion
This is a basic implementation of location listener using Google Maps Api
Stars: ✭ 339 (-14.39%)
Mutual labels:  uber
IOSIphoneHttps
ios超级签-ipa-新版IOS苹果企业签,直接签名直接下载安装,无需进入appstore商城——不需要经过App Store直接下载游戏吗?下载完不知道怎么安装?需要通过第三方软件来安装?绕过苹果检测,测试可以使用HTTPD或者Tomcat构建,使用plist文件
Stars: ✭ 61 (-84.6%)
Mutual labels:  uber
EasyWayLocation
This library contain all utils related to google location. like, getting lat or long, Address and Location Setting dialog, many more...
Stars: ✭ 142 (-64.14%)
Mutual labels:  uber
Uberr Ui
Flutter UI design for a car booking application
Stars: ✭ 276 (-30.3%)
Mutual labels:  uber
uber-cli
Beeps when surge is gone
Stars: ✭ 29 (-92.68%)
Mutual labels:  uber
React Vis Force
d3-force graphs as React Components.
Stars: ✭ 372 (-6.06%)
Mutual labels:  uber
node-uber-rider
A library that helps who wants to use Uber API with fast and easy methods ✨
Stars: ✭ 17 (-95.71%)
Mutual labels:  uber
Hubtaxi Server
[Deprecated] HubTaxi - The platform similar Uber, GrabTaxi, EasyTaxi....Willing to help people make dream comes true through building meaningful app [email protected]
Stars: ✭ 334 (-15.66%)
Mutual labels:  uber
deck.gl-data
Data for the data visualization library deck.gl examples (https://uber.github.io/deck.gl/#/)
Stars: ✭ 57 (-85.61%)
Mutual labels:  uber
Uber
iOS Ride-Sharing App written in Swift 4 Using Map Kit and Core Data
Stars: ✭ 30 (-92.42%)
Mutual labels:  uber
Uber go guide cn
Uber Go 语言编码规范中文版. The Uber Go Style Guide .
Stars: ✭ 4,277 (+980.05%)
Mutual labels:  uber
Dual-color-Polyline-Animation
This library will help to show the polyline in dual color similar as Uber.
Stars: ✭ 73 (-81.57%)
Mutual labels:  uber
H3 Py
Python bindings for H3, a hierarchical hexagonal geospatial indexing system
Stars: ✭ 354 (-10.61%)
Mutual labels:  uber
data-visualization-deck-gl
A experiment to visualize Tree in NewYork and Flight record data. Using Deck.gl and Kaggle
Stars: ✭ 54 (-86.36%)
Mutual labels:  uber
Cadence Web
Web UI for visualizing workflows on Cadence
Stars: ✭ 261 (-34.09%)
Mutual labels:  uber
Nebula.gl
A suite of 3D-enabled data editing overlays, suitable for deck.gl
Stars: ✭ 382 (-3.54%)
Mutual labels:  uber
Libretaxi
Open source Uber #deleteuber
Stars: ✭ 3,687 (+831.06%)
Mutual labels:  uber
Autodispose
Automatic binding+disposal of RxJava streams.
Stars: ✭ 3,209 (+710.35%)
Mutual labels:  uber

NEAL

NEAL (N\ ot E\ xactly A L\ inter) is a language-independent code analysis tool that aims to enable more people to write quality enforcement rules.

Example

One of the simplest rules we have at Uber is to restrict the use of Forced-Values in Swift. (This post explains some of the risks of abusing forced-values.)

__ https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID404 __ https://www.andrewcbancroft.com/2016/06/13/force-unwrapping-swift-optionals-code-smell/

A forced-value consists of any expression that results in an optional value followed by the forced-unwrapping operator (!). Here's a contrived example that would result in a runtime crash.

.. code-block:: swift

// test.swift (nil as Int?)!

NEAL doesn't have any rules built-in, so we have to write a new rule to detect this pattern:

.. code-block:: cpp

// test.rules rule NoForcedValues { Swift::ForcedValueExpression { fail("No forced unwrapping allowed") } }

Now if you run NEAL you should see something like the following:

.. code-block:: bash

$ neal --rules test.rules test.swift

[1 of 1]: Analysing test.swift On file test.swift: (NoForcedValues)

1 | (nil as Int?)!
~ |              ^

error: No forced unwrapping allowed

Alternatively, you can create a minimal configuration file called neal.json:

.. code-block:: json

{ "rules": [ "test.rules" ] }

After that you can get the same result by simply running:

.. code-block:: bash

$ neal .

For a more comprehensive guide to writing your own rules check out Writing a new rule <https://uber.github.io/NEAL/rules.html>_.

Installation

The recommended way of installing NEAL is through Homebrew <https://brew.sh>_, using the following command:

.. code-block:: bash

$ brew install neal

Installing from source ++++++++++++++++++++++

To build and install NEAL from source, make sure you have OPAM__ installed and that you're using OCaml 4.04 or later.

.. code-block:: bash

$ brew install opam $ opam init $ opam switch 4.04.2 $ eval "$(opam config env)"

__ https://opam.ocaml.org/

After you have setup OPAM and OCaml, you can setup, build and install NEAL using make.

.. code-block:: bash

$ NATIVE=1 make setup build install

Basic usage

NEAL has builtin support for Python and Swift, but it's highly extensible, and can be used with any language.

.. code-block:: bash

$ neal [options] [path to files or directories]

For a list of CLI options, runtime options and configuration attributes see the Configuration <https://uber.github.io/NEAL/configuration.html>_ guide.

Acknowledgements

.. _brew: https://brew.sh

.. toctree:: :hidden: :titlesonly:

Getting Started rules testing_rules reference configuration basics components/index.rst developing changelog

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].