1.2.4 • Published 7 years ago
grunt-cloudfile-to-vocab v1.2.4
cloudfile_to_vocab
Processes any spreadsheet in the cloud into a set of vocab json files.
Setup
- Add grunt-cloudfile-to-vocab as a dependency in your project's package.json
- In your Gruntfile.js, inside your grunt.initConfig(), add the following:
    cloudfile_to_vocab: {
        default: {
            options: {
                output_directory:      'source/vocabs',
                google_spreadsheet_id: '--google spreadsheet id--',
                worksheets:            ['Sheet1'],
                whitelisted_services:  ['english', 'mundo'],
                serviceEmail:          '--google service email--',
                certLocation:          '--full path to your service email certificate--'
            }
        }
    }Register a task, e.g.
grunt.registerTask('make_vocabs',  ['cloudfile_to_vocab']);Creating a service account email and certificate
- Go to https://console.developers.google.com
- Create a project
- In the project, go to 'APIs & Auth' -> 'Credentials' and 'Create New Client ID'
- Select 'Service Account' as the type and p12 as your container
- Convert the downloaded p12 to PEM with 'openssl pkcs12 -in the pem file -out google-oauth.pem -nocerts -nodes
- Copy your service email address into the config and change certLocation to the location of your generated certificate (.pem)
Usage
Create a Google spreadsheet and start populating it with content (see examples below).
Run your task to automatically generate vocab JSON files from a Google spreadsheet.
Running tests
To run the tests add a google account user name and password into the grunt config file.
Example input/output
Input
NB: The 'ignore' in the left column ensures that that row is not included in the rendered output.
               | english               | persian
ignore         | Instructions go here. | ...
project_header | Hello, World!         | سلام جهان!
project_intro  | This is my intro...   | این مقدمه من است ...Output
english.json
{
    "project_header": "Hello, World!",
    "project_intro": "This is my intro..."
}persian.json
{
    "project_header": "سلام جهان!",
    "project_intro": "این مقدمه من است ..."
}You can now populate your project with these variables, thereby being able to deliver your project in a language-agnostic way, paving the way for delivering to multiple nationalities.
Known issues
Make sure you are not on a proxy network or it cannot connect to Google.
