Giter Site home page Giter Site logo

ruler-coaster's Introduction

RulerCoaster

Rule engine

Code Climate Test Coverage Build Status

Usage

json_rule = {
  type: "and",
  left: {
    type: "and",
    left: {
      type: "and",
      left: {
        type: "rule",
        path: "user.gender",
        operator: {
          type: "equal",
          value: "m"
        }
      },
      right: {
        type: "rule",
        path: "user.location.city",
        operator: {
          type: "equal",
          value: "London"
        }
      }
    },
    right: {
      type: "rule",
      path: "user.location.country",
      operator: {
        type: "equal",
        value: "UK"
      }
    }
  },
  right: {
    type: "rule",
    path: "user.age",
    operator: {
      type: "equal",
      value: 20
    }
  }
}
data = {
  user: {
    gender: "m",
    age: 20,
    location: {
      city: "London",
      country: "UK"
    }
  }
}
rules = RulerCoaster.parse(json_rule)

result = ruler.(data)

if result.success?
  # continue
else
  result.input # input from that failed
  result.rule # first rule that failed
end

Instalation

Add this to your Gemfile:

gem 'ruler_coaster'

And then execute:

$> bundle install

ruler-coaster's People

Contributors

joaquimadraz avatar alexmc avatar

Watchers

James Cloos avatar Mhd Sami Al Mouhtaseb avatar satnami-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.