view release on metacpan or search on metacpan
script/_acme-cpanauthors view on Meta::CPAN
# my $caller = caller(0);
# $package->_import_to($caller, %per_target_conf);
#}
#
#1;
## ABSTRACT: A lightweight, flexible logging framework
#
#__END__
#
#=pod
#
#=encoding UTF-8
#
#=head1 NAME
#
#Log::ger - A lightweight, flexible logging framework
#
#=head1 VERSION
#
#version 0.040
#
script/_acme-cpanauthors view on Meta::CPAN
#file or command-line option. See L<Log::ger::Manual::Tutorial::300_Level> for
#more details.
#
#=head1 DESCRIPTION
#
#Log::ger is yet another logging framework with the following features:
#
#=over
#
#=item * Separation of producers and consumers/listeners
#
script/_acme-cpanauthors view on Meta::CPAN
#
#=item * Flexible
#
#B<Customizable levels and routine/method names.> Can be used in a procedural or
#OO style. Log::ger can mimic the interface of L<Log::Any>, L<Log::Contextual>,
#L<Log::Log4perl>, or some other popular logging frameworks, to ease migration or
#adjust with your personal style.
#
#B<Per-package settings.> Each importer package can use its own format/layout,
#output. For example, a module that is migrated from Log::Any uses Log::Any-style
#logging, while another uses native Log::ger style, and yet some other uses block
#formatting like Log::Contextual. This eases code migration and teamwork. Each
#module author can preserve her own logging style, if wanted, and all the modules
#still use the same framework.
#
#B<Dynamic.> Outputs and levels can be changed anytime during run-time and logger
#routines will be updated automatically. This is useful in situation like a
#long-running server application: you can turn on tracing logs temporarily to
#debug problems, then turn them off again, without restarting your server.
script/_acme-cpanauthors view on Meta::CPAN
#
#=for Pod::Coverage ^(.+)$
#
#=head1 SEE ALSO
#
#Some other popular logging frameworks: L<Log::Any>, L<Log::Contextual>,
#L<Log::Log4perl>, L<Log::Dispatch>, L<Log::Dispatchouli>.
#
#If you still prefer debugging using the good old C<print()>, there's
#L<Debug::Print>.
#
view all matches for this distribution
view release on metacpan or search on metacpan
share/static/alice.js view on Meta::CPAN
/* Prototype JavaScript framework, version 1.6.1
* (c) 2005-2009 Sam Stephenson
*
* Prototype is freely distributable under the terms of an MIT-style license.
* For details, see the Prototype web site: http://www.prototypejs.org/
*
share/static/alice.js view on Meta::CPAN
};
Element._attributeTranslations.has = {};
$w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
Element._attributeTranslations.has[attr.toLowerCase()] = attr;
});
(function(v) {
share/static/alice.js view on Meta::CPAN
if (this.finish) this.finish();
this.event('afterFinish');
return;
}
var pos = (timePos - this.startOn) / this.totalTime,
frame = (pos * this.totalFrames).round();
if (frame > this.currentFrame) {
this.render(pos);
this.currentFrame = frame;
}
}
},
cancel: function() {
if (!this.options.sync)
share/static/alice.js view on Meta::CPAN
}
f = f.substring(m[0].length);
}
return o.join('');
}
/* WysiHat - WYSIWYG JavaScript framework, version 0.2.1
* (c) 2008-2010 Joshua Peek
*
* WysiHat is freely distributable under the terms of an MIT-style license.
*--------------------------------------------------------------------------*/
share/static/alice.js view on Meta::CPAN
return editArea;
}
};
WysiHat.BrowserFeatures = (function() {
function createTmpIframe(callback) {
var frame, frameDocument;
frame = new Element('iframe');
frame.setStyle({
position: 'absolute',
left: '-1000px'
});
frame.onFrameLoaded(function() {
if (typeof frame.contentDocument !== 'undefined') {
frameDocument = frame.contentDocument;
} else if (typeof frame.contentWindow !== 'undefined' && typeof frame.contentWindow.document !== 'undefined') {
frameDocument = frame.contentWindow.document;
}
frameDocument.designMode = 'on';
callback(frameDocument);
frame.remove();
});
$(document.body).insert(frame);
}
var features = {};
function detectParagraphType(document) {
share/static/alice.js view on Meta::CPAN
}
features.run = function run() {
if (features.finished) return;
createTmpIframe(function(document) {
detectParagraphType(document);
detectIndentType(document);
features.finished = true;
});
share/static/alice.js view on Meta::CPAN
function fireFrameLoaded() {
if (loaded) return;
loaded = true;
if (contentLoadedHandler) contentLoadedHandler.stop();
element.fire('frame:loaded');
}
if (window.addEventListener) {
contentLoadedHandler = document.on("DOMFrameContentLoaded", function(event) {
if (element == event.element())
fireFrameLoaded();
});
}
element.on('load', function() {
var frameDocument;
if (typeof element.contentDocument !== 'undefined') {
frameDocument = element.contentDocument;
} else if (typeof element.contentWindow !== 'undefined' && typeof element.contentWindow.document !== 'undefined') {
frameDocument = element.contentWindow.document;
}
onReadyStateComplete(frameDocument, fireFrameLoaded);
});
return element;
}
function onFrameLoaded(element, callback) {
element.on('frame:loaded', callback);
element.observeFrameContentLoaded();
}
Element.addMethods({
observeFrameContentLoaded: observeFrameContentLoaded,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Asciio/Stencil.pm view on Meta::CPAN
%element_definition,
}) ;
unless($element_definition{WITH_FRAME})
{
# default object attribute is with frame, remove it
my $box_type = $element->get_box_type() ;
my ($title, $text) = $element->get_text() ;
Readonly my $TITLE_SEPARATOR => 1 ;
Readonly my $DISPLAY => 0 ;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/AutoCRUD.pm view on Meta::CPAN
Updating and Deleting records in relational databases (hence the
'CRUD' acronym). The 'C<Auto>' part of the name is because the
application automatically generates and immediately uses the
components needed to work with your data -- you don't have to edit
scaffolding code. The 'C<Plack>' part of the name comes from the
L<Plack middleware framework|Plack> used to implement this application.
To connect to one or several databases, just supply a configuration
file with the connnection information, and optionally some
presentation information, and then you can directly work with the
data. Optionally, the configuration file can also specify many
additional details, like table groups, column groups, data
descriptions, etc. If more customization is needed, then you can
modify the presentation templates, or even subclass some parts of the
framework.
This application was designed to be easy to integrate with other web
resources in your organization : every table, every record, every
search form has its own URL which can be linked from other sources,
can be bookmarked, etc. This makes it a great tool for example
lib/App/AutoCRUD.pm view on Meta::CPAN
=back
This application is also meant as an example for showing the
power of "Modern Perl", assembling several advanced frameworks
such as L<Moose>, L<Plack> and L<DBIx::DataModel>.
=head1 CONFIGURATION
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BS/Common.pm view on Meta::CPAN
$ENV{DEBUG} && $ENV{DEBUG} == 2
? join "\n",
map { ( my $line = $_ ) =~ s/^\t/ /; " $line" } split /\R/,
Devel::StackTrace::WithLexicals->new(
indent => 1,
skip_frames => 1
)->as_string
: "at $caller[1]:$caller[2]";
say STDERR "$out\n";
$out;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Basis/Email.pm view on Meta::CPAN
use App::Basis::Email ;
my $markdown = <<EOD ;
# Basic Markdown

That was an inlined image
## level2 header
view all matches for this distribution
view release on metacpan or search on metacpan
public/javascripts/jquery.js view on Meta::CPAN
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNod...
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return...
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},...
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(ty...
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady...
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function...
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[...
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s...
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:fun...
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a...
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exe...
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystat...
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,sty...
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}ca...
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a....
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"classNa...
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){...
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split...
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return...
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=...
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFuncti...
public/javascripts/jquery.js view on Meta::CPAN
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this....
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var ...
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k...
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType=...
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.suppor...
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{}...
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);el...
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new R...
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.i...
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.mak...
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if...
public/javascripts/jquery.js view on Meta::CPAN
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.re...
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(...
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})}...
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]...
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:...
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.d...
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))...
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null...
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<tab...
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this)...
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(thi...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Benchmark.pm view on Meta::CPAN
=head2 benchmark_diag
Takes a number of iterations and a benchmark definition hash, just like
C<timethese()> from the L<Benchmark> module. Runs the benchmarks and reports
them, each line prefixed by a hash sign so it doesn't mess up the TAP output.
Also, a dummy test is being generated to keep the testing framework happy.
This function is exported automatically.
=head1 AUTHORS
view all matches for this distribution
view release on metacpan or search on metacpan
- paper-wallet now generates taproot addresses in place of segwit addresses by default
- new option in paper-wallet: -t, --taproot_addrs - the number of taproot addresses to generate
1.13 Sun Aug 25 2024
- new option in paper-wallet: -n, --network - choose the network for which to generate the wallet (thanks @chromatic)
- switch test framework to Test2
1.12 Sat Oct 28 2023
- new option in paper-wallet: -w, --words - choose the number of words
- new option in paper-wallet: -c, --compat_addrs - choose the number of compat addresses
- new option in paper-wallet: -s, --segwit_addrs - choose the number of segwit addresses
view all matches for this distribution
view release on metacpan or search on metacpan
t/2016-11-14_Trump.md view on Meta::CPAN
[So What About That (Self)-Coup?](https://zeynep.substack.com/p/so-what-about-that-self-coup): «This clearly wasnât just politics as usual, and not because of the mob that took over the Capitol. This was a trial run for a self-coup that could very...
The age of Trump comes to an end but the a new age of disinformation has only just begun. Like the mysticism invading the Roman Empire in Russelâs view of the History of Western Philosophy, or Gibsonâs Decline and Fall of the Roman Empire, but al...
> educators must be explicit about the ethical frameworks and daily practices of truth-seeking institutions such as science, scholarship, and journalism. Social-media platforms enact values that are firmly grounded in beliefs about individualism, cap...
Radicalisation everywhere.
> What the American left needs now is allegiance, not allyship. It must abandon any imagined fantasies about the sanctity of governmental institutions that long ago gave up any claim to legitimacy. Stack the supreme court, end the filibuster, make Wa...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/CELL.pm view on Meta::CPAN
=head1 DESCRIPTION
This is the top-level module of App::CELL, the Configuration,
Error-handling, Localization, and Logging framework for applications (or
scripts) written in Perl.
For details, read the POD in the L<App::CELL> distro. For an introduction,
read L<App::CELL::Guide>.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Spiffy.pm view on Meta::CPAN
our @EXPORT = ();
our @EXPORT_BASE = qw(field const stub super);
our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
my $stack_frame = 0;
my $dump = 'yaml';
my $bases_map = {};
sub WWW; sub XXX; sub YYY; sub ZZZ;
inc/Spiffy.pm view on Meta::CPAN
unless grep /^XXX$/, @EXPORT_BASE;
}
spiffy_filter()
if ($args->{-selfless} or $args->{-Base}) and
not $filtered_files->{(caller($stack_frame))[1]}++;
my $caller_package = $args->{-package} || caller($stack_frame);
push @{"$caller_package\::ISA"}, $self_package
if $args->{-Base} or $args->{-base};
for my $class (@{all_my_bases($self_package)}) {
next unless $class->isa('Spiffy');
inc/Spiffy.pm view on Meta::CPAN
}
package Spiffy;
sub super {
my $method;
my $frame = 1;
while ($method = (caller($frame++))[3]) {
$method =~ s/.*::// and last;
}
my @args = DB::super_args($frame);
@_ = @_ ? ($args[0], @_) : @args;
my $class = ref $_[0] ? ref $_[0] : $_[0];
my $caller_class = caller;
my $seen = 0;
my @super_classes = reverse grep {
inc/Spiffy.pm view on Meta::CPAN
for my $base_class (@base_classes) {
next if $inheritor->isa($base_class);
croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
"See the documentation of Spiffy.pm for details\n "
unless $base_class->isa('Spiffy');
$stack_frame = 1; # tell import to use different caller
import($base_class, '-base');
$stack_frame = 0;
}
}
sub mixin {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/CLI/Plugin/StackTrace.pm view on Meta::CPAN
my $self = shift;
$SIG{__DIE__} = sub {
my $message = shift;
my @frames;
my $pkg = ref $self;
my $trace = Devel::StackTrace->new( ignore_package => \@IGNORE_PACKAGE );
my $stacktrace_message = <<STACKTRACE_MESSAGE;
$pkg
lib/App/CLI/Plugin/StackTrace.pm view on Meta::CPAN
STACKTRACE_MESSAGE
chomp $message;
LOOP_OF_FRAMES:
while ( my $frame = $trace->next_frame ) {
my $start_line = $frame->line - $CONTEXT_LINE;
my $end_line = $frame->line + $CONTEXT_LINE;
if ($start_line < 1) {
$start_line = 1;
}
my @lines;
open my $fh, "<", $frame->filename or die sprintf("can not open %s. %s", $frame->filename, $!);
flock $fh, LOCK_EX or die sprintf("can not flock %s. %s", $frame->filename, $!);
while ( my $line = <$fh> ) {
chomp $line;
my $current_line = $.;
if ($current_line < $start_line || $current_line > $end_line) {
next;
}
my $mark = ($current_line == $frame->line) ? "*" : " ";
push @lines, sprintf(" %s %05d: %s", $mark, $current_line, $line);
}
close $fh or die sprintf("can not close %s. %s", $frame->filename, $!);
my $package = $frame->package;
my $filename = $frame->filename;
my $line = $frame->line;
my $lines = join "\n", @lines;
$stacktrace_message .= <<STACKTRACE_MESSAGE;
$package at $filename line $line.
$lines
view all matches for this distribution
view release on metacpan or search on metacpan
inc/My/Module/Build.pm view on Meta::CPAN
L<Module::Build/create_makefile_pl> for how to do that). You won't get
signal if you use a "traditional" style Makefile.PL (but on the other
hand the rest of I<My::Module::Build> will not work either, so don't
do that).
This easter egg was a feature of an old GNU-make based build framework
that I created in a former life. So there.
=cut
sub do_create_makefile_pl {
view all matches for this distribution
view release on metacpan or search on metacpan
devel/makefile-from-grep.pl view on Meta::CPAN
sub requires {
my $self = shift;
if (@_) {
# store
my $trace = Devel::StackTrace->new;
my $frame = $trace->frame(2)
|| die "oops, no frame(2):\n$trace";
my %writeargs = $frame->args;
$self->{'extra_meta'} = $writeargs{'EXTRA_META'};
}
return $self->SUPER::requires (@_);
}
view all matches for this distribution
view release on metacpan or search on metacpan
#############################################################
## DOM
#############################################################
# DOM - Update the text of an iframe.
document.querySelector('iframe').contentDocument.querySelector('body').innerText += '\n' + text;
# DOM - Get the html content of an iframe.
document.querySelector('iframe').contentDocument.querySelector('body').innerHTML;
#
# Perl
$Selenium->switch_to_frame(
$Selenium->find('//iframe')
)
my $HTML = $Selenium->find('//body')->get_attribute('innerHTML');
$Selenium->switch_to_frame()
## E
gcc -shared -Wl,-soname,libctest.so.1 -o libctest.so.1.0 *.o
# Definition: (c programming,gcc)
# -fexceptions
# Enable exception handling. Generates extra code needed to propagate exceptions. For some targets,
# this implies GCC will generate frame unwind information for all functions, which can produce
# significant data size overhead, although it does not affect execution. If you do not specify this
# option, GCC will enable it by default for languages like C++ which normally require exception
# handling, and disable it for languages like C that do not normally require it. However, you may need
# to enable this option when compiling C code that needs to interoperate properly with exception
# handlers written in C++. You may also wish to disable this option if you are compiling older C++
# Create a simple CSS/HTML animation (blink an element)
.blink {
animation: blinker 2s linear infinite;
}
@keyframes blinker {
50% {
opacity: 0.5;
}
}
width: 150px; /* Diameter of ring */
margin-top: -77px; /* height/2 + border */
margin-left: -77px; /* width/2 + border */
animation: spin 3s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
cat > .perldb
@DB::typeahead = (
'{{v',
# 'c',
# 'Nonstop',
# 'frame=0',
);
parse_options('inhibit_exit=0');
# Go into a similar session as with python (debugger)
perl -de0
#############################################################
## Perl Modules - Term::Animation
#############################################################
# Using a terminal animation framework
perl -MTerm::Animation -MCurses -E 'use v5.32; my $anim = Term::Animation->new; halfdelay(2); $anim->new_entity(shape => "<=0=>", position => [3,7,10], callback_args => [1,0,0,0], wrap => 1); while(1){ $anim->animate; my $in = getch(); last if $in eq...
# Using a terminal animation framework (with colors)
perl -MTerm::Animation -MCurses -E 'use v5.32; my $anim = Term::Animation->new; halfdelay(1); $anim->color(1); $anim->new_entity(shape => "<=0=>", position => [3,7,10], callback_args => [1,0,0,0], wrap => 1, default_color => "yellow"); while(1){ $ani...
#############################################################
## Perl Modules - Term::ANSIColor
perl -MTk -le '$mw=MainWindow->new; for(1..3){my $b=$mw->Button(-text => "B$_", -width => 20)->pack; $b->configure(-command => sub{ ($n)=grep{$b[$_] eq $b}0..$#b; return unless $n > 0; @b[$n,$n-1]=@b[$n-1,$n]; $_->packForget for @b; $_->pack for @b})...
# Drag and swap buttons (PTk)
perl -MTk -le '$mw=MainWindow->new; my @b; sub id{my($n)=grep{$b[$_] eq $_[0]}0..$#b; $n} for(1..3){push @b, $mw->Button(-text => "B$_", -width => 20)->pack} $mw->bind("<ButtonRelease-1>",[sub{$m=id(shift); $n=id($mw->containing(@_)); @b[$m,$n]=@b[$n...
# Swap frames of buttons (PTk)
perl -MTk -le '$mw=MainWindow->new; my @b; sub id{my($n)=grep{$b[$_] eq $_[0]}0..$#b; $n} for my $fi(1..3){my $f=$mw->Frame->pack; push @b,$f; $f->Button(-text => "Btn - $fi - $_", -width => 20)->pack(-side => "left") for 1..3} $mw->bind("<ButtonRele...
# Notebook example 1. multiple pages/tabs (PTk)
perl -MTk -MTk::NoteBook -le '$nb=MainWindow->new->NoteBook->pack(-fill => "both", -expand => 1); @pgs = map { $nb->add("page$_", -label => "Page $_") } 0..5; $pgs[0]->Button(-text => "Button $_")->pack(-fill => "both") for 1..5; $pgs[1]->Label(-text...
chs Change permissions for an FBS
cs Configure an FBS
dts Detach timing source from an FBS
rms Remove an FBS
svs Save scheduler configuration
vc View minor cycle/major frame count
vr View a rdevfs file configuration
vs View scheduler configuration
rc Start real-time clock
rd Register a Coupled FBS device
sc Stop real-time clock
-t {in|ex} include or exclude interrupt time in pm monitor
-v parameter process initiation parameter
-x {av|mi|ma|al} performance monitor display option (default = average)
# RTCP Options (DES,rtcp he opt2)
-C cycles/frame number of minor cycles per major frame
-D duration clock tick duration (default = 10us)
-G gid effective group ID for FBS (default = current user)
-I permissions permissions for FBS in octal (default = 0600)
-L soft_limit soft overrun limit (default = 0)
-M progs/cycle maximum number of processes per minor cycle
view all matches for this distribution
view release on metacpan or search on metacpan
bin/checklist-formatter view on Meta::CPAN
print $tmpl{listhd};
foreach my $item (@$list) {
print $tmpl{itemhd};
printf "%s\\\\\n", $item->{text};
if (@{$item->{comment}}) {
print '\framebox{\begin{minipage}[t]{1\columnwidth-';
print $indentlevel;
print "\\leftmargin}%\n";
foreach (@{$item->{comment}}) {
printf "%s\n", latexify($_);
}
bin/checklist-formatter view on Meta::CPAN
footer:\end{document}
listhd:\begin{itemize}
listft:\end{itemize}
itemhd:\item %
commhd:\\
commhd:\framebox{\begin{minipage}[t]{1\columnwidth}%
commft:\end{minipage}}
Makefile:LISTNAME = %%FILENAME%%
Makefile:CLFORMAT = %%IMYSELF%%
Makefile:
Makefile:all:
view all matches for this distribution
view release on metacpan or search on metacpan
examples/reveal-default.mkd view on Meta::CPAN
Created by [Hakim El Hattab](http://hakim.sa) / [@hakimel](http://twitter.com/hakimel)
## Heads Up
reveal.js is a framework for easily creating beautiful presentations using HTML. You'll need a browser with
support for CSS 3D transforms to see it in its full glory.
!!!
Oh hey, these are some notes. They'll be hidden in your presentation,
but you can see them if you open the speaker notes window (hit 's' on your keyboard).
examples/reveal-default.mkd view on Meta::CPAN
</section>
<section>
<h2>Export to PDF</h2>
<p>Presentations can be <a href="https://github.com/hakimel/reveal.js#pdf-export">exported to PDF</a>, below is an example that's been uploaded to SlideShare.</p>
<iframe id="slideshare" src="http://www.slideshare.net/slideshow/embed_code/13872948" width="455" height="356" style="margin:0;overflow:hidden;border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe>
<script>
document.getElementById('slideshare').attributeName = 'allowfullscreen';
</script>
</section>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Chronicle/Plugin/YouTube.pm view on Meta::CPAN
my $vid = $2;
my $post = $3;
$line = $1;
$line .= <<EOF;
<iframe src="http://www.youtube.com/embed/$vid" width="560" height="315" frameborder="0" allowfullscreen></iframe>
EOF
$line .= $3;
$updated += 1;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Cinema.pm view on Meta::CPAN
1;
=head1 NAME
App::Cinema - a demo website for Catalyst framework
=head1 DESCRIPTION
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/ClusterSSH.pm view on Meta::CPAN
( $self->config->{internal_terminal_wm_decoration_left},
$self->config->{internal_terminal_wm_decoration_right},
$self->config->{internal_terminal_wm_decoration_top},
$self->config->{internal_terminal_wm_decoration_bottom}
)
= X11::Protocol::WM::get_net_frame_extents( $xdisplay,
$wid );
}
}
# in case the WM call failed we set some defaults
view all matches for this distribution
view release on metacpan or search on metacpan
build/build.PL view on Meta::CPAN
my $baseDir = '.';
if (scalar(@ARGV) > 0) {
$baseDir = $ARGV[0];
}
# build/cmddirs.PL is the command-line framework (option parsing, etc.)
open my $in, "<", "build/cmddirs.PL" or die $!;
# The fatpacked binary we are building
open my $out, ">", "$baseDir/cmddirs.tmp" or die $!;
print STDERR "Generating cmddirs from script/cmddirs.PL\n";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Codit.pm view on Meta::CPAN
=head1 DESCRIPTION
Codit is a versatile text editor / integrated development environment aimed at the Perl programming language.
It is written in Perl/Tk and based on the L<Tk::AppWindow> application framework.
It uses the L<Tk::CodeText> text widget for editing.
Codit has been under development for about one year now. It has gone quite some miles on our systems
and can be considered beta software as of version 0.10.
lib/App/Codit.pm view on Meta::CPAN
],
'*column',
-contentfontsize => ['spin', 'Size'],
'*end',
'*section' => 'Editor settings',
'*frame',
-contentautoindent => ['boolean', 'Auto indent'],
'*column',
-contentautobrackets => ['boolean', 'Auto brackets'],
'*column',
-contentshowspaces => ['boolean', 'Show spaces'],
'*end',
'*frame',
-contenttabs => ['text', 'Tab size', -regex => qr/^\d+\.?\d*[c|i|m|p]$/, -width => 4],
'*column',
-contentindent => ['text', 'Indent style', -regex => qr/^\d+|tab$/, -width => 4],
'*end',
-contentwrap => ['radio', 'Wrap', -values => [qw[none char word]]],
lib/App/Codit.pm view on Meta::CPAN
'-tool barvisible' => ['boolean', 'Tool bar'],
'-status barvisible' => ['boolean', 'Status bar'],
'*column',
'-navigator panelvisible' => ['boolean', 'Navigator panel'],
'*end',
'*frame',
'*section' => 'Geometry',
-savegeometry => ['boolean', 'Save on exit',],
'*end',
'*column',
'*section' => 'Unique instance',
view all matches for this distribution
view release on metacpan or search on metacpan
script/testcomp view on Meta::CPAN
=head1 SEE ALSO
L<App::CompleteUtils>
You can use this utility to test scripts using these frameworks:
L<Perinci::CmdLine>, L<Getopt::Long::Complete>, L<Getopt::Long::Subcommand>. But
actually all scripts which can complete itself by detecting C<COMP_LINE> and
C<COMP_POINT> can be tested.
=head1 AUTHOR
view all matches for this distribution
view release on metacpan or search on metacpan
#############################################################################
=head1 Distribution: App-Context
The App-Context distribution is the core set of modules implementing
the core of an enterprise application development framework.
http://www.officevision.com/pub/App-Context
* Version: 0.01
http://www.officevision.com/pub/p5ee/definitions.html
o a Software Architecture supporting many Platforms
http://www.officevision.com/pub/p5ee/platform.html
o a pluggable interface/implementation service architecture
o support developers who wish to use portions of the App-Context
framework without giving up their other styles of programming
(and support gradual migration)
=head2 Distribution Design
The distribution is designed in such a way that most of the functionality
is actually provided by modules outside the App namespace.
The goal of the App-Context framework
is to bring together many technologies to make a
unified whole. In essence, it is collecting and unifying the good work
of a multitude of excellent projects which have already been developed.
This results in a Pluggable Service design which allows just about
everything in App-Context to be customized. These Class Groups are described
exist on CPAN (i.e. L<date and time modules|App::datetime>),
a document is
written to explain the pros and cons of each.
Where uniquely excellent modules exist on CPAN, they are named outright
as the standard for the App-Context framework.
They are identified as dependencies
in the App-Context CPAN Bundle file.
=head2 Class Groups
* Param: void
* Return: $ident string
* Throws: App::Exception
* Since: 0.01
Gets version info about the framework.
=cut
sub info {
&App::sub_entry if ($App::trace);
view all matches for this distribution