diff docs/unfreefeatures.rst @ 324:21584174d865

make SHOW TABLES work
author catherine@dellzilla
date Thu, 11 Feb 2010 16:07:24 -0500
parents 8a76f597d2f9
children 6306edc46a6e
line wrap: on
line diff
--- a/docs/unfreefeatures.rst	Thu Feb 11 14:46:50 2010 -0500
+++ b/docs/unfreefeatures.rst	Thu Feb 11 16:07:24 2010 -0500
@@ -5,13 +5,67 @@
 Command shortcuts
 =================
 
+.. _parameters:
+
 Environment parameters
 ======================
 
 Your application can define user-settable parameters 
-which your code can reference::
+which your code can reference.  Create them as class attributes
+with their default values, and add them (with optional
+documentation) to ``settable``.
+
+::
 
+    from cmd2 import Cmd
+    class App(Cmd):
+        degrees_c = 22
+        sunny = False
+        settable = Cmd.settable + '''degrees_c temperature in Celsius
+                                     sunny'''
+        def do_sunbathe(self, arg):
+            if self.degrees_c < 20:
+                result = "It's {temp} C - are you a penguin?".format(temp=self.degrees_c)
+            elif not self.sunny:
+                result = 'Too dim.'
+            else:
+                result = 'UV is bad for your skin.'
+            self.stdout.write(result + '\n')
+    app = App()
+    app.cmdloop()
+        
+::
+
+    (Cmd) set --long
+    degrees_c: 22                  # temperature in Celsius
+    sunny: False                   # 
+    (Cmd) sunbathe
+    Too dim.
+    (Cmd) set sunny yes
+    sunny - was: False
+    now: True
+    (Cmd) sunbathe
+    UV is bad for your skin.
+    (Cmd) set degrees_c 13
+    degrees_c - was: 22
+    now: 13
+    (Cmd) sunbathe
+    It's 13 C - are you a penguin?
 
 
 Commands with flags
 ===================
+
+.. _outputters:
+
+poutput, pfeedback, perror
+==========================
+
+Standard ``cmd`` applications produce their output with ``self.stdout.write('output')`` (or with ``print``,
+but ``print`` decreases output flexibility).  ``cmd2`` applications can use 
+``self.poutput('output')``, ``self.pfeedback('message')``, and ``self.perror('errmsg')``
+instead.  These methods have these advantages:
+
+  - More concise
+  - ``.pfeedback()`` destination is controlled by :ref:`quiet` parameter.
+  
\ No newline at end of file