File Coverage

blib/lib/RapidApp.pm
Criterion Covered Total %
statement 18 21 85.7
branch 0 2 0.0
condition 2 8 25.0
subroutine 8 9 88.8
pod 0 3 0.0
total 28 43 65.1


line stmt bran cond sub pod time code
1             package RapidApp;
2 4     4   1201115 use strict;
  4         8  
  4         104  
3 4     4   21 use warnings;
  4         8  
  4         102  
4              
5             # Min supported Perl is currently v5.10
6 4     4   67 use 5.010;
  4         12  
7              
8             our $VERSION = '1.3200';
9              
10             # ABSTRACT: Turnkey ajaxy webapps
11              
12 4     4   447 use Time::HiRes qw(gettimeofday);
  4         1168  
  4         29  
13 4     4   1745 use File::ShareDir qw(dist_dir);
  4         26711  
  4         731  
14              
15             # For statistics:
16             our $START = [gettimeofday];
17              
18             sub share_dir {
19 9   50 9 0 320 my $class = shift || __PACKAGE__;
20 9   33     91 return $ENV{RAPIDAPP_SHARE_DIR} || dist_dir($class);
21             }
22              
23             # global variable localized with '$c' automatically to provide
24             # simple/global API access within all code dispatched by RapidApp
25             # to be able to identify if there is a current request, and if so
26             # get the $c object without fuss.
27             our $ACTIVE_REQUEST_CONTEXT = undef;
28              
29 3586     3586 0 192985 sub active_request_context { $ACTIVE_REQUEST_CONTEXT }
30              
31             # Convenience wrapper around RapidApp::Builder
32             sub build_app {
33 0 0 0 0 0 0 shift if ($_[0] && $_[0] eq __PACKAGE__);
34 0         0 require RapidApp::Builder;
35 0         0 RapidApp::Builder->new( @_ )
36             }
37              
38              
39             # Private - will be removed in the future:
40             our $ROOT_MODULE_INSTANCE = undef;
41 11     11   51 sub _rootModule { $ROOT_MODULE_INSTANCE }
42              
43             1;
44              
45              
46             __END__
47              
48             =pod
49              
50             =head1 NAME
51              
52             RapidApp - Turnkey ajaxy webapps
53              
54             =head1 SYNOPSIS
55              
56             See L<www.rapidapp.info|http://www.rapidapp.info> and L<RapidApp::Manual> for more information.
57              
58             # Create new app named "MyApp" using all the helpers:
59             rapidapp.pl --helpers RapidDbic,Templates,TabGui,AuthCore,NavCore MyApp \
60             -- --dsn dbi:mysql:database=somedb,root,''
61              
62             # Start the test server (default login admin/pass):
63             MyApp/script/myapp_server.pl
64              
65              
66             # OR, create a new app starting from an SQLite DDL file:
67             rapidapp.pl --helpers RapidDbic MyApp -- --from-sqlite-ddl my-sqlt-schema.sql
68              
69              
70             # OR, start up an instant database CRUD app/utility at http://localhost:3500/
71             rdbic.pl dbi:mysql:database=somedb,root,''
72              
73             =head1 DESCRIPTION
74              
75             RapidApp is an extension to L<Catalyst> - the Perl MVC framework. It provides a feature-rich
76             extended development stack, as well as easy access to common out-of-the-box application paradigms,
77             such as powerful CRUD-based front-ends for L<DBIx::Class> models, user access and authorization,
78             RESTful URL navigation schemes, pure Ajax interfaces with no browser page loads, templating engine
79             with front-side CMS features, declarative configuration layers, and more...
80              
81             RapidApp is useful not only for new application development, but also for adding admin interfaces
82             and snap-in components to existing applications, as well as for rapid prototyping.
83              
84             Although RapidApp is based on Catalyst, fully encapsulated L<Plack> interfaces are also provided,
85             such as L<Plack::App::RapidApp::rDbic> and L<Rapi::Fs>, which enables RapidApp to be integrated into
86             any application/framework which utilizes PSGI/Plack.
87              
88             RapidApp started as an internal project in 2009 and has been under continuous development
89             ever since. It has been used very successfully for multiple medium to large-scale client
90             applications (backends with hundreds of tables and tens of millions of rows) as well as
91             many quick and easy apps and interfaces for smaller jobs.
92              
93             We started open-sourcing RapidApp in 2013, and this work is ongoing...
94              
95             RapidApp is built on top of a number of powerful open-source tools and technologies including:
96              
97             =over
98              
99             =item *
100              
101             Perl
102              
103             =item *
104              
105             L<Catalyst>
106              
107             =item *
108              
109             L<DBIx::Class>
110              
111             =item *
112              
113             L<ExtJS|http://www.sencha.com>
114              
115             =item *
116              
117             L<Template::Toolkit>
118              
119             =back
120              
121             Documentation is still a work-in-progress. Much of it has been done, but much of it still
122             remains to be done: L<RapidApp::Manual>.
123              
124             Also, be sure to check out the RapidApp website for more information, including several
125             comprehensive video demos and tutorials:
126              
127             =over
128              
129             =item *
130              
131             L<www.rapidapp.info|http://www.rapidapp.info>
132              
133             =back
134              
135             =head1 SUPPORT
136            
137             IRC:
138            
139             Join #rapidapp on irc.perl.org.
140              
141             =head1 AUTHOR
142              
143             Henry Van Styn <vanstyn@cpan.org>
144              
145             =head1 COPYRIGHT AND LICENSE
146              
147             This software is copyright (c) 2013 by IntelliTree Solutions llc.
148              
149             This is free software; you can redistribute it and/or modify it under
150             the same terms as the Perl 5 programming language system itself.
151              
152             =cut
153              
154              
155