Skip to content

sinanm89/dealer

 
 

Repository files navigation

logo Dealer

Dealer — SCM revision helper in your projects. Just add SCM revision to your static paths and get automatic control at client browser caches:

Somewhere in templates: :

<script src='/main.js?{{ request.revision }}'

On clientside: :

<script src='/main.js?34jhfd45hd8'

Supported Git, Mercurial and simple revision parse by file.

Note

You should install Mercurial for hg support.

Build Status

Coverals

Version

Downloads

Donate

Requirements

  • python (2.6, 2.7, 3.3)

Installation

Dealer should be installed using pip: :

pip install dealer

Usage

Basic usage

from dealer.git import git

print git.revision
# Auto parse repository type
from dealer.auto import auto
print auto.revision

Manualy create backend

path — path to SCM repository (current dir by default) :

from dealer.mercurial import Backend

hg = Backend('/path/to/hg/repo')

Django support

Settings

DEALER_TYPE — Type of SCM repository ('auto', 'git', 'mercurial', 'simple', 'null'). By default 'auto';

DEALER_PATH — Path to SCM. By default current dir;

DEALER_SILENT — Disable log warnings;

DEALER_BACKENDS — Backends for auto search by default ('git', 'mercurial', 'simple', 'null');

Context-processor

Append to your settings: :

TEMPLATE_CONTEXT_PROCESSORS += 'dealer.contrib.django.staff.context_processor',

And use REVISION variable in your templates: :

<link href="/test.css?{{ REVISION }}" rel="stylesheet" type="text/css" media="screen" />
<script src="/test.js?{{ REVISION }}"></script>

Middleware

Append to your settings: :

MIDDLEWARE_CLASSES += 'dealer.contrib.django.staff.Middleware',

And use in your views: :

def view(request):
    return request.revision

Or in your templates by request.revision var.

Flask support

Settings

DEALER_TYPE — Type of SCM repository ('auto', 'git', 'mercurial', 'simple', 'silent'). By default 'auto' DEALER_PARAMS — Params for backend

Usage

In views:

from flask import Flask, g
from dealer.contrib.flask import Dealer

app = Flask('test')
Dealer(app)
assert app.revision

@app.route('/')
def usage_in_view():
    return g.revision

In templates: :

<link href="/test.css?{{ REVISION }}" rel="stylesheet" type="text/css" media="screen" />

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/Dealer/issues

Contributing

Development of dealer happens at github: https://github.com/klen/dealer

Contributors

  • klen (Kirill Klenov)

License

Licensed under a BSD license.

About

Make some staff

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%