- added EXPERIMENTAL DBIx::Custom::Model table_alia...
...s attribute
| ... | ... |
@@ -1,3 +1,13 @@ |
| 1 |
+0.1661 |
|
| 2 |
+ - added EXPERIMENTAL DBIx::Custom::Model table_alias attribute |
|
| 3 |
+ - added EXPERIMENTAL DBIx::Custom::Model mycolumn() |
|
| 4 |
+ - added EXPERIMENTAL DBIx::Custom::Model column() |
|
| 5 |
+ - fixed autoloading bug |
|
| 6 |
+ - added EXPERIMETNAL select() prepend table option |
|
| 7 |
+ - added EXPERIMETNAL select() column table option |
|
| 8 |
+ - added EXPERIMETNAL select() column all option |
|
| 9 |
+ - removed EXPERIMETNAL select() all_column option |
|
| 10 |
+ - removed EXPERIMENTAL view() |
|
| 1 | 11 |
0.1660 |
| 2 | 12 |
- added EXPERIMENTAL DBIx::Custom::Model view() |
| 3 | 13 |
- added EXPERIMENTAL view() |
| ... | ... |
@@ -0,0 +1,909 @@ |
| 1 |
+# This Makefile is for the DBIx::Custom extension to perl. |
|
| 2 |
+# |
|
| 3 |
+# It was generated automatically by MakeMaker version |
|
| 4 |
+# 6.56 (Revision: 65600) from the contents of |
|
| 5 |
+# Makefile.PL. Don't edit this file, edit Makefile.PL instead. |
|
| 6 |
+# |
|
| 7 |
+# ANY CHANGES MADE HERE WILL BE LOST! |
|
| 8 |
+# |
|
| 9 |
+# MakeMaker ARGV: () |
|
| 10 |
+# |
|
| 11 |
+ |
|
| 12 |
+# MakeMaker Parameters: |
|
| 13 |
+ |
|
| 14 |
+# ABSTRACT_FROM => q[lib/DBIx/Custom.pm] |
|
| 15 |
+# AUTHOR => q[Yuki Kimoto <kimoto.yuki@gmail.com>] |
|
| 16 |
+# BUILD_REQUIRES => { }
|
|
| 17 |
+# LICENSE => q[perl] |
|
| 18 |
+# NAME => q[DBIx::Custom] |
|
| 19 |
+# PL_FILES => { }
|
|
| 20 |
+# PREREQ_PM => { Test::More=>q[0], Object::Simple=>q[3.0616], DBD::SQLite=>q[1.25], DBI=>q[1.605] }
|
|
| 21 |
+# VERSION_FROM => q[lib/DBIx/Custom.pm] |
|
| 22 |
+# clean => { FILES=>q[DBIx-Custom-*] }
|
|
| 23 |
+# dist => { COMPRESS=>q[gzip -9f], SUFFIX=>q[gz] }
|
|
| 24 |
+ |
|
| 25 |
+# --- MakeMaker post_initialize section: |
|
| 26 |
+ |
|
| 27 |
+ |
|
| 28 |
+# --- MakeMaker const_config section: |
|
| 29 |
+ |
|
| 30 |
+# These definitions are from config.sh (via /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Config.pm). |
|
| 31 |
+# They may have been overridden via Makefile.PL or on the command line. |
|
| 32 |
+AR = ar |
|
| 33 |
+CC = gcc |
|
| 34 |
+CCCDLFLAGS = -fPIC |
|
| 35 |
+CCDLFLAGS = -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE |
|
| 36 |
+DLEXT = so |
|
| 37 |
+DLSRC = dl_dlopen.xs |
|
| 38 |
+EXE_EXT = |
|
| 39 |
+FULL_AR = /usr/bin/ar |
|
| 40 |
+LD = gcc |
|
| 41 |
+LDDLFLAGS = -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib |
|
| 42 |
+LDFLAGS = -L/usr/local/lib |
|
| 43 |
+LIBC = /lib/libc-2.5.so |
|
| 44 |
+LIB_EXT = .a |
|
| 45 |
+OBJ_EXT = .o |
|
| 46 |
+OSNAME = linux |
|
| 47 |
+OSVERS = 2.6.18-53.el5 |
|
| 48 |
+RANLIB = : |
|
| 49 |
+SITELIBEXP = /usr/lib/perl5/site_perl/5.8.8 |
|
| 50 |
+SITEARCHEXP = /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi |
|
| 51 |
+SO = so |
|
| 52 |
+VENDORARCHEXP = /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi |
|
| 53 |
+VENDORLIBEXP = /usr/lib/perl5/vendor_perl/5.8.8 |
|
| 54 |
+ |
|
| 55 |
+ |
|
| 56 |
+# --- MakeMaker constants section: |
|
| 57 |
+AR_STATIC_ARGS = cr |
|
| 58 |
+DIRFILESEP = / |
|
| 59 |
+DFSEP = $(DIRFILESEP) |
|
| 60 |
+NAME = DBIx::Custom |
|
| 61 |
+NAME_SYM = DBIx_Custom |
|
| 62 |
+VERSION = 0.1661 |
|
| 63 |
+VERSION_MACRO = VERSION |
|
| 64 |
+VERSION_SYM = 0_1661 |
|
| 65 |
+DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" |
|
| 66 |
+XS_VERSION = 0.1661 |
|
| 67 |
+XS_VERSION_MACRO = XS_VERSION |
|
| 68 |
+XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" |
|
| 69 |
+INST_ARCHLIB = blib/arch |
|
| 70 |
+INST_SCRIPT = blib/script |
|
| 71 |
+INST_BIN = blib/bin |
|
| 72 |
+INST_LIB = blib/lib |
|
| 73 |
+INST_MAN1DIR = blib/man1 |
|
| 74 |
+INST_MAN3DIR = blib/man3 |
|
| 75 |
+MAN1EXT = 1 |
|
| 76 |
+MAN3EXT = 3pm |
|
| 77 |
+INSTALLDIRS = site |
|
| 78 |
+DESTDIR = |
|
| 79 |
+PREFIX = $(SITEPREFIX) |
|
| 80 |
+PERLPREFIX = /usr |
|
| 81 |
+SITEPREFIX = /usr |
|
| 82 |
+VENDORPREFIX = /usr |
|
| 83 |
+INSTALLPRIVLIB = /usr/lib/perl5/5.8.8 |
|
| 84 |
+DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) |
|
| 85 |
+INSTALLSITELIB = /usr/lib/perl5/site_perl/5.8.8 |
|
| 86 |
+DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) |
|
| 87 |
+INSTALLVENDORLIB = /usr/lib/perl5/vendor_perl/5.8.8 |
|
| 88 |
+DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) |
|
| 89 |
+INSTALLARCHLIB = /usr/lib/perl5/5.8.8/i386-linux-thread-multi |
|
| 90 |
+DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) |
|
| 91 |
+INSTALLSITEARCH = /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi |
|
| 92 |
+DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) |
|
| 93 |
+INSTALLVENDORARCH = /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi |
|
| 94 |
+DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) |
|
| 95 |
+INSTALLBIN = /usr/bin |
|
| 96 |
+DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) |
|
| 97 |
+INSTALLSITEBIN = /usr/bin |
|
| 98 |
+DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) |
|
| 99 |
+INSTALLVENDORBIN = /usr/bin |
|
| 100 |
+DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) |
|
| 101 |
+INSTALLSCRIPT = /usr/bin |
|
| 102 |
+DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) |
|
| 103 |
+INSTALLSITESCRIPT = /usr/bin |
|
| 104 |
+DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) |
|
| 105 |
+INSTALLVENDORSCRIPT = /usr/bin |
|
| 106 |
+DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) |
|
| 107 |
+INSTALLMAN1DIR = /usr/share/man/man1 |
|
| 108 |
+DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) |
|
| 109 |
+INSTALLSITEMAN1DIR = /usr/share/man/man1 |
|
| 110 |
+DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) |
|
| 111 |
+INSTALLVENDORMAN1DIR = /usr/share/man/man1 |
|
| 112 |
+DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) |
|
| 113 |
+INSTALLMAN3DIR = /usr/share/man/man3 |
|
| 114 |
+DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) |
|
| 115 |
+INSTALLSITEMAN3DIR = /usr/share/man/man3 |
|
| 116 |
+DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) |
|
| 117 |
+INSTALLVENDORMAN3DIR = /usr/share/man/man3 |
|
| 118 |
+DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) |
|
| 119 |
+PERL_LIB = /usr/lib/perl5/5.8.8 |
|
| 120 |
+PERL_ARCHLIB = /usr/lib/perl5/5.8.8/i386-linux-thread-multi |
|
| 121 |
+LIBPERL_A = libperl.a |
|
| 122 |
+FIRST_MAKEFILE = Makefile |
|
| 123 |
+MAKEFILE_OLD = Makefile.old |
|
| 124 |
+MAKE_APERL_FILE = Makefile.aperl |
|
| 125 |
+PERLMAINCC = $(CC) |
|
| 126 |
+PERL_INC = /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE |
|
| 127 |
+PERL = /usr/bin/perl |
|
| 128 |
+FULLPERL = /usr/bin/perl |
|
| 129 |
+ABSPERL = $(PERL) |
|
| 130 |
+PERLRUN = $(PERL) |
|
| 131 |
+FULLPERLRUN = $(FULLPERL) |
|
| 132 |
+ABSPERLRUN = $(ABSPERL) |
|
| 133 |
+PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 134 |
+FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 135 |
+ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 136 |
+PERL_CORE = 0 |
|
| 137 |
+PERM_DIR = 755 |
|
| 138 |
+PERM_RW = 644 |
|
| 139 |
+PERM_RWX = 755 |
|
| 140 |
+ |
|
| 141 |
+MAKEMAKER = /home/kimoto/perl5/lib/perl5/ExtUtils/MakeMaker.pm |
|
| 142 |
+MM_VERSION = 6.56 |
|
| 143 |
+MM_REVISION = 65600 |
|
| 144 |
+ |
|
| 145 |
+# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). |
|
| 146 |
+# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) |
|
| 147 |
+# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) |
|
| 148 |
+# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. |
|
| 149 |
+MAKE = make |
|
| 150 |
+FULLEXT = DBIx/Custom |
|
| 151 |
+BASEEXT = Custom |
|
| 152 |
+PARENT_NAME = DBIx |
|
| 153 |
+DLBASE = $(BASEEXT) |
|
| 154 |
+VERSION_FROM = lib/DBIx/Custom.pm |
|
| 155 |
+OBJECT = |
|
| 156 |
+LDFROM = $(OBJECT) |
|
| 157 |
+LINKTYPE = dynamic |
|
| 158 |
+BOOTDEP = |
|
| 159 |
+ |
|
| 160 |
+# Handy lists of source code files: |
|
| 161 |
+XS_FILES = |
|
| 162 |
+C_FILES = |
|
| 163 |
+O_FILES = |
|
| 164 |
+H_FILES = |
|
| 165 |
+MAN1PODS = |
|
| 166 |
+MAN3PODS = lib/DBIx/Custom.pm \ |
|
| 167 |
+ lib/DBIx/Custom/Guide.pod \ |
|
| 168 |
+ lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 169 |
+ lib/DBIx/Custom/Model.pm \ |
|
| 170 |
+ lib/DBIx/Custom/MySQL.pm \ |
|
| 171 |
+ lib/DBIx/Custom/Query.pm \ |
|
| 172 |
+ lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 173 |
+ lib/DBIx/Custom/Result.pm \ |
|
| 174 |
+ lib/DBIx/Custom/SQLite.pm \ |
|
| 175 |
+ lib/DBIx/Custom/Tag.pm \ |
|
| 176 |
+ lib/DBIx/Custom/Util.pm \ |
|
| 177 |
+ lib/DBIx/Custom/Where.pm |
|
| 178 |
+ |
|
| 179 |
+# Where is the Config information that we are using/depend on |
|
| 180 |
+CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h |
|
| 181 |
+ |
|
| 182 |
+# Where to build things |
|
| 183 |
+INST_LIBDIR = $(INST_LIB)/DBIx |
|
| 184 |
+INST_ARCHLIBDIR = $(INST_ARCHLIB)/DBIx |
|
| 185 |
+ |
|
| 186 |
+INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) |
|
| 187 |
+INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) |
|
| 188 |
+ |
|
| 189 |
+INST_STATIC = |
|
| 190 |
+INST_DYNAMIC = |
|
| 191 |
+INST_BOOT = |
|
| 192 |
+ |
|
| 193 |
+# Extra linker info |
|
| 194 |
+EXPORT_LIST = |
|
| 195 |
+PERL_ARCHIVE = |
|
| 196 |
+PERL_ARCHIVE_AFTER = |
|
| 197 |
+ |
|
| 198 |
+ |
|
| 199 |
+TO_INST_PM = lib/DBIx/Custom.pm \ |
|
| 200 |
+ lib/DBIx/Custom/Guide.pod \ |
|
| 201 |
+ lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 202 |
+ lib/DBIx/Custom/Model.pm \ |
|
| 203 |
+ lib/DBIx/Custom/MySQL.pm \ |
|
| 204 |
+ lib/DBIx/Custom/Query.pm \ |
|
| 205 |
+ lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 206 |
+ lib/DBIx/Custom/Result.pm \ |
|
| 207 |
+ lib/DBIx/Custom/SQLite.pm \ |
|
| 208 |
+ lib/DBIx/Custom/Tag.pm \ |
|
| 209 |
+ lib/DBIx/Custom/Util.pm \ |
|
| 210 |
+ lib/DBIx/Custom/Where.pm |
|
| 211 |
+ |
|
| 212 |
+PM_TO_BLIB = lib/DBIx/Custom/Tag.pm \ |
|
| 213 |
+ blib/lib/DBIx/Custom/Tag.pm \ |
|
| 214 |
+ lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 215 |
+ blib/lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 216 |
+ lib/DBIx/Custom/Util.pm \ |
|
| 217 |
+ blib/lib/DBIx/Custom/Util.pm \ |
|
| 218 |
+ lib/DBIx/Custom/Guide.pod \ |
|
| 219 |
+ blib/lib/DBIx/Custom/Guide.pod \ |
|
| 220 |
+ lib/DBIx/Custom/Where.pm \ |
|
| 221 |
+ blib/lib/DBIx/Custom/Where.pm \ |
|
| 222 |
+ lib/DBIx/Custom/Model.pm \ |
|
| 223 |
+ blib/lib/DBIx/Custom/Model.pm \ |
|
| 224 |
+ lib/DBIx/Custom/MySQL.pm \ |
|
| 225 |
+ blib/lib/DBIx/Custom/MySQL.pm \ |
|
| 226 |
+ lib/DBIx/Custom.pm \ |
|
| 227 |
+ blib/lib/DBIx/Custom.pm \ |
|
| 228 |
+ lib/DBIx/Custom/Query.pm \ |
|
| 229 |
+ blib/lib/DBIx/Custom/Query.pm \ |
|
| 230 |
+ lib/DBIx/Custom/SQLite.pm \ |
|
| 231 |
+ blib/lib/DBIx/Custom/SQLite.pm \ |
|
| 232 |
+ lib/DBIx/Custom/Result.pm \ |
|
| 233 |
+ blib/lib/DBIx/Custom/Result.pm \ |
|
| 234 |
+ lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 235 |
+ blib/lib/DBIx/Custom/QueryBuilder.pm |
|
| 236 |
+ |
|
| 237 |
+ |
|
| 238 |
+# --- MakeMaker platform_constants section: |
|
| 239 |
+MM_Unix_VERSION = 6.56 |
|
| 240 |
+PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc |
|
| 241 |
+ |
|
| 242 |
+ |
|
| 243 |
+# --- MakeMaker tool_autosplit section: |
|
| 244 |
+# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto |
|
| 245 |
+AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' -- |
|
| 246 |
+ |
|
| 247 |
+ |
|
| 248 |
+ |
|
| 249 |
+# --- MakeMaker tool_xsubpp section: |
|
| 250 |
+ |
|
| 251 |
+ |
|
| 252 |
+# --- MakeMaker tools_other section: |
|
| 253 |
+SHELL = /bin/sh |
|
| 254 |
+CHMOD = chmod |
|
| 255 |
+CP = cp |
|
| 256 |
+MV = mv |
|
| 257 |
+NOOP = $(TRUE) |
|
| 258 |
+NOECHO = @ |
|
| 259 |
+RM_F = rm -f |
|
| 260 |
+RM_RF = rm -rf |
|
| 261 |
+TEST_F = test -f |
|
| 262 |
+TOUCH = touch |
|
| 263 |
+UMASK_NULL = umask 0 |
|
| 264 |
+DEV_NULL = > /dev/null 2>&1 |
|
| 265 |
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- |
|
| 266 |
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- |
|
| 267 |
+FALSE = false |
|
| 268 |
+TRUE = true |
|
| 269 |
+ECHO = echo |
|
| 270 |
+ECHO_N = echo -n |
|
| 271 |
+UNINST = 0 |
|
| 272 |
+VERBINST = 0 |
|
| 273 |
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
|
|
| 274 |
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- |
|
| 275 |
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- |
|
| 276 |
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- |
|
| 277 |
+MACROSTART = |
|
| 278 |
+MACROEND = |
|
| 279 |
+USEMAKEFILE = -f |
|
| 280 |
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- |
|
| 281 |
+ |
|
| 282 |
+ |
|
| 283 |
+# --- MakeMaker makemakerdflt section: |
|
| 284 |
+makemakerdflt : all |
|
| 285 |
+ $(NOECHO) $(NOOP) |
|
| 286 |
+ |
|
| 287 |
+ |
|
| 288 |
+# --- MakeMaker dist section: |
|
| 289 |
+TAR = tar |
|
| 290 |
+TARFLAGS = cvf |
|
| 291 |
+ZIP = zip |
|
| 292 |
+ZIPFLAGS = -r |
|
| 293 |
+COMPRESS = gzip -9f |
|
| 294 |
+SUFFIX = gz |
|
| 295 |
+SHAR = shar |
|
| 296 |
+PREOP = $(NOECHO) $(NOOP) |
|
| 297 |
+POSTOP = $(NOECHO) $(NOOP) |
|
| 298 |
+TO_UNIX = $(NOECHO) $(NOOP) |
|
| 299 |
+CI = ci -u |
|
| 300 |
+RCS_LABEL = rcs -Nv$(VERSION_SYM): -q |
|
| 301 |
+DIST_CP = best |
|
| 302 |
+DIST_DEFAULT = tardist |
|
| 303 |
+DISTNAME = DBIx-Custom |
|
| 304 |
+DISTVNAME = DBIx-Custom-0.1661 |
|
| 305 |
+ |
|
| 306 |
+ |
|
| 307 |
+# --- MakeMaker macro section: |
|
| 308 |
+ |
|
| 309 |
+ |
|
| 310 |
+# --- MakeMaker depend section: |
|
| 311 |
+ |
|
| 312 |
+ |
|
| 313 |
+# --- MakeMaker cflags section: |
|
| 314 |
+ |
|
| 315 |
+ |
|
| 316 |
+# --- MakeMaker const_loadlibs section: |
|
| 317 |
+ |
|
| 318 |
+ |
|
| 319 |
+# --- MakeMaker const_cccmd section: |
|
| 320 |
+ |
|
| 321 |
+ |
|
| 322 |
+# --- MakeMaker post_constants section: |
|
| 323 |
+ |
|
| 324 |
+ |
|
| 325 |
+# --- MakeMaker pasthru section: |
|
| 326 |
+ |
|
| 327 |
+PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ |
|
| 328 |
+ LINKTYPE="$(LINKTYPE)"\ |
|
| 329 |
+ PREFIX="$(PREFIX)" |
|
| 330 |
+ |
|
| 331 |
+ |
|
| 332 |
+# --- MakeMaker special_targets section: |
|
| 333 |
+.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) |
|
| 334 |
+ |
|
| 335 |
+.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir |
|
| 336 |
+ |
|
| 337 |
+ |
|
| 338 |
+ |
|
| 339 |
+# --- MakeMaker c_o section: |
|
| 340 |
+ |
|
| 341 |
+ |
|
| 342 |
+# --- MakeMaker xs_c section: |
|
| 343 |
+ |
|
| 344 |
+ |
|
| 345 |
+# --- MakeMaker xs_o section: |
|
| 346 |
+ |
|
| 347 |
+ |
|
| 348 |
+# --- MakeMaker top_targets section: |
|
| 349 |
+all :: pure_all manifypods |
|
| 350 |
+ $(NOECHO) $(NOOP) |
|
| 351 |
+ |
|
| 352 |
+ |
|
| 353 |
+pure_all :: config pm_to_blib subdirs linkext |
|
| 354 |
+ $(NOECHO) $(NOOP) |
|
| 355 |
+ |
|
| 356 |
+subdirs :: $(MYEXTLIB) |
|
| 357 |
+ $(NOECHO) $(NOOP) |
|
| 358 |
+ |
|
| 359 |
+config :: $(FIRST_MAKEFILE) blibdirs |
|
| 360 |
+ $(NOECHO) $(NOOP) |
|
| 361 |
+ |
|
| 362 |
+help : |
|
| 363 |
+ perldoc ExtUtils::MakeMaker |
|
| 364 |
+ |
|
| 365 |
+ |
|
| 366 |
+# --- MakeMaker blibdirs section: |
|
| 367 |
+blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists |
|
| 368 |
+ $(NOECHO) $(NOOP) |
|
| 369 |
+ |
|
| 370 |
+# Backwards compat with 6.18 through 6.25 |
|
| 371 |
+blibdirs.ts : blibdirs |
|
| 372 |
+ $(NOECHO) $(NOOP) |
|
| 373 |
+ |
|
| 374 |
+$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL |
|
| 375 |
+ $(NOECHO) $(MKPATH) $(INST_LIBDIR) |
|
| 376 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) |
|
| 377 |
+ $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists |
|
| 378 |
+ |
|
| 379 |
+$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL |
|
| 380 |
+ $(NOECHO) $(MKPATH) $(INST_ARCHLIB) |
|
| 381 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) |
|
| 382 |
+ $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists |
|
| 383 |
+ |
|
| 384 |
+$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL |
|
| 385 |
+ $(NOECHO) $(MKPATH) $(INST_AUTODIR) |
|
| 386 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) |
|
| 387 |
+ $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists |
|
| 388 |
+ |
|
| 389 |
+$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL |
|
| 390 |
+ $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) |
|
| 391 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) |
|
| 392 |
+ $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists |
|
| 393 |
+ |
|
| 394 |
+$(INST_BIN)$(DFSEP).exists :: Makefile.PL |
|
| 395 |
+ $(NOECHO) $(MKPATH) $(INST_BIN) |
|
| 396 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) |
|
| 397 |
+ $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists |
|
| 398 |
+ |
|
| 399 |
+$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL |
|
| 400 |
+ $(NOECHO) $(MKPATH) $(INST_SCRIPT) |
|
| 401 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) |
|
| 402 |
+ $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists |
|
| 403 |
+ |
|
| 404 |
+$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL |
|
| 405 |
+ $(NOECHO) $(MKPATH) $(INST_MAN1DIR) |
|
| 406 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) |
|
| 407 |
+ $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists |
|
| 408 |
+ |
|
| 409 |
+$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL |
|
| 410 |
+ $(NOECHO) $(MKPATH) $(INST_MAN3DIR) |
|
| 411 |
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) |
|
| 412 |
+ $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists |
|
| 413 |
+ |
|
| 414 |
+ |
|
| 415 |
+ |
|
| 416 |
+# --- MakeMaker linkext section: |
|
| 417 |
+ |
|
| 418 |
+linkext :: $(LINKTYPE) |
|
| 419 |
+ $(NOECHO) $(NOOP) |
|
| 420 |
+ |
|
| 421 |
+ |
|
| 422 |
+# --- MakeMaker dlsyms section: |
|
| 423 |
+ |
|
| 424 |
+ |
|
| 425 |
+# --- MakeMaker dynamic section: |
|
| 426 |
+ |
|
| 427 |
+dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT) |
|
| 428 |
+ $(NOECHO) $(NOOP) |
|
| 429 |
+ |
|
| 430 |
+ |
|
| 431 |
+# --- MakeMaker dynamic_bs section: |
|
| 432 |
+ |
|
| 433 |
+BOOTSTRAP = |
|
| 434 |
+ |
|
| 435 |
+ |
|
| 436 |
+# --- MakeMaker dynamic_lib section: |
|
| 437 |
+ |
|
| 438 |
+ |
|
| 439 |
+# --- MakeMaker static section: |
|
| 440 |
+ |
|
| 441 |
+## $(INST_PM) has been moved to the all: target. |
|
| 442 |
+## It remains here for awhile to allow for old usage: "make static" |
|
| 443 |
+static :: $(FIRST_MAKEFILE) $(INST_STATIC) |
|
| 444 |
+ $(NOECHO) $(NOOP) |
|
| 445 |
+ |
|
| 446 |
+ |
|
| 447 |
+# --- MakeMaker static_lib section: |
|
| 448 |
+ |
|
| 449 |
+ |
|
| 450 |
+# --- MakeMaker manifypods section: |
|
| 451 |
+ |
|
| 452 |
+POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" |
|
| 453 |
+POD2MAN = $(POD2MAN_EXE) |
|
| 454 |
+ |
|
| 455 |
+ |
|
| 456 |
+manifypods : pure_all \ |
|
| 457 |
+ lib/DBIx/Custom/Tag.pm \ |
|
| 458 |
+ lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 459 |
+ lib/DBIx/Custom/Util.pm \ |
|
| 460 |
+ lib/DBIx/Custom/Guide.pod \ |
|
| 461 |
+ lib/DBIx/Custom/Where.pm \ |
|
| 462 |
+ lib/DBIx/Custom/Model.pm \ |
|
| 463 |
+ lib/DBIx/Custom/MySQL.pm \ |
|
| 464 |
+ lib/DBIx/Custom.pm \ |
|
| 465 |
+ lib/DBIx/Custom/Query.pm \ |
|
| 466 |
+ lib/DBIx/Custom/SQLite.pm \ |
|
| 467 |
+ lib/DBIx/Custom/Result.pm \ |
|
| 468 |
+ lib/DBIx/Custom/QueryBuilder.pm |
|
| 469 |
+ $(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) \ |
|
| 470 |
+ lib/DBIx/Custom/Tag.pm $(INST_MAN3DIR)/DBIx::Custom::Tag.$(MAN3EXT) \ |
|
| 471 |
+ lib/DBIx/Custom/Guide/Ja.pod $(INST_MAN3DIR)/DBIx::Custom::Guide::Ja.$(MAN3EXT) \ |
|
| 472 |
+ lib/DBIx/Custom/Util.pm $(INST_MAN3DIR)/DBIx::Custom::Util.$(MAN3EXT) \ |
|
| 473 |
+ lib/DBIx/Custom/Guide.pod $(INST_MAN3DIR)/DBIx::Custom::Guide.$(MAN3EXT) \ |
|
| 474 |
+ lib/DBIx/Custom/Where.pm $(INST_MAN3DIR)/DBIx::Custom::Where.$(MAN3EXT) \ |
|
| 475 |
+ lib/DBIx/Custom/Model.pm $(INST_MAN3DIR)/DBIx::Custom::Model.$(MAN3EXT) \ |
|
| 476 |
+ lib/DBIx/Custom/MySQL.pm $(INST_MAN3DIR)/DBIx::Custom::MySQL.$(MAN3EXT) \ |
|
| 477 |
+ lib/DBIx/Custom.pm $(INST_MAN3DIR)/DBIx::Custom.$(MAN3EXT) \ |
|
| 478 |
+ lib/DBIx/Custom/Query.pm $(INST_MAN3DIR)/DBIx::Custom::Query.$(MAN3EXT) \ |
|
| 479 |
+ lib/DBIx/Custom/SQLite.pm $(INST_MAN3DIR)/DBIx::Custom::SQLite.$(MAN3EXT) \ |
|
| 480 |
+ lib/DBIx/Custom/Result.pm $(INST_MAN3DIR)/DBIx::Custom::Result.$(MAN3EXT) \ |
|
| 481 |
+ lib/DBIx/Custom/QueryBuilder.pm $(INST_MAN3DIR)/DBIx::Custom::QueryBuilder.$(MAN3EXT) |
|
| 482 |
+ |
|
| 483 |
+ |
|
| 484 |
+ |
|
| 485 |
+ |
|
| 486 |
+# --- MakeMaker processPL section: |
|
| 487 |
+ |
|
| 488 |
+ |
|
| 489 |
+# --- MakeMaker installbin section: |
|
| 490 |
+ |
|
| 491 |
+ |
|
| 492 |
+# --- MakeMaker subdirs section: |
|
| 493 |
+ |
|
| 494 |
+# The default clean, realclean and test targets in this Makefile |
|
| 495 |
+# have automatically been given entries for each subdir. |
|
| 496 |
+ |
|
| 497 |
+ |
|
| 498 |
+subdirs :: |
|
| 499 |
+ $(NOECHO) cd DBIx-Custom-0.1660 && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) all $(PASTHRU) |
|
| 500 |
+ |
|
| 501 |
+ |
|
| 502 |
+# --- MakeMaker clean_subdirs section: |
|
| 503 |
+clean_subdirs : |
|
| 504 |
+ $(ABSPERLRUN) -e 'chdir '\''DBIx-Custom-0.1660'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' -- |
|
| 505 |
+ |
|
| 506 |
+ |
|
| 507 |
+# --- MakeMaker clean section: |
|
| 508 |
+ |
|
| 509 |
+# Delete temporary files but do not touch installed files. We don't delete |
|
| 510 |
+# the Makefile here so a later make realclean still has a makefile to use. |
|
| 511 |
+ |
|
| 512 |
+clean :: clean_subdirs |
|
| 513 |
+ - $(RM_F) \ |
|
| 514 |
+ *$(LIB_EXT) core \ |
|
| 515 |
+ core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \ |
|
| 516 |
+ core.[0-9][0-9] $(BASEEXT).bso \ |
|
| 517 |
+ pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \ |
|
| 518 |
+ $(BASEEXT).x $(BOOTSTRAP) \ |
|
| 519 |
+ perl$(EXE_EXT) tmon.out \ |
|
| 520 |
+ *$(OBJ_EXT) pm_to_blib \ |
|
| 521 |
+ $(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \ |
|
| 522 |
+ core.[0-9][0-9][0-9][0-9][0-9] *perl.core \ |
|
| 523 |
+ core.*perl.*.? $(MAKE_APERL_FILE) \ |
|
| 524 |
+ $(BASEEXT).def perl \ |
|
| 525 |
+ core.[0-9][0-9][0-9] mon.out \ |
|
| 526 |
+ lib$(BASEEXT).def perl.exe \ |
|
| 527 |
+ perlmain.c so_locations \ |
|
| 528 |
+ $(BASEEXT).exp |
|
| 529 |
+ - $(RM_RF) \ |
|
| 530 |
+ DBIx-Custom-* blib |
|
| 531 |
+ - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) |
|
| 532 |
+ |
|
| 533 |
+ |
|
| 534 |
+# --- MakeMaker realclean_subdirs section: |
|
| 535 |
+realclean_subdirs : |
|
| 536 |
+ - $(ABSPERLRUN) -e 'chdir '\''DBIx-Custom-0.1660'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' -- |
|
| 537 |
+ - $(ABSPERLRUN) -e 'chdir '\''DBIx-Custom-0.1660'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' -- |
|
| 538 |
+ |
|
| 539 |
+ |
|
| 540 |
+# --- MakeMaker realclean section: |
|
| 541 |
+# Delete temporary files (via clean) and also delete dist files |
|
| 542 |
+realclean purge :: clean realclean_subdirs |
|
| 543 |
+ - $(RM_F) \ |
|
| 544 |
+ $(MAKEFILE_OLD) $(FIRST_MAKEFILE) |
|
| 545 |
+ - $(RM_RF) \ |
|
| 546 |
+ $(DISTVNAME) |
|
| 547 |
+ |
|
| 548 |
+ |
|
| 549 |
+# --- MakeMaker metafile section: |
|
| 550 |
+metafile : create_distdir |
|
| 551 |
+ $(NOECHO) $(ECHO) Generating META.yml |
|
| 552 |
+ $(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml |
|
| 553 |
+ $(NOECHO) $(ECHO) 'name: DBIx-Custom' >> META_new.yml |
|
| 554 |
+ $(NOECHO) $(ECHO) 'version: 0.1661' >> META_new.yml |
|
| 555 |
+ $(NOECHO) $(ECHO) 'abstract: Useful database access, respecting SQL!' >> META_new.yml |
|
| 556 |
+ $(NOECHO) $(ECHO) 'author:' >> META_new.yml |
|
| 557 |
+ $(NOECHO) $(ECHO) ' - Yuki Kimoto <kimoto.yuki@gmail.com>' >> META_new.yml |
|
| 558 |
+ $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml |
|
| 559 |
+ $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml |
|
| 560 |
+ $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml |
|
| 561 |
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml |
|
| 562 |
+ $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml |
|
| 563 |
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml |
|
| 564 |
+ $(NOECHO) $(ECHO) 'requires:' >> META_new.yml |
|
| 565 |
+ $(NOECHO) $(ECHO) ' DBD::SQLite: 1.25' >> META_new.yml |
|
| 566 |
+ $(NOECHO) $(ECHO) ' DBI: 1.605' >> META_new.yml |
|
| 567 |
+ $(NOECHO) $(ECHO) ' Object::Simple: 3.0616' >> META_new.yml |
|
| 568 |
+ $(NOECHO) $(ECHO) ' Test::More: 0' >> META_new.yml |
|
| 569 |
+ $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml |
|
| 570 |
+ $(NOECHO) $(ECHO) ' directory:' >> META_new.yml |
|
| 571 |
+ $(NOECHO) $(ECHO) ' - t' >> META_new.yml |
|
| 572 |
+ $(NOECHO) $(ECHO) ' - inc' >> META_new.yml |
|
| 573 |
+ $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.56' >> META_new.yml |
|
| 574 |
+ $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml |
|
| 575 |
+ $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml |
|
| 576 |
+ $(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml |
|
| 577 |
+ -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml |
|
| 578 |
+ |
|
| 579 |
+ |
|
| 580 |
+# --- MakeMaker signature section: |
|
| 581 |
+signature : |
|
| 582 |
+ cpansign -s |
|
| 583 |
+ |
|
| 584 |
+ |
|
| 585 |
+# --- MakeMaker dist_basics section: |
|
| 586 |
+distclean :: realclean distcheck |
|
| 587 |
+ $(NOECHO) $(NOOP) |
|
| 588 |
+ |
|
| 589 |
+distcheck : |
|
| 590 |
+ $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck |
|
| 591 |
+ |
|
| 592 |
+skipcheck : |
|
| 593 |
+ $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck |
|
| 594 |
+ |
|
| 595 |
+manifest : |
|
| 596 |
+ $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest |
|
| 597 |
+ |
|
| 598 |
+veryclean : realclean |
|
| 599 |
+ $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old |
|
| 600 |
+ |
|
| 601 |
+ |
|
| 602 |
+ |
|
| 603 |
+# --- MakeMaker dist_core section: |
|
| 604 |
+ |
|
| 605 |
+dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) |
|
| 606 |
+ $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ |
|
| 607 |
+ -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- |
|
| 608 |
+ |
|
| 609 |
+tardist : $(DISTVNAME).tar$(SUFFIX) |
|
| 610 |
+ $(NOECHO) $(NOOP) |
|
| 611 |
+ |
|
| 612 |
+uutardist : $(DISTVNAME).tar$(SUFFIX) |
|
| 613 |
+ uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu |
|
| 614 |
+ |
|
| 615 |
+$(DISTVNAME).tar$(SUFFIX) : distdir |
|
| 616 |
+ $(PREOP) |
|
| 617 |
+ $(TO_UNIX) |
|
| 618 |
+ $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) |
|
| 619 |
+ $(RM_RF) $(DISTVNAME) |
|
| 620 |
+ $(COMPRESS) $(DISTVNAME).tar |
|
| 621 |
+ $(POSTOP) |
|
| 622 |
+ |
|
| 623 |
+zipdist : $(DISTVNAME).zip |
|
| 624 |
+ $(NOECHO) $(NOOP) |
|
| 625 |
+ |
|
| 626 |
+$(DISTVNAME).zip : distdir |
|
| 627 |
+ $(PREOP) |
|
| 628 |
+ $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) |
|
| 629 |
+ $(RM_RF) $(DISTVNAME) |
|
| 630 |
+ $(POSTOP) |
|
| 631 |
+ |
|
| 632 |
+shdist : distdir |
|
| 633 |
+ $(PREOP) |
|
| 634 |
+ $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar |
|
| 635 |
+ $(RM_RF) $(DISTVNAME) |
|
| 636 |
+ $(POSTOP) |
|
| 637 |
+ |
|
| 638 |
+ |
|
| 639 |
+# --- MakeMaker distdir section: |
|
| 640 |
+create_distdir : |
|
| 641 |
+ $(RM_RF) $(DISTVNAME) |
|
| 642 |
+ $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ |
|
| 643 |
+ -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" |
|
| 644 |
+ |
|
| 645 |
+distdir : create_distdir distmeta |
|
| 646 |
+ $(NOECHO) $(NOOP) |
|
| 647 |
+ |
|
| 648 |
+ |
|
| 649 |
+ |
|
| 650 |
+# --- MakeMaker dist_test section: |
|
| 651 |
+disttest : distdir |
|
| 652 |
+ cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL |
|
| 653 |
+ cd $(DISTVNAME) && $(MAKE) $(PASTHRU) |
|
| 654 |
+ cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) |
|
| 655 |
+ |
|
| 656 |
+ |
|
| 657 |
+ |
|
| 658 |
+# --- MakeMaker dist_ci section: |
|
| 659 |
+ |
|
| 660 |
+ci : |
|
| 661 |
+ $(PERLRUN) "-MExtUtils::Manifest=maniread" \ |
|
| 662 |
+ -e "@all = keys %{ maniread() };" \
|
|
| 663 |
+ -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
|
|
| 664 |
+ -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
|
|
| 665 |
+ |
|
| 666 |
+ |
|
| 667 |
+# --- MakeMaker distmeta section: |
|
| 668 |
+distmeta : create_distdir metafile |
|
| 669 |
+ $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
|
| 670 |
+ -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
|
|
| 671 |
+ |
|
| 672 |
+ |
|
| 673 |
+ |
|
| 674 |
+# --- MakeMaker distsignature section: |
|
| 675 |
+distsignature : create_distdir |
|
| 676 |
+ $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
|
| 677 |
+ -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
|
|
| 678 |
+ $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE |
|
| 679 |
+ cd $(DISTVNAME) && cpansign -s |
|
| 680 |
+ |
|
| 681 |
+ |
|
| 682 |
+ |
|
| 683 |
+# --- MakeMaker install section: |
|
| 684 |
+ |
|
| 685 |
+install :: pure_install doc_install |
|
| 686 |
+ $(NOECHO) $(NOOP) |
|
| 687 |
+ |
|
| 688 |
+install_perl :: pure_perl_install doc_perl_install |
|
| 689 |
+ $(NOECHO) $(NOOP) |
|
| 690 |
+ |
|
| 691 |
+install_site :: pure_site_install doc_site_install |
|
| 692 |
+ $(NOECHO) $(NOOP) |
|
| 693 |
+ |
|
| 694 |
+install_vendor :: pure_vendor_install doc_vendor_install |
|
| 695 |
+ $(NOECHO) $(NOOP) |
|
| 696 |
+ |
|
| 697 |
+pure_install :: pure_$(INSTALLDIRS)_install |
|
| 698 |
+ $(NOECHO) $(NOOP) |
|
| 699 |
+ |
|
| 700 |
+doc_install :: doc_$(INSTALLDIRS)_install |
|
| 701 |
+ $(NOECHO) $(NOOP) |
|
| 702 |
+ |
|
| 703 |
+pure__install : pure_site_install |
|
| 704 |
+ $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site |
|
| 705 |
+ |
|
| 706 |
+doc__install : doc_site_install |
|
| 707 |
+ $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site |
|
| 708 |
+ |
|
| 709 |
+pure_perl_install :: all |
|
| 710 |
+ $(NOECHO) $(MOD_INSTALL) \ |
|
| 711 |
+ read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \ |
|
| 712 |
+ write $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \ |
|
| 713 |
+ $(INST_LIB) $(DESTINSTALLPRIVLIB) \ |
|
| 714 |
+ $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ |
|
| 715 |
+ $(INST_BIN) $(DESTINSTALLBIN) \ |
|
| 716 |
+ $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ |
|
| 717 |
+ $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \ |
|
| 718 |
+ $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) |
|
| 719 |
+ $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ |
|
| 720 |
+ $(SITEARCHEXP)/auto/$(FULLEXT) |
|
| 721 |
+ |
|
| 722 |
+ |
|
| 723 |
+pure_site_install :: all |
|
| 724 |
+ $(NOECHO) $(MOD_INSTALL) \ |
|
| 725 |
+ read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \ |
|
| 726 |
+ write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \ |
|
| 727 |
+ $(INST_LIB) $(DESTINSTALLSITELIB) \ |
|
| 728 |
+ $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ |
|
| 729 |
+ $(INST_BIN) $(DESTINSTALLSITEBIN) \ |
|
| 730 |
+ $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ |
|
| 731 |
+ $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ |
|
| 732 |
+ $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) |
|
| 733 |
+ $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ |
|
| 734 |
+ $(PERL_ARCHLIB)/auto/$(FULLEXT) |
|
| 735 |
+ |
|
| 736 |
+pure_vendor_install :: all |
|
| 737 |
+ $(NOECHO) $(MOD_INSTALL) \ |
|
| 738 |
+ read $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist \ |
|
| 739 |
+ write $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist \ |
|
| 740 |
+ $(INST_LIB) $(DESTINSTALLVENDORLIB) \ |
|
| 741 |
+ $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ |
|
| 742 |
+ $(INST_BIN) $(DESTINSTALLVENDORBIN) \ |
|
| 743 |
+ $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ |
|
| 744 |
+ $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ |
|
| 745 |
+ $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) |
|
| 746 |
+ |
|
| 747 |
+doc_perl_install :: all |
|
| 748 |
+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 749 |
+ -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 750 |
+ -$(NOECHO) $(DOC_INSTALL) \ |
|
| 751 |
+ "Module" "$(NAME)" \ |
|
| 752 |
+ "installed into" "$(INSTALLPRIVLIB)" \ |
|
| 753 |
+ LINKTYPE "$(LINKTYPE)" \ |
|
| 754 |
+ VERSION "$(VERSION)" \ |
|
| 755 |
+ EXE_FILES "$(EXE_FILES)" \ |
|
| 756 |
+ >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 757 |
+ |
|
| 758 |
+doc_site_install :: all |
|
| 759 |
+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 760 |
+ -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 761 |
+ -$(NOECHO) $(DOC_INSTALL) \ |
|
| 762 |
+ "Module" "$(NAME)" \ |
|
| 763 |
+ "installed into" "$(INSTALLSITELIB)" \ |
|
| 764 |
+ LINKTYPE "$(LINKTYPE)" \ |
|
| 765 |
+ VERSION "$(VERSION)" \ |
|
| 766 |
+ EXE_FILES "$(EXE_FILES)" \ |
|
| 767 |
+ >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 768 |
+ |
|
| 769 |
+doc_vendor_install :: all |
|
| 770 |
+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 771 |
+ -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 772 |
+ -$(NOECHO) $(DOC_INSTALL) \ |
|
| 773 |
+ "Module" "$(NAME)" \ |
|
| 774 |
+ "installed into" "$(INSTALLVENDORLIB)" \ |
|
| 775 |
+ LINKTYPE "$(LINKTYPE)" \ |
|
| 776 |
+ VERSION "$(VERSION)" \ |
|
| 777 |
+ EXE_FILES "$(EXE_FILES)" \ |
|
| 778 |
+ >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 779 |
+ |
|
| 780 |
+ |
|
| 781 |
+uninstall :: uninstall_from_$(INSTALLDIRS)dirs |
|
| 782 |
+ $(NOECHO) $(NOOP) |
|
| 783 |
+ |
|
| 784 |
+uninstall_from_perldirs :: |
|
| 785 |
+ $(NOECHO) $(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist |
|
| 786 |
+ |
|
| 787 |
+uninstall_from_sitedirs :: |
|
| 788 |
+ $(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist |
|
| 789 |
+ |
|
| 790 |
+uninstall_from_vendordirs :: |
|
| 791 |
+ $(NOECHO) $(UNINSTALL) $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist |
|
| 792 |
+ |
|
| 793 |
+ |
|
| 794 |
+# --- MakeMaker force section: |
|
| 795 |
+# Phony target to force checking subdirectories. |
|
| 796 |
+FORCE : |
|
| 797 |
+ $(NOECHO) $(NOOP) |
|
| 798 |
+ |
|
| 799 |
+ |
|
| 800 |
+# --- MakeMaker perldepend section: |
|
| 801 |
+ |
|
| 802 |
+ |
|
| 803 |
+# --- MakeMaker makefile section: |
|
| 804 |
+# We take a very conservative approach here, but it's worth it. |
|
| 805 |
+# We move Makefile to Makefile.old here to avoid gnu make looping. |
|
| 806 |
+$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) |
|
| 807 |
+ $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" |
|
| 808 |
+ $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." |
|
| 809 |
+ -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) |
|
| 810 |
+ -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) |
|
| 811 |
+ - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) |
|
| 812 |
+ $(PERLRUN) Makefile.PL |
|
| 813 |
+ $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" |
|
| 814 |
+ $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" |
|
| 815 |
+ $(FALSE) |
|
| 816 |
+ |
|
| 817 |
+ |
|
| 818 |
+ |
|
| 819 |
+# --- MakeMaker staticmake section: |
|
| 820 |
+ |
|
| 821 |
+# --- MakeMaker makeaperl section --- |
|
| 822 |
+MAP_TARGET = perl |
|
| 823 |
+FULLPERL = /usr/bin/perl |
|
| 824 |
+ |
|
| 825 |
+$(MAP_TARGET) :: static $(MAKE_APERL_FILE) |
|
| 826 |
+ $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ |
|
| 827 |
+ |
|
| 828 |
+$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib |
|
| 829 |
+ $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) |
|
| 830 |
+ $(NOECHO) $(PERLRUNINST) \ |
|
| 831 |
+ Makefile.PL DIR=DBIx-Custom-0.1660 \ |
|
| 832 |
+ MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ |
|
| 833 |
+ MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= |
|
| 834 |
+ |
|
| 835 |
+ |
|
| 836 |
+# --- MakeMaker test section: |
|
| 837 |
+ |
|
| 838 |
+TEST_VERBOSE=0 |
|
| 839 |
+TEST_TYPE=test_$(LINKTYPE) |
|
| 840 |
+TEST_FILE = test.pl |
|
| 841 |
+TEST_FILES = t/*.t |
|
| 842 |
+TESTDB_SW = -d |
|
| 843 |
+ |
|
| 844 |
+testdb :: testdb_$(LINKTYPE) |
|
| 845 |
+ |
|
| 846 |
+test :: $(TEST_TYPE) subdirs-test |
|
| 847 |
+ |
|
| 848 |
+subdirs-test :: |
|
| 849 |
+ $(NOECHO) $(NOOP) |
|
| 850 |
+ |
|
| 851 |
+subdirs-test :: |
|
| 852 |
+ $(NOECHO) cd DBIx-Custom-0.1660 && $(MAKE) test $(PASTHRU) |
|
| 853 |
+ |
|
| 854 |
+ |
|
| 855 |
+test_dynamic :: pure_all |
|
| 856 |
+ PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) |
|
| 857 |
+ |
|
| 858 |
+testdb_dynamic :: pure_all |
|
| 859 |
+ PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) |
|
| 860 |
+ |
|
| 861 |
+test_ : test_dynamic |
|
| 862 |
+ |
|
| 863 |
+test_static :: test_dynamic |
|
| 864 |
+testdb_static :: testdb_dynamic |
|
| 865 |
+ |
|
| 866 |
+ |
|
| 867 |
+# --- MakeMaker ppd section: |
|
| 868 |
+# Creates a PPD (Perl Package Description) for a binary distribution. |
|
| 869 |
+ppd : |
|
| 870 |
+ $(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0.1661">' > $(DISTNAME).ppd |
|
| 871 |
+ $(NOECHO) $(ECHO) ' <ABSTRACT>Useful database access, respecting SQL!</ABSTRACT>' >> $(DISTNAME).ppd |
|
| 872 |
+ $(NOECHO) $(ECHO) ' <AUTHOR>Yuki Kimoto <kimoto.yuki@gmail.com></AUTHOR>' >> $(DISTNAME).ppd |
|
| 873 |
+ $(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd |
|
| 874 |
+ $(NOECHO) $(ECHO) ' <REQUIRE NAME="DBD::SQLite" VERSION="1.25" />' >> $(DISTNAME).ppd |
|
| 875 |
+ $(NOECHO) $(ECHO) ' <REQUIRE NAME="DBI::" VERSION="1.605" />' >> $(DISTNAME).ppd |
|
| 876 |
+ $(NOECHO) $(ECHO) ' <REQUIRE NAME="Object::Simple" VERSION="3.0616" />' >> $(DISTNAME).ppd |
|
| 877 |
+ $(NOECHO) $(ECHO) ' <REQUIRE NAME="Test::More" />' >> $(DISTNAME).ppd |
|
| 878 |
+ $(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i386-linux-thread-multi-5.8" />' >> $(DISTNAME).ppd |
|
| 879 |
+ $(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd |
|
| 880 |
+ $(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd |
|
| 881 |
+ $(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd |
|
| 882 |
+ |
|
| 883 |
+ |
|
| 884 |
+# --- MakeMaker pm_to_blib section: |
|
| 885 |
+ |
|
| 886 |
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) |
|
| 887 |
+ $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
|
|
| 888 |
+ lib/DBIx/Custom/Tag.pm blib/lib/DBIx/Custom/Tag.pm \ |
|
| 889 |
+ lib/DBIx/Custom/Guide/Ja.pod blib/lib/DBIx/Custom/Guide/Ja.pod \ |
|
| 890 |
+ lib/DBIx/Custom/Util.pm blib/lib/DBIx/Custom/Util.pm \ |
|
| 891 |
+ lib/DBIx/Custom/Guide.pod blib/lib/DBIx/Custom/Guide.pod \ |
|
| 892 |
+ lib/DBIx/Custom/Where.pm blib/lib/DBIx/Custom/Where.pm \ |
|
| 893 |
+ lib/DBIx/Custom/Model.pm blib/lib/DBIx/Custom/Model.pm \ |
|
| 894 |
+ lib/DBIx/Custom/MySQL.pm blib/lib/DBIx/Custom/MySQL.pm \ |
|
| 895 |
+ lib/DBIx/Custom.pm blib/lib/DBIx/Custom.pm \ |
|
| 896 |
+ lib/DBIx/Custom/Query.pm blib/lib/DBIx/Custom/Query.pm \ |
|
| 897 |
+ lib/DBIx/Custom/SQLite.pm blib/lib/DBIx/Custom/SQLite.pm \ |
|
| 898 |
+ lib/DBIx/Custom/Result.pm blib/lib/DBIx/Custom/Result.pm \ |
|
| 899 |
+ lib/DBIx/Custom/QueryBuilder.pm blib/lib/DBIx/Custom/QueryBuilder.pm |
|
| 900 |
+ $(NOECHO) $(TOUCH) pm_to_blib |
|
| 901 |
+ |
|
| 902 |
+ |
|
| 903 |
+# --- MakeMaker selfdocument section: |
|
| 904 |
+ |
|
| 905 |
+ |
|
| 906 |
+# --- MakeMaker postamble section: |
|
| 907 |
+ |
|
| 908 |
+ |
|
| 909 |
+# End. |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
package DBIx::Custom; |
| 2 | 2 |
|
| 3 |
-our $VERSION = '0.1660'; |
|
| 3 |
+our $VERSION = '0.1661'; |
|
| 4 | 4 |
|
| 5 | 5 |
use 5.008001; |
| 6 | 6 |
use strict; |
| ... | ... |
@@ -69,8 +69,8 @@ sub AUTOLOAD {
|
| 69 | 69 |
if (my $method = $self->{_methods}->{$mname}) {
|
| 70 | 70 |
return $self->$method(@_) |
| 71 | 71 |
} |
| 72 |
- elsif ($self->dbh->can($mname)) {
|
|
| 73 |
- $self->dbh->$mname(@_); |
|
| 72 |
+ elsif (my $dbh_method = $self->dbh->can($mname)) {
|
|
| 73 |
+ $self->dbh->$dbh_method(@_); |
|
| 74 | 74 |
} |
| 75 | 75 |
else {
|
| 76 | 76 |
croak qq/Can't locate object method "$mname" via "$package"/ |
| ... | ... |
@@ -375,6 +375,32 @@ sub execute{
|
| 375 | 375 |
my %table_set = map {defined $_ ? ($_ => 1) : ()} @$tables;
|
| 376 | 376 |
my $main_table = pop @$tables; |
| 377 | 377 |
delete $table_set{$main_table} if $main_table;
|
| 378 |
+ foreach my $table (keys %table_set) {
|
|
| 379 |
+ push @$tables, $table; |
|
| 380 |
+ |
|
| 381 |
+ if (my $dist = $self->{_table_alias}->{$table}) {
|
|
| 382 |
+ $self->{filter} ||= {};
|
|
| 383 |
+ |
|
| 384 |
+ unless ($self->{filter}{out}{$table}) {
|
|
| 385 |
+ $self->{filter}{out} ||= {};
|
|
| 386 |
+ $self->{filter}{in} ||= {};
|
|
| 387 |
+ $self->{filter}{end} ||= {};
|
|
| 388 |
+ |
|
| 389 |
+ foreach my $type (qw/out in end/) {
|
|
| 390 |
+ |
|
| 391 |
+ foreach my $filter_name (keys %{$self->{filter}{$type}{$dist} || {}}) {
|
|
| 392 |
+ my $filter_name_alias = $filter_name; |
|
| 393 |
+ $filter_name_alias =~ s/^$dist\./$table\./; |
|
| 394 |
+ $filter_name_alias =~ s/^${dist}__/${table}__/;
|
|
| 395 |
+ |
|
| 396 |
+ $self->{filter}{$type}{$table}{$filter_name_alias}
|
|
| 397 |
+ = $self->{filter}{$type}{$dist}{$filter_name}
|
|
| 398 |
+ } |
|
| 399 |
+ } |
|
| 400 |
+ } |
|
| 401 |
+ } |
|
| 402 |
+ } |
|
| 403 |
+ |
|
| 378 | 404 |
$tables = [keys %table_set]; |
| 379 | 405 |
push @$tables, $main_table if $main_table; |
| 380 | 406 |
|
| ... | ... |
@@ -579,6 +605,99 @@ sub each_column {
|
| 579 | 605 |
} |
| 580 | 606 |
} |
| 581 | 607 |
|
| 608 |
+sub include_model {
|
|
| 609 |
+ my ($self, $name_space, $model_infos) = @_; |
|
| 610 |
+ |
|
| 611 |
+ $name_space ||= ''; |
|
| 612 |
+ unless ($model_infos) {
|
|
| 613 |
+ # Load name space module |
|
| 614 |
+ croak qq{"$name_space" is invalid class name}
|
|
| 615 |
+ if $name_space =~ /[^\w:]/; |
|
| 616 |
+ eval "use $name_space"; |
|
| 617 |
+ croak qq{Name space module "$name_space.pm" is needed. $@} if $@;
|
|
| 618 |
+ |
|
| 619 |
+ # Search model modules |
|
| 620 |
+ my $path = $INC{"$name_space.pm"};
|
|
| 621 |
+ $path =~ s/\.pm$//; |
|
| 622 |
+ opendir my $dh, $path |
|
| 623 |
+ or croak qq{Can't open directory "$path": $!};
|
|
| 624 |
+ $model_infos = []; |
|
| 625 |
+ while (my $module = readdir $dh) {
|
|
| 626 |
+ push @$model_infos, $module |
|
| 627 |
+ if $module =~ s/\.pm$//; |
|
| 628 |
+ } |
|
| 629 |
+ |
|
| 630 |
+ close $dh; |
|
| 631 |
+ } |
|
| 632 |
+ |
|
| 633 |
+ my $table_alias = {};
|
|
| 634 |
+ foreach my $model_info (@$model_infos) {
|
|
| 635 |
+ |
|
| 636 |
+ # Model class, name, table |
|
| 637 |
+ my $model_class; |
|
| 638 |
+ my $model_name; |
|
| 639 |
+ my $model_table; |
|
| 640 |
+ if (ref $model_info eq 'HASH') {
|
|
| 641 |
+ $model_class = $model_info->{class};
|
|
| 642 |
+ $model_name = $model_info->{name};
|
|
| 643 |
+ $model_table = $model_info->{table};
|
|
| 644 |
+ |
|
| 645 |
+ $model_name ||= $model_class; |
|
| 646 |
+ $model_table ||= $model_name; |
|
| 647 |
+ } |
|
| 648 |
+ else { $model_class =$model_name = $model_table = $model_info }
|
|
| 649 |
+ my $mclass = "${name_space}::$model_class";
|
|
| 650 |
+ |
|
| 651 |
+ # Load |
|
| 652 |
+ croak qq{"$mclass" is invalid class name}
|
|
| 653 |
+ if $mclass =~ /[^\w:]/; |
|
| 654 |
+ unless ($mclass->can('isa')) {
|
|
| 655 |
+ eval "use $mclass"; |
|
| 656 |
+ croak $@ if $@; |
|
| 657 |
+ } |
|
| 658 |
+ |
|
| 659 |
+ # Instantiate |
|
| 660 |
+ my $model = $mclass->new(dbi => $self); |
|
| 661 |
+ $model->name($model_name) unless $model->name; |
|
| 662 |
+ $model->table($model_table) unless $model->table; |
|
| 663 |
+ |
|
| 664 |
+ # Set |
|
| 665 |
+ $self->model($model->name, $model); |
|
| 666 |
+ |
|
| 667 |
+ # Apply filter |
|
| 668 |
+ croak "${name_space}::$model_class filter must be array reference"
|
|
| 669 |
+ unless ref $model->filter eq 'ARRAY'; |
|
| 670 |
+ $self->apply_filter($model->table, @{$model->filter});
|
|
| 671 |
+ |
|
| 672 |
+ # Table alias |
|
| 673 |
+ $table_alias = {%$table_alias, %{$model->table_alias}};
|
|
| 674 |
+ |
|
| 675 |
+ # Table - Model |
|
| 676 |
+ $self->{_model_from}->{$model->table} = $model->name;
|
|
| 677 |
+ } |
|
| 678 |
+ |
|
| 679 |
+ $self->{_table_alias} = $table_alias;
|
|
| 680 |
+ |
|
| 681 |
+ return $self; |
|
| 682 |
+} |
|
| 683 |
+ |
|
| 684 |
+sub model {
|
|
| 685 |
+ my ($self, $name, $model) = @_; |
|
| 686 |
+ |
|
| 687 |
+ # Set |
|
| 688 |
+ if ($model) {
|
|
| 689 |
+ $self->models->{$name} = $model;
|
|
| 690 |
+ return $self; |
|
| 691 |
+ } |
|
| 692 |
+ |
|
| 693 |
+ # Check model existance |
|
| 694 |
+ croak qq{Model "$name" is not included}
|
|
| 695 |
+ unless $self->models->{$name};
|
|
| 696 |
+ |
|
| 697 |
+ # Get |
|
| 698 |
+ return $self->models->{$name};
|
|
| 699 |
+} |
|
| 700 |
+ |
|
| 582 | 701 |
sub new {
|
| 583 | 702 |
my $self = shift->SUPER::new(@_); |
| 584 | 703 |
|
| ... | ... |
@@ -622,7 +741,7 @@ sub register_tag { shift->query_builder->register_tag(@_) }
|
| 622 | 741 |
|
| 623 | 742 |
our %VALID_SELECT_ARGS |
| 624 | 743 |
= map { $_ => 1 } qw/table column where append relation filter query
|
| 625 |
- selection join all_column/; |
|
| 744 |
+ selection join/; |
|
| 626 | 745 |
|
| 627 | 746 |
sub select {
|
| 628 | 747 |
my ($self, %args) = @_; |
| ... | ... |
@@ -638,9 +757,7 @@ sub select {
|
| 638 | 757 |
my $tables = ref $table eq 'ARRAY' ? $table |
| 639 | 758 |
: defined $table ? [$table] |
| 640 | 759 |
: []; |
| 641 |
- my $columns = $args{column} || [];
|
|
| 642 |
- $columns = [$columns] unless ref $columns eq 'ARRAY'; |
|
| 643 |
- my $all_column = $args{all_column};
|
|
| 760 |
+ my $columns = $args{column};
|
|
| 644 | 761 |
my $selection = $args{selection} || '';
|
| 645 | 762 |
my $where = $args{where} || {};
|
| 646 | 763 |
my $append = $args{append};
|
| ... | ... |
@@ -665,56 +782,60 @@ sub select {
|
| 665 | 782 |
unshift @$tables, @{$self->_tables($selection)};
|
| 666 | 783 |
} |
| 667 | 784 |
|
| 668 |
- # Clumn clause, countains all columns of joined tables |
|
| 669 |
- elsif ($all_column) {
|
|
| 670 |
- |
|
| 671 |
- # Find tables |
|
| 672 |
- my $main_table; |
|
| 673 |
- my %tables; |
|
| 674 |
- if (ref $all_column eq 'ARRAY') {
|
|
| 675 |
- foreach my $table (@$all_column) {
|
|
| 676 |
- if (($table || '') eq $tables->[-1]) {
|
|
| 677 |
- $main_table = $table; |
|
| 785 |
+ # Column clause |
|
| 786 |
+ elsif ($columns) {
|
|
| 787 |
+ |
|
| 788 |
+ $columns = [$columns] if ! ref $columns; |
|
| 789 |
+ |
|
| 790 |
+ if (ref $columns eq 'HASH') {
|
|
| 791 |
+ # Find tables |
|
| 792 |
+ my $main_table; |
|
| 793 |
+ my %tables; |
|
| 794 |
+ if ($columns->{table}) {
|
|
| 795 |
+ foreach my $table (@{$columns->{table}}) {
|
|
| 796 |
+ if (($table || '') eq $tables->[-1]) {
|
|
| 797 |
+ $main_table = $table; |
|
| 798 |
+ } |
|
| 799 |
+ else {
|
|
| 800 |
+ $tables{$table} = 1;
|
|
| 801 |
+ } |
|
| 678 | 802 |
} |
| 679 |
- else {
|
|
| 680 |
- $tables{$table} = 1;
|
|
| 803 |
+ } |
|
| 804 |
+ elsif ($columns->{all}) {
|
|
| 805 |
+ $main_table = $tables->[-1] || ''; |
|
| 806 |
+ foreach my $j (@$join) {
|
|
| 807 |
+ my $tables = $self->_tables($j); |
|
| 808 |
+ foreach my $table (@$tables) {
|
|
| 809 |
+ $tables{$table} = 1;
|
|
| 810 |
+ } |
|
| 681 | 811 |
} |
| 812 |
+ delete $tables{$main_table};
|
|
| 813 |
+ } |
|
| 814 |
+ |
|
| 815 |
+ push @sql, $columns->{prepend} if $columns->{prepend};
|
|
| 816 |
+ |
|
| 817 |
+ # Column clause of main table |
|
| 818 |
+ if ($main_table) {
|
|
| 819 |
+ push @sql, $self->model($main_table)->column_clause; |
|
| 820 |
+ push @sql, ','; |
|
| 682 | 821 |
} |
| 822 |
+ |
|
| 823 |
+ # Column cluase of other tables |
|
| 824 |
+ foreach my $table (keys %tables) {
|
|
| 825 |
+ unshift @$tables, $table; |
|
| 826 |
+ push @sql, $self->model($table) |
|
| 827 |
+ ->column_clause(prefix => "${table}__");
|
|
| 828 |
+ push @sql, ','; |
|
| 829 |
+ } |
|
| 830 |
+ pop @sql if $sql[-1] eq ','; |
|
| 683 | 831 |
} |
| 684 | 832 |
else {
|
| 685 |
- $main_table = $tables->[-1] || ''; |
|
| 686 |
- foreach my $j (@$join) {
|
|
| 687 |
- my $tables = $self->_tables($j); |
|
| 688 |
- foreach my $table (@$tables) {
|
|
| 689 |
- $tables{$table} = 1;
|
|
| 690 |
- } |
|
| 833 |
+ foreach my $column (@$columns) {
|
|
| 834 |
+ unshift @$tables, @{$self->_tables($column)};
|
|
| 835 |
+ push @sql, ($column, ','); |
|
| 691 | 836 |
} |
| 692 |
- delete $tables{$main_table};
|
|
| 693 |
- } |
|
| 694 |
- |
|
| 695 |
- # Column clause of main table |
|
| 696 |
- if ($main_table) {
|
|
| 697 |
- push @sql, $self->model($main_table)->column_clause; |
|
| 698 |
- push @sql, ','; |
|
| 699 |
- } |
|
| 700 |
- |
|
| 701 |
- # Column cluase of other tables |
|
| 702 |
- foreach my $table (keys %tables) {
|
|
| 703 |
- unshift @$tables, $table; |
|
| 704 |
- push @sql, $self->model($table) |
|
| 705 |
- ->column_clause(prefix => "${table}__");
|
|
| 706 |
- push @sql, ','; |
|
| 707 |
- } |
|
| 708 |
- pop @sql if $sql[-1] eq ','; |
|
| 709 |
- } |
|
| 710 |
- |
|
| 711 |
- # Column clause |
|
| 712 |
- elsif (@$columns) {
|
|
| 713 |
- foreach my $column (@$columns) {
|
|
| 714 |
- unshift @$tables, @{$self->_tables($column)};
|
|
| 715 |
- push @sql, ($column, ','); |
|
| 837 |
+ pop @sql if $sql[-1] eq ','; |
|
| 716 | 838 |
} |
| 717 |
- pop @sql if $sql[-1] eq ','; |
|
| 718 | 839 |
} |
| 719 | 840 |
|
| 720 | 841 |
# "*" is default |
| ... | ... |
@@ -732,9 +853,7 @@ sub select {
|
| 732 | 853 |
} |
| 733 | 854 |
else {
|
| 734 | 855 |
my $main_table = $tables->[-1] || ''; |
| 735 |
- push @sql, $self->view($main_table) |
|
| 736 |
- ? $self->view($main_table) |
|
| 737 |
- : $main_table; |
|
| 856 |
+ push @sql, $main_table; |
|
| 738 | 857 |
} |
| 739 | 858 |
pop @sql if ($sql[-1] || '') eq ','; |
| 740 | 859 |
} |
| ... | ... |
@@ -792,7 +911,7 @@ sub select {
|
| 792 | 911 |
|
| 793 | 912 |
our %VALID_SELECT_AT_ARGS |
| 794 | 913 |
= map { $_ => 1 } qw/table column where append relation filter query selection
|
| 795 |
- param primary_key join all_column/; |
|
| 914 |
+ param primary_key join/; |
|
| 796 | 915 |
|
| 797 | 916 |
sub select_at {
|
| 798 | 917 |
my ($self, %args) = @_; |
| ... | ... |
@@ -836,92 +955,6 @@ sub select_at {
|
| 836 | 955 |
return $self->select(where => $where, %args); |
| 837 | 956 |
} |
| 838 | 957 |
|
| 839 |
-sub model {
|
|
| 840 |
- my ($self, $name, $model) = @_; |
|
| 841 |
- |
|
| 842 |
- # Set |
|
| 843 |
- if ($model) {
|
|
| 844 |
- $self->models->{$name} = $model;
|
|
| 845 |
- return $self; |
|
| 846 |
- } |
|
| 847 |
- |
|
| 848 |
- # Check model existance |
|
| 849 |
- croak qq{Model "$name" is not included}
|
|
| 850 |
- unless $self->models->{$name};
|
|
| 851 |
- |
|
| 852 |
- # Get |
|
| 853 |
- return $self->models->{$name};
|
|
| 854 |
-} |
|
| 855 |
- |
|
| 856 |
-sub include_model {
|
|
| 857 |
- my ($self, $name_space, $model_infos) = @_; |
|
| 858 |
- |
|
| 859 |
- $name_space ||= ''; |
|
| 860 |
- unless ($model_infos) {
|
|
| 861 |
- # Load name space module |
|
| 862 |
- croak qq{"$name_space" is invalid class name}
|
|
| 863 |
- if $name_space =~ /[^\w:]/; |
|
| 864 |
- eval "use $name_space"; |
|
| 865 |
- croak qq{Name space module "$name_space.pm" is needed. $@} if $@;
|
|
| 866 |
- |
|
| 867 |
- # Search model modules |
|
| 868 |
- my $path = $INC{"$name_space.pm"};
|
|
| 869 |
- $path =~ s/\.pm$//; |
|
| 870 |
- opendir my $dh, $path |
|
| 871 |
- or croak qq{Can't open directory "$path": $!};
|
|
| 872 |
- $model_infos = []; |
|
| 873 |
- while (my $module = readdir $dh) {
|
|
| 874 |
- push @$model_infos, $module |
|
| 875 |
- if $module =~ s/\.pm$//; |
|
| 876 |
- } |
|
| 877 |
- |
|
| 878 |
- close $dh; |
|
| 879 |
- } |
|
| 880 |
- |
|
| 881 |
- foreach my $model_info (@$model_infos) {
|
|
| 882 |
- |
|
| 883 |
- # Model class, name, table |
|
| 884 |
- my $model_class; |
|
| 885 |
- my $model_name; |
|
| 886 |
- my $model_table; |
|
| 887 |
- if (ref $model_info eq 'HASH') {
|
|
| 888 |
- $model_class = $model_info->{class};
|
|
| 889 |
- $model_name = $model_info->{name};
|
|
| 890 |
- $model_table = $model_info->{table};
|
|
| 891 |
- |
|
| 892 |
- $model_name ||= $model_class; |
|
| 893 |
- $model_table ||= $model_name; |
|
| 894 |
- } |
|
| 895 |
- else { $model_class =$model_name = $model_table = $model_info }
|
|
| 896 |
- my $mclass = "${name_space}::$model_class";
|
|
| 897 |
- |
|
| 898 |
- # Load |
|
| 899 |
- croak qq{"$mclass" is invalid class name}
|
|
| 900 |
- if $mclass =~ /[^\w:]/; |
|
| 901 |
- unless ($mclass->can('isa')) {
|
|
| 902 |
- eval "use $mclass"; |
|
| 903 |
- croak $@ if $@; |
|
| 904 |
- } |
|
| 905 |
- |
|
| 906 |
- # Instantiate |
|
| 907 |
- my $model = $mclass->new(dbi => $self); |
|
| 908 |
- $model->name($model_name) unless $model->name; |
|
| 909 |
- $model->table($model_table) unless $model->table; |
|
| 910 |
- |
|
| 911 |
- # Set |
|
| 912 |
- $self->model($model->name, $model); |
|
| 913 |
- |
|
| 914 |
- # View |
|
| 915 |
- $self->view($model->table, $model->view) if $model->view; |
|
| 916 |
- |
|
| 917 |
- # Apply filter |
|
| 918 |
- croak "${name_space}::$model_class filter must be array reference"
|
|
| 919 |
- unless ref $model->filter eq 'ARRAY'; |
|
| 920 |
- $self->apply_filter($model->table, @{$model->filter});
|
|
| 921 |
- } |
|
| 922 |
- return $self; |
|
| 923 |
-} |
|
| 924 |
- |
|
| 925 | 958 |
sub setup_model {
|
| 926 | 959 |
my $self = shift; |
| 927 | 960 |
|
| ... | ... |
@@ -1095,23 +1128,6 @@ sub update_param {
|
| 1095 | 1128 |
return join ' ', @tag; |
| 1096 | 1129 |
} |
| 1097 | 1130 |
|
| 1098 |
-sub view {
|
|
| 1099 |
- my $self = shift; |
|
| 1100 |
- my $name = shift; |
|
| 1101 |
- |
|
| 1102 |
- # View |
|
| 1103 |
- $self->{view} ||= {};
|
|
| 1104 |
- if (@_) {
|
|
| 1105 |
- $self->{view}->{$name} = $_[0];
|
|
| 1106 |
- return $self; |
|
| 1107 |
- } |
|
| 1108 |
- else {
|
|
| 1109 |
- return $name && $self->{view}->{$name}
|
|
| 1110 |
- ? "(" . $self->{view}->{$name} . ") as $name"
|
|
| 1111 |
- : undef; |
|
| 1112 |
- } |
|
| 1113 |
-} |
|
| 1114 |
- |
|
| 1115 | 1131 |
sub where {
|
| 1116 | 1132 |
my $self = shift; |
| 1117 | 1133 |
|
| ... | ... |
@@ -2211,11 +2227,15 @@ Default is '*' unless C<column> is specified. |
| 2211 | 2227 |
# Default |
| 2212 | 2228 |
$dbi->select(column => '*'); |
| 2213 | 2229 |
|
| 2214 |
-=item C<all_column> EXPERIMENTAL |
|
| 2230 |
+You can use hash option in C<column> |
|
| 2231 |
+ |
|
| 2232 |
+=over 4 |
|
| 2233 |
+ |
|
| 2234 |
+=item all EXPERIMENTAL |
|
| 2215 | 2235 |
|
| 2216 | 2236 |
Colum clause, contains all columns of joined table. This is true or false value |
| 2217 | 2237 |
|
| 2218 |
- $dbi->select(all_column => 1); |
|
| 2238 |
+ $dbi->select(column => {all => 1});
|
|
| 2219 | 2239 |
|
| 2220 | 2240 |
If main table is C<book> and joined table is C<company>, |
| 2221 | 2241 |
This create the following column clause. |
| ... | ... |
@@ -2234,9 +2254,19 @@ C<columns> attribute is set. |
| 2234 | 2254 |
# Generally do the following way before using all_column option |
| 2235 | 2255 |
$dbi->include_model('MyModel')->setup_model;
|
| 2236 | 2256 |
|
| 2237 |
-You can also specify table names to C<all_column>. |
|
| 2257 |
+=item table EXPERIMENTAL |
|
| 2258 |
+ |
|
| 2259 |
+You can also specify table names by C<table> option |
|
| 2238 | 2260 |
|
| 2239 |
- $dbi->select(all_column => ['book', 'company']); |
|
| 2261 |
+ $dbi->select(column => {table => ['book', 'company']});
|
|
| 2262 |
+ |
|
| 2263 |
+=item prepend EXPERIMENTAL |
|
| 2264 |
+ |
|
| 2265 |
+You can add before created statement |
|
| 2266 |
+ |
|
| 2267 |
+ $dbi->select(column => {prepend => 'SOME', all => 1});
|
|
| 2268 |
+ |
|
| 2269 |
+=back |
|
| 2240 | 2270 |
|
| 2241 | 2271 |
=item C<where> |
| 2242 | 2272 |
|
| ... | ... |
@@ -2549,27 +2579,6 @@ Create a new L<DBIx::Custom::Where> object. |
| 2549 | 2579 |
Setup all model objects. |
| 2550 | 2580 |
C<columns> of model object is automatically set, parsing database information. |
| 2551 | 2581 |
|
| 2552 |
-=head2 C<view> EXPERIMENTAL |
|
| 2553 |
- |
|
| 2554 |
- # Register view |
|
| 2555 |
- $dbi->view( |
|
| 2556 |
- book_issue_data |
|
| 2557 |
- => 'select id, DATE(issue_datatime) as issue_date from book'); |
|
| 2558 |
- ); |
|
| 2559 |
- |
|
| 2560 |
- # Get view |
|
| 2561 |
- my $view = $dbi->view('book_issue_date');
|
|
| 2562 |
- |
|
| 2563 |
-View. |
|
| 2564 |
- |
|
| 2565 |
-C<view()> return the following statement when you get a view. |
|
| 2566 |
- |
|
| 2567 |
- (select id, DATE(issue_datetime) from book) as book_issue_date |
|
| 2568 |
- |
|
| 2569 |
-You can use this view in from clause |
|
| 2570 |
- |
|
| 2571 |
- "select issue_date from " . $dbi->view('book_issue_date')
|
|
| 2572 |
- |
|
| 2573 | 2582 |
=head1 Tags |
| 2574 | 2583 |
|
| 2575 | 2584 |
The following tags is available. |
| ... | ... |
@@ -3,7 +3,7 @@ package DBIx::Custom::Model; |
| 3 | 3 |
use strict; |
| 4 | 4 |
use warnings; |
| 5 | 5 |
|
| 6 |
-use base 'DBIx::Custom'; |
|
| 6 |
+use base 'Object::Simple'; |
|
| 7 | 7 |
|
| 8 | 8 |
use Carp 'croak'; |
| 9 | 9 |
|
| ... | ... |
@@ -12,12 +12,33 @@ push @DBIx::Custom::CARP_NOT, __PACKAGE__; |
| 12 | 12 |
|
| 13 | 13 |
__PACKAGE__->attr( |
| 14 | 14 |
['dbi', 'name', 'table', 'view'], |
| 15 |
+ table_alias => sub { {} },
|
|
| 15 | 16 |
columns => sub { [] },
|
| 16 | 17 |
filter => sub { [] },
|
| 17 | 18 |
join => sub { [] },
|
| 18 | 19 |
primary_key => sub { [] }
|
| 19 | 20 |
); |
| 20 | 21 |
|
| 22 |
+our $AUTOLOAD; |
|
| 23 |
+ |
|
| 24 |
+sub AUTOLOAD {
|
|
| 25 |
+ my $self = shift; |
|
| 26 |
+ |
|
| 27 |
+ # Method name |
|
| 28 |
+ my ($package, $mname) = $AUTOLOAD =~ /^([\w\:]+)\:\:(\w+)$/; |
|
| 29 |
+ |
|
| 30 |
+ # Method |
|
| 31 |
+ if (my $dbi_method = $self->dbi->can($mname)) {
|
|
| 32 |
+ $self->dbi->$dbi_method(@_); |
|
| 33 |
+ } |
|
| 34 |
+ elsif (my $dbh_method = $self->dbi->dbh->can($mname)) {
|
|
| 35 |
+ $self->dbi->dbh->$dbh_method(@_); |
|
| 36 |
+ } |
|
| 37 |
+ else {
|
|
| 38 |
+ croak qq/Can't locate object method "$mname" via "$package"/ |
|
| 39 |
+ } |
|
| 40 |
+} |
|
| 41 |
+ |
|
| 21 | 42 |
sub column_clause {
|
| 22 | 43 |
my $self = shift; |
| 23 | 44 |
|
| ... | ... |
@@ -43,6 +64,38 @@ sub column_clause {
|
| 43 | 64 |
return join (', ', @column);
|
| 44 | 65 |
} |
| 45 | 66 |
|
| 67 |
+sub mycolumn {
|
|
| 68 |
+ my ($self, $columns) = @_; |
|
| 69 |
+ |
|
| 70 |
+ my $table = $self->table || ''; |
|
| 71 |
+ $columns ||= $self->columns; |
|
| 72 |
+ |
|
| 73 |
+ my @column; |
|
| 74 |
+ push @column, "$table.$_ as $_" for @$columns; |
|
| 75 |
+ |
|
| 76 |
+ return join (', ', @column);
|
|
| 77 |
+} |
|
| 78 |
+ |
|
| 79 |
+sub column {
|
|
| 80 |
+ my ($self, $table, $columns) = @_; |
|
| 81 |
+ |
|
| 82 |
+ $self->{_table_alias} ||= {};
|
|
| 83 |
+ my $dist; |
|
| 84 |
+ $dist = $self->dbi->{_table_alias}{$table}
|
|
| 85 |
+ ? $self->dbi->{_table_alias}{$table}
|
|
| 86 |
+ : $table; |
|
| 87 |
+ |
|
| 88 |
+ $self->dbi->{_model_from} ||= {};
|
|
| 89 |
+ my $model = $self->dbi->{_model_from}->{$dist};
|
|
| 90 |
+ |
|
| 91 |
+ $columns ||= $self->model($model)->columns; |
|
| 92 |
+ |
|
| 93 |
+ my @column; |
|
| 94 |
+ push @column, "$table.$_ as ${table}__$_" for @$columns;
|
|
| 95 |
+ |
|
| 96 |
+ return join (', ', @column);
|
|
| 97 |
+} |
|
| 98 |
+ |
|
| 46 | 99 |
sub delete {
|
| 47 | 100 |
my $self = shift; |
| 48 | 101 |
$self->dbi->delete(table => $self->table, @_); |
| ... | ... |
@@ -110,7 +163,6 @@ sub update_all {
|
| 110 | 163 |
$self->dbi->update_all(table => $self->table, @_); |
| 111 | 164 |
} |
| 112 | 165 |
|
| 113 |
- |
|
| 114 | 166 |
sub update_at {
|
| 115 | 167 |
my $self = shift; |
| 116 | 168 |
|
| ... | ... |
@@ -147,7 +199,7 @@ L<DBIx::Custom> object. |
| 147 | 199 |
my $dbi = $model->filter |
| 148 | 200 |
$model = $model->filter({out => 'tp_to_date', in => 'date_to_tp'});
|
| 149 | 201 |
|
| 150 |
-This filter is applied when L<DBIx::Custom> C<include_model()> is called. |
|
| 202 |
+This filter is applied when L<DBIx::Custom>'s C<include_model()> is called. |
|
| 151 | 203 |
|
| 152 | 204 |
=head2 C<name> |
| 153 | 205 |
|
| ... | ... |
@@ -163,22 +215,22 @@ Model name. |
| 163 | 215 |
['left outer join company on book.company_id = company.id'] |
| 164 | 216 |
); |
| 165 | 217 |
|
| 166 |
-Default join clause. This is used by C<select()>. |
|
| 218 |
+Join clause, this is used as C<select()>'s C<join> option. |
|
| 167 | 219 |
|
| 168 | 220 |
=head2 C<table> |
| 169 | 221 |
|
| 170 | 222 |
my $table = $model->table; |
| 171 | 223 |
$model = $model->table('book');
|
| 172 | 224 |
|
| 173 |
-Table name. Model name and table name is different. |
|
| 174 |
-Table name is real table name in database. |
|
| 225 |
+Table name, this is used as C<select()> C<table> option. |
|
| 226 |
+Generally, this is automatically set from class name. |
|
| 175 | 227 |
|
| 176 | 228 |
=head2 C<primary_key> |
| 177 | 229 |
|
| 178 | 230 |
my $primary_key = $model->primary_key; |
| 179 | 231 |
$model = $model->primary_key(['id', 'number']); |
| 180 | 232 |
|
| 181 |
-Foreign key. This is used by C<insert_at>,C<update_at()>, |
|
| 233 |
+Foreign key, this is used as C<primary_key> of C<insert_at>,C<update_at()>, |
|
| 182 | 234 |
C<delete_at()>,C<select_at()>. |
| 183 | 235 |
|
| 184 | 236 |
=head2 C<view> |
| ... | ... |
@@ -1804,30 +1804,41 @@ $dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
|
| 1804 | 1804 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3});
|
| 1805 | 1805 |
$model = $dbi->model('table1');
|
| 1806 | 1806 |
$result = $model->select_at( |
| 1807 |
- all_column => ['table1', 'table2'], |
|
| 1807 |
+ column => {table => ['table1', 'table2'], prepend => 'table1.key1 as key1_1,'},
|
|
| 1808 | 1808 |
where => 1 |
| 1809 | 1809 |
); |
| 1810 | 1810 |
is_deeply($result->fetch_hash_first, |
| 1811 |
- {key1 => 1, key2 => 2, table2__key1 => 1, table2__key3 => 3});
|
|
| 1812 |
-$result = $model->select(all_column => 1); |
|
| 1811 |
+ {key1_1 => 1, key1 => 1, key2 => 2, table2__key1 => 1, table2__key3 => 3});
|
|
| 1812 |
+$result = $model->select(column => {all => 1});
|
|
| 1813 | 1813 |
is_deeply($result->fetch_hash_first, |
| 1814 | 1814 |
{key1 => 1, key2 => 2, table2__key1 => 1, table2__key3 => 3});
|
| 1815 | 1815 |
|
| 1816 |
-test 'view'; |
|
| 1817 |
-$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 1816 |
+test 'mycolumn'; |
|
| 1817 |
+$dbi = MyDBI8->connect($NEW_ARGS->{0});
|
|
| 1818 | 1818 |
$dbi->execute($CREATE_TABLE->{0});
|
| 1819 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => ' a '});
|
|
| 1820 |
-$dbi->view('table1_trim' => 'select key1, trim(key2) as key2 from table1');
|
|
| 1821 |
-$result = $dbi->select( |
|
| 1822 |
- table => 'table1', |
|
| 1823 |
- column => ['table1_trim.key2 as table1_trim__key2'], |
|
| 1824 |
- join => ["left outer join " . $dbi->view('table1_trim') . " on table1.key1 = table1_trim.key1"]
|
|
| 1819 |
+$dbi->execute($CREATE_TABLE->{2});
|
|
| 1820 |
+$dbi->setup_model; |
|
| 1821 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
|
|
| 1822 |
+$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3});
|
|
| 1823 |
+$model = $dbi->model('table1');
|
|
| 1824 |
+$result = $model->select_at( |
|
| 1825 |
+ column => [ |
|
| 1826 |
+ $model->mycolumn, |
|
| 1827 |
+ $model->column('table2')
|
|
| 1828 |
+ ] |
|
| 1825 | 1829 |
); |
| 1826 |
-is($result->fetch_hash_first->{'table1_trim__key2'}, 'a');
|
|
| 1827 |
- |
|
| 1828 |
-$result = $dbi->select(table => 'table1_trim'); |
|
| 1829 |
-is_deeply($result->fetch_hash_first, {key1 => 1, key2 => 'a'});
|
|
| 1830 |
+is_deeply($result->fetch_hash_first, |
|
| 1831 |
+ {key1 => 1, key2 => 2, table2__key1 => 1, table2__key3 => 3});
|
|
| 1832 |
+$result = $model->select_at( |
|
| 1833 |
+ column => [ |
|
| 1834 |
+ $model->mycolumn(['key1']), |
|
| 1835 |
+ $model->column(table2 => ['key1']) |
|
| 1836 |
+ ] |
|
| 1837 |
+); |
|
| 1838 |
+is_deeply($result->fetch_hash_first, |
|
| 1839 |
+ {key1 => 1, table2__key1 => 1});
|
|
| 1830 | 1840 |
|
| 1841 |
+test 'dbi method from model'; |
|
| 1831 | 1842 |
{
|
| 1832 | 1843 |
package MyDBI9; |
| 1833 | 1844 |
|
| ... | ... |
@@ -1843,6 +1854,24 @@ is_deeply($result->fetch_hash_first, {key1 => 1, key2 => 'a'});
|
| 1843 | 1854 |
} |
| 1844 | 1855 |
$dbi = MyDBI9->connect($NEW_ARGS->{0});
|
| 1845 | 1856 |
$dbi->execute($CREATE_TABLE->{0});
|
| 1846 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => ' a '});
|
|
| 1847 |
-$result = $dbi->model('table1_trim')->select;
|
|
| 1848 |
-is_deeply($result->fetch_hash_first, {key1 => 1, key2 => 'a'});
|
|
| 1857 |
+$model = $dbi->model('table1');
|
|
| 1858 |
+eval{$model->execute('select * from table1')};
|
|
| 1859 |
+ok(!$@); |
|
| 1860 |
+ |
|
| 1861 |
+test 'table_alias'; |
|
| 1862 |
+$dbi = MyDBI9->connect($NEW_ARGS->{0});
|
|
| 1863 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 1864 |
+$dbi->execute($CREATE_TABLE->{2});
|
|
| 1865 |
+$dbi->setup_model; |
|
| 1866 |
+$dbi->execute('insert into table1 (key1, key2) values (1, 2);');
|
|
| 1867 |
+$dbi->execute('insert into table2 (key1, key3) values (1, 4);');
|
|
| 1868 |
+$model = $dbi->model('table1');
|
|
| 1869 |
+$result = $model->select( |
|
| 1870 |
+ column => [ |
|
| 1871 |
+ $model->column('table2_alias')
|
|
| 1872 |
+ ], |
|
| 1873 |
+ where => {'table2_alias.key3' => 2}
|
|
| 1874 |
+); |
|
| 1875 |
+is_deeply($result->fetch_hash_first, |
|
| 1876 |
+ {table2_alias__key1 => 1, table2_alias__key3 => 48});
|
|
| 1877 |
+ |
| ... | ... |
@@ -2,4 +2,9 @@ package MyModel8::table1; |
| 2 | 2 |
|
| 3 | 3 |
use base 'MyModel8'; |
| 4 | 4 |
|
| 5 |
+__PACKAGE__->attr(join => sub { ['left join table2 as table2_alias on table1.key1 = table2_alias.key1'] });
|
|
| 6 |
+ |
|
| 7 |
+__PACKAGE__->attr(table_alias => sub { {'table2_alias' => 'table2'} });
|
|
| 8 |
+ |
|
| 9 |
+ |
|
| 5 | 10 |
1; |
| ... | ... |
@@ -1,7 +0,0 @@ |
| 1 |
-package MyModel8::table1_trim; |
|
| 2 |
- |
|
| 3 |
-use base 'MyModel8'; |
|
| 4 |
- |
|
| 5 |
-__PACKAGE__->attr(view => 'select key1, trim(key2) as key2 from table1'); |
|
| 6 |
- |
|
| 7 |
-1; |
| ... | ... |
@@ -0,0 +1,11 @@ |
| 1 |
+package MyModel8::table2; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel8'; |
|
| 4 |
+ |
|
| 5 |
+__PACKAGE__->attr(filter => sub {
|
|
| 6 |
+ [ |
|
| 7 |
+ key3 => {out => sub { $_[0] * 2}, in => sub { $_[0] * 3}, end => sub { $_[0] * 4 }}
|
|
| 8 |
+ ] |
|
| 9 |
+}); |
|
| 10 |
+ |
|
| 11 |
+1; |
| ... | ... |
@@ -96,7 +96,6 @@ $rows = $dbi->select( |
| 96 | 96 |
is_deeply($rows, [{key1 => 1, key2 => 2}]);
|
| 97 | 97 |
$dbi->delete_all(table => 'table1'); |
| 98 | 98 |
|
| 99 |
- |
|
| 100 | 99 |
test 'fork'; |
| 101 | 100 |
{
|
| 102 | 101 |
$dbi = DBIx::Custom->connect( |