Skip to content

Commit

Permalink
add gulpfile
Browse files Browse the repository at this point in the history
  • Loading branch information
xescoder committed Sep 30, 2014
1 parent 57165ad commit ef4406f
Show file tree
Hide file tree
Showing 12 changed files with 215 additions and 166 deletions.
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,13 +134,12 @@ $('input').kladr('option1', 123);
Структура папок, файлов
--------------------------------------------------------------------------------

* **jquery.kladr.js** - Плагин
* **jquery.kladr.min.js** - Минимифицированный код плагина
* **jquery.kladr.css** - Стили
* **jquery.kladr.min.css** - Минимифицированные стили
* **jquery.kladr.images** - Изображения плагина
* **kladr** - Состовляющие плагина (ядро и плагин для автодополнения) по отдельности
* **examples** - Примеры использования
* **examples** - Примеры
* **images** - Изображения плагина
* **kladr** - Исходный код плагина


Примеры
--------------------------------------------------------------------------------
Expand Down
19 changes: 19 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
var gulp = require('gulp'),
csso = require('gulp-csso'),
imagemin = require('gulp-imagemin'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
rename = require('gulp-rename');

gulp.task('default', function() {
gulp.src('./kladr/css/style.css')
.pipe(csso())
.pipe(rename('jquery.kladr.min.css'))
.pipe(gulp.dest('./'));

gulp.src(['./kladr/js/core.js', './kladr/js/plugin.js'])
.pipe(concat('jquery.kladr.js'))
.pipe(uglify())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('./'));
});
File renamed without changes
2 changes: 1 addition & 1 deletion jquery.kladr.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 0 additions & 9 deletions kladr/README.md

This file was deleted.

2 changes: 1 addition & 1 deletion jquery.kladr.css → kladr/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@
padding: 0;
width: 16px;
height: 16px;
background: transparent url("examples/img/spinner.png") center center no-repeat;
background: transparent url("./images/spinner.png") center center no-repeat;
z-index: 9999;
}
1 change: 0 additions & 1 deletion kladr/jquery.kladr.core.min.js

This file was deleted.

1 change: 0 additions & 1 deletion kladr/jquery.kladr.plugin.min.js

This file was deleted.

9 changes: 9 additions & 0 deletions kladr/js/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
jQuery Kladr
================================================================================

Исходный код плагина

* **core.js** - Реализует $.kladr. Позволяет обращаться к сервису [kladr-api.ru] [1].
* **plugin.js** - Реализует плагин $( '' ).kladr.

[1]: http://kladr-api.ru/ "КЛАДР API"
147 changes: 147 additions & 0 deletions kladr/js/core.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
(function ($) {
$.kladr = {};

// Service URL
$.kladr.url = 'http://kladr-api.ru/api.php';

// Enum KLADR object types
$.kladr.type = {
region: 'region',
district: 'district',
city: 'city',
street: 'street',
building: 'building'
};

// Validate query
$.kladr.validate = function (query) {
switch (query.type) {
case $.kladr.type.region:
case $.kladr.type.district:
case $.kladr.type.city:
if (query.parentType && !query.parentId) {
error('parentId undefined');
return false;
}
break;
case $.kladr.type.street:
if (query.parentType != $.kladr.type.city) {
error('parentType must equal "city"');
return false;
}
if (!query.parentId) {
error('parentId undefined');
return false;
}
break;
case $.kladr.type.building:
if (query.parentType != $.kladr.type.street) {
error('parentType must equal "street"');
return false;
}
if (!query.parentId) {
error('parentId undefined');
return false;
}
break;
default:
if (!query.oneString) {
error('type incorrect');
return false;
}
break;
}

if (query.oneString && query.parentType && !query.parentId) {
error('parentId undefined');
return false;
}

if (query.limit < 1) {
error('limit must greater than 0');
return false;
}

return true;
};

// Send query to service
$.kladr.api = function (query, callback) {
if (!callback) {
error('Callback undefined');
return;
}

if (!$.kladr.validate(query)) {
callback([]);
return;
}

var def = $.Deferred();

def.done(callback);
def.fail(function (er) {
error(er);
callback([]);
});

$.getJSON($.kladr.url + "?callback=?",
toApiFormat(query),
function (data) {
def.resolve(data.result || []);
}
);

setTimeout(function () {
def.reject('Request error');
}, 3000);
};

// Check exist object
$.kladr.check = function (query, callback) {
if (!callback) {
error('Callback undefined');
return;
}

query.withParents = false;
query.limit = 1;

$.kladr.api(query, function (objs) {
if (objs && objs.length) {
callback(objs[0]);
} else {
callback(false);
}
});
};

function toApiFormat (query) {
var params = {},
fields = {
token: 'token',
key: 'key',
type: 'contentType',
name: 'query',
withParents: 'withParent',
oneString: 'oneString',
limit: 'limit'
};

if (query.parentType && query.parentId) {
params[query.parentType + 'Id'] = query.parentId;
}

for (var i in query) {
if (query.hasOwnProperty(i) && fields.hasOwnProperty(i) && query[i]) {
params[fields[i]] = query[i];
}
}

return params;
}

function error (error) {
window.console && window.console.error && window.console.error(error);
}
})(jQuery);
Loading

0 comments on commit ef4406f

Please sign in to comment.