Skip to content
yoon edited this page Feb 18, 2013 · 27 revisions

Resources

To start see the README.

For general discussion (e.g., "how do I do this?"), please send a message to the surveyor developers google group. This group is moderated to keep out spam; don't be surprised if your message isn't posted immediately.

For reproducible bugs, please file an issue on the GitHub issue tracker. Please include a minimal test case (a detailed description of how to trigger the bug in a clean rails application). If you aren't sure how to isolate the bug, send a message to the surveyor developers google group with what you know and we'll try to help.

For build status see our surveyor's continuous integration page.

Take a look at our screencast Surveyor - A Rails gem plugin for creating surveys (a bit dated now).

The DSL and parser

The Surveyor "DSL":http://en.wikipedia.org/wiki/Domain_Specific_Language allows you to write your questions and answers in nearly plain English.

The data model

Attributes common to Survey, SurveySection, QuestionGroup, Question, and Answer

  • #reference_identifier: usually derived from paper numbering, reference_identifier can be assigned in the DSL e.g. question_1 or a_yes. The reference identifier is also used for dependencies and validations, and must be unique for questions within the scope of a section, and unique for answers within the scope of a question.
  • #data_export_identifier: intended for data export
  • #common_namespace: intended for mapping to a common vocabulary
  • #common_identifier: intended for mapping to a common vocabulary
  • #display_order: for sorting
  • #custom_class: css class for this answer, for custom styling. Use with Survey#css_url, a path to your custom css stylesheet. not supported by nu_surveyor

Attributes common to QuestionGroup, Question, and Answer

  • #custom_renderer: path to a custom view use to render the answer e.g. /partials/custom_answer. not supported by nu_surveyor
  • #text: the text that the user sees.
  • #help_text: intended to provide supporting explanation or examples when needed.

Recognized values

  • QuestionGroup#display_type: default, inline, grid, repeater
  • Question#display_type: default, label, inline, dropdown, slider, hidden, image
  • Answer#response_class: answer, string, text, integer, float, date, datetime, time

Question types

Does do

  • Exclusive checkboxes - a checkbox that when checked, unchecks all the others

Doesn't do

  • Enforce mandatory questions (although it does have some1 methods2 on ResponseSet to support that)
  • Dependencies within repeaters #235
  • Validations within the UI #34, although it does have model support and database representations
  • GUI creating, editing, deleting and administration of surveys #414
  • Consistently support HTML tags in title, text, help_text attributes. We intend to move to markdown support #413 so that same survey definition can be used with nu_surveyor.

Other wiki pages