Diff for /parser3/operators.ru.txt between versions 1.103 and 1.109.2.1.2.9

version 1.103, 2002/11/29 08:13:38 version 1.109.2.1.2.9, 2003/07/02 15:40:29
Line 92  Xне сделано, видимо, не будет сделано Line 92  Xне сделано, видимо, не будет сделано
         default as-is          default as-is
     !^taint[[lang]][код]      !^taint[[lang]][код]
         default "just tainted, language unknown"          default "just tainted, language unknown"
     !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}      !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[во что переименовать @main]
       !^process..[путь][во что переименовать @main]
       по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]        по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]
     !^connect[protocol://строка соединения]]{код с ^sql[...]-ями}      !^connect[protocol://строка соединения]]{код с ^sql[...]-ями}
         !mysql://user:pass@{host[:port]|[/unix/socket]}/database?          !mysql://user:pass@{host[:port]|[/unix/socket]}/database?
Line 301  odbc    c:\drives\y\parser3project\odbc\ Line 302  odbc    c:\drives\y\parser3project\odbc\
         логическое значение равно "не пуста?"          логическое значение равно "не пуста?"
         числовое значение равно count[]          числовое значение равно count[]
     !^table::create[[nameless]]{данные} старое имя "set"      !^table::create[[nameless]]{данные} старое имя "set"
     !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur]]]      !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]]
         клонирует таблицу              клонирует таблицу    
           reverse << сзаду на перёд (работает пока только в locate, в table::create НЕ работает)
     !^table::load[[nameless;]путь[;опции]]      !^table::load[[nameless;]путь[;опции]]
         !если не nameless, названия колонок берутся из первой строки          !если не nameless, названия колонок берутся из первой строки
         !пустые строки, и строки в первой колонке содержащие '#', игнорируются                  !пустые строки, и строки в первой колонке содержащие '#', игнорируются        
     !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]]      !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]]
     !^таблица.save[[nameless|append;]путь]      !^таблица.save[[nameless|append;]путь]
     !$таблица.поле      !$таблица.поле
     !$таблица.fields+  из named таблицы выдаёт текущую запись как Hash      !$таблица.fields  из named таблицы выдаёт текущую запись как Hash
     !^таблица.menu{тело}[разделитель]      !^таблица.menu{тело}[разделитель]
     !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset      !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset
         !whence=cur|set          !whence=cur|set
Line 326  odbc    c:\drives\y\parser3project\odbc\ Line 328  odbc    c:\drives\y\parser3project\odbc\
     !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]]     - добавляет записи из таблицы.       !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]]     - добавляет записи из таблицы. 
         таблицы должны иметь одинаковую структуру.          таблицы должны иметь одинаковую структуру.
     !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать      !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать
     !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool      !^таблица.locate[поле;значение][[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]] 
     !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool          передвигает текущую строку, если найдёт. выдаёт bool
     !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1)]]      !^таблица.locate(логическое выражение)[[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]]
           передвигает текущую строку, если найдёт. выдаёт bool
       !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1) $.distinct[tables]]]
         значением $hash.ключ будет hash в котором поля значений будут ключами          значением $hash.ключ будет hash в котором поля значений будут ключами
         поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой          поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой
           если distinct содержит true, то не будет ошибки при повторяющихся ключах
           если distinct содержит tables, то будет создан hash из таблиц, содержащих строки с ключом
     !^таблица.columns[]+ таблица из одного столбца $column      !^таблица.columns[]+ таблица из одного столбца $column
     !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало      !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало
         $adults[^man.select($man.age>=18)]          $adults[^man.select($man.age>=18)]
Line 344  odbc    c:\drives\y\parser3project\odbc\ Line 350  odbc    c:\drives\y\parser3project\odbc\
     !$hash.ключ      !$hash.ключ
         !_default - специальный ключ, если задан,           !_default - специальный ключ, если задан, 
         то при обращении по ключу, которому нет соответствия, выдаётся _default значение           то при обращении по ключу, которому нет соответствия, выдаётся _default значение 
       !$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table
     !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]]      !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]]
         создаёт новый hash, копию старого          создаёт новый hash, копию старого
     !^hash.add[слагаемое]      !^hash.add[слагаемое]
Line 378  odbc    c:\drives\y\parser3project\odbc\ Line 385  odbc    c:\drives\y\parser3project\odbc\
 !cookie  !cookie
     !$cookie:имя считать старое или свежезаданное      !$cookie:имя считать старое или свежезаданное
     !$cookie:имя[значение] на 90 дней      !$cookie:имя[значение] на 90 дней
     !$cookie:имя[$.value[значение]  $.expires(дней, 0дней=session)]      !$cookie:имя[$.value[значение]  $.expires ЗНАЧЕНИЕ ]
       !значение поля expires может быть 'session', date, или число дней(0дней=session)
       ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"
   
 !request  !request
     !$request:query          !$request:query    
