mirror of https://github.com/RubaXa/Sortable.git
RubaXa
9 years ago
14 changed files with 184 additions and 113 deletions
@ -0,0 +1,34 @@
|
||||
base64@1.0.3 |
||||
binary-heap@1.0.3 |
||||
blaze@2.1.2 |
||||
blaze-tools@1.0.3 |
||||
callback-hook@1.0.3 |
||||
check@1.0.5 |
||||
dburles:mongo-collection-instances@0.3.4 |
||||
ddp@1.1.0 |
||||
deps@1.0.7 |
||||
ejson@1.0.6 |
||||
geojson-utils@1.0.3 |
||||
html-tools@1.0.4 |
||||
htmljs@1.0.4 |
||||
id-map@1.0.3 |
||||
jquery@1.11.3_2 |
||||
json@1.0.3 |
||||
lai:collection-extensions@0.1.4 |
||||
local-test:rubaxa:sortable@1.2.1 |
||||
logging@1.0.7 |
||||
meteor@1.1.6 |
||||
minifiers@1.1.5 |
||||
minimongo@1.0.8 |
||||
mongo@1.1.0 |
||||
observe-sequence@1.0.6 |
||||
ordered-dict@1.0.3 |
||||
random@1.0.3 |
||||
reactive-var@1.0.5 |
||||
retry@1.0.3 |
||||
rubaxa:sortable@1.2.1 |
||||
spacebars-compiler@1.0.6 |
||||
templating@1.1.1 |
||||
tinytest@1.0.5 |
||||
tracker@1.0.7 |
||||
underscore@1.0.3 |
@ -1,4 +1,7 @@
|
||||
mklink ..\..\package.js "meteor/package.js" |
||||
mklink package.json "../../package.json" |
||||
meteor run |
||||
del ..\..\package.js package.json |
||||
@echo off |
||||
REM Sanity check: make sure we're in the directory of the script |
||||
set DIR=%~dp0 |
||||
cd %DIR% |
||||
|
||||
set PACKAGE_DIRS=..\..\ |
||||
meteor run %* |
||||
|
@ -1,15 +1,5 @@
|
||||
# sanity check: make sure we're in the root directory of the example |
||||
cd "$( dirname "$0" )" |
||||
|
||||
# delete temp files even if Ctrl+C is pressed |
||||
int_trap() { |
||||
echo "Cleaning up..." |
||||
} |
||||
trap int_trap INT |
||||
|
||||
ln -s "meteor/package.js" ../../package.js 2>/dev/null |
||||
ln -s "../../package.json" package.json 2>/dev/null |
||||
|
||||
meteor run "$@" |
||||
|
||||
rm ../../package.js package.json |
||||
# let Meteor find the local package |
||||
PACKAGE_DIRS=../../ meteor run "$@" |
||||
|
@ -1,35 +1,85 @@
|
||||
// package metadata file for Meteor.js
|
||||
// Package metadata file for Meteor.js
|
||||
'use strict'; |
||||
|
||||
var packageName = 'rubaxa:sortable'; // http://atmospherejs.com/rubaxa/sortable
|
||||
var packageName = 'rubaxa:sortable'; // https://atmospherejs.com/rubaxa/sortable
|
||||
var gitHubPath = 'RubaXa/Sortable'; // https://github.com/RubaXa/Sortable
|
||||
var npmPackageName = 'sortablejs'; // https://www.npmjs.com/package/sortablejs - optional but recommended; used as fallback if GitHub fails
|
||||
|
||||
var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); |
||||
/* All of the below is just to get the version number of the 3rd party library. |
||||
* First we'll try to read it from package.json. This works when publishing or testing the package |
||||
* but not when running an example app that uses a local copy of the package because the current
|
||||
* directory will be that of the app, and it won't have package.json. Finding the path of a file is hard: |
||||
* http://stackoverflow.com/questions/27435797/how-do-i-obtain-the-path-of-a-file-in-a-meteor-package
|
||||
* Therefore, we'll fall back to GitHub (which is more frequently updated), and then to NPMJS. |
||||
* We also don't have the HTTP package at this stage, and if we use Package.* in the request() callback, |
||||
* it will error that it must be run in a Fiber. So we'll use Node futures. |
||||
*/ |
||||
var request = Npm.require('request'); |
||||
var Future = Npm.require('fibers/future'); |
||||
|
||||
var fut = new Future; |
||||
var version; |
||||
|
||||
if (!version) try { |
||||
var packageJson = JSON.parse(Npm.require('fs').readFileSync('../package.json')); |
||||
version = packageJson.version; |
||||
} catch (e) { |
||||
// if the file was not found, fall back to GitHub
|
||||
console.warn('Could not find ../package.json to read version number from; trying GitHub...'); |
||||
var url = 'https://api.github.com/repos/' + gitHubPath + '/tags'; |
||||
request.get({ |
||||
url: url, |
||||
headers: { |
||||
'User-Agent': 'request' // GitHub requires it
|
||||
} |
||||
}, function (error, response, body) { |
||||
if (!error && response.statusCode === 200) { |
||||
var versions = JSON.parse(body).map(function (version) { |
||||
return version['name'].replace(/^\D+/, '') // trim leading non-digits from e.g. "v4.3.0"
|
||||
}).sort(); |
||||
fut.return(versions[versions.length -1]); |
||||
} else { |
||||
// GitHub API rate limit reached? Fall back to npmjs.
|
||||
console.warn('GitHub request to', url, 'failed:\n ', response && response.statusCode, response && response.body, error || '', '\nTrying NPMJS...'); |
||||
url = 'http://registry.npmjs.org/' + npmPackageName + '/latest'; |
||||
request.get(url, function (error, response, body) { |
||||
if (!error && response.statusCode === 200) |
||||
fut.return(JSON.parse(body).version); |
||||
else |
||||
fut.throw('Could not get version information from ' + url + ' either (incorrect package name?):\n' + (response && response.statusCode || '') + (response && response.body || '') + (error || '')); |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
version = fut.wait(); |
||||
} |
||||
|
||||
// Now that we finally have an accurate version number...
|
||||
Package.describe({ |
||||
name: packageName, |
||||
summary: 'Sortable: reactive minimalist reorderable drag-and-drop lists on modern browsers and touch devices', |
||||
version: packageJson.version, |
||||
git: 'https://github.com/RubaXa/Sortable.git', |
||||
documentation: 'meteor/README.md' |
||||
name: packageName, |
||||
summary: 'Sortable: reactive minimalist reorderable drag-and-drop lists on modern browsers and touch devices', |
||||
version: version, |
||||
git: 'https://github.com/RubaXa/Sortable.git', |
||||
documentation: 'README.md' |
||||
}); |
||||
|
||||
Package.onUse(function (api) { |
||||
api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); |
||||
api.use('templating', 'client'); |
||||
api.use('dburles:mongo-collection-instances@0.3.3'); // to watch collections getting created
|
||||
api.export('Sortable'); // exported on the server too, as a global to hold the array of sortable collections (for security)
|
||||
api.addFiles([ |
||||
'Sortable.js', |
||||
'meteor/template.html', // the HTML comes first, so reactivize.js can refer to the template in it
|
||||
'meteor/reactivize.js' |
||||
], 'client'); |
||||
api.addFiles('meteor/methods-client.js', 'client'); |
||||
api.addFiles('meteor/methods-server.js', 'server'); |
||||
api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); |
||||
api.use('templating', 'client'); |
||||
api.use('dburles:mongo-collection-instances@0.3.4'); // to watch collections getting created
|
||||
api.export('Sortable'); // exported on the server too, as a global to hold the array of sortable collections (for security)
|
||||
api.addFiles([ |
||||
'../Sortable.js', |
||||
'template.html', // the HTML comes first, so reactivize.js can refer to the template in it
|
||||
'reactivize.js' |
||||
], 'client'); |
||||
api.addFiles('methods-client.js', 'client'); |
||||
api.addFiles('methods-server.js', 'server'); |
||||
}); |
||||
|
||||
Package.onTest(function (api) { |
||||
api.use(packageName, 'client'); |
||||
api.use('tinytest', 'client'); |
||||
api.use(packageName, 'client'); |
||||
api.use('tinytest', 'client'); |
||||
|
||||
api.addFiles('meteor/test.js', 'client'); |
||||
api.addFiles('test.js', 'client'); |
||||
}); |
||||
|
@ -0,0 +1,8 @@
|
||||
@echo off |
||||
REM Test Meteor package before publishing to Atmospherejs.com |
||||
|
||||
REM Sanity check: make sure we're in the directory of the script |
||||
set DIR=%~dp0 |
||||
cd %DIR% |
||||
|
||||
meteor test-packages ./ %* |
Loading…
Reference in new issue