adventure-map icon indicating copy to clipboard operation
adventure-map copied to clipboard

What does exports.boilerplate do?

Open Sequoia opened this issue 10 years ago • 20 comments

Sequoia avatar Mar 17 '15 02:03 Sequoia

This is the boilerplate content generated for the user for the exercise.

e.g.

module.exports = function(arg) {
  // your solution here
}

timoxley avatar Mar 17 '15 03:03 timoxley

mmm. but... why is it included in exports? is it consumed somewhere? oh, can users get it via workshopname boilerplate?

Sequoia avatar Mar 17 '15 03:03 Sequoia

it automatically dumps it into the user's solution directory.

I should probably expose this so it's less magical.

timoxley avatar Mar 17 '15 03:03 timoxley

ahhh OK thanks! what's "The user's solution directory"? When I was working thru these things there wasn't really a place to put files unless you made one. Is that another new feature?

Sequoia avatar Mar 17 '15 03:03 Sequoia

yeah I cloned a feature from the webgl/shaderschool workshops, where they generate a directory for each exercise up front, that directory contains the bootstrap.js and the exercise description so they don't have to keep opening and closing the workshop to review the instructions.

timoxley avatar Mar 17 '15 03:03 timoxley

this is an assumption though and I should make it clearer how to turn this off or customise it.

timoxley avatar Mar 17 '15 03:03 timoxley

cool. I think boilerplate but it would be nice to be able to disable it, perhaps by simply not exporting a boilerplate property or setting exports.boilerplate to false.

I plan on adding instructions in the top-level README for my lesson-set explaining the stuff about the boilerplate code & how to get started. I think this is necessary, otherwise the "we're about to populate" message is jarring & confusing. I'll think about ways to reword it. Something like "Would you like a directory created for this exercise with a boilerplate (starting point) file? Click yes & lesson-name/ will be created in the current directory."

Sequoia avatar Mar 18 '15 02:03 Sequoia

Sounds good!

timoxley avatar Mar 19 '15 20:03 timoxley

OK assign me then & I'll get to it when I have a mo.

Sequoia avatar Mar 19 '15 21:03 Sequoia

Added you as collab :tada:

Also note: https://github.com/timoxley/adventure-map/pull/3

timoxley avatar Mar 19 '15 21:03 timoxley

Planning to prompt to create boilerplate files on first run & just leave it at that, simplifies behavior muchly.

Sequoia avatar Dec 07 '15 15:12 Sequoia

@Sequoia sounds good

timoxley avatar Jan 29 '16 03:01 timoxley

Wow

Sequoia avatar Jan 29 '16 14:01 Sequoia

:fireworks:

timoxley avatar Jan 30 '16 02:01 timoxley

What the heck man earlier I pocket texted someone A PHOTO and now I see apparently I pocket commented on a github issue?? Presumably via email.

OS collaboration via pocket dial-- what a time to be alive!

Sequoia avatar Jan 30 '16 02:01 Sequoia

haha hopefully your pocket can start sending PRs

timoxley avatar Jan 30 '16 16:01 timoxley

I started working on this a while ago & got something mostly working, but now that I revisit it I am confused. Setup was getting run every single time the user ran the adventure command; I'm trying to change that but I'm getting hung up on exactly what's supposed to run here instead:

  exercises.forEach(function(exercise) {
    shop.add(exercise.name, function() {
//???
    })
  })

I'll try to look at it more later when I get a chance.

Sequoia avatar Jan 30 '16 20:01 Sequoia

How to solve this I guess depends on exactly the behaviour you think is best.

Select one or more of the following (or add other options):

  • Prompt to generate all boilerplate when one is missing (current behaviour)
  • Prompt to generate all boilerplate at startup
  • Prompt to generate boilerplate for specific exercise, if missing
  • Allow user to opt out of auto-boilerplate generation forever
  • Allow user to manually generate the current boilerplate via a command
  • Prompt whenever exercise selected
  • Prompt only on first selection of exercise
  • No prompting on selection of exercise at all
  • Prompt whenever workshop is run (current behaviour)
  • Prompt only on first startup of workshop

timoxley avatar Jan 30 '16 20:01 timoxley

Note that boilerplate generation stuff is mostly only frustrating for workshop authors while they're developing the workshop. Most users will simply get the boilerplate setup once and then work with it.

Perhaps should have a way to disable it while developing or figure out a better way to serve the workshop-developer's needs.

timoxley avatar Jan 30 '16 21:01 timoxley

Nah, it's annoying if you run the workshop, switch to the new directory, run it again, then boilerplate rubs again.

Tbh my next move is to just rip it out and move on, I never finished my worksheet I started about a year ago and the boilerplate stuff seems not worth the trouble...

Sequoia avatar Jan 31 '16 15:01 Sequoia