Line 402  odbc    c:\drives\y\parser3project\odbc\ Line 411  odbc    c:\drives\y\parser3project\odbc\
         !значение поля или атрибута может быть string или date          !значение поля или атрибута может быть string или date
         ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"          ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"
     !$response:body[DATA]  замещает стандартный ответ      !$response:body[DATA]  замещает стандартный ответ
       !$response:download[DATA]  замещает стандартный ответ, 
           выставляет флаг, заставляющий browser предложить download
     !$response:status      !$response:status
     !^response:clear[] забыть все заданные response поля      !^response:clear[] забыть все заданные response поля
     !$response:charset      !$response:charset
Line 571  Xhashfile Line 582  Xhashfile
         !$image.exif.DateTime & co           !$image.exif.DateTime & co 
             [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]              [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]
         !числа типа int/double,          !числа типа int/double,
           !даты типа date
         !перечисления в виде hash с ключами 0..count-1          !перечисления в виде hash с ключами 0..count-1
     !$картинка.src .width .height      !$картинка.src .width .height
     !$картинка.line-width  число=ширина линий      !$картинка.line-width  число=ширина линий
Line 644  Xhashfile Line 656  Xhashfile
     !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif      !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif
   
   
 math  !math
     !$math:PI      !$math:PI
     !^math:round floor ceiling       !^math:round floor ceiling 
     !^math:trunc frac      !^math:trunc frac
Line 654  math Line 666  math
     !^math:degrees radians      !^math:degrees radians
     !^math:pow sqrt      !^math:pow sqrt
     !^math:random(ширина диапазона)      !^math:random(ширина диапазона)
     ^math:GUID {C2C0983C-E26E-4169-BD07-77ECE9405BA5}      !^math:uuid[]
           22C0983C-E26E-4169-BD07-77ECE9405BA5
           win32: пользуется cryptapi
           unix: пользуется /dev/urandom, 
               если нет, /dev/random, 
               если нет, rand 
               [на solaris /dev/random можно добавить]
       !^math:uid64[]
          BA39BAB6340BE370
       !^math:md5[string]
           выдает digest строки, длиной 16 байт в виде строки, 
           где байты digest выданы в hex виде, впритык, в нижнем регистре
     !^math:crypt[password;salt]      !^math:crypt[password;salt]
        salt prefix $apr1$ вызывает встроенный MD5 алгоритм,          salt prefix $apr1$ вызывает встроенный MD5 алгоритм, 
          если нет тела salt, оно создаётся случайным           если нет тела salt, оно создаётся случайным
Line 864  xdoc(xnode) Line 887  xdoc(xnode)
         attribute that is already inuse          attribute that is already inuse
         elsewhere          elsewhere
   
   !memory
       !^memory:compact[] собрать мусор, освободив место под новые данные
       (предупреждение: память процесса никогда не освобождается)
       полезно делать перед XSL transform.
   
 !status  !status
     !чтобы класс был доступен, в apache нужно сказать       !чтобы класс был доступен, в apache нужно сказать 
     <Location /parser-status.html>      <Location /parser-status.html>
Line 877  xdoc(xnode) Line 905  xdoc(xnode)
             url    time                  url    time    
             url    time                  url    time    
             url    time                  url    time    
     !$status:db hash  
         !cache hash db_home=>tables table  
             name    time    users  
             name    time    users  
             name    time    users  
     !$status:stylesheet      !$status:stylesheet
         !cache table          !cache table
             file    time              file    time
Line 905  xdoc(xnode) Line 928  xdoc(xnode)
            $s[$status:rusage]             $s[$status:rusage]
            ^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f]             ^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f]
   
       !$status:memory hash
           !used
               Includes some pages that were allocated but never written.          
   
           !free
   
           !ever_allocated_since_compact
               Return the number of bytes allocated since the last collection.     
   
           !ever_allocated_since_start
               Return the total number of bytes [EVER(c)PAF] allocated in this process.            
               Never decreases.                                                    
   
   
 !DATA::=string | file  !DATA::=string | file
   
Line 946  xdoc(xnode) Line 982  xdoc(xnode)
         !    $поле[значение] << значение имеет формат, как $response:ЗАГОЛОВОК          !    $поле[значение] << значение имеет формат, как $response:ЗАГОЛОВОК
         !]          !]
         !по-умолчанию, user-agent=parser3          !по-умолчанию, user-agent=parser3
           !по-умолчанию, получение http status != 200 >> создает http.status ошибку,
           !это можно отключить, передав
           !$.any-status(1)
           !$.charset[кодировка удалённых докуметов по-умолчанию] << если сервер вернёт content-type:charset=ОНА_ПЕРЕБИВАЕТ
     !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами)      !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами)
   
 !системные типы ошибок:  !системные типы ошибок:

Removed from v.1.103  
changed lines
  Added in v.1.109.2.1.2.9


E-mail: