2.0.0 preview 1
Main Changes
- Enabled managing components statefully.
- Enabled communicating with subcomponents (nested components).
- Changed not to need creating directory for each component.
- Changed format of template file (.html) to use HTML attributes to declare
elements instead of <CGIKit>
tags.
- Changed format of binding file (.ckd) to Ruby script.
- Reformed APIs.
- Added ckold2new to convert .ckd file of 1.x into one of 2.x to misc
directory.
Changed Elements
Examples
- Removed all examples and added HelloWorld, Calc and CKWiki.
1.2.1
- Fix that literals of array and hash can’t be parsed in definition
files.
1.2.0 (2004/4/15)
This version supports only Ruby 1.8.0 or later.
New Features
- Enable validation of values for CKText and CKTextField.
- Add WEBrick and Template adapters.
The Template adapter returns HTTP response objects instead of displaying
HTML string.
Changed Elements
- Enable all elements to set optional HTML attributes.
- Enable omitting semicolon as term in definition files.
- Change to raise error if definitions of elements are repeated.
- Disable checking undefined attributes of elements.
- Remove "action" attribute of CKForm.
New and Changed APIs
- Refactor process to check session.
- Change CKErrorPage to be loaded by default.
- Remove CKStringScanner class.
- Change using Enumerable#each_with_index when setting instance variables of
"item" attribute of CKRepetition.
- Change setting nil for session ID and session after deleting session with
CKApplication#clear_session().
- Change cookie header into the lead of response header.
Fixes
- Fix that order of setting form data to instance variables in component is
not ordered.
- Fix that session is not enabled indefinite if timeout is setted to 0.
- Fix that to enable no session IDs in URLs and cookies.
- Fix that CKCheckbox in CKRepetition do not work with sessions.
- Fix that authorization of sessions do not work correctly.
- Fix that raising error if log files is not existed with max_file_size of
log option.
- Fix that "enabled" attribute of CKGenericElement cannot be false.
- Fix that value of "value" attribute of CKTextField is not be
escaped.
1.1.0 (2003/11/4)
New Features
- Correspond to ruby 1.8.0.
- Add CKResourceManager class that manages resources like image files, etc.
- Enable specifying expire time of cookie used for record session IDs. You
can set the time with session_cookie_expire attribute of CKApplication.
- Abolish defining accessors of attributes to use with elements. Elements use
instance variable directly if you don’t define accessors.
- Enable using adapters automatically whether CGI or mod_ruby.
- Attach cgikit.el development tool for Emacs by rubikitch.
Changed Elements
- Add "maxlength" attribute to CKTextField.
- Add "height", "width", "data" and
"mime" attributes to CKImage.
- Add "fileupload" attribute to CKForm.
- Change class of data excepted uploaded file to String at sending multipart
form data with CKForm.
New and Changed APIs
Fixes
- Fix that "escape" attribute of CKBrowser is always setted to
true.
- Fix that HTML control characters don’t be escaped at displaying value
of "value" attribute of CKText.
- Fix using CKFileUpload with setting character code occurs error.
- Fix that an application name can’t be displayed correctly in path of
the application with directories included periods at error page.
1.0.1 (2003/7/22)
New and Changed APIs
- Add a hook method CKApplication#pre_run(). This is called before generating
specified component. When calling the method, objects of request and
session are already setted.
Fixes
- Fix "values" attribute of CKPopUpButton that didn’t work.
- Fix that "Content-Dispostion" header can’t be setted for
CKResponse object.
1.0.0 (2003/7/15)
Official release. Switch licence from GPL licence to Ruby licence.
Experimental Feature
- Enable using with mod_ruby.
New Features
- Add "values" attribute to CKBrowser and CKPopUpButton.
- Enhance logging feature of CKLog.
- Support specifying character code of form data. By default, Japanese
character codes only.
- Support interpreting locale with language preference of browser.
New and Changed APIs
- Add comment format for <CGIKIT> in template files.
- Add CKAdapter::ModRuby.
- Delete "default" attribute of CKBrowser.
- Change CKCheckbox to always display content of "value" attribute
along HTML 4.01 specification.
- Add session() to CKComponent. It is alias method for CKApplication#session.
- Change CKCookie#new to receive arguments for all attributes.
- Change exclusive_lock() and shared_lock() of CKFileLock to receive
arguments the same with arguments of open().
- Change to raise CKError when clearing session with incorrect methods. Use
CKSession#clear in automatic session management, or
CKApplication#clear_session.
- Change to raise SessionTimeoutError when accessing with session IDs not
existed.
- Add languages() to CKRequest. The method returns an array of languages.
- Add hook methods the following.
CKApplication#pre_respond: | It is called before sending HTTP response to browser.
|
CKComponent#post_run: | It is called after setting form data for instance variables and run action.
|
CKComponent#convert_char_code: | It is called before setting form data for instance variables. The form data
is converted to specified character code in the method.
|
- Change classes and methods the following.
Delete a class
CKLock
Move methods
CKUtilities.parse_query_string: | -> CKRequest.parse_query_string
|
CKUtilities.parse_cookie: | -> CKCookie.parse_raw_cookie
|
Delete a method
CKApp#debug
Fixes
- Fix warning in verbose mode.
- Fix infinite loop at using automatic session management with cookie.
- Fix CKByteData#write_to_file couldn’t work.
- Fix "empty" attribute of CKString couldn’t work.
- Fix "enabled" attribute of elements to not display.
- Fix error page couldn’t be display at raising errors about attributes
of elements.
Examples
- Add "HelloWorldModRuby" for mod_ruby.
- Add Japanese locale to "Examples".
- Add example code for logging to "ErrorScreen".
1.0b7 (2003/4/17)
Last beta version.
New Features
- Add file uploading element CKFileUpload and generating HTML tags element
CKGenericElement.
- Enable form elements in CKRepetition elements.
- Enable literals of Array and Hash in
binding files.
- Add "FileUpload", "AddressBook" to samples. And add
"RepetitionTablePage" and "GeneratingElementPage" to
"Examples".
New and Changed APIs
Fixes
- Change a character for splitting query string in URL to ’;’.
- Change default value to true for CKApplication’s "debug"
attribute.
- Fix a part of HTML text for CKErrorPage.
- Fix "string" attribute of CKHyperlink can’t be set Integer
objects.
- Fix CKHyperlink to parse <CGIKIT> elements in enclosed the elements.
- Fix processing concurrently "list" and "count"
attributes of CKRepetition.
- Fix "escape" attribute of CKString can’t be set false.
- Fix a spell miss of "columns" attribute of CKText.
1.0b6 (2003/2/22)
New Features
- Introduce session management.
- Reimplements parsers that makes performance up.
- Add "SessionTest" to samples.
New APIs
- Add "query" attribute to CKForm.
- Add "error_page" attribute to CKApplication.
- Add http_version_line() to CKMessage.
- Add status_line() to CKResponse.
- Add send_redirect() that redirects to specified URLs to CKResponse.
Fixes
- Change naming rule for "name" attribute of CKForm that created
automatically.
- Change return value of CKApplication#handle_error() to CKComponent objects.
- Change the default value for "status" attribute of CKResponse to
status code 200 ( OK ).
- Fix type for "status" attribute of CKResponse to Integer from
String.
- Fix CKUtilities#escape_html() that don’t escape single quotations.
- Fix that "string" attribute is disabled if "disabled"
attribute is true in CKHyperlink.
- Change resource directory is traced recursively when searching image files
in CKImage.
- Change the default value for "escape" attribute of CKPopUpButton
and CKBrowser to true.
- Change name for "selection" attribute of CKPopUpButton to
"selected".
- Fix raising error if "list" attribute is nil in CKPopUpButton,
CKBrowser and CKRepetition.
- Fix disabled "escape" attribute of CKBrowser.
- Fix that radio buttons don’t work if definition names differ from
values of "name" attribute in CKRadioButton.
- Change CKURL#url() to add a session ID and query string for URL.
1.0b5 (2002/12/13)
New Features
- Write RDoc documents.
- Introduce error showing page. An error page will be shown a reason with
stacktraces when exception occurred.
- Introduce directories for extention elements and components. Files in the
directories will be searched and required in creating elements or
components.
$LOAD_PATH/cgikit/elements: | For extention elements
|
$LOAD_PATH/cgikit/components: | For extention components
|
- Introduce checking attributes of elements. Set false for
CKApplication#attributes_check to stop checking.
- Combine library files. The file will make performance up more than the
splitted files in Ruby 1.6.x.
- Add "ErrorScreen" to samples.
New APIs
- Introduce CKPartsMaker. If you access an including CKPartsMaker component
directly, you will be redirected to a substitution component ( default is
"MainPage" ).
- Add logging class CKLog.
- Add locking file class CKFileLock.
- Add methods getting form parameters and cookies to CKRequest.
- Add page() method that creates new components to CKApplication.
- Add add_cookie() method CKComponent and CKMessage.
Fixes
- Delete "item" attribute of CKBrowser and CKPopUpButton.
- Change the class name from "CKExceptionPage" to
"CKErrorPage".
- Fix a problem that CKConditional parses HTML in spite of conditional.
- Change name of "selected" attribute for CKPopUpButton to
"selection".
- Fix a problem that CKString occurs error if "value" attribute is
nil when "escape" attribute is true.
- Fix CKRequest#from returns HTTP header "HTTP_FROM".
- Fix "enctype" attribute of CKForm has "POST" when set
value but "POST, GET, HEAD".
- Delete CKCookieManager.
- Fix a key name of "master_locale" that is appended to a query
string in CKURL#url().
1.0b4 (2002/10/17)
Fix bugs and refactoring source code.
- Fix reading components in CKApplication#component_path ( the former path ).
- Fix sending component data in CKURL#_parse. Accodingly delete
CKComponent#fetch, _fetch_from_request.
- Fix html parser cuts a part of string in repeating parsing.
- Fix CKCheckbox element shows the "value" attribute in spite of
non setting it.
- Fix CKForm element can’t run without setting CKApplition#baseurl (
the former application ). Change using SCRIPT_NAME of the environment
variable when baseurl has no value.
- Fix CKText element ignores the "value" attribute.
- Fix CKImage element searches for only CKApplication#resource. Change
searching CKApplication#baseurl when resouce has no value.
- Fix CKString element ignores "true" value not string enclosed
quatation in "escape" attribute.
- Add some attributes to CKApplication.
path: | The file system path of the program.
|
component_path: | The relative file system path of the components.
|
baseurl: | The program URL relative to the server’s document root. ( the former
application ).
|
name: | The name of the program minused extension.
|
- Add the ’’ delimiter can perform string in binding file.
- Add the # comment delimiter can comment out binding file.
- Support the <cgikit/> concluded CGIKit tag in HTML file.
- Define the exception class CKError.
- Define cookie class. You don’t have to use cookie with cgi.rb.
- Define CKUtilities module has escaping, etc. methods.
CKMessage#escape: | -> escape_html
|
CKMessage#unescape: | -> unescape_html
|
CKMessage#date: | -> date
|
CKMessage#_cookies: | -> cookies
|
CKAdaptee::CGI#escape: | -> escape_url
|
CKAdaptee::CGI#unescape: | -> unescape_url
|
CKAdaptee::CGI#parse: | -> parse_query_string
|
- Change the names of many methods according to Ruby coding style.
- Change the single instance method to class method in CKBinding,
CKDefinition.
- Add new "Cookie Counter" and "Reqest Shower" samples.
1.0b3 (2002/10/9)
Change initializing logic.
- Use install.rb to install CGIKit.
- Divide the library into separate files.
- Change initializing Logic by adding CKAdapter.
- Replace source code with cgi.rb by CKRequest and CKResponse.
- Add a method CKElement#init_element that can initialize a component without
arguments and overriding initialize.
- Change singleton CKApplication to not singleton.
- Change initialize methods for CKElement and CKHTMLParser.
- Move CKElement#_fetchFromRequest to CKComponent.
1.0b2 (2002/9/13)
Fix some codes.
- Edit comments for RDoc.
- Delete "autoload".
- Delete $CKApp of global variable.
- Change default application path using Dir.pwd.
1.0b (2002/9/3)
First release.