Change:
I'm not sure how much value there really is in this. react-rails already stopped using it and just builds the files in itself. cc
(I'm currently running to find out how many there might be - looks like this script may take a day to hit the end point for every gem in the registry)
:+1: I made but it's just a toy :)

Discussion:
var npmReactDOMTasks = require('./grunt/tasks/npm-react-dom'); grunt.registerTask('npm-react-dom:pack', npmReactDOMTasks.packRelease); <del> var gemReactSourceTasks = require('./grunt/tasks/gem-react-source'); grunt.registerTask('gem-react-source:release', gemReactSourceTasks.buildRelease); grunt.registerTask('gem-react-source:pack', gemReactSourceTasks.packRelease); </del> grunt.registerTask('version-check', require('./grunt/tasks/version-check')); grunt.registerTask('build:basic', [

'jsx:normal', 'npm-react:release', ]); <del> grunt.registerTask('build:gem-react-source', [ 'build', 'gem-react-source:release', ]); </del> grunt.registerTask('webdriver-phantomjs', require('./grunt/tasks/webdriver-phantomjs'));

'release:setup', 'clean', 'build', <del> 'gem-react-source:release', 'gem-react-source:pack', </del> 'release:bower', 'release:starter', 'compress',

<del> module React module Source def self.bundled_path_for(build) File.expand_path("../../../build/#{build}", __FILE__) end end end </del>

<del> #encoding: utf-8 require('json') # Because of build process, does not necessarily reflect directory path in the # repository. package = JSON.parse(File.read('../../package.json')) gemspec = Gem::Specification.new do |s| s.name = 'react-source' s.version = package['version'] s.license = 'BSD-3-Clause' s.homepage = 'https://github.com/facebook/react' s.summary = 'Ruby bridge to JSX & the React JavaScript library.' s.authors = ['Paul O’Shannessy'] s.email = ['paul@oshannessy.com'] s.files = Dir[ 'build/react.js', 'build/react.min.js', 'build/react-with-addons.js', 'build/react-with-addons.min.js', 'build/JSXTransformer.js', 'lib/react/source.rb' ] end </del>

<del> 'use strict'; var fs = require('fs'); var grunt = require('grunt'); var src = 'gem-react-source/'; var dest = 'build/gem-react-source/'; var build = dest + 'build/'; var buildFiles = [ 'react.js', 'react.min.js', 'JSXTransformer.js', 'react-with-addons.js', 'react-with-addons.min.js', ]; function buildRelease() { if (grunt.file.exists(dest)) { grunt.file.delete(dest); } // Copy gem-react-source/**/* to build/gem-react-source var mappings = [].concat( grunt.file.expandMapping('**/*', dest, {cwd: src}) ); mappings.forEach(function(mapping) { var mappingSrc = mapping.src[0]; var mappingDest = mapping.dest; if (grunt.file.isDir(mappingSrc)) { grunt.file.mkdir(mappingDest); } else { grunt.file.copy(mappingSrc, mappingDest); } }); // Make built source available inside npm package grunt.file.mkdir(build); buildFiles.forEach(function(file) { grunt.file.copy('build/' + file, build + file); }); } function packRelease() { var done = this.async(); var spawnCmd = { cmd: 'gem', args: ['build', 'react-source.gemspec'], opts: { cwd: dest, }, }; grunt.util.spawn(spawnCmd, function(err, result) { if (err) { grunt.log.error(err); } // Gem packing does weird things to versions so 0.12.0-alpha becomes // 0.12.0.pre.alpha. We need to get the filename printed to stdout. var filename = result.stdout.match(/File: (.*)$/)[1]; var buildSrc = 'build/gem-react-source/' + filename; var buildDest = 'build/react-source.tgz'; fs.rename(buildSrc, buildDest, done); }); } module.exports = { buildRelease: buildRelease, packRelease: packRelease, }; </del>

'* put files on CDN', '* push changes to git repositories', '* publish npm module (`npm publish .`)', <del> '* publish gem (`gem push react-source-' + VERSION + '.gem`)', </del> '* announce it on FB/Twitter/mailing list', ].forEach(function(ln) { grunt.log.writeln(ln);