Per Cederberg
2008-10-27 09:49:01 UTC
Hi everyone,
Development of MochiKit 1.5 is about to start. But before we open the
flood-gates, it might be useful to have a look at a summary of all
proposed API:s. Below you'll find a comprehensive list of all API
additions that I've found (so far).
# Note 1. I've included everything, regardless of whether the
author/originator actually suggested them for inclusion into MochiKit
or not.
# Note 2. In some cases the source code exists and has been tested.
Not so in others.
# Note 3. Some of these API suggestions might be duplicates of
something already in MochiKit. Or are perhaps better implemented as
improvements to existing functions. Some of them might just be common
usage patterns that either deserve proper documentation or perhaps an
alias function.
So, in summary, please don't get too agitated about individual entries
on the list below. Nothing is set in stone and I'm only looking to
collect statistics, ideas, clarified names, generalizations, random
thoughts and such. See this as my attempt to collect your thoughts and
votes about what you want from MochiKit in the future.
I'm holding off a bit on my own analysis. Will post my comments on
individual suggestions later on.
Cheers,
/Per
Source Notations:
[trac] Enhancement suggestions in MochiKit Trac, usually without a
proposed implementation.
http://trac.mochikit.com/report/3
[me] Patches from the MochiKit Extensions project on LaunchPad
https://launchpad.net/mochikit-ext
[mp] Patches from the mochikit-patches project on GitHub.
http://github.com/cederberg/mochikit-patches/tree/master
[other] Random thoughts found elsewhere (don't know where)
MochiKit.Base
o rbind -- [trac] binds a function, but adds new args before bound ones
o rpartial -- [trac] binds a function, but adds new args before bound ones
o extendURL -- [trac] merges name and values into a URL query string
o isFalse -- [mp] check for false, with wide interpretation
o defaultValue -- [mp] returns first non-undefined value
o dict -- [mp] merges keys and values to dictionary object
o select -- [mp] copies listed keys (and values) from an object
o mask -- [mp] removes listed keys (and values) from an object
o functionName -- [mp] returns the name of a function
o registerFunctionNames -- [mp] registers function names
- should probably be merged into nameFunctions
o stackTrace -- [mp] returns current execution stack trace
o injectStackTrace -- [mp] injects stack trace for a function
o version -- [other] returns an object for browser detection & such
MochiKit.Async
o postSimpleXMLHttpRequest -- [trac] uses POST for a simple request
o postJSONDoc -- [trac] same as above and also eval:s response data
o sendJSONPrequest -- [trac] similar to the above, but different API
o loadScript -- [trac] loads a JavaScript file
MochiKit.DateTime
o MILLIS_PER_SECOND -- [mp] constant millisecond value
o MILLIS_PER_MINUTE -- [mp] constant millisecond value
o MILLIS_PER_HOUR -- [mp] constant millisecond value
o MILLIS_PER_DAY -- [mp] constant millisecond value
o MILLIS_PER_WEEK -- [mp] constant millisecond value
o TimePeriod -- [mp] creates a new time period object
(with days, hours, minutes, seconds & millis)
o toApproxPeriod -- [mp] converts millis to an approximate time period
MochiKit.DOM:
o NBSP -- [trac] creates a non-breaking space node
o unescapeHTML -- [trac] creates a DOM tree from an HTML string
o selectRange -- [trac] selects text in a text box or field
o NS.XHTML -- [mp] namespace constant
o NS.XLINK -- [mp] namespace constant
o NS.SVG -- [mp] namespace constant
o NS.XUL -- [mp] namespace constant
o NS.HTML -- [mp] namespace constant
o isDOM -- [mp] checks if an object looks like a DOM node
o isHTML -- [mp] checks if an object looks like an HTML or XHTML DOM node
o reprDOM -- [mp] creates debug representation of a DOM node
o attributeArray -- [mp] make existing impl. public
o childNode -- [mp] returns an immediate child node
o createDOMExt -- [mp] creates a DOM node with a namespace
o createTextNode -- [mp] creates a DOM text node
o createDOMFuncExt -- [mp] returns function for creating DOM nodes
o blurAll -- [mp] blurs (unfocuses) a DOM node and all relevant children
MochiKit.Format
o truncate -- [mp] returns a right-truncated copy of a string
o formatter -- [mp] creates a generic formatter function
o format -- [mp] formats the arguments with a formatter pattern
o FormatPatternError -- [mp] a format pattern error class
MochiKit.Style
o setPositionFixed -- [trac] sets fixed position in cross-browser way
o getContainingBlock -- [trac] returns the containing (layout) parent node
o getMarginBox -- [trac] returns the margin widths for an HTML DOM node
o getBorderBox -- [mp] returns the border widths for an HTML DOM node
o getPaddingBox -- [mp] returns the padding widths for an HTML DOM node
o getScrollOffset -- [mp] returns the scroll offset for an HTML DOM node
o setScrollOffset -- [mp] sets the scroll offset for an HTML DOM node
o resetScrollOffset -- [mp] resets the scroll offsets to zero
o adjustScrollOffset -- [mp] ensures optimal visibility for a box
o registerSizeConstraints -- [mp] registers algebraic constraints for an
element width, height and aspect ratio
o resizeElements -- [mp] resizes DOM nodes using parent sizes and registered
constraints
MochiKit.Signal
o connectEventMap -- [trac] connect signals through a declarative map
MochiKit.Visual
o slideOnLeft -- [trac] slides an element while moving from right to left
o slideOnRight -- [trac] variation of the theme above
o slideOffLeft -- [trac] variation of the theme above
o slideOffRight -- [trac] variation of the theme above
o slidePairLeft -- [trac] variation of the theme above
o slidePairRight -- [trac] variation of the theme above
o slidePair -- [trac] variation of the theme above
MochiKit.Test -- publish & improve existing module [trac]
MochiKit.Cookie -- new module in [trac]
o getCookie -- [trac] retrieves an HTTP cookie value
o setCookie -- [trac] sets an HTTP cookie value
MochiKit.Queue, Stack and AsyncQueue -- new modules in [trac]
-- these are suggested data structures, should perhaps be placed in
a Data module or similar.
MochiKit.String -- new module in [me], here only missing MochiKit
functions are presented
o isalnum -- [me] checks if a string contains only alphanumeric characters
o isalpha -- [me] checks if a string contains only A-Z characters
o isdigit -- [me] checks if a string contains only numeric characters
o isupper -- [me] checks if a string contains only upper-case characters
o islower -- [me] checks if a string contains only lower-case characters
o istitle -- [me] checks if a string is in title-case (is this same
as camelCase?)
o startswith -- [me] checks if a string starts with a substring
o endswith -- [me] checks if a string ends with a substring
o capitalize -- [me] converts the first character to upper-case and
the rest to lower-case
o swapcase -- [me] swaps the character case for a string
o title -- [me] converts a string to title case
o center -- [me] centers a string inside the specified width,
padding with spaces
o ljust -- [me] left-justifies a string inside the specified width,
padding with spaces
o rjust -- [me] right-justifies a string inside the specified width,
padding with spaces
MochiKit.Ajax -- new module in [me], names not exported (so no collisions)
o bind -- [me] connects a signal for HTTP responses
o unbind -- [me] disconnects a signal for HTTP responses
o request -- [me] sends an HTTP request
o get -- [me] sends an HTTP GET request
o post -- [me] sends an HTTP POST request
MochiKit.Query -- new module in [me]
-- I won't document this module here, but it seems (mostly?) API
compatible with jQuery. It uses MochiKit to implement (part of) that
API.
MochiKit.SVG -- new module in [mp]
o SVG -- [mp] creates an SVG document node
o DEFS -- [mp] creates an SVG definitions node
o G -- [mp] creates an SVG group node
o LINE -- [mp] creates an SVG line node
o RECT -- [mp] creates an SVG rectangle node
o CIRCLE -- [mp] creates an SVG circle node
o PATH -- [mp] creates an SVG path node
o TEXT -- [mp] creates an SVG text node
o RADIALGRADIENT -- [mp] creates an SVG radial gradient node
o STOP -- [mp] creates an SVG gradient stop node
o moveToTop -- [mp] moves a node to the top of the SVG drawing order
o moveToBottom -- [mp] moves a node to the bottom of the SVG drawing order
o rotate -- [mp] adds a rotation transform to an SVG DOM node
MochiKit.Widget -- new module in [mp]
o isWidget -- [mp] checks if an object is a widget
o isFormField -- [mp] checks if an object is a form field
o createWidget -- [mp] creates a new widget
o createWidgetTree -- [mp] creates a tree of DOM nodes and widgets
o destroyWidget -- [mp] destroys a widget or a DOM node
o Widget -- [mp] prototype widget object, not used directly
o Button -- [mp] creates a new button widget
o Dialog -- [mp] creates a new dialog widget
o Field -- [mp] creates a new field widget
o Form -- [mp] creates a new form widget
o FormValidator -- [mp] creates a new form validator widget
o Icon -- [mp] creates a new icon widget
o Overlay -- [mp] creates a new overlay widget
o Pane -- [mp] creates a new pane widget
o Popup -- [mp] creates a new popup widget
o ProgressBar -- [mp] creates a new progress bar widget
o TabContainer -- [mp] creates a new tab container widget
o Table -- [mp] creates a new data table widget
o TableColumn -- [mp] creates a new data table column widget
o TextArea -- [mp] creates a new text area (or text box) widget
o TextField -- [mp] creates a new text field widget
o Tree -- [mp] creates a new tree widget
o TreeNode -- [mp] creates a new tree node widget.
o Wizard -- [mp] creates a new wizard widget
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "MochiKit" group.
To post to this group, send email to ***@googlegroups.com
To unsubscribe from this group, send email to mochikit+***@googlegroups.com
For more options, visit this group at http://groups.google.com/group/mochikit?hl=en
-~----------~----~----~----~------~----~------~--~---
Development of MochiKit 1.5 is about to start. But before we open the
flood-gates, it might be useful to have a look at a summary of all
proposed API:s. Below you'll find a comprehensive list of all API
additions that I've found (so far).
# Note 1. I've included everything, regardless of whether the
author/originator actually suggested them for inclusion into MochiKit
or not.
# Note 2. In some cases the source code exists and has been tested.
Not so in others.
# Note 3. Some of these API suggestions might be duplicates of
something already in MochiKit. Or are perhaps better implemented as
improvements to existing functions. Some of them might just be common
usage patterns that either deserve proper documentation or perhaps an
alias function.
So, in summary, please don't get too agitated about individual entries
on the list below. Nothing is set in stone and I'm only looking to
collect statistics, ideas, clarified names, generalizations, random
thoughts and such. See this as my attempt to collect your thoughts and
votes about what you want from MochiKit in the future.
I'm holding off a bit on my own analysis. Will post my comments on
individual suggestions later on.
Cheers,
/Per
Source Notations:
[trac] Enhancement suggestions in MochiKit Trac, usually without a
proposed implementation.
http://trac.mochikit.com/report/3
[me] Patches from the MochiKit Extensions project on LaunchPad
https://launchpad.net/mochikit-ext
[mp] Patches from the mochikit-patches project on GitHub.
http://github.com/cederberg/mochikit-patches/tree/master
[other] Random thoughts found elsewhere (don't know where)
MochiKit.Base
o rbind -- [trac] binds a function, but adds new args before bound ones
o rpartial -- [trac] binds a function, but adds new args before bound ones
o extendURL -- [trac] merges name and values into a URL query string
o isFalse -- [mp] check for false, with wide interpretation
o defaultValue -- [mp] returns first non-undefined value
o dict -- [mp] merges keys and values to dictionary object
o select -- [mp] copies listed keys (and values) from an object
o mask -- [mp] removes listed keys (and values) from an object
o functionName -- [mp] returns the name of a function
o registerFunctionNames -- [mp] registers function names
- should probably be merged into nameFunctions
o stackTrace -- [mp] returns current execution stack trace
o injectStackTrace -- [mp] injects stack trace for a function
o version -- [other] returns an object for browser detection & such
MochiKit.Async
o postSimpleXMLHttpRequest -- [trac] uses POST for a simple request
o postJSONDoc -- [trac] same as above and also eval:s response data
o sendJSONPrequest -- [trac] similar to the above, but different API
o loadScript -- [trac] loads a JavaScript file
MochiKit.DateTime
o MILLIS_PER_SECOND -- [mp] constant millisecond value
o MILLIS_PER_MINUTE -- [mp] constant millisecond value
o MILLIS_PER_HOUR -- [mp] constant millisecond value
o MILLIS_PER_DAY -- [mp] constant millisecond value
o MILLIS_PER_WEEK -- [mp] constant millisecond value
o TimePeriod -- [mp] creates a new time period object
(with days, hours, minutes, seconds & millis)
o toApproxPeriod -- [mp] converts millis to an approximate time period
MochiKit.DOM:
o NBSP -- [trac] creates a non-breaking space node
o unescapeHTML -- [trac] creates a DOM tree from an HTML string
o selectRange -- [trac] selects text in a text box or field
o NS.XHTML -- [mp] namespace constant
o NS.XLINK -- [mp] namespace constant
o NS.SVG -- [mp] namespace constant
o NS.XUL -- [mp] namespace constant
o NS.HTML -- [mp] namespace constant
o isDOM -- [mp] checks if an object looks like a DOM node
o isHTML -- [mp] checks if an object looks like an HTML or XHTML DOM node
o reprDOM -- [mp] creates debug representation of a DOM node
o attributeArray -- [mp] make existing impl. public
o childNode -- [mp] returns an immediate child node
o createDOMExt -- [mp] creates a DOM node with a namespace
o createTextNode -- [mp] creates a DOM text node
o createDOMFuncExt -- [mp] returns function for creating DOM nodes
o blurAll -- [mp] blurs (unfocuses) a DOM node and all relevant children
MochiKit.Format
o truncate -- [mp] returns a right-truncated copy of a string
o formatter -- [mp] creates a generic formatter function
o format -- [mp] formats the arguments with a formatter pattern
o FormatPatternError -- [mp] a format pattern error class
MochiKit.Style
o setPositionFixed -- [trac] sets fixed position in cross-browser way
o getContainingBlock -- [trac] returns the containing (layout) parent node
o getMarginBox -- [trac] returns the margin widths for an HTML DOM node
o getBorderBox -- [mp] returns the border widths for an HTML DOM node
o getPaddingBox -- [mp] returns the padding widths for an HTML DOM node
o getScrollOffset -- [mp] returns the scroll offset for an HTML DOM node
o setScrollOffset -- [mp] sets the scroll offset for an HTML DOM node
o resetScrollOffset -- [mp] resets the scroll offsets to zero
o adjustScrollOffset -- [mp] ensures optimal visibility for a box
o registerSizeConstraints -- [mp] registers algebraic constraints for an
element width, height and aspect ratio
o resizeElements -- [mp] resizes DOM nodes using parent sizes and registered
constraints
MochiKit.Signal
o connectEventMap -- [trac] connect signals through a declarative map
MochiKit.Visual
o slideOnLeft -- [trac] slides an element while moving from right to left
o slideOnRight -- [trac] variation of the theme above
o slideOffLeft -- [trac] variation of the theme above
o slideOffRight -- [trac] variation of the theme above
o slidePairLeft -- [trac] variation of the theme above
o slidePairRight -- [trac] variation of the theme above
o slidePair -- [trac] variation of the theme above
MochiKit.Test -- publish & improve existing module [trac]
MochiKit.Cookie -- new module in [trac]
o getCookie -- [trac] retrieves an HTTP cookie value
o setCookie -- [trac] sets an HTTP cookie value
MochiKit.Queue, Stack and AsyncQueue -- new modules in [trac]
-- these are suggested data structures, should perhaps be placed in
a Data module or similar.
MochiKit.String -- new module in [me], here only missing MochiKit
functions are presented
o isalnum -- [me] checks if a string contains only alphanumeric characters
o isalpha -- [me] checks if a string contains only A-Z characters
o isdigit -- [me] checks if a string contains only numeric characters
o isupper -- [me] checks if a string contains only upper-case characters
o islower -- [me] checks if a string contains only lower-case characters
o istitle -- [me] checks if a string is in title-case (is this same
as camelCase?)
o startswith -- [me] checks if a string starts with a substring
o endswith -- [me] checks if a string ends with a substring
o capitalize -- [me] converts the first character to upper-case and
the rest to lower-case
o swapcase -- [me] swaps the character case for a string
o title -- [me] converts a string to title case
o center -- [me] centers a string inside the specified width,
padding with spaces
o ljust -- [me] left-justifies a string inside the specified width,
padding with spaces
o rjust -- [me] right-justifies a string inside the specified width,
padding with spaces
MochiKit.Ajax -- new module in [me], names not exported (so no collisions)
o bind -- [me] connects a signal for HTTP responses
o unbind -- [me] disconnects a signal for HTTP responses
o request -- [me] sends an HTTP request
o get -- [me] sends an HTTP GET request
o post -- [me] sends an HTTP POST request
MochiKit.Query -- new module in [me]
-- I won't document this module here, but it seems (mostly?) API
compatible with jQuery. It uses MochiKit to implement (part of) that
API.
MochiKit.SVG -- new module in [mp]
o SVG -- [mp] creates an SVG document node
o DEFS -- [mp] creates an SVG definitions node
o G -- [mp] creates an SVG group node
o LINE -- [mp] creates an SVG line node
o RECT -- [mp] creates an SVG rectangle node
o CIRCLE -- [mp] creates an SVG circle node
o PATH -- [mp] creates an SVG path node
o TEXT -- [mp] creates an SVG text node
o RADIALGRADIENT -- [mp] creates an SVG radial gradient node
o STOP -- [mp] creates an SVG gradient stop node
o moveToTop -- [mp] moves a node to the top of the SVG drawing order
o moveToBottom -- [mp] moves a node to the bottom of the SVG drawing order
o rotate -- [mp] adds a rotation transform to an SVG DOM node
MochiKit.Widget -- new module in [mp]
o isWidget -- [mp] checks if an object is a widget
o isFormField -- [mp] checks if an object is a form field
o createWidget -- [mp] creates a new widget
o createWidgetTree -- [mp] creates a tree of DOM nodes and widgets
o destroyWidget -- [mp] destroys a widget or a DOM node
o Widget -- [mp] prototype widget object, not used directly
o Button -- [mp] creates a new button widget
o Dialog -- [mp] creates a new dialog widget
o Field -- [mp] creates a new field widget
o Form -- [mp] creates a new form widget
o FormValidator -- [mp] creates a new form validator widget
o Icon -- [mp] creates a new icon widget
o Overlay -- [mp] creates a new overlay widget
o Pane -- [mp] creates a new pane widget
o Popup -- [mp] creates a new popup widget
o ProgressBar -- [mp] creates a new progress bar widget
o TabContainer -- [mp] creates a new tab container widget
o Table -- [mp] creates a new data table widget
o TableColumn -- [mp] creates a new data table column widget
o TextArea -- [mp] creates a new text area (or text box) widget
o TextField -- [mp] creates a new text field widget
o Tree -- [mp] creates a new tree widget
o TreeNode -- [mp] creates a new tree node widget.
o Wizard -- [mp] creates a new wizard widget
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "MochiKit" group.
To post to this group, send email to ***@googlegroups.com
To unsubscribe from this group, send email to mochikit+***@googlegroups.com
For more options, visit this group at http://groups.google.com/group/mochikit?hl=en
-~----------~----~----~----~------~----~------~--~---