├── .github └── workflows │ ├── build-deployment-container.yml │ ├── build-production-container.yml │ └── test.yml ├── .gitignore ├── .perltidyrc ├── .tidyallrc ├── .travis.yml ├── Dockerfile ├── README.mkdn ├── cpanfile ├── cpanfile.snapshot ├── cron ├── crontab ├── update.pl └── wrapper.sh ├── deploy ├── build.sh ├── push.sh └── vars.sh ├── docker-compose.yml ├── lib ├── GMC.pm └── GMC │ ├── Controller │ └── Root.pm │ ├── Cron │ └── Update.pm │ └── Util.pm ├── nginx.conf ├── postinstall ├── sample-environment.json ├── script └── app.pl ├── static ├── cpan.png ├── favicon.ico ├── github.png ├── robots.txt ├── screen.css └── update.log.txt ├── t └── basic.t └── templates ├── layouts └── default.html.ep ├── parts ├── repo.html.ep └── user.html.ep └── root ├── about.html.ep ├── faq.html.ep ├── list.html.ep ├── recent.html.ep └── view.html.ep /.github/workflows/build-deployment-container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build deployment container 3 | on: 4 | push: 5 | branches: 6 | - prod 7 | - staging 8 | workflow_dispatch: 9 | jobs: 10 | docker: 11 | runs-on: ubuntu-22.04 12 | name: Docker Push 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Docker build 16 | run: docker build . -t metacpan/github-meets-cpan:$GITHUB_SHA 17 | - name: docker-compose up 18 | run: docker-compose up -d github-meets-cpan 19 | - name: run Perl tests 20 | run: docker-compose exec -T github-meets-cpan carton exec prove -lvr t 21 | - name: docker-compose down 22 | run: docker-compose down 23 | - name: Log in to Docker Hub 24 | uses: docker/login-action@v2 25 | with: 26 | username: ${{ secrets.DOCKER_HUB_USER }} 27 | password: ${{ secrets.DOCKER_HUB_TOKEN }} 28 | - name: Push build to Docker hub 29 | run: docker push metacpan/github-meets-cpan:$GITHUB_SHA 30 | -------------------------------------------------------------------------------- /.github/workflows/build-production-container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build deployment container 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | jobs: 9 | docker: 10 | runs-on: ubuntu-22.04 11 | name: Docker Push 12 | steps: 13 | - uses: actions/checkout@v3 14 | - name: docker build 15 | run: docker build . -t metacpan/github-meets-cpan:latest 16 | - name: docker-compose up 17 | run: docker-compose up -d github-meets-cpan 18 | - name: run Perl tests 19 | run: docker-compose exec -T github-meets-cpan carton exec prove -lvr t 20 | - name: docker-compose down 21 | run: docker-compose down 22 | - name: Log in to Docker Hub 23 | uses: docker/login-action@v2 24 | with: 25 | username: ${{ secrets.DOCKER_HUB_USER }} 26 | password: ${{ secrets.DOCKER_HUB_TOKEN }} 27 | - name: Push build to Docker Hub 28 | run: docker push metacpan/github-meets-cpan:latest 29 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Docker build 3 | on: [pull_request,workflow_dispatch] 4 | 5 | jobs: 6 | docker: 7 | runs-on: ubuntu-22.04 8 | name: Test 9 | steps: 10 | - uses: actions/checkout@v3 11 | - name: docker build 12 | run: docker build . -t metacpan/github-meets-cpan:latest 13 | - name: docker-compose up 14 | run: docker-compose up -d github-meets-cpan 15 | - name: run Perl tests 16 | run: docker-compose exec -T github-meets-cpan carton exec prove -lvr t 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | cover_db/ 3 | /log/*.log 4 | static/update.log.txt 5 | var/ 6 | .tidyall.d/ 7 | environment.json 8 | -------------------------------------------------------------------------------- /.perltidyrc: -------------------------------------------------------------------------------- 1 | -pbp 2 | -nst 3 | 4 | # Break a line after opening/before closing token. 5 | -vt=0 6 | -vtc=0 7 | -------------------------------------------------------------------------------- /.tidyallrc: -------------------------------------------------------------------------------- 1 | [PerlTidy] 2 | select = {bin,lib,t}/**/*.{pl,pm,t,psgi} 3 | select = app.psgi 4 | argv = --profile=$ROOT/.perltidyrc 5 | 6 | [SortLines::Naturally] 7 | select = .gitignore 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | services: 3 | - mongodb 4 | - docker 5 | 6 | language: perl 7 | 8 | perl: 9 | - '5.28' 10 | 11 | env: 12 | global: 13 | - AUTHOR_TESTING=0 14 | - MONGODB_HOST=127.0.0.1 15 | - RELEASE_TESTING=0 16 | - DOCKER_IMAGE_NAME=github-meets-cpan 17 | # only deploy on the upstream repo 18 | - DEPLOY_REPO_SLUG=metacpan/github-meets-cpan 19 | 20 | addons: 21 | apt: 22 | packages: 23 | - aspell 24 | - aspell-en 25 | 26 | before_install: 27 | - git clone git://github.com/travis-perl/helpers ~/travis-perl-helpers 28 | - source ~/travis-perl-helpers/init 29 | - cpanm -n App::cpm Carton::Snapshot 30 | 31 | install: 32 | - cpan-install --coverage # installs coverage prereqs, if enabled 33 | - AUTHOR_TESTING=0 cpm install -g --cpanfile cpanfile 34 | 35 | before_script: 36 | - coverage-setup 37 | 38 | script: 39 | - prove -lvr -j$(test-jobs) t 40 | 41 | after_success: 42 | - coverage-report 43 | - deploy/build.sh 44 | 45 | cache: 46 | directories: 47 | - $HOME/perl5 48 | 49 | matrix: 50 | allow_failures: 51 | - perl: blead 52 | fast_finish: 1 53 | include: 54 | - env: COVERAGE=1 55 | perl: '5.28' 56 | 57 | deploy: 58 | - provider: script 59 | script: 60 | - deploy/push.sh 61 | on: 62 | branch: master 63 | 64 | 65 | ### __app_cisetup__ 66 | # --- 67 | # force_threaded_perls: 0 68 | # perl_caching: 1 69 | 70 | ### __app_cisetup__ 71 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM metacpan/metacpan-base:latest 2 | 3 | COPY . /code 4 | WORKDIR /code 5 | 6 | RUN cpanm --notest Carton && \ 7 | cpanm --notest --local-lib local https://cpan.metacpan.org/authors/id/M/MO/MONGODB/MongoDB-v0.708.4.0.tar.gz && \ 8 | carton install --deployment 9 | 10 | EXPOSE 3000 11 | CMD ["carton", "exec", "morbo", "script/app.pl"] 12 | -------------------------------------------------------------------------------- /README.mkdn: -------------------------------------------------------------------------------- 1 | # GitHub Meets CPAN 2 | 3 | [![Build Status](https://travis-ci.com/metacpan/github-meets-cpan.svg?branch=master)](https://travis-ci.com/metacpan/github-meets-cpan) 4 | 5 | [github-meets-cpan](http://gh.metacpan.org/) 6 | 7 | This project connects GitHub Users to MetaCPAN Users. It uses the 8 | APIs of both sites: First it fetches all users from [MetaCPAN][metacpan] who 9 | have set their GitHub account. After that it fetches all public 10 | information about these users from GitHub. 11 | 12 | It uses [MongoDB][mongo] for storing the data. 13 | The software is written in Perl using the [Mojolicious][mojo] framework. 14 | The app was originally deployed to dotCloud, but is now hosted on metacpan servers. 15 | 16 | It's some sort of an index of CPAN authors and their GitHub 17 | accounts. 18 | 19 | [mojo]: http://mojolicious.org/ 20 | [metacpan]: https://metacpan.org/ 21 | [mongo]: http://www.mongodb.org/ 22 | -------------------------------------------------------------------------------- /cpanfile: -------------------------------------------------------------------------------- 1 | # Fix linter complaints via strict and warnings 2 | use strict; 3 | use warnings; 4 | 5 | requires 'Cpanel::JSON::XS'; 6 | requires 'LWP::UserAgent'; 7 | requires 'LWP::Protocol::https'; 8 | requires 'Mojolicious', '<= 8.14'; 9 | requires 'Mojolicious::Plugin::Mongodb'; 10 | requires 'Path::Tiny'; 11 | requires 'Pithub', '0.01030'; 12 | -------------------------------------------------------------------------------- /cpanfile.snapshot: -------------------------------------------------------------------------------- 1 | # carton snapshot format: version 1.0 2 | DISTRIBUTIONS 3 | Array-Iterator-0.11 4 | pathname: S/SH/SHARYANTO/Array-Iterator-0.11.tar.gz 5 | provides: 6 | Array::Iterator 0.11 7 | Array::Iterator::BiDirectional 0.11 8 | Array::Iterator::Circular 0.11 9 | Array::Iterator::Reusable 0.11 10 | requirements: 11 | ExtUtils::MakeMaker 6.30 12 | Authen-SASL-SASLprep-1.100 13 | pathname: C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz 14 | provides: 15 | Authen::SASL::SASLprep 1.100 16 | requirements: 17 | Test::More 0 18 | Test::NoWarnings 0 19 | Unicode::Stringprep 1 20 | perl 5.006 21 | Authen-SCRAM-0.011 22 | pathname: D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz 23 | provides: 24 | Authen::SCRAM 0.011 25 | Authen::SCRAM::Client 0.011 26 | Authen::SCRAM::Role::Common 0.011 27 | Authen::SCRAM::Server 0.011 28 | requirements: 29 | Authen::SASL::SASLprep 1.100 30 | Carp 0 31 | Crypt::URandom 0 32 | Encode 0 33 | ExtUtils::MakeMaker 6.17 34 | MIME::Base64 0 35 | Moo 1.001000 36 | Moo::Role 1.001000 37 | PBKDF2::Tiny 0.003 38 | Try::Tiny 0 39 | Types::Standard 0 40 | namespace::clean 0 41 | perl 5.008001 42 | strict 0 43 | warnings 0 44 | B-Hooks-EndOfScope-0.24 45 | pathname: E/ET/ETHER/B-Hooks-EndOfScope-0.24.tar.gz 46 | provides: 47 | B::Hooks::EndOfScope 0.24 48 | B::Hooks::EndOfScope::PP 0.24 49 | B::Hooks::EndOfScope::XS 0.24 50 | requirements: 51 | ExtUtils::MakeMaker 0 52 | Hash::Util::FieldHash 0 53 | Module::Implementation 0.05 54 | Scalar::Util 0 55 | Sub::Exporter::Progressive 0.001006 56 | Text::ParseWords 0 57 | Tie::Hash 0 58 | Variable::Magic 0.48 59 | perl 5.006001 60 | strict 0 61 | warnings 0 62 | BSON-XS-v0.6.0 63 | pathname: M/MO/MONGODB/BSON-XS-v0.6.0.tar.gz 64 | provides: 65 | BSON::XS v0.6.0 66 | requirements: 67 | BSON 1.010000 68 | Config::AutoConf 0.22 69 | ExtUtils::MakeMaker 0 70 | Path::Tiny 0.052 71 | XSLoader 0 72 | boolean 0 73 | perl 5.010001 74 | strict 0 75 | version 0 76 | warnings 0 77 | BSON-v1.10.2 78 | pathname: M/MO/MONGODB/BSON-v1.10.2.tar.gz 79 | provides: 80 | BSON v1.10.2 81 | BSON::Binary v1.10.2 82 | BSON::Bool v1.10.2 83 | BSON::Bytes v1.10.2 84 | BSON::Code v1.10.2 85 | BSON::DBPointer v1.10.2 86 | BSON::DBRef v1.10.2 87 | BSON::Decimal128 v1.10.2 88 | BSON::Doc v1.10.2 89 | BSON::Double v1.10.2 90 | BSON::Int32 v1.10.2 91 | BSON::Int64 v1.10.2 92 | BSON::MaxKey v1.10.2 93 | BSON::MinKey v1.10.2 94 | BSON::OID v1.10.2 95 | BSON::ObjectId v1.10.2 96 | BSON::PP v1.10.2 97 | BSON::Raw v1.10.2 98 | BSON::Regex v1.10.2 99 | BSON::String v1.10.2 100 | BSON::Symbol v1.10.2 101 | BSON::Time v1.10.2 102 | BSON::Timestamp v1.10.2 103 | BSON::Types v1.10.2 104 | requirements: 105 | B 0 106 | Carp 0 107 | Crypt::URandom 0 108 | Exporter 0 109 | ExtUtils::MakeMaker 6.17 110 | List::Util 0 111 | MIME::Base64 0 112 | Math::BigFloat 0 113 | Math::BigInt 0 114 | Moo 2.002004 115 | Scalar::Util 0 116 | Sys::Hostname 0 117 | Tie::IxHash 0 118 | Time::HiRes 0 119 | Time::Local 0 120 | base 0 121 | boolean 0.45 122 | constant 0 123 | if 0 124 | mro 0 125 | namespace::clean 0 126 | overload 0 127 | perl 5.010001 128 | re 0 129 | strict 0 130 | threads::shared 0 131 | version 0 132 | warnings 0 133 | Cache-LRU-0.04 134 | pathname: K/KA/KAZUHO/Cache-LRU-0.04.tar.gz 135 | provides: 136 | Cache::LRU 0.04 137 | requirements: 138 | ExtUtils::MakeMaker 6.42 139 | Test::More 0.88 140 | Test::Requires 0 141 | perl 5.008001 142 | Capture-Tiny-0.48 143 | pathname: D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz 144 | provides: 145 | Capture::Tiny 0.48 146 | requirements: 147 | Carp 0 148 | Exporter 0 149 | ExtUtils::MakeMaker 6.17 150 | File::Spec 0 151 | File::Temp 0 152 | IO::Handle 0 153 | Scalar::Util 0 154 | perl 5.006 155 | strict 0 156 | warnings 0 157 | Class-Data-Inheritable-0.08 158 | pathname: T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz 159 | provides: 160 | Class::Data::Inheritable 0.08 161 | requirements: 162 | ExtUtils::MakeMaker 0 163 | Class-Inspector-1.34 164 | pathname: P/PL/PLICEASE/Class-Inspector-1.34.tar.gz 165 | provides: 166 | Class::Inspector 1.34 167 | Class::Inspector::Functions 1.34 168 | requirements: 169 | ExtUtils::MakeMaker 0 170 | File::Spec 0.80 171 | perl 5.006 172 | Class-Load-0.25 173 | pathname: E/ET/ETHER/Class-Load-0.25.tar.gz 174 | provides: 175 | Class::Load 0.25 176 | Class::Load::PP 0.25 177 | requirements: 178 | Carp 0 179 | Data::OptList 0.110 180 | Exporter 0 181 | ExtUtils::MakeMaker 0 182 | Module::Implementation 0.04 183 | Module::Runtime 0.012 184 | Package::Stash 0.14 185 | Scalar::Util 0 186 | Try::Tiny 0 187 | base 0 188 | perl 5.006 189 | strict 0 190 | warnings 0 191 | Class-Load-XS-0.10 192 | pathname: E/ET/ETHER/Class-Load-XS-0.10.tar.gz 193 | provides: 194 | Class::Load::XS 0.10 195 | requirements: 196 | Class::Load 0.20 197 | ExtUtils::MakeMaker 0 198 | XSLoader 0 199 | perl 5.006 200 | strict 0 201 | warnings 0 202 | Class-Method-Modifiers-2.12 203 | pathname: E/ET/ETHER/Class-Method-Modifiers-2.12.tar.gz 204 | provides: 205 | Class::Method::Modifiers 2.12 206 | requirements: 207 | B 0 208 | Carp 0 209 | Exporter 0 210 | ExtUtils::MakeMaker 0 211 | base 0 212 | perl 5.006 213 | strict 0 214 | warnings 0 215 | Class-Singleton-1.5 216 | pathname: S/SH/SHAY/Class-Singleton-1.5.tar.gz 217 | provides: 218 | Class::Singleton 1.5 219 | requirements: 220 | ExtUtils::MakeMaker 0 221 | Class-XSAccessor-1.19 222 | pathname: S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz 223 | provides: 224 | Class::XSAccessor 1.19 225 | Class::XSAccessor::Array 1.19 226 | requirements: 227 | ExtUtils::MakeMaker 0 228 | Test::More 0 229 | Time::HiRes 0 230 | XSLoader 0 231 | perl 5.008 232 | Config-AutoConf-0.317 233 | pathname: R/RE/REHSACK/Config-AutoConf-0.317.tar.gz 234 | provides: 235 | Config::AutoConf 0.317 236 | requirements: 237 | Capture::Tiny 0 238 | Carp 0 239 | Config 0 240 | Cwd 0 241 | Exporter 0 242 | ExtUtils::MakeMaker 0 243 | File::Basename 0 244 | File::Spec 0 245 | File::Temp 0 246 | Text::ParseWords 0 247 | base 0 248 | strict 0 249 | warnings 0 250 | Cpanel-JSON-XS-4.11 251 | pathname: R/RU/RURBAN/Cpanel-JSON-XS-4.11.tar.gz 252 | provides: 253 | Cpanel::JSON::XS 4.11 254 | Cpanel::JSON::XS::Type undef 255 | requirements: 256 | ExtUtils::MakeMaker 0 257 | Pod::Text 2.08 258 | Crypt-URandom-0.36 259 | pathname: D/DD/DDICK/Crypt-URandom-0.36.tar.gz 260 | provides: 261 | Crypt::URandom 0.36 262 | requirements: 263 | Carp 0 264 | English 0 265 | ExtUtils::MakeMaker 0 266 | FileHandle 0 267 | Test::More 0 268 | Data-Dump-1.23 269 | pathname: G/GA/GAAS/Data-Dump-1.23.tar.gz 270 | provides: 271 | Data::Dump 1.23 272 | Data::Dump::FilterContext undef 273 | Data::Dump::Filtered undef 274 | Data::Dump::Trace 0.02 275 | Data::Dump::Trace::Call 0.02 276 | Data::Dump::Trace::Wrapper 0.02 277 | requirements: 278 | ExtUtils::MakeMaker 0 279 | Symbol 0 280 | Test 0 281 | perl 5.006 282 | Data-OptList-0.110 283 | pathname: R/RJ/RJBS/Data-OptList-0.110.tar.gz 284 | provides: 285 | Data::OptList 0.110 286 | requirements: 287 | ExtUtils::MakeMaker 0 288 | List::Util 0 289 | Params::Util 0 290 | Sub::Install 0.921 291 | strict 0 292 | warnings 0 293 | DateTime-1.51 294 | pathname: D/DR/DROLSKY/DateTime-1.51.tar.gz 295 | provides: 296 | DateTime 1.51 297 | DateTime::Duration 1.51 298 | DateTime::Helpers 1.51 299 | DateTime::Infinite 1.51 300 | DateTime::Infinite::Future 1.51 301 | DateTime::Infinite::Past 1.51 302 | DateTime::LeapSecond 1.51 303 | DateTime::PP 1.51 304 | DateTime::PPExtra 1.51 305 | DateTime::Types 1.51 306 | requirements: 307 | Carp 0 308 | DateTime::Locale 1.06 309 | DateTime::TimeZone 2.02 310 | Dist::CheckConflicts 0.02 311 | ExtUtils::MakeMaker 0 312 | POSIX 0 313 | Params::ValidationCompiler 0.26 314 | Scalar::Util 0 315 | Specio 0.18 316 | Specio::Declare 0 317 | Specio::Exporter 0 318 | Specio::Library::Builtins 0 319 | Specio::Library::Numeric 0 320 | Specio::Library::String 0 321 | Try::Tiny 0 322 | XSLoader 0 323 | base 0 324 | integer 0 325 | namespace::autoclean 0.19 326 | overload 0 327 | parent 0 328 | perl 5.008004 329 | strict 0 330 | warnings 0 331 | warnings::register 0 332 | DateTime-Locale-1.24 333 | pathname: D/DR/DROLSKY/DateTime-Locale-1.24.tar.gz 334 | provides: 335 | DateTime::Locale 1.24 336 | DateTime::Locale::Base 1.24 337 | DateTime::Locale::Catalog 1.24 338 | DateTime::Locale::Data 1.24 339 | DateTime::Locale::FromData 1.24 340 | DateTime::Locale::Util 1.24 341 | requirements: 342 | Carp 0 343 | Dist::CheckConflicts 0.02 344 | Exporter 0 345 | ExtUtils::MakeMaker 0 346 | File::ShareDir 0 347 | File::ShareDir::Install 0.03 348 | List::Util 1.45 349 | Params::ValidationCompiler 0.13 350 | Specio::Declare 0 351 | Specio::Library::String 0 352 | namespace::autoclean 0.19 353 | perl 5.008004 354 | strict 0 355 | warnings 0 356 | DateTime-TimeZone-2.35 357 | pathname: D/DR/DROLSKY/DateTime-TimeZone-2.35.tar.gz 358 | provides: 359 | DateTime::TimeZone 2.35 360 | DateTime::TimeZone::Africa::Abidjan 2.35 361 | DateTime::TimeZone::Africa::Accra 2.35 362 | DateTime::TimeZone::Africa::Algiers 2.35 363 | DateTime::TimeZone::Africa::Bissau 2.35 364 | DateTime::TimeZone::Africa::Cairo 2.35 365 | DateTime::TimeZone::Africa::Casablanca 2.35 366 | DateTime::TimeZone::Africa::Ceuta 2.35 367 | DateTime::TimeZone::Africa::El_Aaiun 2.35 368 | DateTime::TimeZone::Africa::Johannesburg 2.35 369 | DateTime::TimeZone::Africa::Juba 2.35 370 | DateTime::TimeZone::Africa::Khartoum 2.35 371 | DateTime::TimeZone::Africa::Lagos 2.35 372 | DateTime::TimeZone::Africa::Maputo 2.35 373 | DateTime::TimeZone::Africa::Monrovia 2.35 374 | DateTime::TimeZone::Africa::Nairobi 2.35 375 | DateTime::TimeZone::Africa::Ndjamena 2.35 376 | DateTime::TimeZone::Africa::Sao_Tome 2.35 377 | DateTime::TimeZone::Africa::Tripoli 2.35 378 | DateTime::TimeZone::Africa::Tunis 2.35 379 | DateTime::TimeZone::Africa::Windhoek 2.35 380 | DateTime::TimeZone::America::Adak 2.35 381 | DateTime::TimeZone::America::Anchorage 2.35 382 | DateTime::TimeZone::America::Araguaina 2.35 383 | DateTime::TimeZone::America::Argentina::Buenos_Aires 2.35 384 | DateTime::TimeZone::America::Argentina::Catamarca 2.35 385 | DateTime::TimeZone::America::Argentina::Cordoba 2.35 386 | DateTime::TimeZone::America::Argentina::Jujuy 2.35 387 | DateTime::TimeZone::America::Argentina::La_Rioja 2.35 388 | DateTime::TimeZone::America::Argentina::Mendoza 2.35 389 | DateTime::TimeZone::America::Argentina::Rio_Gallegos 2.35 390 | DateTime::TimeZone::America::Argentina::Salta 2.35 391 | DateTime::TimeZone::America::Argentina::San_Juan 2.35 392 | DateTime::TimeZone::America::Argentina::San_Luis 2.35 393 | DateTime::TimeZone::America::Argentina::Tucuman 2.35 394 | DateTime::TimeZone::America::Argentina::Ushuaia 2.35 395 | DateTime::TimeZone::America::Asuncion 2.35 396 | DateTime::TimeZone::America::Atikokan 2.35 397 | DateTime::TimeZone::America::Bahia 2.35 398 | DateTime::TimeZone::America::Bahia_Banderas 2.35 399 | DateTime::TimeZone::America::Barbados 2.35 400 | DateTime::TimeZone::America::Belem 2.35 401 | DateTime::TimeZone::America::Belize 2.35 402 | DateTime::TimeZone::America::Blanc_Sablon 2.35 403 | DateTime::TimeZone::America::Boa_Vista 2.35 404 | DateTime::TimeZone::America::Bogota 2.35 405 | DateTime::TimeZone::America::Boise 2.35 406 | DateTime::TimeZone::America::Cambridge_Bay 2.35 407 | DateTime::TimeZone::America::Campo_Grande 2.35 408 | DateTime::TimeZone::America::Cancun 2.35 409 | DateTime::TimeZone::America::Caracas 2.35 410 | DateTime::TimeZone::America::Cayenne 2.35 411 | DateTime::TimeZone::America::Chicago 2.35 412 | DateTime::TimeZone::America::Chihuahua 2.35 413 | DateTime::TimeZone::America::Costa_Rica 2.35 414 | DateTime::TimeZone::America::Creston 2.35 415 | DateTime::TimeZone::America::Cuiaba 2.35 416 | DateTime::TimeZone::America::Curacao 2.35 417 | DateTime::TimeZone::America::Danmarkshavn 2.35 418 | DateTime::TimeZone::America::Dawson 2.35 419 | DateTime::TimeZone::America::Dawson_Creek 2.35 420 | DateTime::TimeZone::America::Denver 2.35 421 | DateTime::TimeZone::America::Detroit 2.35 422 | DateTime::TimeZone::America::Edmonton 2.35 423 | DateTime::TimeZone::America::Eirunepe 2.35 424 | DateTime::TimeZone::America::El_Salvador 2.35 425 | DateTime::TimeZone::America::Fort_Nelson 2.35 426 | DateTime::TimeZone::America::Fortaleza 2.35 427 | DateTime::TimeZone::America::Glace_Bay 2.35 428 | DateTime::TimeZone::America::Godthab 2.35 429 | DateTime::TimeZone::America::Goose_Bay 2.35 430 | DateTime::TimeZone::America::Grand_Turk 2.35 431 | DateTime::TimeZone::America::Guatemala 2.35 432 | DateTime::TimeZone::America::Guayaquil 2.35 433 | DateTime::TimeZone::America::Guyana 2.35 434 | DateTime::TimeZone::America::Halifax 2.35 435 | DateTime::TimeZone::America::Havana 2.35 436 | DateTime::TimeZone::America::Hermosillo 2.35 437 | DateTime::TimeZone::America::Indiana::Indianapolis 2.35 438 | DateTime::TimeZone::America::Indiana::Knox 2.35 439 | DateTime::TimeZone::America::Indiana::Marengo 2.35 440 | DateTime::TimeZone::America::Indiana::Petersburg 2.35 441 | DateTime::TimeZone::America::Indiana::Tell_City 2.35 442 | DateTime::TimeZone::America::Indiana::Vevay 2.35 443 | DateTime::TimeZone::America::Indiana::Vincennes 2.35 444 | DateTime::TimeZone::America::Indiana::Winamac 2.35 445 | DateTime::TimeZone::America::Inuvik 2.35 446 | DateTime::TimeZone::America::Iqaluit 2.35 447 | DateTime::TimeZone::America::Jamaica 2.35 448 | DateTime::TimeZone::America::Juneau 2.35 449 | DateTime::TimeZone::America::Kentucky::Louisville 2.35 450 | DateTime::TimeZone::America::Kentucky::Monticello 2.35 451 | DateTime::TimeZone::America::La_Paz 2.35 452 | DateTime::TimeZone::America::Lima 2.35 453 | DateTime::TimeZone::America::Los_Angeles 2.35 454 | DateTime::TimeZone::America::Maceio 2.35 455 | DateTime::TimeZone::America::Managua 2.35 456 | DateTime::TimeZone::America::Manaus 2.35 457 | DateTime::TimeZone::America::Martinique 2.35 458 | DateTime::TimeZone::America::Matamoros 2.35 459 | DateTime::TimeZone::America::Mazatlan 2.35 460 | DateTime::TimeZone::America::Menominee 2.35 461 | DateTime::TimeZone::America::Merida 2.35 462 | DateTime::TimeZone::America::Metlakatla 2.35 463 | DateTime::TimeZone::America::Mexico_City 2.35 464 | DateTime::TimeZone::America::Miquelon 2.35 465 | DateTime::TimeZone::America::Moncton 2.35 466 | DateTime::TimeZone::America::Monterrey 2.35 467 | DateTime::TimeZone::America::Montevideo 2.35 468 | DateTime::TimeZone::America::Nassau 2.35 469 | DateTime::TimeZone::America::New_York 2.35 470 | DateTime::TimeZone::America::Nipigon 2.35 471 | DateTime::TimeZone::America::Nome 2.35 472 | DateTime::TimeZone::America::Noronha 2.35 473 | DateTime::TimeZone::America::North_Dakota::Beulah 2.35 474 | DateTime::TimeZone::America::North_Dakota::Center 2.35 475 | DateTime::TimeZone::America::North_Dakota::New_Salem 2.35 476 | DateTime::TimeZone::America::Ojinaga 2.35 477 | DateTime::TimeZone::America::Panama 2.35 478 | DateTime::TimeZone::America::Pangnirtung 2.35 479 | DateTime::TimeZone::America::Paramaribo 2.35 480 | DateTime::TimeZone::America::Phoenix 2.35 481 | DateTime::TimeZone::America::Port_au_Prince 2.35 482 | DateTime::TimeZone::America::Port_of_Spain 2.35 483 | DateTime::TimeZone::America::Porto_Velho 2.35 484 | DateTime::TimeZone::America::Puerto_Rico 2.35 485 | DateTime::TimeZone::America::Punta_Arenas 2.35 486 | DateTime::TimeZone::America::Rainy_River 2.35 487 | DateTime::TimeZone::America::Rankin_Inlet 2.35 488 | DateTime::TimeZone::America::Recife 2.35 489 | DateTime::TimeZone::America::Regina 2.35 490 | DateTime::TimeZone::America::Resolute 2.35 491 | DateTime::TimeZone::America::Rio_Branco 2.35 492 | DateTime::TimeZone::America::Santarem 2.35 493 | DateTime::TimeZone::America::Santiago 2.35 494 | DateTime::TimeZone::America::Santo_Domingo 2.35 495 | DateTime::TimeZone::America::Sao_Paulo 2.35 496 | DateTime::TimeZone::America::Scoresbysund 2.35 497 | DateTime::TimeZone::America::Sitka 2.35 498 | DateTime::TimeZone::America::St_Johns 2.35 499 | DateTime::TimeZone::America::Swift_Current 2.35 500 | DateTime::TimeZone::America::Tegucigalpa 2.35 501 | DateTime::TimeZone::America::Thule 2.35 502 | DateTime::TimeZone::America::Thunder_Bay 2.35 503 | DateTime::TimeZone::America::Tijuana 2.35 504 | DateTime::TimeZone::America::Toronto 2.35 505 | DateTime::TimeZone::America::Vancouver 2.35 506 | DateTime::TimeZone::America::Whitehorse 2.35 507 | DateTime::TimeZone::America::Winnipeg 2.35 508 | DateTime::TimeZone::America::Yakutat 2.35 509 | DateTime::TimeZone::America::Yellowknife 2.35 510 | DateTime::TimeZone::Antarctica::Casey 2.35 511 | DateTime::TimeZone::Antarctica::Davis 2.35 512 | DateTime::TimeZone::Antarctica::DumontDUrville 2.35 513 | DateTime::TimeZone::Antarctica::Macquarie 2.35 514 | DateTime::TimeZone::Antarctica::Mawson 2.35 515 | DateTime::TimeZone::Antarctica::Palmer 2.35 516 | DateTime::TimeZone::Antarctica::Rothera 2.35 517 | DateTime::TimeZone::Antarctica::Syowa 2.35 518 | DateTime::TimeZone::Antarctica::Troll 2.35 519 | DateTime::TimeZone::Antarctica::Vostok 2.35 520 | DateTime::TimeZone::Asia::Almaty 2.35 521 | DateTime::TimeZone::Asia::Amman 2.35 522 | DateTime::TimeZone::Asia::Anadyr 2.35 523 | DateTime::TimeZone::Asia::Aqtau 2.35 524 | DateTime::TimeZone::Asia::Aqtobe 2.35 525 | DateTime::TimeZone::Asia::Ashgabat 2.35 526 | DateTime::TimeZone::Asia::Atyrau 2.35 527 | DateTime::TimeZone::Asia::Baghdad 2.35 528 | DateTime::TimeZone::Asia::Baku 2.35 529 | DateTime::TimeZone::Asia::Bangkok 2.35 530 | DateTime::TimeZone::Asia::Barnaul 2.35 531 | DateTime::TimeZone::Asia::Beirut 2.35 532 | DateTime::TimeZone::Asia::Bishkek 2.35 533 | DateTime::TimeZone::Asia::Brunei 2.35 534 | DateTime::TimeZone::Asia::Chita 2.35 535 | DateTime::TimeZone::Asia::Choibalsan 2.35 536 | DateTime::TimeZone::Asia::Colombo 2.35 537 | DateTime::TimeZone::Asia::Damascus 2.35 538 | DateTime::TimeZone::Asia::Dhaka 2.35 539 | DateTime::TimeZone::Asia::Dili 2.35 540 | DateTime::TimeZone::Asia::Dubai 2.35 541 | DateTime::TimeZone::Asia::Dushanbe 2.35 542 | DateTime::TimeZone::Asia::Famagusta 2.35 543 | DateTime::TimeZone::Asia::Gaza 2.35 544 | DateTime::TimeZone::Asia::Hebron 2.35 545 | DateTime::TimeZone::Asia::Ho_Chi_Minh 2.35 546 | DateTime::TimeZone::Asia::Hong_Kong 2.35 547 | DateTime::TimeZone::Asia::Hovd 2.35 548 | DateTime::TimeZone::Asia::Irkutsk 2.35 549 | DateTime::TimeZone::Asia::Jakarta 2.35 550 | DateTime::TimeZone::Asia::Jayapura 2.35 551 | DateTime::TimeZone::Asia::Jerusalem 2.35 552 | DateTime::TimeZone::Asia::Kabul 2.35 553 | DateTime::TimeZone::Asia::Kamchatka 2.35 554 | DateTime::TimeZone::Asia::Karachi 2.35 555 | DateTime::TimeZone::Asia::Kathmandu 2.35 556 | DateTime::TimeZone::Asia::Khandyga 2.35 557 | DateTime::TimeZone::Asia::Kolkata 2.35 558 | DateTime::TimeZone::Asia::Krasnoyarsk 2.35 559 | DateTime::TimeZone::Asia::Kuala_Lumpur 2.35 560 | DateTime::TimeZone::Asia::Kuching 2.35 561 | DateTime::TimeZone::Asia::Macau 2.35 562 | DateTime::TimeZone::Asia::Magadan 2.35 563 | DateTime::TimeZone::Asia::Makassar 2.35 564 | DateTime::TimeZone::Asia::Manila 2.35 565 | DateTime::TimeZone::Asia::Nicosia 2.35 566 | DateTime::TimeZone::Asia::Novokuznetsk 2.35 567 | DateTime::TimeZone::Asia::Novosibirsk 2.35 568 | DateTime::TimeZone::Asia::Omsk 2.35 569 | DateTime::TimeZone::Asia::Oral 2.35 570 | DateTime::TimeZone::Asia::Pontianak 2.35 571 | DateTime::TimeZone::Asia::Pyongyang 2.35 572 | DateTime::TimeZone::Asia::Qatar 2.35 573 | DateTime::TimeZone::Asia::Qostanay 2.35 574 | DateTime::TimeZone::Asia::Qyzylorda 2.35 575 | DateTime::TimeZone::Asia::Riyadh 2.35 576 | DateTime::TimeZone::Asia::Sakhalin 2.35 577 | DateTime::TimeZone::Asia::Samarkand 2.35 578 | DateTime::TimeZone::Asia::Seoul 2.35 579 | DateTime::TimeZone::Asia::Shanghai 2.35 580 | DateTime::TimeZone::Asia::Singapore 2.35 581 | DateTime::TimeZone::Asia::Srednekolymsk 2.35 582 | DateTime::TimeZone::Asia::Taipei 2.35 583 | DateTime::TimeZone::Asia::Tashkent 2.35 584 | DateTime::TimeZone::Asia::Tbilisi 2.35 585 | DateTime::TimeZone::Asia::Tehran 2.35 586 | DateTime::TimeZone::Asia::Thimphu 2.35 587 | DateTime::TimeZone::Asia::Tokyo 2.35 588 | DateTime::TimeZone::Asia::Tomsk 2.35 589 | DateTime::TimeZone::Asia::Ulaanbaatar 2.35 590 | DateTime::TimeZone::Asia::Urumqi 2.35 591 | DateTime::TimeZone::Asia::Ust_Nera 2.35 592 | DateTime::TimeZone::Asia::Vladivostok 2.35 593 | DateTime::TimeZone::Asia::Yakutsk 2.35 594 | DateTime::TimeZone::Asia::Yangon 2.35 595 | DateTime::TimeZone::Asia::Yekaterinburg 2.35 596 | DateTime::TimeZone::Asia::Yerevan 2.35 597 | DateTime::TimeZone::Atlantic::Azores 2.35 598 | DateTime::TimeZone::Atlantic::Bermuda 2.35 599 | DateTime::TimeZone::Atlantic::Canary 2.35 600 | DateTime::TimeZone::Atlantic::Cape_Verde 2.35 601 | DateTime::TimeZone::Atlantic::Faroe 2.35 602 | DateTime::TimeZone::Atlantic::Madeira 2.35 603 | DateTime::TimeZone::Atlantic::Reykjavik 2.35 604 | DateTime::TimeZone::Atlantic::South_Georgia 2.35 605 | DateTime::TimeZone::Atlantic::Stanley 2.35 606 | DateTime::TimeZone::Australia::Adelaide 2.35 607 | DateTime::TimeZone::Australia::Brisbane 2.35 608 | DateTime::TimeZone::Australia::Broken_Hill 2.35 609 | DateTime::TimeZone::Australia::Currie 2.35 610 | DateTime::TimeZone::Australia::Darwin 2.35 611 | DateTime::TimeZone::Australia::Eucla 2.35 612 | DateTime::TimeZone::Australia::Hobart 2.35 613 | DateTime::TimeZone::Australia::Lindeman 2.35 614 | DateTime::TimeZone::Australia::Lord_Howe 2.35 615 | DateTime::TimeZone::Australia::Melbourne 2.35 616 | DateTime::TimeZone::Australia::Perth 2.35 617 | DateTime::TimeZone::Australia::Sydney 2.35 618 | DateTime::TimeZone::CET 2.35 619 | DateTime::TimeZone::CST6CDT 2.35 620 | DateTime::TimeZone::Catalog 2.35 621 | DateTime::TimeZone::EET 2.35 622 | DateTime::TimeZone::EST 2.35 623 | DateTime::TimeZone::EST5EDT 2.35 624 | DateTime::TimeZone::Europe::Amsterdam 2.35 625 | DateTime::TimeZone::Europe::Andorra 2.35 626 | DateTime::TimeZone::Europe::Astrakhan 2.35 627 | DateTime::TimeZone::Europe::Athens 2.35 628 | DateTime::TimeZone::Europe::Belgrade 2.35 629 | DateTime::TimeZone::Europe::Berlin 2.35 630 | DateTime::TimeZone::Europe::Brussels 2.35 631 | DateTime::TimeZone::Europe::Bucharest 2.35 632 | DateTime::TimeZone::Europe::Budapest 2.35 633 | DateTime::TimeZone::Europe::Chisinau 2.35 634 | DateTime::TimeZone::Europe::Copenhagen 2.35 635 | DateTime::TimeZone::Europe::Dublin 2.35 636 | DateTime::TimeZone::Europe::Gibraltar 2.35 637 | DateTime::TimeZone::Europe::Helsinki 2.35 638 | DateTime::TimeZone::Europe::Istanbul 2.35 639 | DateTime::TimeZone::Europe::Kaliningrad 2.35 640 | DateTime::TimeZone::Europe::Kiev 2.35 641 | DateTime::TimeZone::Europe::Kirov 2.35 642 | DateTime::TimeZone::Europe::Lisbon 2.35 643 | DateTime::TimeZone::Europe::London 2.35 644 | DateTime::TimeZone::Europe::Luxembourg 2.35 645 | DateTime::TimeZone::Europe::Madrid 2.35 646 | DateTime::TimeZone::Europe::Malta 2.35 647 | DateTime::TimeZone::Europe::Minsk 2.35 648 | DateTime::TimeZone::Europe::Monaco 2.35 649 | DateTime::TimeZone::Europe::Moscow 2.35 650 | DateTime::TimeZone::Europe::Oslo 2.35 651 | DateTime::TimeZone::Europe::Paris 2.35 652 | DateTime::TimeZone::Europe::Prague 2.35 653 | DateTime::TimeZone::Europe::Riga 2.35 654 | DateTime::TimeZone::Europe::Rome 2.35 655 | DateTime::TimeZone::Europe::Samara 2.35 656 | DateTime::TimeZone::Europe::Saratov 2.35 657 | DateTime::TimeZone::Europe::Simferopol 2.35 658 | DateTime::TimeZone::Europe::Sofia 2.35 659 | DateTime::TimeZone::Europe::Stockholm 2.35 660 | DateTime::TimeZone::Europe::Tallinn 2.35 661 | DateTime::TimeZone::Europe::Tirane 2.35 662 | DateTime::TimeZone::Europe::Ulyanovsk 2.35 663 | DateTime::TimeZone::Europe::Uzhgorod 2.35 664 | DateTime::TimeZone::Europe::Vienna 2.35 665 | DateTime::TimeZone::Europe::Vilnius 2.35 666 | DateTime::TimeZone::Europe::Volgograd 2.35 667 | DateTime::TimeZone::Europe::Warsaw 2.35 668 | DateTime::TimeZone::Europe::Zaporozhye 2.35 669 | DateTime::TimeZone::Europe::Zurich 2.35 670 | DateTime::TimeZone::Floating 2.35 671 | DateTime::TimeZone::HST 2.35 672 | DateTime::TimeZone::Indian::Chagos 2.35 673 | DateTime::TimeZone::Indian::Christmas 2.35 674 | DateTime::TimeZone::Indian::Cocos 2.35 675 | DateTime::TimeZone::Indian::Kerguelen 2.35 676 | DateTime::TimeZone::Indian::Mahe 2.35 677 | DateTime::TimeZone::Indian::Maldives 2.35 678 | DateTime::TimeZone::Indian::Mauritius 2.35 679 | DateTime::TimeZone::Indian::Reunion 2.35 680 | DateTime::TimeZone::Local 2.35 681 | DateTime::TimeZone::Local::Android 2.35 682 | DateTime::TimeZone::Local::Unix 2.35 683 | DateTime::TimeZone::Local::VMS 2.35 684 | DateTime::TimeZone::MET 2.35 685 | DateTime::TimeZone::MST 2.35 686 | DateTime::TimeZone::MST7MDT 2.35 687 | DateTime::TimeZone::OffsetOnly 2.35 688 | DateTime::TimeZone::OlsonDB 2.35 689 | DateTime::TimeZone::OlsonDB::Change 2.35 690 | DateTime::TimeZone::OlsonDB::Observance 2.35 691 | DateTime::TimeZone::OlsonDB::Rule 2.35 692 | DateTime::TimeZone::OlsonDB::Zone 2.35 693 | DateTime::TimeZone::PST8PDT 2.35 694 | DateTime::TimeZone::Pacific::Apia 2.35 695 | DateTime::TimeZone::Pacific::Auckland 2.35 696 | DateTime::TimeZone::Pacific::Bougainville 2.35 697 | DateTime::TimeZone::Pacific::Chatham 2.35 698 | DateTime::TimeZone::Pacific::Chuuk 2.35 699 | DateTime::TimeZone::Pacific::Easter 2.35 700 | DateTime::TimeZone::Pacific::Efate 2.35 701 | DateTime::TimeZone::Pacific::Enderbury 2.35 702 | DateTime::TimeZone::Pacific::Fakaofo 2.35 703 | DateTime::TimeZone::Pacific::Fiji 2.35 704 | DateTime::TimeZone::Pacific::Funafuti 2.35 705 | DateTime::TimeZone::Pacific::Galapagos 2.35 706 | DateTime::TimeZone::Pacific::Gambier 2.35 707 | DateTime::TimeZone::Pacific::Guadalcanal 2.35 708 | DateTime::TimeZone::Pacific::Guam 2.35 709 | DateTime::TimeZone::Pacific::Honolulu 2.35 710 | DateTime::TimeZone::Pacific::Kiritimati 2.35 711 | DateTime::TimeZone::Pacific::Kosrae 2.35 712 | DateTime::TimeZone::Pacific::Kwajalein 2.35 713 | DateTime::TimeZone::Pacific::Majuro 2.35 714 | DateTime::TimeZone::Pacific::Marquesas 2.35 715 | DateTime::TimeZone::Pacific::Nauru 2.35 716 | DateTime::TimeZone::Pacific::Niue 2.35 717 | DateTime::TimeZone::Pacific::Norfolk 2.35 718 | DateTime::TimeZone::Pacific::Noumea 2.35 719 | DateTime::TimeZone::Pacific::Pago_Pago 2.35 720 | DateTime::TimeZone::Pacific::Palau 2.35 721 | DateTime::TimeZone::Pacific::Pitcairn 2.35 722 | DateTime::TimeZone::Pacific::Pohnpei 2.35 723 | DateTime::TimeZone::Pacific::Port_Moresby 2.35 724 | DateTime::TimeZone::Pacific::Rarotonga 2.35 725 | DateTime::TimeZone::Pacific::Tahiti 2.35 726 | DateTime::TimeZone::Pacific::Tarawa 2.35 727 | DateTime::TimeZone::Pacific::Tongatapu 2.35 728 | DateTime::TimeZone::Pacific::Wake 2.35 729 | DateTime::TimeZone::Pacific::Wallis 2.35 730 | DateTime::TimeZone::UTC 2.35 731 | DateTime::TimeZone::WET 2.35 732 | requirements: 733 | Class::Singleton 1.03 734 | Cwd 3 735 | ExtUtils::MakeMaker 0 736 | File::Basename 0 737 | File::Compare 0 738 | File::Find 0 739 | File::Spec 0 740 | List::Util 1.33 741 | Module::Runtime 0 742 | Params::ValidationCompiler 0.13 743 | Specio::Library::Builtins 0 744 | Specio::Library::String 0 745 | Try::Tiny 0 746 | constant 0 747 | namespace::autoclean 0 748 | parent 0 749 | perl 5.008004 750 | strict 0 751 | warnings 0 752 | DateTime-Tiny-1.07 753 | pathname: D/DA/DAGOLDEN/DateTime-Tiny-1.07.tar.gz 754 | provides: 755 | DateTime::Tiny 1.07 756 | requirements: 757 | Carp 0 758 | ExtUtils::MakeMaker 6.17 759 | overload 0 760 | perl 5.008 761 | strict 0 762 | warnings 0 763 | Devel-GlobalDestruction-0.14 764 | pathname: H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz 765 | provides: 766 | Devel::GlobalDestruction 0.14 767 | requirements: 768 | ExtUtils::MakeMaker 0 769 | Sub::Exporter::Progressive 0.001011 770 | perl 5.006 771 | Devel-OverloadInfo-0.005 772 | pathname: I/IL/ILMARI/Devel-OverloadInfo-0.005.tar.gz 773 | provides: 774 | Devel::OverloadInfo 0.005 775 | requirements: 776 | Exporter 5.57 777 | ExtUtils::MakeMaker 0 778 | MRO::Compat 0 779 | Package::Stash 0.14 780 | Scalar::Util 0 781 | Sub::Identify 0 782 | overload 0 783 | perl 5.006 784 | strict 0 785 | warnings 0 786 | Devel-StackTrace-2.03 787 | pathname: D/DR/DROLSKY/Devel-StackTrace-2.03.tar.gz 788 | provides: 789 | Devel::StackTrace 2.03 790 | Devel::StackTrace::Frame 2.03 791 | requirements: 792 | ExtUtils::MakeMaker 0 793 | File::Spec 0 794 | Scalar::Util 0 795 | overload 0 796 | perl 5.006 797 | strict 0 798 | warnings 0 799 | Digest-HMAC-1.03 800 | pathname: G/GA/GAAS/Digest-HMAC-1.03.tar.gz 801 | provides: 802 | Digest::HMAC 1.03 803 | Digest::HMAC_MD5 1.01 804 | Digest::HMAC_SHA1 1.03 805 | requirements: 806 | Digest::MD5 2 807 | Digest::SHA 1 808 | ExtUtils::MakeMaker 0 809 | perl 5.004 810 | Dist-CheckConflicts-0.11 811 | pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz 812 | provides: 813 | Dist::CheckConflicts 0.11 814 | requirements: 815 | Carp 0 816 | Exporter 0 817 | ExtUtils::MakeMaker 6.30 818 | Module::Runtime 0.009 819 | base 0 820 | strict 0 821 | warnings 0 822 | Encode-Locale-1.05 823 | pathname: G/GA/GAAS/Encode-Locale-1.05.tar.gz 824 | provides: 825 | Encode::Locale 1.05 826 | requirements: 827 | Encode 2 828 | Encode::Alias 0 829 | ExtUtils::MakeMaker 0 830 | perl 5.008 831 | Eval-Closure-0.14 832 | pathname: D/DO/DOY/Eval-Closure-0.14.tar.gz 833 | provides: 834 | Eval::Closure 0.14 835 | requirements: 836 | Carp 0 837 | Exporter 0 838 | ExtUtils::MakeMaker 0 839 | Scalar::Util 0 840 | constant 0 841 | overload 0 842 | strict 0 843 | warnings 0 844 | Exception-Class-1.44 845 | pathname: D/DR/DROLSKY/Exception-Class-1.44.tar.gz 846 | provides: 847 | Exception::Class 1.44 848 | Exception::Class::Base 1.44 849 | requirements: 850 | Class::Data::Inheritable 0.02 851 | Devel::StackTrace 2.00 852 | ExtUtils::MakeMaker 0 853 | Scalar::Util 0 854 | base 0 855 | overload 0 856 | perl 5.008001 857 | strict 0 858 | warnings 0 859 | Exporter-Tiny-1.002001 860 | pathname: T/TO/TOBYINK/Exporter-Tiny-1.002001.tar.gz 861 | provides: 862 | Exporter::Shiny 1.002001 863 | Exporter::Tiny 1.002001 864 | requirements: 865 | ExtUtils::MakeMaker 6.17 866 | perl 5.006001 867 | ExtUtils-Config-0.008 868 | pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz 869 | provides: 870 | ExtUtils::Config 0.008 871 | requirements: 872 | Data::Dumper 0 873 | ExtUtils::MakeMaker 6.30 874 | strict 0 875 | warnings 0 876 | ExtUtils-Helpers-0.026 877 | pathname: L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz 878 | provides: 879 | ExtUtils::Helpers 0.026 880 | ExtUtils::Helpers::Unix 0.026 881 | ExtUtils::Helpers::VMS 0.026 882 | ExtUtils::Helpers::Windows 0.026 883 | requirements: 884 | Carp 0 885 | Exporter 5.57 886 | ExtUtils::MakeMaker 0 887 | File::Basename 0 888 | File::Copy 0 889 | File::Spec::Functions 0 890 | Text::ParseWords 3.24 891 | perl 5.006 892 | strict 0 893 | warnings 0 894 | ExtUtils-InstallPaths-0.012 895 | pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz 896 | provides: 897 | ExtUtils::InstallPaths 0.012 898 | requirements: 899 | Carp 0 900 | ExtUtils::Config 0.002 901 | ExtUtils::MakeMaker 0 902 | File::Spec 0 903 | perl 5.006 904 | strict 0 905 | warnings 0 906 | File-Listing-6.04 907 | pathname: G/GA/GAAS/File-Listing-6.04.tar.gz 908 | provides: 909 | File::Listing 6.04 910 | File::Listing::apache 6.04 911 | File::Listing::dosftp 6.04 912 | File::Listing::netware 6.04 913 | File::Listing::unix 6.04 914 | File::Listing::vms 6.04 915 | requirements: 916 | ExtUtils::MakeMaker 0 917 | HTTP::Date 6 918 | perl 5.006002 919 | File-ShareDir-1.116 920 | pathname: R/RE/REHSACK/File-ShareDir-1.116.tar.gz 921 | provides: 922 | File::ShareDir 1.116 923 | requirements: 924 | Carp 0 925 | Class::Inspector 1.12 926 | ExtUtils::MakeMaker 0 927 | File::ShareDir::Install 0.13 928 | File::Spec 0.80 929 | perl 5.008001 930 | warnings 0 931 | File-ShareDir-Install-0.13 932 | pathname: E/ET/ETHER/File-ShareDir-Install-0.13.tar.gz 933 | provides: 934 | File::ShareDir::Install 0.13 935 | requirements: 936 | Carp 0 937 | Exporter 0 938 | ExtUtils::MakeMaker 0 939 | File::Spec 0 940 | IO::Dir 0 941 | perl 5.006 942 | strict 0 943 | warnings 0 944 | HTML-Parser-3.72 945 | pathname: G/GA/GAAS/HTML-Parser-3.72.tar.gz 946 | provides: 947 | HTML::Entities 3.69 948 | HTML::Filter 3.72 949 | HTML::HeadParser 3.71 950 | HTML::LinkExtor 3.69 951 | HTML::Parser 3.72 952 | HTML::PullParser 3.57 953 | HTML::TokeParser 3.69 954 | requirements: 955 | ExtUtils::MakeMaker 0 956 | HTML::Tagset 3 957 | XSLoader 0 958 | perl 5.008 959 | HTML-Tagset-3.20 960 | pathname: P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz 961 | provides: 962 | HTML::Tagset 3.20 963 | requirements: 964 | ExtUtils::MakeMaker 0 965 | HTTP-Cookies-6.04 966 | pathname: O/OA/OALDERS/HTTP-Cookies-6.04.tar.gz 967 | provides: 968 | HTTP::Cookies 6.04 969 | HTTP::Cookies::Microsoft 6.04 970 | HTTP::Cookies::Netscape 6.04 971 | requirements: 972 | Carp 0 973 | ExtUtils::MakeMaker 0 974 | HTTP::Date 6 975 | HTTP::Headers::Util 6 976 | HTTP::Request 0 977 | Time::Local 0 978 | locale 0 979 | perl 5.008001 980 | strict 0 981 | vars 0 982 | HTTP-Daemon-6.04 983 | pathname: O/OA/OALDERS/HTTP-Daemon-6.04.tar.gz 984 | provides: 985 | HTTP::Daemon 6.04 986 | requirements: 987 | Carp 0 988 | ExtUtils::MakeMaker 0 989 | HTTP::Date 6 990 | HTTP::Request 6 991 | HTTP::Response 6 992 | HTTP::Status 6 993 | IO::Socket 0 994 | LWP::MediaTypes 6 995 | Module::Build::Tiny 0.034 996 | Sys::Hostname 0 997 | perl 5.006 998 | strict 0 999 | warnings 0 1000 | HTTP-Date-6.02 1001 | pathname: G/GA/GAAS/HTTP-Date-6.02.tar.gz 1002 | provides: 1003 | HTTP::Date 6.02 1004 | requirements: 1005 | ExtUtils::MakeMaker 0 1006 | Time::Local 0 1007 | perl 5.006002 1008 | HTTP-Message-6.18 1009 | pathname: O/OA/OALDERS/HTTP-Message-6.18.tar.gz 1010 | provides: 1011 | HTTP::Config 6.18 1012 | HTTP::Headers 6.18 1013 | HTTP::Headers::Auth 6.18 1014 | HTTP::Headers::ETag 6.18 1015 | HTTP::Headers::Util 6.18 1016 | HTTP::Message 6.18 1017 | HTTP::Request 6.18 1018 | HTTP::Request::Common 6.18 1019 | HTTP::Response 6.18 1020 | HTTP::Status 6.18 1021 | requirements: 1022 | Carp 0 1023 | Compress::Raw::Zlib 0 1024 | Encode 2.21 1025 | Encode::Locale 1 1026 | Exporter 5.57 1027 | ExtUtils::MakeMaker 0 1028 | HTTP::Date 6 1029 | IO::Compress::Bzip2 2.021 1030 | IO::Compress::Deflate 0 1031 | IO::Compress::Gzip 0 1032 | IO::HTML 0 1033 | IO::Uncompress::Bunzip2 2.021 1034 | IO::Uncompress::Gunzip 0 1035 | IO::Uncompress::Inflate 0 1036 | IO::Uncompress::RawInflate 0 1037 | LWP::MediaTypes 6 1038 | MIME::Base64 2.1 1039 | MIME::QuotedPrint 0 1040 | Storable 0 1041 | URI 1.10 1042 | base 0 1043 | perl 5.008001 1044 | strict 0 1045 | warnings 0 1046 | HTTP-Negotiate-6.01 1047 | pathname: G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz 1048 | provides: 1049 | HTTP::Negotiate 6.01 1050 | requirements: 1051 | ExtUtils::MakeMaker 0 1052 | HTTP::Headers 6 1053 | perl 5.008001 1054 | IO-HTML-1.001 1055 | pathname: C/CJ/CJM/IO-HTML-1.001.tar.gz 1056 | provides: 1057 | IO::HTML 1.001 1058 | requirements: 1059 | Carp 0 1060 | Encode 2.10 1061 | Exporter 5.57 1062 | ExtUtils::MakeMaker 6.30 1063 | IO-Socket-SSL-2.066 1064 | pathname: S/SU/SULLR/IO-Socket-SSL-2.066.tar.gz 1065 | provides: 1066 | IO::Socket::SSL 2.066 1067 | IO::Socket::SSL::Intercept 2.056 1068 | IO::Socket::SSL::OCSP_Cache 2.066 1069 | IO::Socket::SSL::OCSP_Resolver 2.066 1070 | IO::Socket::SSL::PublicSuffix undef 1071 | IO::Socket::SSL::SSL_Context 2.066 1072 | IO::Socket::SSL::SSL_HANDLE 2.066 1073 | IO::Socket::SSL::Session_Cache 2.066 1074 | IO::Socket::SSL::Utils 2.014 1075 | requirements: 1076 | ExtUtils::MakeMaker 0 1077 | Net::SSLeay 1.46 1078 | Scalar::Util 0 1079 | JSON-4.02 1080 | pathname: I/IS/ISHIGAKI/JSON-4.02.tar.gz 1081 | provides: 1082 | JSON 4.02 1083 | JSON::Backend::PP 4.02 1084 | requirements: 1085 | ExtUtils::MakeMaker 0 1086 | Test::More 0 1087 | JSON-MaybeXS-1.004000 1088 | pathname: H/HA/HAARG/JSON-MaybeXS-1.004000.tar.gz 1089 | provides: 1090 | JSON::MaybeXS 1.004000 1091 | requirements: 1092 | Carp 0 1093 | Cpanel::JSON::XS 2.3310 1094 | ExtUtils::MakeMaker 0 1095 | JSON::PP 2.27300 1096 | Scalar::Util 0 1097 | perl 5.006 1098 | LWP-MediaTypes-6.04 1099 | pathname: O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz 1100 | provides: 1101 | LWP::MediaTypes 6.04 1102 | requirements: 1103 | Carp 0 1104 | Exporter 0 1105 | ExtUtils::MakeMaker 0 1106 | File::Basename 0 1107 | Scalar::Util 0 1108 | perl 5.006002 1109 | strict 0 1110 | LWP-Protocol-https-6.07 1111 | pathname: O/OA/OALDERS/LWP-Protocol-https-6.07.tar.gz 1112 | provides: 1113 | LWP::Protocol::https 6.07 1114 | LWP::Protocol::https::Socket 6.07 1115 | requirements: 1116 | ExtUtils::MakeMaker 0 1117 | IO::Socket::SSL 1.54 1118 | LWP::UserAgent 6.06 1119 | Mozilla::CA 20110101 1120 | Net::HTTPS 6 1121 | perl 5.008001 1122 | MRO-Compat-0.13 1123 | pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz 1124 | provides: 1125 | MRO::Compat 0.13 1126 | requirements: 1127 | ExtUtils::MakeMaker 0 1128 | perl 5.006 1129 | Module-Build-0.4229 1130 | pathname: L/LE/LEONT/Module-Build-0.4229.tar.gz 1131 | provides: 1132 | Module::Build 0.4229 1133 | Module::Build::Base 0.4229 1134 | Module::Build::Compat 0.4229 1135 | Module::Build::Config 0.4229 1136 | Module::Build::Cookbook 0.4229 1137 | Module::Build::Dumper 0.4229 1138 | Module::Build::Notes 0.4229 1139 | Module::Build::PPMMaker 0.4229 1140 | Module::Build::Platform::Default 0.4229 1141 | Module::Build::Platform::MacOS 0.4229 1142 | Module::Build::Platform::Unix 0.4229 1143 | Module::Build::Platform::VMS 0.4229 1144 | Module::Build::Platform::VOS 0.4229 1145 | Module::Build::Platform::Windows 0.4229 1146 | Module::Build::Platform::aix 0.4229 1147 | Module::Build::Platform::cygwin 0.4229 1148 | Module::Build::Platform::darwin 0.4229 1149 | Module::Build::Platform::os2 0.4229 1150 | Module::Build::PodParser 0.4229 1151 | requirements: 1152 | CPAN::Meta 2.142060 1153 | Cwd 0 1154 | Data::Dumper 0 1155 | ExtUtils::CBuilder 0.27 1156 | ExtUtils::Install 0 1157 | ExtUtils::Manifest 0 1158 | ExtUtils::Mkbootstrap 0 1159 | ExtUtils::ParseXS 2.21 1160 | File::Basename 0 1161 | File::Compare 0 1162 | File::Copy 0 1163 | File::Find 0 1164 | File::Path 0 1165 | File::Spec 0.82 1166 | Getopt::Long 0 1167 | Module::Metadata 1.000002 1168 | Perl::OSType 1 1169 | Pod::Man 2.17 1170 | TAP::Harness 3.29 1171 | Text::Abbrev 0 1172 | Text::ParseWords 0 1173 | perl 5.006001 1174 | version 0.87 1175 | Module-Build-Tiny-0.039 1176 | pathname: L/LE/LEONT/Module-Build-Tiny-0.039.tar.gz 1177 | provides: 1178 | Module::Build::Tiny 0.039 1179 | requirements: 1180 | CPAN::Meta 0 1181 | DynaLoader 0 1182 | Exporter 5.57 1183 | ExtUtils::CBuilder 0 1184 | ExtUtils::Config 0.003 1185 | ExtUtils::Helpers 0.020 1186 | ExtUtils::Install 0 1187 | ExtUtils::InstallPaths 0.002 1188 | ExtUtils::ParseXS 0 1189 | File::Basename 0 1190 | File::Find 0 1191 | File::Path 0 1192 | File::Spec::Functions 0 1193 | Getopt::Long 2.36 1194 | JSON::PP 2 1195 | Pod::Man 0 1196 | TAP::Harness::Env 0 1197 | perl 5.006 1198 | strict 0 1199 | warnings 0 1200 | Module-Implementation-0.09 1201 | pathname: D/DR/DROLSKY/Module-Implementation-0.09.tar.gz 1202 | provides: 1203 | Module::Implementation 0.09 1204 | requirements: 1205 | Carp 0 1206 | ExtUtils::MakeMaker 0 1207 | Module::Runtime 0.012 1208 | Try::Tiny 0 1209 | strict 0 1210 | warnings 0 1211 | Module-Runtime-0.016 1212 | pathname: Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz 1213 | provides: 1214 | Module::Runtime 0.016 1215 | requirements: 1216 | Module::Build 0 1217 | Test::More 0.41 1218 | perl 5.006 1219 | strict 0 1220 | warnings 0 1221 | Module-Runtime-Conflicts-0.003 1222 | pathname: E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz 1223 | provides: 1224 | Module::Runtime::Conflicts 0.003 1225 | requirements: 1226 | Dist::CheckConflicts 0 1227 | ExtUtils::MakeMaker 0 1228 | Module::Runtime 0 1229 | perl 5.006 1230 | strict 0 1231 | warnings 0 1232 | Mojolicious-8.14 1233 | pathname: S/SR/SRI/Mojolicious-8.14.tar.gz 1234 | provides: 1235 | Mojo undef 1236 | Mojo::Asset undef 1237 | Mojo::Asset::File undef 1238 | Mojo::Asset::Memory undef 1239 | Mojo::Base undef 1240 | Mojo::ByteStream undef 1241 | Mojo::Cache undef 1242 | Mojo::Collection undef 1243 | Mojo::Content undef 1244 | Mojo::Content::MultiPart undef 1245 | Mojo::Content::Single undef 1246 | Mojo::Cookie undef 1247 | Mojo::Cookie::Request undef 1248 | Mojo::Cookie::Response undef 1249 | Mojo::DOM undef 1250 | Mojo::DOM::CSS undef 1251 | Mojo::DOM::HTML undef 1252 | Mojo::Date undef 1253 | Mojo::DynamicMethods undef 1254 | Mojo::EventEmitter undef 1255 | Mojo::Exception undef 1256 | Mojo::File undef 1257 | Mojo::Headers undef 1258 | Mojo::HelloWorld undef 1259 | Mojo::Home undef 1260 | Mojo::IOLoop undef 1261 | Mojo::IOLoop::Client undef 1262 | Mojo::IOLoop::Delay undef 1263 | Mojo::IOLoop::Server undef 1264 | Mojo::IOLoop::Stream undef 1265 | Mojo::IOLoop::Subprocess undef 1266 | Mojo::IOLoop::TLS undef 1267 | Mojo::JSON undef 1268 | Mojo::JSON::Pointer undef 1269 | Mojo::Loader undef 1270 | Mojo::Log undef 1271 | Mojo::Message undef 1272 | Mojo::Message::Request undef 1273 | Mojo::Message::Response undef 1274 | Mojo::Parameters undef 1275 | Mojo::Path undef 1276 | Mojo::Promise undef 1277 | Mojo::Reactor undef 1278 | Mojo::Reactor::EV undef 1279 | Mojo::Reactor::Poll undef 1280 | Mojo::Server undef 1281 | Mojo::Server::CGI undef 1282 | Mojo::Server::Daemon undef 1283 | Mojo::Server::Hypnotoad undef 1284 | Mojo::Server::Morbo undef 1285 | Mojo::Server::Morbo::Backend undef 1286 | Mojo::Server::Morbo::Backend::Poll undef 1287 | Mojo::Server::PSGI undef 1288 | Mojo::Server::PSGI::_IO undef 1289 | Mojo::Server::Prefork undef 1290 | Mojo::Template undef 1291 | Mojo::Transaction undef 1292 | Mojo::Transaction::HTTP undef 1293 | Mojo::Transaction::WebSocket undef 1294 | Mojo::URL undef 1295 | Mojo::Upload undef 1296 | Mojo::UserAgent undef 1297 | Mojo::UserAgent::CookieJar undef 1298 | Mojo::UserAgent::Proxy undef 1299 | Mojo::UserAgent::Server undef 1300 | Mojo::UserAgent::Transactor undef 1301 | Mojo::Util undef 1302 | Mojo::WebSocket undef 1303 | Mojolicious 8.14 1304 | Mojolicious::Command undef 1305 | Mojolicious::Command::Author::cpanify undef 1306 | Mojolicious::Command::Author::generate undef 1307 | Mojolicious::Command::Author::generate::app undef 1308 | Mojolicious::Command::Author::generate::lite_app undef 1309 | Mojolicious::Command::Author::generate::makefile undef 1310 | Mojolicious::Command::Author::generate::plugin undef 1311 | Mojolicious::Command::Author::inflate undef 1312 | Mojolicious::Command::cgi undef 1313 | Mojolicious::Command::daemon undef 1314 | Mojolicious::Command::eval undef 1315 | Mojolicious::Command::get undef 1316 | Mojolicious::Command::prefork undef 1317 | Mojolicious::Command::psgi undef 1318 | Mojolicious::Command::routes undef 1319 | Mojolicious::Command::version undef 1320 | Mojolicious::Commands undef 1321 | Mojolicious::Controller undef 1322 | Mojolicious::Lite undef 1323 | Mojolicious::Plugin undef 1324 | Mojolicious::Plugin::Config undef 1325 | Mojolicious::Plugin::DefaultHelpers undef 1326 | Mojolicious::Plugin::EPLRenderer undef 1327 | Mojolicious::Plugin::EPRenderer undef 1328 | Mojolicious::Plugin::HeaderCondition undef 1329 | Mojolicious::Plugin::JSONConfig undef 1330 | Mojolicious::Plugin::Mount undef 1331 | Mojolicious::Plugin::TagHelpers undef 1332 | Mojolicious::Plugins undef 1333 | Mojolicious::Renderer undef 1334 | Mojolicious::Routes undef 1335 | Mojolicious::Routes::Match undef 1336 | Mojolicious::Routes::Pattern undef 1337 | Mojolicious::Routes::Route undef 1338 | Mojolicious::Sessions undef 1339 | Mojolicious::Static undef 1340 | Mojolicious::Types undef 1341 | Mojolicious::Validator undef 1342 | Mojolicious::Validator::Validation undef 1343 | Test::Mojo undef 1344 | ojo undef 1345 | requirements: 1346 | ExtUtils::MakeMaker 0 1347 | IO::Socket::IP 0.37 1348 | JSON::PP 2.27103 1349 | List::Util 1.41 1350 | Time::Local 1.2 1351 | perl 5.010001 1352 | Mojolicious-Plugin-Mongodb-1.16 1353 | pathname: M/MA/MADCAT/Mojolicious-Plugin-Mongodb-1.16.tar.gz 1354 | provides: 1355 | Mojolicious::Plugin::Mongodb 1.16 1356 | Mojolicious::Plugin::Mongodb::Connection 1.16 1357 | requirements: 1358 | ExtUtils::MakeMaker 6.30 1359 | Module::Build 0.38 1360 | Mojo::Base 0 1361 | MongoDB 0 1362 | MongoDB::Collection 0 1363 | Tie::IxHash 0 1364 | strict 0 1365 | warnings 0 1366 | MongoDB-v2.0.3 1367 | pathname: M/MO/MONGODB/MongoDB-v2.0.3.tar.gz 1368 | provides: 1369 | MongoDB v2.0.3 1370 | MongoDB::AuthError v2.0.3 1371 | MongoDB::BSON::Binary v2.0.3 1372 | MongoDB::BSON::Regexp v2.0.3 1373 | MongoDB::BulkWrite v2.0.3 1374 | MongoDB::BulkWriteResult v2.0.3 1375 | MongoDB::BulkWriteView v2.0.3 1376 | MongoDB::ChangeStream v2.0.3 1377 | MongoDB::ClientSession v2.0.3 1378 | MongoDB::Code v2.0.3 1379 | MongoDB::Collection v2.0.3 1380 | MongoDB::CommandResult v2.0.3 1381 | MongoDB::ConfigurationError v2.0.3 1382 | MongoDB::ConnectionError v2.0.3 1383 | MongoDB::Cursor v2.0.3 1384 | MongoDB::CursorNotFoundError v2.0.3 1385 | MongoDB::DBRef v2.0.3 1386 | MongoDB::Database v2.0.3 1387 | MongoDB::DatabaseError v2.0.3 1388 | MongoDB::DecodingError v2.0.3 1389 | MongoDB::DeleteResult v2.0.3 1390 | MongoDB::DocumentError v2.0.3 1391 | MongoDB::DuplicateKeyError v2.0.3 1392 | MongoDB::Error v2.0.3 1393 | MongoDB::ExecutionTimeout v2.0.3 1394 | MongoDB::GridFSBucket v2.0.3 1395 | MongoDB::GridFSBucket::DownloadStream v2.0.3 1396 | MongoDB::GridFSBucket::UploadStream v2.0.3 1397 | MongoDB::GridFSError v2.0.3 1398 | MongoDB::HandshakeError v2.0.3 1399 | MongoDB::IndexView v2.0.3 1400 | MongoDB::InsertManyResult v2.0.3 1401 | MongoDB::InsertOneResult v2.0.3 1402 | MongoDB::InternalError v2.0.3 1403 | MongoDB::InvalidOperationError v2.0.3 1404 | MongoDB::MongoClient v2.0.3 1405 | MongoDB::NetworkError v2.0.3 1406 | MongoDB::NetworkTimeout v2.0.3 1407 | MongoDB::NotMasterError v2.0.3 1408 | MongoDB::OID v2.0.3 1409 | MongoDB::ProtocolError v2.0.3 1410 | MongoDB::QueryResult v2.0.3 1411 | MongoDB::QueryResult::Filtered v2.0.3 1412 | MongoDB::ReadConcern v2.0.3 1413 | MongoDB::ReadPreference v2.0.3 1414 | MongoDB::SelectionError v2.0.3 1415 | MongoDB::TimeoutError v2.0.3 1416 | MongoDB::Timestamp v2.0.3 1417 | MongoDB::UnacknowledgedResult v2.0.3 1418 | MongoDB::UpdateResult v2.0.3 1419 | MongoDB::UsageError v2.0.3 1420 | MongoDB::WriteConcern v2.0.3 1421 | MongoDB::WriteConcernError v2.0.3 1422 | MongoDB::WriteError v2.0.3 1423 | requirements: 1424 | Authen::SASL::SASLprep 0 1425 | Authen::SCRAM::Client 0.011 1426 | BSON 1.010001 1427 | BSON::Bytes 0 1428 | BSON::Code 0 1429 | BSON::DBRef 0 1430 | BSON::OID 0 1431 | BSON::Raw 0 1432 | BSON::Regex 0 1433 | BSON::Time 0 1434 | BSON::Timestamp 0 1435 | BSON::Types 0 1436 | BSON::XS 0.006000 1437 | Carp 0 1438 | Class::XSAccessor 0 1439 | Compress::Zlib 0 1440 | Digest::MD5 0 1441 | Encode 0 1442 | Exporter 5.57 1443 | ExtUtils::MakeMaker 6.17 1444 | IO::Socket 0 1445 | List::Util 0 1446 | MIME::Base64 0 1447 | Math::BigInt 0 1448 | Moo 2 1449 | Moo::Role 0 1450 | Net::DNS 0 1451 | Safe::Isa 1.000007 1452 | Scalar::Util 0 1453 | Socket 0 1454 | Sub::Defer 0 1455 | Sub::Quote 0 1456 | Text::ParseWords 0 1457 | Tie::IxHash 0 1458 | Time::HiRes 0 1459 | Try::Tiny 0 1460 | Type::Library 0 1461 | Type::Tiny::XS 0 1462 | Type::Utils 0 1463 | Types::Standard 0 1464 | UUID::URandom 0 1465 | boolean 0.25 1466 | bytes 0 1467 | constant 0 1468 | if 0 1469 | namespace::clean 0 1470 | overload 0 1471 | perl 5.010001 1472 | re 0 1473 | strict 0 1474 | version 0 1475 | warnings 0 1476 | Moo-2.003004 1477 | pathname: H/HA/HAARG/Moo-2.003004.tar.gz 1478 | provides: 1479 | Method::Generate::Accessor undef 1480 | Method::Generate::BuildAll undef 1481 | Method::Generate::Constructor undef 1482 | Method::Generate::DemolishAll undef 1483 | Moo 2.003004 1484 | Moo::HandleMoose undef 1485 | Moo::HandleMoose::FakeConstructor undef 1486 | Moo::HandleMoose::FakeMetaClass undef 1487 | Moo::HandleMoose::_TypeMap undef 1488 | Moo::Object undef 1489 | Moo::Role 2.003004 1490 | Moo::_Utils undef 1491 | Moo::_mro undef 1492 | Moo::_strictures undef 1493 | Moo::sification undef 1494 | oo undef 1495 | requirements: 1496 | Class::Method::Modifiers 1.1 1497 | Devel::GlobalDestruction 0.11 1498 | Exporter 5.57 1499 | ExtUtils::MakeMaker 0 1500 | Module::Runtime 0.014 1501 | Role::Tiny 2.000004 1502 | Scalar::Util 0 1503 | Sub::Defer 2.003001 1504 | Sub::Quote 2.003001 1505 | perl 5.006 1506 | Moose-2.2011 1507 | pathname: E/ET/ETHER/Moose-2.2011.tar.gz 1508 | provides: 1509 | Class::MOP 2.2011 1510 | Class::MOP::Attribute 2.2011 1511 | Class::MOP::Class 2.2011 1512 | Class::MOP::Instance 2.2011 1513 | Class::MOP::Method 2.2011 1514 | Class::MOP::Method::Accessor 2.2011 1515 | Class::MOP::Method::Constructor 2.2011 1516 | Class::MOP::Method::Generated 2.2011 1517 | Class::MOP::Method::Inlined 2.2011 1518 | Class::MOP::Method::Meta 2.2011 1519 | Class::MOP::Method::Wrapped 2.2011 1520 | Class::MOP::Module 2.2011 1521 | Class::MOP::Object 2.2011 1522 | Class::MOP::Overload 2.2011 1523 | Class::MOP::Package 2.2011 1524 | Moose 2.2011 1525 | Moose::Cookbook 2.2011 1526 | Moose::Cookbook::Basics::BankAccount_MethodModifiersAndSubclassing 2.2011 1527 | Moose::Cookbook::Basics::BinaryTree_AttributeFeatures 2.2011 1528 | Moose::Cookbook::Basics::BinaryTree_BuilderAndLazyBuild 2.2011 1529 | Moose::Cookbook::Basics::Company_Subtypes 2.2011 1530 | Moose::Cookbook::Basics::DateTime_ExtendingNonMooseParent 2.2011 1531 | Moose::Cookbook::Basics::Document_AugmentAndInner 2.2011 1532 | Moose::Cookbook::Basics::Genome_OverloadingSubtypesAndCoercion 2.2011 1533 | Moose::Cookbook::Basics::HTTP_SubtypesAndCoercion 2.2011 1534 | Moose::Cookbook::Basics::Immutable 2.2011 1535 | Moose::Cookbook::Basics::Person_BUILDARGSAndBUILD 2.2011 1536 | Moose::Cookbook::Basics::Point_AttributesAndSubclassing 2.2011 1537 | Moose::Cookbook::Extending::Debugging_BaseClassRole 2.2011 1538 | Moose::Cookbook::Extending::ExtensionOverview 2.2011 1539 | Moose::Cookbook::Extending::Mooseish_MooseSugar 2.2011 1540 | Moose::Cookbook::Legacy::Debugging_BaseClassReplacement 2.2011 1541 | Moose::Cookbook::Legacy::Labeled_AttributeMetaclass 2.2011 1542 | Moose::Cookbook::Legacy::Table_ClassMetaclass 2.2011 1543 | Moose::Cookbook::Meta::GlobRef_InstanceMetaclass 2.2011 1544 | Moose::Cookbook::Meta::Labeled_AttributeTrait 2.2011 1545 | Moose::Cookbook::Meta::PrivateOrPublic_MethodMetaclass 2.2011 1546 | Moose::Cookbook::Meta::Table_MetaclassTrait 2.2011 1547 | Moose::Cookbook::Meta::WhyMeta 2.2011 1548 | Moose::Cookbook::Roles::ApplicationToInstance 2.2011 1549 | Moose::Cookbook::Roles::Comparable_CodeReuse 2.2011 1550 | Moose::Cookbook::Roles::Restartable_AdvancedComposition 2.2011 1551 | Moose::Cookbook::Snack::Keywords 2.2011 1552 | Moose::Cookbook::Snack::Types 2.2011 1553 | Moose::Cookbook::Style 2.2011 1554 | Moose::Exception 2.2011 1555 | Moose::Exception::AccessorMustReadWrite 2.2011 1556 | Moose::Exception::AddParameterizableTypeTakesParameterizableType 2.2011 1557 | Moose::Exception::AddRoleTakesAMooseMetaRoleInstance 2.2011 1558 | Moose::Exception::AddRoleToARoleTakesAMooseMetaRole 2.2011 1559 | Moose::Exception::ApplyTakesABlessedInstance 2.2011 1560 | Moose::Exception::AttachToClassNeedsAClassMOPClassInstanceOrASubclass 2.2011 1561 | Moose::Exception::AttributeConflictInRoles 2.2011 1562 | Moose::Exception::AttributeConflictInSummation 2.2011 1563 | Moose::Exception::AttributeExtensionIsNotSupportedInRoles 2.2011 1564 | Moose::Exception::AttributeIsRequired 2.2011 1565 | Moose::Exception::AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass 2.2011 1566 | Moose::Exception::AttributeNamesDoNotMatch 2.2011 1567 | Moose::Exception::AttributeValueIsNotAnObject 2.2011 1568 | Moose::Exception::AttributeValueIsNotDefined 2.2011 1569 | Moose::Exception::AutoDeRefNeedsArrayRefOrHashRef 2.2011 1570 | Moose::Exception::BadOptionFormat 2.2011 1571 | Moose::Exception::BothBuilderAndDefaultAreNotAllowed 2.2011 1572 | Moose::Exception::BuilderDoesNotExist 2.2011 1573 | Moose::Exception::BuilderMethodNotSupportedForAttribute 2.2011 1574 | Moose::Exception::BuilderMethodNotSupportedForInlineAttribute 2.2011 1575 | Moose::Exception::BuilderMustBeAMethodName 2.2011 1576 | Moose::Exception::CallingMethodOnAnImmutableInstance 2.2011 1577 | Moose::Exception::CallingReadOnlyMethodOnAnImmutableInstance 2.2011 1578 | Moose::Exception::CanExtendOnlyClasses 2.2011 1579 | Moose::Exception::CanOnlyConsumeRole 2.2011 1580 | Moose::Exception::CanOnlyWrapBlessedCode 2.2011 1581 | Moose::Exception::CanReblessOnlyIntoASubclass 2.2011 1582 | Moose::Exception::CanReblessOnlyIntoASuperclass 2.2011 1583 | Moose::Exception::CannotAddAdditionalTypeCoercionsToUnion 2.2011 1584 | Moose::Exception::CannotAddAsAnAttributeToARole 2.2011 1585 | Moose::Exception::CannotApplyBaseClassRolesToRole 2.2011 1586 | Moose::Exception::CannotAssignValueToReadOnlyAccessor 2.2011 1587 | Moose::Exception::CannotAugmentIfLocalMethodPresent 2.2011 1588 | Moose::Exception::CannotAugmentNoSuperMethod 2.2011 1589 | Moose::Exception::CannotAutoDerefWithoutIsa 2.2011 1590 | Moose::Exception::CannotAutoDereferenceTypeConstraint 2.2011 1591 | Moose::Exception::CannotCalculateNativeType 2.2011 1592 | Moose::Exception::CannotCallAnAbstractBaseMethod 2.2011 1593 | Moose::Exception::CannotCallAnAbstractMethod 2.2011 1594 | Moose::Exception::CannotCoerceAWeakRef 2.2011 1595 | Moose::Exception::CannotCoerceAttributeWhichHasNoCoercion 2.2011 1596 | Moose::Exception::CannotCreateHigherOrderTypeWithoutATypeParameter 2.2011 1597 | Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresent 2.2011 1598 | Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresentInClass 2.2011 1599 | Moose::Exception::CannotDelegateLocalMethodIsPresent 2.2011 1600 | Moose::Exception::CannotDelegateWithoutIsa 2.2011 1601 | Moose::Exception::CannotFindDelegateMetaclass 2.2011 1602 | Moose::Exception::CannotFindType 2.2011 1603 | Moose::Exception::CannotFindTypeGivenToMatchOnType 2.2011 1604 | Moose::Exception::CannotFixMetaclassCompatibility 2.2011 1605 | Moose::Exception::CannotGenerateInlineConstraint 2.2011 1606 | Moose::Exception::CannotInitializeMooseMetaRoleComposite 2.2011 1607 | Moose::Exception::CannotInlineTypeConstraintCheck 2.2011 1608 | Moose::Exception::CannotLocatePackageInINC 2.2011 1609 | Moose::Exception::CannotMakeMetaclassCompatible 2.2011 1610 | Moose::Exception::CannotOverrideALocalMethod 2.2011 1611 | Moose::Exception::CannotOverrideBodyOfMetaMethods 2.2011 1612 | Moose::Exception::CannotOverrideLocalMethodIsPresent 2.2011 1613 | Moose::Exception::CannotOverrideNoSuperMethod 2.2011 1614 | Moose::Exception::CannotRegisterUnnamedTypeConstraint 2.2011 1615 | Moose::Exception::CannotUseLazyBuildAndDefaultSimultaneously 2.2011 1616 | Moose::Exception::CircularReferenceInAlso 2.2011 1617 | Moose::Exception::ClassDoesNotHaveInitMeta 2.2011 1618 | Moose::Exception::ClassDoesTheExcludedRole 2.2011 1619 | Moose::Exception::ClassNamesDoNotMatch 2.2011 1620 | Moose::Exception::CloneObjectExpectsAnInstanceOfMetaclass 2.2011 1621 | Moose::Exception::CodeBlockMustBeACodeRef 2.2011 1622 | Moose::Exception::CoercingWithoutCoercions 2.2011 1623 | Moose::Exception::CoercionAlreadyExists 2.2011 1624 | Moose::Exception::CoercionNeedsTypeConstraint 2.2011 1625 | Moose::Exception::ConflictDetectedInCheckRoleExclusions 2.2011 1626 | Moose::Exception::ConflictDetectedInCheckRoleExclusionsInToClass 2.2011 1627 | Moose::Exception::ConstructClassInstanceTakesPackageName 2.2011 1628 | Moose::Exception::CouldNotCreateMethod 2.2011 1629 | Moose::Exception::CouldNotCreateWriter 2.2011 1630 | Moose::Exception::CouldNotEvalConstructor 2.2011 1631 | Moose::Exception::CouldNotEvalDestructor 2.2011 1632 | Moose::Exception::CouldNotFindTypeConstraintToCoerceFrom 2.2011 1633 | Moose::Exception::CouldNotGenerateInlineAttributeMethod 2.2011 1634 | Moose::Exception::CouldNotLocateTypeConstraintForUnion 2.2011 1635 | Moose::Exception::CouldNotParseType 2.2011 1636 | Moose::Exception::CreateMOPClassTakesArrayRefOfAttributes 2.2011 1637 | Moose::Exception::CreateMOPClassTakesArrayRefOfSuperclasses 2.2011 1638 | Moose::Exception::CreateMOPClassTakesHashRefOfMethods 2.2011 1639 | Moose::Exception::CreateTakesArrayRefOfRoles 2.2011 1640 | Moose::Exception::CreateTakesHashRefOfAttributes 2.2011 1641 | Moose::Exception::CreateTakesHashRefOfMethods 2.2011 1642 | Moose::Exception::DefaultToMatchOnTypeMustBeCodeRef 2.2011 1643 | Moose::Exception::DelegationToAClassWhichIsNotLoaded 2.2011 1644 | Moose::Exception::DelegationToARoleWhichIsNotLoaded 2.2011 1645 | Moose::Exception::DelegationToATypeWhichIsNotAClass 2.2011 1646 | Moose::Exception::DoesRequiresRoleName 2.2011 1647 | Moose::Exception::EnumCalledWithAnArrayRefAndAdditionalArgs 2.2011 1648 | Moose::Exception::EnumValuesMustBeString 2.2011 1649 | Moose::Exception::ExtendsMissingArgs 2.2011 1650 | Moose::Exception::HandlesMustBeAHashRef 2.2011 1651 | Moose::Exception::IllegalInheritedOptions 2.2011 1652 | Moose::Exception::IllegalMethodTypeToAddMethodModifier 2.2011 1653 | Moose::Exception::IncompatibleMetaclassOfSuperclass 2.2011 1654 | Moose::Exception::InitMetaRequiresClass 2.2011 1655 | Moose::Exception::InitializeTakesUnBlessedPackageName 2.2011 1656 | Moose::Exception::InstanceBlessedIntoWrongClass 2.2011 1657 | Moose::Exception::InstanceMustBeABlessedReference 2.2011 1658 | Moose::Exception::InvalidArgPassedToMooseUtilMetaRole 2.2011 1659 | Moose::Exception::InvalidArgumentToMethod 2.2011 1660 | Moose::Exception::InvalidArgumentsToTraitAliases 2.2011 1661 | Moose::Exception::InvalidBaseTypeGivenToCreateParameterizedTypeConstraint 2.2011 1662 | Moose::Exception::InvalidHandleValue 2.2011 1663 | Moose::Exception::InvalidHasProvidedInARole 2.2011 1664 | Moose::Exception::InvalidNameForType 2.2011 1665 | Moose::Exception::InvalidOverloadOperator 2.2011 1666 | Moose::Exception::InvalidRoleApplication 2.2011 1667 | Moose::Exception::InvalidTypeConstraint 2.2011 1668 | Moose::Exception::InvalidTypeGivenToCreateParameterizedTypeConstraint 2.2011 1669 | Moose::Exception::InvalidValueForIs 2.2011 1670 | Moose::Exception::IsaDoesNotDoTheRole 2.2011 1671 | Moose::Exception::IsaLacksDoesMethod 2.2011 1672 | Moose::Exception::LazyAttributeNeedsADefault 2.2011 1673 | Moose::Exception::Legacy 2.2011 1674 | Moose::Exception::MOPAttributeNewNeedsAttributeName 2.2011 1675 | Moose::Exception::MatchActionMustBeACodeRef 2.2011 1676 | Moose::Exception::MessageParameterMustBeCodeRef 2.2011 1677 | Moose::Exception::MetaclassIsAClassNotASubclassOfGivenMetaclass 2.2011 1678 | Moose::Exception::MetaclassIsARoleNotASubclassOfGivenMetaclass 2.2011 1679 | Moose::Exception::MetaclassIsNotASubclassOfGivenMetaclass 2.2011 1680 | Moose::Exception::MetaclassMustBeASubclassOfMooseMetaClass 2.2011 1681 | Moose::Exception::MetaclassMustBeASubclassOfMooseMetaRole 2.2011 1682 | Moose::Exception::MetaclassMustBeDerivedFromClassMOPClass 2.2011 1683 | Moose::Exception::MetaclassNotLoaded 2.2011 1684 | Moose::Exception::MetaclassTypeIncompatible 2.2011 1685 | Moose::Exception::MethodExpectedAMetaclassObject 2.2011 1686 | Moose::Exception::MethodExpectsFewerArgs 2.2011 1687 | Moose::Exception::MethodExpectsMoreArgs 2.2011 1688 | Moose::Exception::MethodModifierNeedsMethodName 2.2011 1689 | Moose::Exception::MethodNameConflictInRoles 2.2011 1690 | Moose::Exception::MethodNameNotFoundInInheritanceHierarchy 2.2011 1691 | Moose::Exception::MethodNameNotGiven 2.2011 1692 | Moose::Exception::MustDefineAMethodName 2.2011 1693 | Moose::Exception::MustDefineAnAttributeName 2.2011 1694 | Moose::Exception::MustDefineAnOverloadOperator 2.2011 1695 | Moose::Exception::MustHaveAtLeastOneValueToEnumerate 2.2011 1696 | Moose::Exception::MustPassAHashOfOptions 2.2011 1697 | Moose::Exception::MustPassAMooseMetaRoleInstanceOrSubclass 2.2011 1698 | Moose::Exception::MustPassAPackageNameOrAnExistingClassMOPPackageInstance 2.2011 1699 | Moose::Exception::MustPassEvenNumberOfArguments 2.2011 1700 | Moose::Exception::MustPassEvenNumberOfAttributeOptions 2.2011 1701 | Moose::Exception::MustProvideANameForTheAttribute 2.2011 1702 | Moose::Exception::MustSpecifyAtleastOneMethod 2.2011 1703 | Moose::Exception::MustSpecifyAtleastOneRole 2.2011 1704 | Moose::Exception::MustSpecifyAtleastOneRoleToApplicant 2.2011 1705 | Moose::Exception::MustSupplyAClassMOPAttributeInstance 2.2011 1706 | Moose::Exception::MustSupplyADelegateToMethod 2.2011 1707 | Moose::Exception::MustSupplyAMetaclass 2.2011 1708 | Moose::Exception::MustSupplyAMooseMetaAttributeInstance 2.2011 1709 | Moose::Exception::MustSupplyAnAccessorTypeToConstructWith 2.2011 1710 | Moose::Exception::MustSupplyAnAttributeToConstructWith 2.2011 1711 | Moose::Exception::MustSupplyArrayRefAsCurriedArguments 2.2011 1712 | Moose::Exception::MustSupplyPackageNameAndName 2.2011 1713 | Moose::Exception::NeedsTypeConstraintUnionForTypeCoercionUnion 2.2011 1714 | Moose::Exception::NeitherAttributeNorAttributeNameIsGiven 2.2011 1715 | Moose::Exception::NeitherClassNorClassNameIsGiven 2.2011 1716 | Moose::Exception::NeitherRoleNorRoleNameIsGiven 2.2011 1717 | Moose::Exception::NeitherTypeNorTypeNameIsGiven 2.2011 1718 | Moose::Exception::NoAttributeFoundInSuperClass 2.2011 1719 | Moose::Exception::NoBodyToInitializeInAnAbstractBaseClass 2.2011 1720 | Moose::Exception::NoCasesMatched 2.2011 1721 | Moose::Exception::NoConstraintCheckForTypeConstraint 2.2011 1722 | Moose::Exception::NoDestructorClassSpecified 2.2011 1723 | Moose::Exception::NoImmutableTraitSpecifiedForClass 2.2011 1724 | Moose::Exception::NoParentGivenToSubtype 2.2011 1725 | Moose::Exception::OnlyInstancesCanBeCloned 2.2011 1726 | Moose::Exception::OperatorIsRequired 2.2011 1727 | Moose::Exception::OverloadConflictInSummation 2.2011 1728 | Moose::Exception::OverloadRequiresAMetaClass 2.2011 1729 | Moose::Exception::OverloadRequiresAMetaMethod 2.2011 1730 | Moose::Exception::OverloadRequiresAMetaOverload 2.2011 1731 | Moose::Exception::OverloadRequiresAMethodNameOrCoderef 2.2011 1732 | Moose::Exception::OverloadRequiresAnOperator 2.2011 1733 | Moose::Exception::OverloadRequiresNamesForCoderef 2.2011 1734 | Moose::Exception::OverrideConflictInComposition 2.2011 1735 | Moose::Exception::OverrideConflictInSummation 2.2011 1736 | Moose::Exception::PackageDoesNotUseMooseExporter 2.2011 1737 | Moose::Exception::PackageNameAndNameParamsNotGivenToWrap 2.2011 1738 | Moose::Exception::PackagesAndModulesAreNotCachable 2.2011 1739 | Moose::Exception::ParameterIsNotSubtypeOfParent 2.2011 1740 | Moose::Exception::ReferencesAreNotAllowedAsDefault 2.2011 1741 | Moose::Exception::RequiredAttributeLacksInitialization 2.2011 1742 | Moose::Exception::RequiredAttributeNeedsADefault 2.2011 1743 | Moose::Exception::RequiredMethodsImportedByClass 2.2011 1744 | Moose::Exception::RequiredMethodsNotImplementedByClass 2.2011 1745 | Moose::Exception::Role::Attribute 2.2011 1746 | Moose::Exception::Role::AttributeName 2.2011 1747 | Moose::Exception::Role::Class 2.2011 1748 | Moose::Exception::Role::EitherAttributeOrAttributeName 2.2011 1749 | Moose::Exception::Role::Instance 2.2011 1750 | Moose::Exception::Role::InstanceClass 2.2011 1751 | Moose::Exception::Role::InvalidAttributeOptions 2.2011 1752 | Moose::Exception::Role::Method 2.2011 1753 | Moose::Exception::Role::ParamsHash 2.2011 1754 | Moose::Exception::Role::Role 2.2011 1755 | Moose::Exception::Role::RoleForCreate 2.2011 1756 | Moose::Exception::Role::RoleForCreateMOPClass 2.2011 1757 | Moose::Exception::Role::TypeConstraint 2.2011 1758 | Moose::Exception::RoleDoesTheExcludedRole 2.2011 1759 | Moose::Exception::RoleExclusionConflict 2.2011 1760 | Moose::Exception::RoleNameRequired 2.2011 1761 | Moose::Exception::RoleNameRequiredForMooseMetaRole 2.2011 1762 | Moose::Exception::RolesDoNotSupportAugment 2.2011 1763 | Moose::Exception::RolesDoNotSupportExtends 2.2011 1764 | Moose::Exception::RolesDoNotSupportInner 2.2011 1765 | Moose::Exception::RolesDoNotSupportRegexReferencesForMethodModifiers 2.2011 1766 | Moose::Exception::RolesInCreateTakesAnArrayRef 2.2011 1767 | Moose::Exception::RolesListMustBeInstancesOfMooseMetaRole 2.2011 1768 | Moose::Exception::SingleParamsToNewMustBeHashRef 2.2011 1769 | Moose::Exception::TriggerMustBeACodeRef 2.2011 1770 | Moose::Exception::TypeConstraintCannotBeUsedForAParameterizableType 2.2011 1771 | Moose::Exception::TypeConstraintIsAlreadyCreated 2.2011 1772 | Moose::Exception::TypeParameterMustBeMooseMetaType 2.2011 1773 | Moose::Exception::UnableToCanonicalizeHandles 2.2011 1774 | Moose::Exception::UnableToCanonicalizeNonRolePackage 2.2011 1775 | Moose::Exception::UnableToRecognizeDelegateMetaclass 2.2011 1776 | Moose::Exception::UndefinedHashKeysPassedToMethod 2.2011 1777 | Moose::Exception::UnionCalledWithAnArrayRefAndAdditionalArgs 2.2011 1778 | Moose::Exception::UnionTakesAtleastTwoTypeNames 2.2011 1779 | Moose::Exception::ValidationFailedForInlineTypeConstraint 2.2011 1780 | Moose::Exception::ValidationFailedForTypeConstraint 2.2011 1781 | Moose::Exception::WrapTakesACodeRefToBless 2.2011 1782 | Moose::Exception::WrongTypeConstraintGiven 2.2011 1783 | Moose::Exporter 2.2011 1784 | Moose::Intro 2.2011 1785 | Moose::Manual 2.2011 1786 | Moose::Manual::Attributes 2.2011 1787 | Moose::Manual::BestPractices 2.2011 1788 | Moose::Manual::Classes 2.2011 1789 | Moose::Manual::Concepts 2.2011 1790 | Moose::Manual::Construction 2.2011 1791 | Moose::Manual::Contributing 2.2011 1792 | Moose::Manual::Delegation 2.2011 1793 | Moose::Manual::Delta 2.2011 1794 | Moose::Manual::Exceptions 2.2011 1795 | Moose::Manual::Exceptions::Manifest 2.2011 1796 | Moose::Manual::FAQ 2.2011 1797 | Moose::Manual::MOP 2.2011 1798 | Moose::Manual::MethodModifiers 2.2011 1799 | Moose::Manual::MooseX 2.2011 1800 | Moose::Manual::Resources 2.2011 1801 | Moose::Manual::Roles 2.2011 1802 | Moose::Manual::Support 2.2011 1803 | Moose::Manual::Types 2.2011 1804 | Moose::Manual::Unsweetened 2.2011 1805 | Moose::Meta::Attribute 2.2011 1806 | Moose::Meta::Attribute::Native 2.2011 1807 | Moose::Meta::Attribute::Native::Trait::Array 2.2011 1808 | Moose::Meta::Attribute::Native::Trait::Bool 2.2011 1809 | Moose::Meta::Attribute::Native::Trait::Code 2.2011 1810 | Moose::Meta::Attribute::Native::Trait::Counter 2.2011 1811 | Moose::Meta::Attribute::Native::Trait::Hash 2.2011 1812 | Moose::Meta::Attribute::Native::Trait::Number 2.2011 1813 | Moose::Meta::Attribute::Native::Trait::String 2.2011 1814 | Moose::Meta::Class 2.2011 1815 | Moose::Meta::Instance 2.2011 1816 | Moose::Meta::Method 2.2011 1817 | Moose::Meta::Method::Accessor 2.2011 1818 | Moose::Meta::Method::Augmented 2.2011 1819 | Moose::Meta::Method::Constructor 2.2011 1820 | Moose::Meta::Method::Delegation 2.2011 1821 | Moose::Meta::Method::Destructor 2.2011 1822 | Moose::Meta::Method::Meta 2.2011 1823 | Moose::Meta::Method::Overridden 2.2011 1824 | Moose::Meta::Role 2.2011 1825 | Moose::Meta::Role::Application 2.2011 1826 | Moose::Meta::Role::Application::RoleSummation 2.2011 1827 | Moose::Meta::Role::Application::ToClass 2.2011 1828 | Moose::Meta::Role::Application::ToInstance 2.2011 1829 | Moose::Meta::Role::Application::ToRole 2.2011 1830 | Moose::Meta::Role::Attribute 2.2011 1831 | Moose::Meta::Role::Composite 2.2011 1832 | Moose::Meta::Role::Method 2.2011 1833 | Moose::Meta::Role::Method::Conflicting 2.2011 1834 | Moose::Meta::Role::Method::Required 2.2011 1835 | Moose::Meta::TypeCoercion 2.2011 1836 | Moose::Meta::TypeCoercion::Union 2.2011 1837 | Moose::Meta::TypeConstraint 2.2011 1838 | Moose::Meta::TypeConstraint::Class 2.2011 1839 | Moose::Meta::TypeConstraint::DuckType 2.2011 1840 | Moose::Meta::TypeConstraint::Enum 2.2011 1841 | Moose::Meta::TypeConstraint::Parameterizable 2.2011 1842 | Moose::Meta::TypeConstraint::Parameterized 2.2011 1843 | Moose::Meta::TypeConstraint::Registry 2.2011 1844 | Moose::Meta::TypeConstraint::Role 2.2011 1845 | Moose::Meta::TypeConstraint::Union 2.2011 1846 | Moose::Object 2.2011 1847 | Moose::Role 2.2011 1848 | Moose::Spec::Role 2.2011 1849 | Moose::Unsweetened 2.2011 1850 | Moose::Util 2.2011 1851 | Moose::Util::MetaRole 2.2011 1852 | Moose::Util::TypeConstraints 2.2011 1853 | Test::Moose 2.2011 1854 | metaclass 2.2011 1855 | oose 2.2011 1856 | requirements: 1857 | Carp 1.22 1858 | Class::Load 0.09 1859 | Class::Load::XS 0.01 1860 | Data::OptList 0.107 1861 | Devel::GlobalDestruction 0 1862 | Devel::OverloadInfo 0.005 1863 | Devel::StackTrace 2.03 1864 | Dist::CheckConflicts 0.02 1865 | Eval::Closure 0.04 1866 | ExtUtils::MakeMaker 0 1867 | List::Util 1.45 1868 | MRO::Compat 0.05 1869 | Module::Runtime 0.014 1870 | Module::Runtime::Conflicts 0.002 1871 | Package::DeprecationManager 0.11 1872 | Package::Stash 0.32 1873 | Package::Stash::XS 0.24 1874 | Params::Util 1.00 1875 | Scalar::Util 1.19 1876 | Sub::Exporter 0.980 1877 | Sub::Identify 0 1878 | Sub::Name 0.20 1879 | Try::Tiny 0.17 1880 | parent 0.223 1881 | strict 1.03 1882 | warnings 1.03 1883 | Mozilla-CA-20180117 1884 | pathname: A/AB/ABH/Mozilla-CA-20180117.tar.gz 1885 | provides: 1886 | Mozilla::CA 20180117 1887 | requirements: 1888 | ExtUtils::MakeMaker 0 1889 | Test 0 1890 | perl 5.006 1891 | Net-DNS-1.20 1892 | pathname: N/NL/NLNETLABS/Net-DNS-1.20.tar.gz 1893 | provides: 1894 | Net::DNS 1.20 1895 | Net::DNS::Domain 1726 1896 | Net::DNS::DomainName 1605 1897 | Net::DNS::DomainName1035 1605 1898 | Net::DNS::DomainName2535 1605 1899 | Net::DNS::Header 1709 1900 | Net::DNS::Mailbox 1605 1901 | Net::DNS::Mailbox1035 1605 1902 | Net::DNS::Mailbox2535 1605 1903 | Net::DNS::Nameserver 1692 1904 | Net::DNS::Packet 1714 1905 | Net::DNS::Parameters 1729 1906 | Net::DNS::Question 1726 1907 | Net::DNS::RR 1726 1908 | Net::DNS::RR::A 1597 1909 | Net::DNS::RR::AAAA 1597 1910 | Net::DNS::RR::AFSDB 1597 1911 | Net::DNS::RR::APL 1597 1912 | Net::DNS::RR::APL::Item 1597 1913 | Net::DNS::RR::CAA 1597 1914 | Net::DNS::RR::CDNSKEY 1586 1915 | Net::DNS::RR::CDS 1586 1916 | Net::DNS::RR::CERT 1729 1917 | Net::DNS::RR::CNAME 1597 1918 | Net::DNS::RR::CSYNC 1597 1919 | Net::DNS::RR::DHCID 1597 1920 | Net::DNS::RR::DLV 1528 1921 | Net::DNS::RR::DNAME 1597 1922 | Net::DNS::RR::DNSKEY 1729 1923 | Net::DNS::RR::DS 1729 1924 | Net::DNS::RR::EUI48 1597 1925 | Net::DNS::RR::EUI64 1597 1926 | Net::DNS::RR::GPOS 1528 1927 | Net::DNS::RR::HINFO 1597 1928 | Net::DNS::RR::HIP 1597 1929 | Net::DNS::RR::IPSECKEY 1718 1930 | Net::DNS::RR::ISDN 1597 1931 | Net::DNS::RR::KEY 1528 1932 | Net::DNS::RR::KX 1597 1933 | Net::DNS::RR::L32 1597 1934 | Net::DNS::RR::L64 1597 1935 | Net::DNS::RR::LOC 1597 1936 | Net::DNS::RR::LP 1597 1937 | Net::DNS::RR::MB 1528 1938 | Net::DNS::RR::MG 1528 1939 | Net::DNS::RR::MINFO 1597 1940 | Net::DNS::RR::MR 1528 1941 | Net::DNS::RR::MX 1597 1942 | Net::DNS::RR::NAPTR 1597 1943 | Net::DNS::RR::NID 1597 1944 | Net::DNS::RR::NS 1597 1945 | Net::DNS::RR::NSEC 1696 1946 | Net::DNS::RR::NSEC3 1726 1947 | Net::DNS::RR::NSEC3PARAM 1597 1948 | Net::DNS::RR::NULL 1528 1949 | Net::DNS::RR::OPENPGPKEY 1597 1950 | Net::DNS::RR::OPT 1717 1951 | Net::DNS::RR::OPT::CHAIN 1717 1952 | Net::DNS::RR::OPT::CLIENT_SUBNET 1717 1953 | Net::DNS::RR::OPT::COOKIE 1717 1954 | Net::DNS::RR::OPT::DAU 1717 1955 | Net::DNS::RR::OPT::DHU 1717 1956 | Net::DNS::RR::OPT::EXPIRE 1717 1957 | Net::DNS::RR::OPT::KEY_TAG 1717 1958 | Net::DNS::RR::OPT::N3U 1717 1959 | Net::DNS::RR::OPT::PADDING 1717 1960 | Net::DNS::RR::OPT::TCP_KEEPALIVE 1717 1961 | Net::DNS::RR::PTR 1597 1962 | Net::DNS::RR::PX 1597 1963 | Net::DNS::RR::RP 1597 1964 | Net::DNS::RR::RRSIG 1729 1965 | Net::DNS::RR::RT 1597 1966 | Net::DNS::RR::SIG 1729 1967 | Net::DNS::RR::SMIMEA 1597 1968 | Net::DNS::RR::SOA 1597 1969 | Net::DNS::RR::SPF 1593 1970 | Net::DNS::RR::SRV 1597 1971 | Net::DNS::RR::SSHFP 1597 1972 | Net::DNS::RR::TKEY 1528 1973 | Net::DNS::RR::TLSA 1597 1974 | Net::DNS::RR::TSIG 1726 1975 | Net::DNS::RR::TXT 1597 1976 | Net::DNS::RR::URI 1597 1977 | Net::DNS::RR::X25 1597 1978 | Net::DNS::Resolver 1726 1979 | Net::DNS::Resolver::Base 1727 1980 | Net::DNS::Resolver::MSWin32 1568 1981 | Net::DNS::Resolver::Recurse 1737 1982 | Net::DNS::Resolver::UNIX 1573 1983 | Net::DNS::Resolver::android 1568 1984 | Net::DNS::Resolver::cygwin 1719 1985 | Net::DNS::Resolver::os2 1568 1986 | Net::DNS::Resolver::os390 1719 1987 | Net::DNS::Text 1726 1988 | Net::DNS::Update 1726 1989 | Net::DNS::ZoneFile 1709 1990 | Net::DNS::ZoneFile::Generator 1709 1991 | Net::DNS::ZoneFile::Text 1709 1992 | requirements: 1993 | Digest::HMAC 1.03 1994 | Digest::MD5 2.13 1995 | Digest::SHA 5.23 1996 | ExtUtils::MakeMaker 0 1997 | File::Spec 0.86 1998 | IO::File 1.08 1999 | IO::Select 1.14 2000 | IO::Socket::IP 0.38 2001 | MIME::Base64 2.13 2002 | PerlIO 1.05 2003 | Scalar::Util 1.25 2004 | Test::More 0.52 2005 | Time::Local 1.19 2006 | perl 5.006 2007 | Net-HTTP-6.18 2008 | pathname: O/OA/OALDERS/Net-HTTP-6.18.tar.gz 2009 | provides: 2010 | Net::HTTP 6.18 2011 | Net::HTTP::Methods 6.18 2012 | Net::HTTP::NB 6.18 2013 | Net::HTTPS 6.18 2014 | requirements: 2015 | Carp 0 2016 | Compress::Raw::Zlib 0 2017 | ExtUtils::MakeMaker 0 2018 | IO::Socket::INET 0 2019 | IO::Uncompress::Gunzip 0 2020 | URI 0 2021 | base 0 2022 | perl 5.006002 2023 | strict 0 2024 | vars 0 2025 | warnings 0 2026 | Net-SSLeay-1.85 2027 | pathname: M/MI/MIKEM/Net-SSLeay-1.85.tar.gz 2028 | provides: 2029 | Net::SSLeay 1.85 2030 | Net::SSLeay::Handle 0.61 2031 | requirements: 2032 | ExtUtils::MakeMaker 6.36 2033 | MIME::Base64 0 2034 | Test::More 0.60_01 2035 | perl 5.005 2036 | PBKDF2-Tiny-0.005 2037 | pathname: D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz 2038 | provides: 2039 | PBKDF2::Tiny 0.005 2040 | requirements: 2041 | Carp 0 2042 | Config 0 2043 | Exporter 5.57 2044 | ExtUtils::MakeMaker 6.17 2045 | File::Spec 0 2046 | Text::ParseWords 0 2047 | strict 0 2048 | warnings 0 2049 | Package-DeprecationManager-0.17 2050 | pathname: D/DR/DROLSKY/Package-DeprecationManager-0.17.tar.gz 2051 | provides: 2052 | Package::DeprecationManager 0.17 2053 | requirements: 2054 | Carp 0 2055 | ExtUtils::MakeMaker 0 2056 | List::Util 1.33 2057 | Package::Stash 0 2058 | Params::Util 0 2059 | Sub::Install 0 2060 | Sub::Name 0 2061 | strict 0 2062 | warnings 0 2063 | Package-Stash-0.38 2064 | pathname: E/ET/ETHER/Package-Stash-0.38.tar.gz 2065 | provides: 2066 | Package::Stash 0.38 2067 | Package::Stash::PP 0.38 2068 | requirements: 2069 | B 0 2070 | Carp 0 2071 | Config 0 2072 | Dist::CheckConflicts 0.02 2073 | ExtUtils::MakeMaker 0 2074 | File::Spec 0 2075 | Getopt::Long 0 2076 | Module::Implementation 0.06 2077 | Package::Stash::XS 0.26 2078 | Scalar::Util 0 2079 | Symbol 0 2080 | Text::ParseWords 0 2081 | constant 0 2082 | perl 5.008001 2083 | strict 0 2084 | warnings 0 2085 | Package-Stash-XS-0.29 2086 | pathname: E/ET/ETHER/Package-Stash-XS-0.29.tar.gz 2087 | provides: 2088 | Package::Stash::XS 0.29 2089 | requirements: 2090 | ExtUtils::MakeMaker 0 2091 | XSLoader 0 2092 | perl 5.008001 2093 | strict 0 2094 | warnings 0 2095 | Params-Util-1.07 2096 | pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz 2097 | provides: 2098 | Params::Util 1.07 2099 | requirements: 2100 | ExtUtils::CBuilder 0.27 2101 | ExtUtils::MakeMaker 6.52 2102 | File::Spec 0.80 2103 | Scalar::Util 1.18 2104 | Test::More 0.42 2105 | perl 5.00503 2106 | Params-ValidationCompiler-0.30 2107 | pathname: D/DR/DROLSKY/Params-ValidationCompiler-0.30.tar.gz 2108 | provides: 2109 | Params::ValidationCompiler 0.30 2110 | Params::ValidationCompiler::Compiler 0.30 2111 | Params::ValidationCompiler::Exceptions 0.30 2112 | requirements: 2113 | B 0 2114 | Carp 0 2115 | Eval::Closure 0 2116 | Exception::Class 0 2117 | Exporter 0 2118 | ExtUtils::MakeMaker 0 2119 | List::Util 1.29 2120 | Scalar::Util 0 2121 | overload 0 2122 | strict 0 2123 | warnings 0 2124 | Path-Tiny-0.108 2125 | pathname: D/DA/DAGOLDEN/Path-Tiny-0.108.tar.gz 2126 | provides: 2127 | Path::Tiny 0.108 2128 | Path::Tiny::Error 0.108 2129 | requirements: 2130 | Carp 0 2131 | Cwd 0 2132 | Digest 1.03 2133 | Digest::SHA 5.45 2134 | Encode 0 2135 | Exporter 5.57 2136 | ExtUtils::MakeMaker 6.17 2137 | Fcntl 0 2138 | File::Copy 0 2139 | File::Glob 0 2140 | File::Path 2.07 2141 | File::Spec 0.86 2142 | File::Temp 0.19 2143 | File::stat 0 2144 | constant 0 2145 | overload 0 2146 | perl 5.008001 2147 | strict 0 2148 | warnings 0 2149 | warnings::register 0 2150 | Pithub-0.01034 2151 | pathname: O/OA/OALDERS/Pithub-0.01034.tar.gz 2152 | provides: 2153 | Pithub 0.01034 2154 | Pithub::Base 0.01034 2155 | Pithub::Events 0.01034 2156 | Pithub::Gists 0.01034 2157 | Pithub::Gists::Comments 0.01034 2158 | Pithub::GitData 0.01034 2159 | Pithub::GitData::Blobs 0.01034 2160 | Pithub::GitData::Commits 0.01034 2161 | Pithub::GitData::References 0.01034 2162 | Pithub::GitData::Tags 0.01034 2163 | Pithub::GitData::Trees 0.01034 2164 | Pithub::Issues 0.01034 2165 | Pithub::Issues::Assignees 0.01034 2166 | Pithub::Issues::Comments 0.01034 2167 | Pithub::Issues::Events 0.01034 2168 | Pithub::Issues::Labels 0.01034 2169 | Pithub::Issues::Milestones 0.01034 2170 | Pithub::Markdown 0.01034 2171 | Pithub::Orgs 0.01034 2172 | Pithub::Orgs::Members 0.01034 2173 | Pithub::Orgs::Teams 0.01034 2174 | Pithub::PullRequests 0.01034 2175 | Pithub::PullRequests::Comments 0.01034 2176 | Pithub::Repos 0.01034 2177 | Pithub::Repos::Collaborators 0.01034 2178 | Pithub::Repos::Commits 0.01034 2179 | Pithub::Repos::Contents 0.01034 2180 | Pithub::Repos::Downloads 0.01034 2181 | Pithub::Repos::Forks 0.01034 2182 | Pithub::Repos::Hooks 0.01034 2183 | Pithub::Repos::Keys 0.01034 2184 | Pithub::Repos::Releases 0.01034 2185 | Pithub::Repos::Releases::Assets 0.01034 2186 | Pithub::Repos::Starring 0.01034 2187 | Pithub::Repos::Stats 0.01034 2188 | Pithub::Repos::Statuses 0.01034 2189 | Pithub::Repos::Watching 0.01034 2190 | Pithub::Result 0.01034 2191 | Pithub::Result::SharedCache 0.01034 2192 | Pithub::Search 0.01034 2193 | Pithub::SearchV3 0.01034 2194 | Pithub::Users 0.01034 2195 | Pithub::Users::Emails 0.01034 2196 | Pithub::Users::Followers 0.01034 2197 | Pithub::Users::Keys 0.01034 2198 | requirements: 2199 | Array::Iterator 0 2200 | Cache::LRU 0 2201 | Carp 0 2202 | ExtUtils::MakeMaker 0 2203 | HTTP::Headers 0 2204 | HTTP::Request 0 2205 | HTTP::Request::Common 0 2206 | JSON::MaybeXS 0 2207 | LWP::UserAgent 0 2208 | Moo 0 2209 | Moo::Role 0 2210 | URI 0 2211 | perl 5.010 2212 | Role-Tiny-2.000006 2213 | pathname: H/HA/HAARG/Role-Tiny-2.000006.tar.gz 2214 | provides: 2215 | Role::Tiny 2.000006 2216 | Role::Tiny::With 2.000006 2217 | requirements: 2218 | Exporter 5.57 2219 | perl 5.006 2220 | Safe-Isa-1.000010 2221 | pathname: E/ET/ETHER/Safe-Isa-1.000010.tar.gz 2222 | provides: 2223 | Safe::Isa 1.000010 2224 | requirements: 2225 | Exporter 5.57 2226 | ExtUtils::MakeMaker 0 2227 | Scalar::Util 0 2228 | perl 5.006 2229 | Specio-0.43 2230 | pathname: D/DR/DROLSKY/Specio-0.43.tar.gz 2231 | provides: 2232 | Specio 0.43 2233 | Specio::Coercion 0.43 2234 | Specio::Constraint::AnyCan 0.43 2235 | Specio::Constraint::AnyDoes 0.43 2236 | Specio::Constraint::AnyIsa 0.43 2237 | Specio::Constraint::Enum 0.43 2238 | Specio::Constraint::Intersection 0.43 2239 | Specio::Constraint::ObjectCan 0.43 2240 | Specio::Constraint::ObjectDoes 0.43 2241 | Specio::Constraint::ObjectIsa 0.43 2242 | Specio::Constraint::Parameterizable 0.43 2243 | Specio::Constraint::Parameterized 0.43 2244 | Specio::Constraint::Role::CanType 0.43 2245 | Specio::Constraint::Role::DoesType 0.43 2246 | Specio::Constraint::Role::Interface 0.43 2247 | Specio::Constraint::Role::IsaType 0.43 2248 | Specio::Constraint::Simple 0.43 2249 | Specio::Constraint::Structurable 0.43 2250 | Specio::Constraint::Structured 0.43 2251 | Specio::Constraint::Union 0.43 2252 | Specio::Declare 0.43 2253 | Specio::DeclaredAt 0.43 2254 | Specio::Exception 0.43 2255 | Specio::Exporter 0.43 2256 | Specio::Helpers 0.43 2257 | Specio::Library::Builtins 0.43 2258 | Specio::Library::Numeric 0.43 2259 | Specio::Library::Perl 0.43 2260 | Specio::Library::String 0.43 2261 | Specio::Library::Structured 0.43 2262 | Specio::Library::Structured::Dict 0.43 2263 | Specio::Library::Structured::Map 0.43 2264 | Specio::Library::Structured::Tuple 0.43 2265 | Specio::OO 0.43 2266 | Specio::PartialDump 0.43 2267 | Specio::Registry 0.43 2268 | Specio::Role::Inlinable 0.43 2269 | Specio::Subs 0.43 2270 | Specio::TypeChecks 0.43 2271 | Test::Specio 0.43 2272 | requirements: 2273 | B 0 2274 | Carp 0 2275 | Devel::StackTrace 0 2276 | Eval::Closure 0 2277 | Exporter 0 2278 | ExtUtils::MakeMaker 0 2279 | IO::File 0 2280 | List::Util 1.33 2281 | MRO::Compat 0 2282 | Module::Runtime 0 2283 | Role::Tiny 1.003003 2284 | Role::Tiny::With 0 2285 | Scalar::Util 0 2286 | Storable 0 2287 | Sub::Quote 0 2288 | Test::Fatal 0 2289 | Test::More 0.96 2290 | Try::Tiny 0 2291 | overload 0 2292 | parent 0 2293 | perl 5.008 2294 | re 0 2295 | strict 0 2296 | version 0.83 2297 | warnings 0 2298 | Sub-Exporter-0.987 2299 | pathname: R/RJ/RJBS/Sub-Exporter-0.987.tar.gz 2300 | provides: 2301 | Sub::Exporter 0.987 2302 | Sub::Exporter::Util 0.987 2303 | requirements: 2304 | Carp 0 2305 | Data::OptList 0.100 2306 | ExtUtils::MakeMaker 6.30 2307 | Params::Util 0.14 2308 | Sub::Install 0.92 2309 | strict 0 2310 | warnings 0 2311 | Sub-Exporter-Progressive-0.001013 2312 | pathname: F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz 2313 | provides: 2314 | Sub::Exporter::Progressive 0.001013 2315 | requirements: 2316 | ExtUtils::MakeMaker 0 2317 | Sub-Identify-0.14 2318 | pathname: R/RG/RGARCIA/Sub-Identify-0.14.tar.gz 2319 | provides: 2320 | Sub::Identify 0.14 2321 | requirements: 2322 | ExtUtils::MakeMaker 0 2323 | Test::More 0 2324 | Sub-Install-0.928 2325 | pathname: R/RJ/RJBS/Sub-Install-0.928.tar.gz 2326 | provides: 2327 | Sub::Install 0.928 2328 | requirements: 2329 | B 0 2330 | Carp 0 2331 | ExtUtils::MakeMaker 6.30 2332 | Scalar::Util 0 2333 | strict 0 2334 | warnings 0 2335 | Sub-Name-0.21 2336 | pathname: E/ET/ETHER/Sub-Name-0.21.tar.gz 2337 | provides: 2338 | Sub::Name 0.21 2339 | requirements: 2340 | Exporter 5.57 2341 | ExtUtils::MakeMaker 0 2342 | XSLoader 0 2343 | perl 5.006 2344 | strict 0 2345 | warnings 0 2346 | Sub-Quote-2.006003 2347 | pathname: H/HA/HAARG/Sub-Quote-2.006003.tar.gz 2348 | provides: 2349 | Sub::Defer 2.006003 2350 | Sub::Quote 2.006003 2351 | requirements: 2352 | ExtUtils::MakeMaker 0 2353 | Scalar::Util 0 2354 | perl 5.006 2355 | Sub-Uplevel-0.2800 2356 | pathname: D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz 2357 | provides: 2358 | Sub::Uplevel 0.2800 2359 | requirements: 2360 | Carp 0 2361 | ExtUtils::MakeMaker 6.17 2362 | constant 0 2363 | perl 5.006 2364 | strict 0 2365 | warnings 0 2366 | Syntax-Keyword-Junction-0.003008 2367 | pathname: F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz 2368 | provides: 2369 | Syntax::Feature::Junction 0.003008 2370 | Syntax::Keyword::Junction 0.003008 2371 | Syntax::Keyword::Junction::All 0.003008 2372 | Syntax::Keyword::Junction::Any 0.003008 2373 | Syntax::Keyword::Junction::Base 0.003008 2374 | Syntax::Keyword::Junction::None 0.003008 2375 | Syntax::Keyword::Junction::One 0.003008 2376 | requirements: 2377 | ExtUtils::MakeMaker 6.30 2378 | Sub::Exporter::Progressive 0.001006 2379 | parent 0 2380 | syntax 0 2381 | Test-Deep-1.128 2382 | pathname: R/RJ/RJBS/Test-Deep-1.128.tar.gz 2383 | provides: 2384 | Test::Deep 1.128 2385 | Test::Deep::All undef 2386 | Test::Deep::Any undef 2387 | Test::Deep::Array undef 2388 | Test::Deep::ArrayEach undef 2389 | Test::Deep::ArrayElementsOnly undef 2390 | Test::Deep::ArrayLength undef 2391 | Test::Deep::ArrayLengthOnly undef 2392 | Test::Deep::Blessed undef 2393 | Test::Deep::Boolean undef 2394 | Test::Deep::Cache undef 2395 | Test::Deep::Cache::Simple undef 2396 | Test::Deep::Class undef 2397 | Test::Deep::Cmp undef 2398 | Test::Deep::Code undef 2399 | Test::Deep::Hash undef 2400 | Test::Deep::HashEach undef 2401 | Test::Deep::HashElements undef 2402 | Test::Deep::HashKeys undef 2403 | Test::Deep::HashKeysOnly undef 2404 | Test::Deep::Ignore undef 2405 | Test::Deep::Isa undef 2406 | Test::Deep::ListMethods undef 2407 | Test::Deep::MM undef 2408 | Test::Deep::Methods undef 2409 | Test::Deep::NoTest undef 2410 | Test::Deep::None undef 2411 | Test::Deep::Number undef 2412 | Test::Deep::Obj undef 2413 | Test::Deep::Ref undef 2414 | Test::Deep::RefType undef 2415 | Test::Deep::Regexp undef 2416 | Test::Deep::RegexpMatches undef 2417 | Test::Deep::RegexpOnly undef 2418 | Test::Deep::RegexpRef undef 2419 | Test::Deep::RegexpRefOnly undef 2420 | Test::Deep::RegexpVersion undef 2421 | Test::Deep::ScalarRef undef 2422 | Test::Deep::ScalarRefOnly undef 2423 | Test::Deep::Set undef 2424 | Test::Deep::Shallow undef 2425 | Test::Deep::Stack undef 2426 | Test::Deep::String undef 2427 | Test::Deep::SubHash undef 2428 | Test::Deep::SubHashElements undef 2429 | Test::Deep::SubHashKeys undef 2430 | Test::Deep::SubHashKeysOnly undef 2431 | Test::Deep::SuperHash undef 2432 | Test::Deep::SuperHashElements undef 2433 | Test::Deep::SuperHashKeys undef 2434 | Test::Deep::SuperHashKeysOnly undef 2435 | requirements: 2436 | ExtUtils::MakeMaker 0 2437 | List::Util 1.09 2438 | Scalar::Util 1.09 2439 | Test::Builder 0 2440 | Test-Fatal-0.014 2441 | pathname: R/RJ/RJBS/Test-Fatal-0.014.tar.gz 2442 | provides: 2443 | Test::Fatal 0.014 2444 | requirements: 2445 | Carp 0 2446 | Exporter 5.57 2447 | ExtUtils::MakeMaker 0 2448 | Test::Builder 0 2449 | Try::Tiny 0.07 2450 | strict 0 2451 | warnings 0 2452 | Test-NoWarnings-1.04 2453 | pathname: A/AD/ADAMK/Test-NoWarnings-1.04.tar.gz 2454 | provides: 2455 | Test::NoWarnings 1.04 2456 | Test::NoWarnings::Warning 1.04 2457 | requirements: 2458 | ExtUtils::MakeMaker 0 2459 | Test::Builder 0.86 2460 | Test::More 0.47 2461 | Test::Tester 0.107 2462 | perl 5.006 2463 | Test-Requires-0.10 2464 | pathname: T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz 2465 | provides: 2466 | Test::Requires 0.10 2467 | requirements: 2468 | ExtUtils::MakeMaker 6.64 2469 | Test::Builder::Module 0 2470 | Test::More 0.47 2471 | perl 5.006 2472 | Test-Warn-0.36 2473 | pathname: B/BI/BIGJ/Test-Warn-0.36.tar.gz 2474 | provides: 2475 | Test::Warn 0.36 2476 | requirements: 2477 | Carp 1.22 2478 | ExtUtils::MakeMaker 0 2479 | Sub::Uplevel 0.12 2480 | Test::Builder 0.13 2481 | Test::Builder::Tester 1.02 2482 | perl 5.006 2483 | Throwable-0.200013 2484 | pathname: R/RJ/RJBS/Throwable-0.200013.tar.gz 2485 | provides: 2486 | StackTrace::Auto 0.200013 2487 | Throwable 0.200013 2488 | Throwable::Error 0.200013 2489 | requirements: 2490 | Carp 0 2491 | Devel::StackTrace 1.32 2492 | ExtUtils::MakeMaker 0 2493 | Module::Runtime 0.002 2494 | Moo 1.000001 2495 | Moo::Role 0 2496 | Scalar::Util 0 2497 | Sub::Quote 0 2498 | overload 0 2499 | Tie-IxHash-1.23 2500 | pathname: C/CH/CHORNY/Tie-IxHash-1.23.tar.gz 2501 | provides: 2502 | Tie::IxHash 1.23 2503 | requirements: 2504 | Test::More 0 2505 | perl 5.005 2506 | Try-Tiny-0.30 2507 | pathname: E/ET/ETHER/Try-Tiny-0.30.tar.gz 2508 | provides: 2509 | Try::Tiny 0.30 2510 | requirements: 2511 | Carp 0 2512 | Exporter 5.57 2513 | ExtUtils::MakeMaker 0 2514 | constant 0 2515 | perl 5.006 2516 | strict 0 2517 | warnings 0 2518 | Type-Tiny-1.004004 2519 | pathname: T/TO/TOBYINK/Type-Tiny-1.004004.tar.gz 2520 | provides: 2521 | Devel::TypeTiny::Perl56Compat 1.004004 2522 | Devel::TypeTiny::Perl58Compat 1.004004 2523 | Error::TypeTiny 1.004004 2524 | Error::TypeTiny::Assertion 1.004004 2525 | Error::TypeTiny::Compilation 1.004004 2526 | Error::TypeTiny::WrongNumberOfParameters 1.004004 2527 | Eval::TypeTiny 1.004004 2528 | Reply::Plugin::TypeTiny 1.004004 2529 | Test::TypeTiny 1.004004 2530 | Type::Coercion 1.004004 2531 | Type::Coercion::FromMoose 1.004004 2532 | Type::Coercion::Union 1.004004 2533 | Type::Library 1.004004 2534 | Type::Params 1.004004 2535 | Type::Parser 1.004004 2536 | Type::Registry 1.004004 2537 | Type::Tiny 1.004004 2538 | Type::Tiny::Class 1.004004 2539 | Type::Tiny::Duck 1.004004 2540 | Type::Tiny::Enum 1.004004 2541 | Type::Tiny::Intersection 1.004004 2542 | Type::Tiny::Role 1.004004 2543 | Type::Tiny::Union 1.004004 2544 | Type::Utils 1.004004 2545 | Types::Common::Numeric 1.004004 2546 | Types::Common::String 1.004004 2547 | Types::Standard 1.004004 2548 | Types::Standard::ArrayRef 1.004004 2549 | Types::Standard::CycleTuple 1.004004 2550 | Types::Standard::Dict 1.004004 2551 | Types::Standard::HashRef 1.004004 2552 | Types::Standard::Map 1.004004 2553 | Types::Standard::ScalarRef 1.004004 2554 | Types::Standard::StrMatch 1.004004 2555 | Types::Standard::Tied 1.004004 2556 | Types::Standard::Tuple 1.004004 2557 | Types::TypeTiny 1.004004 2558 | requirements: 2559 | Exporter::Tiny 0.040 2560 | ExtUtils::MakeMaker 6.17 2561 | perl 5.006001 2562 | Type-Tiny-XS-0.014 2563 | pathname: T/TO/TOBYINK/Type-Tiny-XS-0.014.tar.gz 2564 | provides: 2565 | Type::Tiny::XS 0.014 2566 | Type::Tiny::XS::Util 0.014 2567 | requirements: 2568 | ExtUtils::MakeMaker 6.17 2569 | perl 5.010001 2570 | URI-1.76 2571 | pathname: O/OA/OALDERS/URI-1.76.tar.gz 2572 | provides: 2573 | URI 1.76 2574 | URI::Escape 3.31 2575 | URI::Heuristic 4.20 2576 | URI::IRI 1.76 2577 | URI::QueryParam 1.76 2578 | URI::Split 1.76 2579 | URI::URL 5.04 2580 | URI::WithBase 2.20 2581 | URI::data 1.76 2582 | URI::file 4.21 2583 | URI::file::Base 1.76 2584 | URI::file::FAT 1.76 2585 | URI::file::Mac 1.76 2586 | URI::file::OS2 1.76 2587 | URI::file::QNX 1.76 2588 | URI::file::Unix 1.76 2589 | URI::file::Win32 1.76 2590 | URI::ftp 1.76 2591 | URI::gopher 1.76 2592 | URI::http 1.76 2593 | URI::https 1.76 2594 | URI::ldap 1.76 2595 | URI::ldapi 1.76 2596 | URI::ldaps 1.76 2597 | URI::mailto 1.76 2598 | URI::mms 1.76 2599 | URI::news 1.76 2600 | URI::nntp 1.76 2601 | URI::pop 1.76 2602 | URI::rlogin 1.76 2603 | URI::rsync 1.76 2604 | URI::rtsp 1.76 2605 | URI::rtspu 1.76 2606 | URI::sftp 1.76 2607 | URI::sip 1.76 2608 | URI::sips 1.76 2609 | URI::snews 1.76 2610 | URI::ssh 1.76 2611 | URI::telnet 1.76 2612 | URI::tn3270 1.76 2613 | URI::urn 1.76 2614 | URI::urn::isbn 1.76 2615 | URI::urn::oid 1.76 2616 | requirements: 2617 | Carp 0 2618 | Cwd 0 2619 | Data::Dumper 0 2620 | Encode 0 2621 | Exporter 5.57 2622 | ExtUtils::MakeMaker 0 2623 | MIME::Base64 2 2624 | Net::Domain 0 2625 | Scalar::Util 0 2626 | constant 0 2627 | integer 0 2628 | overload 0 2629 | parent 0 2630 | perl 5.008001 2631 | strict 0 2632 | utf8 0 2633 | warnings 0 2634 | UUID-URandom-0.001 2635 | pathname: D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz 2636 | provides: 2637 | UUID::URandom 0.001 2638 | requirements: 2639 | Crypt::URandom 0.36 2640 | Exporter 5.57 2641 | ExtUtils::MakeMaker 6.17 2642 | perl 5.008 2643 | strict 0 2644 | warnings 0 2645 | Unicode-Stringprep-1.105 2646 | pathname: C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz 2647 | provides: 2648 | Unicode::Stringprep 1.105 2649 | Unicode::Stringprep::BiDi 1.10 2650 | Unicode::Stringprep::Mapping 1.10 2651 | Unicode::Stringprep::Prohibited 1.10 2652 | Unicode::Stringprep::Unassigned 1.10 2653 | Unicode::Stringprep::_Common 1.10 2654 | requirements: 2655 | Test::More 0 2656 | Test::NoWarnings 0 2657 | Unicode::Normalize 1 2658 | perl 5.008003 2659 | Variable-Magic-0.62 2660 | pathname: V/VP/VPIT/Variable-Magic-0.62.tar.gz 2661 | provides: 2662 | Variable::Magic 0.62 2663 | requirements: 2664 | Carp 0 2665 | Config 0 2666 | Exporter 0 2667 | ExtUtils::MakeMaker 0 2668 | IO::Handle 0 2669 | IO::Select 0 2670 | IPC::Open3 0 2671 | POSIX 0 2672 | Socket 0 2673 | Test::More 0 2674 | XSLoader 0 2675 | base 0 2676 | lib 0 2677 | perl 5.008 2678 | WWW-RobotRules-6.02 2679 | pathname: G/GA/GAAS/WWW-RobotRules-6.02.tar.gz 2680 | provides: 2681 | WWW::RobotRules 6.02 2682 | WWW::RobotRules::AnyDBM_File 6.00 2683 | WWW::RobotRules::InCore 6.02 2684 | requirements: 2685 | AnyDBM_File 0 2686 | ExtUtils::MakeMaker 0 2687 | Fcntl 0 2688 | URI 1.10 2689 | perl 5.008001 2690 | boolean-0.46 2691 | pathname: I/IN/INGY/boolean-0.46.tar.gz 2692 | provides: 2693 | boolean 0.46 2694 | requirements: 2695 | ExtUtils::MakeMaker 0 2696 | perl 5.008001 2697 | libwww-perl-6.38 2698 | pathname: O/OA/OALDERS/libwww-perl-6.38.tar.gz 2699 | provides: 2700 | LWP 6.38 2701 | LWP::Authen::Basic 6.38 2702 | LWP::Authen::Digest 6.38 2703 | LWP::Authen::Ntlm 6.38 2704 | LWP::ConnCache 6.38 2705 | LWP::Debug 6.38 2706 | LWP::Debug::TraceHTTP 6.38 2707 | LWP::DebugFile 6.38 2708 | LWP::MemberMixin 6.38 2709 | LWP::Protocol 6.38 2710 | LWP::Protocol::cpan 6.38 2711 | LWP::Protocol::data 6.38 2712 | LWP::Protocol::file 6.38 2713 | LWP::Protocol::ftp 6.38 2714 | LWP::Protocol::gopher 6.38 2715 | LWP::Protocol::http 6.38 2716 | LWP::Protocol::loopback 6.38 2717 | LWP::Protocol::mailto 6.38 2718 | LWP::Protocol::nntp 6.38 2719 | LWP::Protocol::nogo 6.38 2720 | LWP::RobotUA 6.38 2721 | LWP::Simple 6.38 2722 | LWP::UserAgent 6.38 2723 | libwww::perl undef 2724 | requirements: 2725 | CPAN::Meta::Requirements 2.120620 2726 | Digest::MD5 0 2727 | Encode 2.12 2728 | Encode::Locale 0 2729 | ExtUtils::MakeMaker 0 2730 | File::Copy 0 2731 | File::Listing 6 2732 | Getopt::Long 0 2733 | HTML::Entities 0 2734 | HTML::HeadParser 0 2735 | HTTP::Cookies 6 2736 | HTTP::Daemon 6 2737 | HTTP::Date 6 2738 | HTTP::Negotiate 6 2739 | HTTP::Request 6 2740 | HTTP::Request::Common 6 2741 | HTTP::Response 6 2742 | HTTP::Status 6.18 2743 | IO::Select 0 2744 | IO::Socket 0 2745 | LWP::MediaTypes 6 2746 | MIME::Base64 2.1 2747 | Module::Metadata 0 2748 | Net::FTP 2.58 2749 | Net::HTTP 6.18 2750 | Scalar::Util 0 2751 | Try::Tiny 0 2752 | URI 1.10 2753 | URI::Escape 0 2754 | WWW::RobotRules 6 2755 | base 0 2756 | perl 5.008001 2757 | strict 0 2758 | warnings 0 2759 | namespace-autoclean-0.28 2760 | pathname: E/ET/ETHER/namespace-autoclean-0.28.tar.gz 2761 | provides: 2762 | namespace::autoclean 0.28 2763 | requirements: 2764 | B::Hooks::EndOfScope 0.12 2765 | ExtUtils::MakeMaker 0 2766 | List::Util 0 2767 | Sub::Identify 0 2768 | namespace::clean 0.20 2769 | perl 5.006 2770 | strict 0 2771 | warnings 0 2772 | namespace-clean-0.27 2773 | pathname: R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz 2774 | provides: 2775 | namespace::clean 0.27 2776 | requirements: 2777 | B::Hooks::EndOfScope 0.12 2778 | ExtUtils::MakeMaker 0 2779 | Package::Stash 0.23 2780 | perl 5.008001 2781 | syntax-0.004 2782 | pathname: P/PH/PHAYLON/syntax-0.004.tar.gz 2783 | provides: 2784 | syntax 0.004 2785 | requirements: 2786 | Carp 0 2787 | Data::OptList 0.104 2788 | ExtUtils::MakeMaker 6.30 2789 | FindBin 0 2790 | Test::More 0.94 2791 | namespace::clean 0 2792 | strict 0 2793 | warnings 0 2794 | -------------------------------------------------------------------------------- /cron/crontab: -------------------------------------------------------------------------------- 1 | MAILTO="" 2 | 49 * * * * ~/current/cron/wrapper.sh cronjob -E -s 'GMC Update' -r plu@pqpq.de -c ~/current/cron/update.pl 3 | -------------------------------------------------------------------------------- /cron/update.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | use strict; 3 | use warnings; 4 | use FindBin; 5 | use lib "$FindBin::Bin/../lib"; 6 | use GMC::Cron::Update; 7 | GMC::Cron::Update->new( home => "$FindBin::Bin/../" )->run; 8 | -------------------------------------------------------------------------------- /cron/wrapper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/perl.sh 3 | exec $@ 4 | -------------------------------------------------------------------------------- /deploy/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DEPLOY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 4 | 5 | source "${DEPLOY_DIR}/vars.sh" 6 | 7 | # ## Go to where the docker file is 8 | cd "${DEPLOY_DIR}/.." 9 | 10 | ## Pull the latest docker file from docker hub if there is one 11 | docker pull "$DOCKER_HUB_NAME" || true 12 | 13 | ## Issue the build command, adding tags (from CONFIG.sh) 14 | docker build --pull --cache-from "$DOCKER_HUB_NAME" --tag $DOCKER_HUB_NAME --tag $VERSION_TAG . 15 | -------------------------------------------------------------------------------- /deploy/push.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DEPLOY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 4 | 5 | if [[ "x${DEPLOY_REPO_SLUG}" != "x${TRAVIS_REPO_SLUG}" ]]; then 6 | echo "skip push.sh: only deploy on ${DEPLOY_REPO_SLUG} repo."; 7 | exit; 8 | fi 9 | 10 | if [[ "x$DOCKER_HUB_USER" == "x" ]]; then 11 | echo "DOCKER_HUB_USER env is not defined."; 12 | exit 1; 13 | fi 14 | 15 | if [[ "x$DOCKER_HUB_PASSWD" == "x" ]]; then 16 | echo "DOCKER_HUB_PASSWD env is not defined."; 17 | exit 1; 18 | fi 19 | 20 | source "${DEPLOY_DIR}/vars.sh" 21 | 22 | cd "${DEPLOY_DIR}/.." 23 | 24 | docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWD" 25 | docker push "$DOCKER_HUB_NAME" -------------------------------------------------------------------------------- /deploy/vars.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Edit this 4 | if [ -z $DOCKER_IMAGE_NAME ]; then 5 | echo "DOCKER_IMAGE_NAME is not defined" 6 | exit 1; 7 | fi 8 | 9 | ## Should not need to edit this 10 | export DOCKER_HUB_NAME="metacpan/${DOCKER_IMAGE_NAME}" 11 | export VERSION="${TRAVIS_BUILD_NUMBER:-UNKNOWN-BUILD-NUMBER}" 12 | export VERSION_TAG="${DOCKER_HUB_NAME}:${VERSION}" 13 | 14 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: "3.4" 3 | 4 | # ____ _____ ______ _____ ____ _____ ____ 5 | # / ___|| ____| _ \ \ / /_ _/ ___| ____/ ___| 6 | # \___ \| _| | |_) \ \ / / | | | | _| \___ \ 7 | # ___) | |___| _ < \ V / | | |___| |___ ___) | 8 | # |____/|_____|_| \_\ \_/ |___\____|_____|____/ 9 | # 10 | 11 | services: 12 | # __ _____ __ 13 | # / /__________ ____ / __(_) /__ 14 | # / __/ ___/ __ `/ _ \/ /_/ / //_/ __ 15 | # / /_/ / / /_/ / __/ __/ / ,< _| =\__ 16 | # \__/_/ \__,_/\___/_/ /_/_/|_| /o____o_\ 17 | 18 | traefik: 19 | # The official v2.4.5 Traefik docker image 20 | image: traefik:v2.4.5 21 | networks: 22 | - traefik-network 23 | # Enables the web UI and tells Traefik to listen to docker 24 | command: 25 | - "--api.insecure=true" 26 | - "--providers.docker" 27 | # Do not expose containers unless explicitly told so 28 | - "--providers.docker.exposedbydefault=false" 29 | ports: 30 | # The HTTP port 31 | - "80:80" 32 | # The Web UI (enabled by --api.insecure=true) 33 | - "8080:8080" 34 | volumes: 35 | # So that Traefik can listen to the Docker events 36 | - /var/run/docker.sock:/var/run/docker.sock 37 | 38 | 39 | # _ _ _ _ _ 40 | # __ _(_) |_| |__ _ _| |__ _ __ ___ ___ ___| |_ ___ 41 | # / _` | | __| '_ \| | | | '_ \ | '_ ` _ \ / _ \/ _ \ __/ __| 42 | # | (_| | | |_| | | | |_| | |_) | | | | | | | __/ __/ |_\__ \ 43 | # \__, |_|\__|_| |_|\__,_|_.__/ |_| |_| |_|\___|\___|\__|___/ 44 | # |___/ 45 | # 46 | # ___ _ __ __ _ _ __ 47 | # / __| '_ \ / _` | '_ \ 48 | # | (__| |_) | (_| | | | | 49 | # \___| .__/ \__,_|_| |_| 50 | # |_| 51 | # 52 | github-meets-cpan: 53 | image: metacpan/github-meets-cpan:latest 54 | command: "/wait-for-it.sh mongodb:27017 -- carton exec morbo script/app.pl" 55 | depends_on: 56 | - mongodb 57 | - traefik 58 | networks: 59 | - mongo 60 | - traefik-network 61 | labels: 62 | - "traefik.enable=true" 63 | - "traefik.docker.network=traefik-network" 64 | - "traefik.http.routers.github-meets-cpan.rule=Host(`gh.metacpan.localhost`)" 65 | - "traefik.http.services.gh-meet-cpan-web.loadbalancer.server.port=3000" 66 | 67 | # _ _ _ _ _ 68 | # __ _(_) |_| |__ _ _| |__ _ __ ___ ___ ___| |_ ___ 69 | # / _` | | __| '_ \| | | | '_ \ | '_ ` _ \ / _ \/ _ \ __/ __| 70 | # | (_| | | |_| | | | |_| | |_) | | | | | | | __/ __/ |_\__ \ 71 | # \__, |_|\__|_| |_|\__,_|_.__/ |_| |_| |_|\___|\___|\__|___/ 72 | # |___/ 73 | # 74 | # ___ _ __ __ _ _ __ ___ _ __ ___ _ __ 75 | # / __| '_ \ / _` | '_ \ / __| '__/ _ \| '_ \ 76 | # | (__| |_) | (_| | | | | | (__| | | (_) | | | | 77 | # \___| .__/ \__,_|_| |_| \___|_| \___/|_| |_| 78 | # |_| 79 | # 80 | 81 | github-meets-cpan-cron: 82 | image: metacpan/github-meets-cpan:latest 83 | command: "/wait-for-it.sh mongodb:27017 -- carton exec perl cron/update.pl" 84 | depends_on: 85 | - mongodb 86 | networks: 87 | - mongo 88 | 89 | # _ _ 90 | # _ __ ___ ___ _ __ __ _ ___ __| | |__ 91 | # | '_ ` _ \ / _ \| '_ \ / _` |/ _ \ / _` | '_ \ 92 | # | | | | | | (_) | | | | (_| | (_) | (_| | |_) | 93 | # |_| |_| |_|\___/|_| |_|\__, |\___/ \__,_|_.__/ 94 | # |___/ 95 | # 96 | 97 | mongodb: 98 | image: mongo:4.4.9 99 | networks: 100 | - mongo 101 | healthcheck: 102 | interval: 10s 103 | timeout: 10s 104 | retries: 0 105 | start_period: 40s 106 | test: echo 'db.runCommand("ping").ok' | mongo mongodb:27017/test --quiet 107 | 108 | # _ _ _____ _______ _____ ____ _ ______ 109 | # | \ | | ____|_ _\ \ / / _ \| _ \| |/ / ___| 110 | # | \| | _| | | \ \ /\ / / | | | |_) | ' /\___ \ 111 | # | |\ | |___ | | \ V V /| |_| | _ <| . \ ___) | 112 | # |_| \_|_____| |_| \_/\_/ \___/|_| \_\_|\_\____/ 113 | # 114 | 115 | networks: 116 | mongo: 117 | traefik-network: 118 | -------------------------------------------------------------------------------- /lib/GMC.pm: -------------------------------------------------------------------------------- 1 | package GMC; 2 | 3 | use Mojo::Base 'Mojolicious'; 4 | use GMC::Util qw(mongodb_config); 5 | 6 | # Required by Mojolicious::Plugin::Mongodb 7 | use MongoDB::Connection (); ## no perlimports 8 | 9 | # This method will run once at server start 10 | sub startup { 11 | my $self = shift; 12 | 13 | $self->static->paths( [ $self->home->rel_file('static') ] ); 14 | 15 | $self->plugin( 16 | mongodb => { 17 | mongodb_config(), 18 | database => 'db', 19 | helper => 'db', 20 | } 21 | ); 22 | 23 | # setup routes 24 | my $r = $self->routes; 25 | $r->namespaces( ['GMC::Controller'] ); 26 | $r->route('/')->to('root#list'); 27 | $r->route('/about')->to('root#about'); 28 | $r->route('/faq')->to('root#faq'); 29 | $r->route('/recent')->to('root#recent'); 30 | $r->route('/user/:user')->to('root#view'); 31 | } 32 | 33 | 1; 34 | -------------------------------------------------------------------------------- /lib/GMC/Controller/Root.pm: -------------------------------------------------------------------------------- 1 | package GMC::Controller::Root; 2 | 3 | use Mojo::Base 'Mojolicious::Controller'; 4 | 5 | sub about { 6 | my ($self) = @_; 7 | my $count = $self->db('db')->get_collection('users') 8 | ->find->sort( { rank => -1 } )->count; 9 | $self->stash( 10 | count => $count, 11 | db_status => $self->db('db')->get_collection('status')->find->next, 12 | ); 13 | } 14 | 15 | sub faq { 16 | my ($self) = @_; 17 | $self->stash( 18 | db_status => $self->db('db')->get_collection('status')->find->next ); 19 | } 20 | 21 | sub list { 22 | my ($self) = @_; 23 | my $users = $self->db('db')->get_collection('users') 24 | ->find->sort( { rank => -1 } ); 25 | 26 | $self->stash( 27 | db_status => $self->db('db')->get_collection('status')->find->next, 28 | users => $users, 29 | ); 30 | } 31 | 32 | sub recent { 33 | my ($self) = @_; 34 | my $users 35 | = $self->db('db')->get_collection('users') 36 | ->find( { created => { '$gt' => time - 86400 } } ) 37 | ->sort( { rank => -1 } ); 38 | 39 | $self->stash( 40 | db_status => $self->db('db')->get_collection('status')->find->next, 41 | users => $users, 42 | ); 43 | } 44 | 45 | sub view { 46 | my ($self) = @_; 47 | 48 | my $pauseid = $self->match->stack->[0]->{user}; 49 | 50 | my $uc_pause = uc $pauseid; 51 | if ( $uc_pause ne $pauseid ){ 52 | $self->redirect_to(user => $uc_pause); 53 | return; 54 | } 55 | 56 | my $user = $self->db('db')->get_collection('users') 57 | ->find( { pauseid => $pauseid } )->next; 58 | unless ($user) { 59 | $self->helpers->reply->not_found; 60 | return; 61 | } 62 | my $repos = $self->db('db')->get_collection('repos') 63 | ->find( { _user_id => $user->{_id} } )->sort( { watchers => -1 } ); 64 | $self->stash( 65 | db_status => $self->db('db')->get_collection('status')->find->next, 66 | repos => $repos, 67 | user => $user, 68 | position => 0, 69 | ); 70 | } 71 | 72 | 1; 73 | -------------------------------------------------------------------------------- /lib/GMC/Cron/Update.pm: -------------------------------------------------------------------------------- 1 | package GMC::Cron::Update; 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use DateTime (); 7 | use File::Copy qw(move); 8 | use GMC::Util qw(github_config mongodb_config); 9 | use Cpanel::JSON::XS qw( decode_json ); 10 | use LWP::UserAgent (); 11 | use Mojo::Base -base; 12 | use Mojo::Log; 13 | use MongoDB (); 14 | use Pithub 0.01030; # encoding fix 15 | 16 | __PACKAGE__->attr( [qw(db home log lwp mcpan pithub)] ); 17 | 18 | sub new { 19 | my ( $package, %args ) = @_; 20 | 21 | my $mongo = MongoDB::Connection->new( mongodb_config() ); 22 | my $github = github_config(); 23 | my $gh_ua = LWP::UserAgent->new; 24 | $gh_ua->default_header( 'Accept-Encoding' => 'identity' ); 25 | 26 | return bless { 27 | db => $mongo->get_database('db'), 28 | home => $args{home}, 29 | log => Mojo::Log->new, 30 | lwp => LWP::UserAgent->new, 31 | mcpan => 32 | 'https://fastapi.metacpan.org/v1/author/_search?q=profile.name:github&size=1000', 33 | pithub => Pithub->new( 34 | auto_pagination => 1, 35 | per_page => 100, 36 | $github->{TOKEN} ? ( token => $github->{TOKEN} ) : (), 37 | ua => $gh_ua, 38 | ), 39 | } => $package; 40 | } 41 | 42 | sub run { 43 | my ($self) = @_; 44 | 45 | my $users = $self->fetch_metacpan_users; 46 | 47 | foreach my $user (@$users) { 48 | $self->create_or_update_user($user) or next; 49 | $self->update_repos($user); 50 | } 51 | 52 | my $now = sprintf '%s', DateTime->now; 53 | $self->db->get_collection('status')->remove; 54 | $self->db->get_collection('status')->insert( { last_update => $now } ); 55 | 56 | $self->log->info('FINISHED.'); 57 | 58 | my $src = sprintf '%s/log/update.log', $self->home; 59 | my $dst = sprintf '%s/static/update.log.txt', $self->home; 60 | 61 | move( $src, $dst ); 62 | } 63 | 64 | sub update_repos { 65 | my ( $self, $user ) = @_; 66 | 67 | my $repos = $self->fetch_github_repos($user); 68 | 69 | my $rank = $user->{github_data}{followers}; 70 | 71 | my %languages; 72 | foreach my $repo (@$repos) { 73 | $repo->{_user_id} = $user->{_id}; 74 | next unless $repo->{language}; 75 | $languages{ $repo->{language} }++; 76 | 77 | # Count only Perl projects 78 | next unless $repo->{language} eq 'Perl'; 79 | $rank++; 80 | $rank += $repo->{watchers}; 81 | $rank += $repo->{forks}; 82 | } 83 | 84 | my $cond = { _id => $user->{_id} }; 85 | my $update = { rank => $rank }; 86 | if (%languages) { 87 | $update->{languages} = \%languages; 88 | } 89 | 90 | $self->db->get_collection('users') 91 | ->update( $cond, { '$set' => $update } ); 92 | 93 | if (@$repos) { 94 | $self->db->get_collection('repos') 95 | ->remove( { _user_id => $user->{_id} } ); 96 | $self->db->get_collection('repos')->batch_insert($repos); 97 | } 98 | } 99 | 100 | sub create_or_update_user { 101 | my ( $self, $user ) = @_; 102 | 103 | $self->fetch_github_user($user) or return; 104 | $self->fetch_coderwall_user($user); 105 | 106 | my $cond = { pauseid => $user->{pauseid} }; 107 | 108 | my $db_user = $self->db->get_collection('users')->find($cond); 109 | if ( $db_user->count ) { 110 | $self->db->get_collection('users') 111 | ->update( $cond => { '$set' => $user } ); 112 | $user->{_id} = $db_user->next->{_id}; 113 | $self->log->info( sprintf '%-9s Updating user', $user->{pauseid} ); 114 | } 115 | else { 116 | $user->{created} = time; 117 | my $id = $self->db->get_collection('users')->insert($user); 118 | $user->{_id} = $id; 119 | $self->log->info( sprintf '%-9s Adding new user', $user->{pauseid} ); 120 | } 121 | 122 | return 1; 123 | } 124 | 125 | sub fetch_github_user { 126 | my ( $self, $user ) = @_; 127 | 128 | my $github_user = $user->{github_user}; 129 | unless ($github_user) { 130 | $self->log->error( sprintf '%-9s Invalid GitHub user: %s', 131 | $user->{pauseid}, $github_user ); 132 | return; 133 | } 134 | 135 | my $result = $self->pithub->users->get( user => $github_user ); 136 | 137 | unless ( $result->success ) { 138 | $self->log->error( 139 | sprintf '%-9s Could not fetch user %s from GitHub (RL:%d)', 140 | $user->{pauseid}, $github_user, $result->ratelimit_remaining ); 141 | return; 142 | } 143 | 144 | $user->{github_data} = $result->content; 145 | $self->log->info( 146 | sprintf '%-9s Successfully fetched user %s from GitHub (RL:%d)', 147 | $user->{pauseid}, $github_user, $result->ratelimit_remaining ); 148 | return 1; 149 | } 150 | 151 | sub fetch_github_repos { 152 | my ( $self, $user ) = @_; 153 | 154 | my $github_user = $user->{github_user}; 155 | my $result = $self->pithub->repos->list( user => $github_user ); 156 | 157 | unless ( $result->success ) { 158 | $self->log->error( 159 | sprintf 160 | '%-9s Could not fetch repos of user %s from GitHub (RL:%d)', 161 | $user->{pauseid}, $github_user, $result->ratelimit_remaining ); 162 | return; 163 | } 164 | 165 | my @repos = (); 166 | while ( my $repo = $result->next ) { 167 | next if $repo->{archived}; 168 | push @repos, $repo; 169 | } 170 | $self->log->info( 171 | sprintf 172 | '%-9s Successfully fetched repos of user %s from GitHub (RL:%d)', 173 | $user->{pauseid}, $github_user, $result->ratelimit_remaining ); 174 | 175 | return \@repos; 176 | } 177 | 178 | sub fetch_coderwall_user { 179 | my ( $self, $user ) = @_; 180 | 181 | my $url = sprintf 'http://coderwall.com/%s.json', $user->{coderwall_user}; 182 | my $response = $self->lwp->get($url); 183 | 184 | unless ( $response->is_success ) { 185 | $self->log->warn( sprintf '%-9s Fetching data from %s failed: %s', 186 | $user->{pauseid}, $url, $response->status_line ); 187 | return; 188 | } 189 | 190 | my $data = eval { decode_json( $response->content ) }; 191 | if ($@) { 192 | $self->log->warn( sprintf '%-9s Error decoding data from %s: %s', 193 | $user->{pauseid}, $url, $@ ); 194 | return; 195 | } 196 | 197 | $self->log->info( 198 | sprintf '%-9s Successfully fetched coderwall data from %s', 199 | $user->{pauseid}, $url ); 200 | 201 | $user->{coderwall_data} = $data; 202 | } 203 | 204 | sub fetch_metacpan_users { 205 | my ($self) = @_; 206 | 207 | $self->log->info('Fetching users from MetaCPAN ...'); 208 | 209 | my $response = $self->lwp->get( $self->mcpan ); 210 | die $response->status_line unless $response->is_success; 211 | 212 | my $data = decode_json( $response->content ); 213 | 214 | my @result = (); 215 | foreach my $row ( @{ $data->{hits}{hits} } ) { 216 | $row = $row->{_source}; 217 | 218 | my $coderwall_user; 219 | my $github_user; 220 | foreach my $profile ( @{ $row->{profile} || [] } ) { 221 | $github_user = $profile->{id} if $profile->{name} eq 'github'; 222 | $coderwall_user = $profile->{id} 223 | if $profile->{name} eq 'coderwall'; 224 | } 225 | 226 | push @result, 227 | { 228 | github_user => $github_user, 229 | coderwall_user => $coderwall_user || $github_user, 230 | gravatar_url => $row->{gravatar_url}, 231 | name => $row->{name}, 232 | pauseid => $row->{pauseid}, 233 | metacpan_url => 'https://metacpan.org/author/' . $row->{pauseid}, 234 | }; 235 | } 236 | 237 | $self->log->info('DONE'); 238 | 239 | return \@result; 240 | } 241 | 242 | 1; 243 | -------------------------------------------------------------------------------- /lib/GMC/Util.pm: -------------------------------------------------------------------------------- 1 | package GMC::Util; 2 | 3 | use Mojo::Base 'Exporter'; 4 | use Cpanel::JSON::XS qw( decode_json ); 5 | use Path::Tiny qw( path ); 6 | 7 | our @EXPORT_OK = qw( environment github_config mongodb_config ); 8 | my $ENVIRONMENT; 9 | 10 | sub mongodb_config { 11 | my ($self) = @_; 12 | 13 | my %config = ( 14 | host => environment()->{DOTCLOUD_DATA_MONGODB_HOST}, 15 | port => environment()->{DOTCLOUD_DATA_MONGODB_PORT}, 16 | ); 17 | 18 | my ( $user, $pass ) 19 | = @{ environment() } 20 | {qw(DOTCLOUD_DATA_MONGODB_LOGIN DOTCLOUD_DATA_MONGODB_PASSWORD)}; 21 | 22 | $config{password} = $pass if defined $pass; 23 | $config{username} = $user if defined $user; 24 | 25 | return %config; 26 | } 27 | 28 | sub github_config { 29 | my ($self) = @_; 30 | 31 | my $env = environment(); 32 | 33 | my $token = $env->{GITHUB_TOKEN} || $ENV{GITHUB_TOKEN}; 34 | warn 'No GitHub token found in %ENV' unless $token; 35 | 36 | return { $token ? ( TOKEN => $token ) : () }; 37 | } 38 | 39 | sub environment { 40 | my ($self) = @_; 41 | 42 | return $ENVIRONMENT if $ENVIRONMENT; 43 | 44 | my $file = path('environment.json'); 45 | 46 | if ( $file->exists ) { 47 | my $env = $file->slurp_raw; 48 | $ENVIRONMENT = decode_json($env); 49 | return $ENVIRONMENT; 50 | } 51 | 52 | $ENVIRONMENT = { 53 | DOTCLOUD_DATA_MONGODB_HOST => $ENV{MONGODB_HOST} || 'mongodb', 54 | DOTCLOUD_DATA_MONGODB_PORT => 27017, 55 | }; 56 | 57 | return $ENVIRONMENT; 58 | } 59 | 60 | 1; 61 | -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | if ($host != 'www.github-meets-cpan.com' ) { 2 | rewrite ^/(.*)$ http://www.github-meets-cpan.com/$1 permanent; 3 | } 4 | -------------------------------------------------------------------------------- /postinstall: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | crontab cron/crontab -------------------------------------------------------------------------------- /sample-environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "DOTCLOUD_DATA_MONGODB_HOST" : "localhost", 3 | "DOTCLOUD_DATA_MONGODB_PORT" : 27017, 4 | "GITHUB_TOKEN" : "foobar" 5 | } 6 | -------------------------------------------------------------------------------- /script/app.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use File::Basename 'dirname'; 7 | use File::Spec; 8 | 9 | use lib 'lib'; 10 | 11 | # Check if Mojo is installed 12 | eval 'use Mojolicious::Commands'; 13 | die <start_app('GMC'); 24 | -------------------------------------------------------------------------------- /static/cpan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metacpan/github-meets-cpan/5ce535e8e3617be97e4dc7a966560f8d0efa1ef7/static/cpan.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metacpan/github-meets-cpan/5ce535e8e3617be97e4dc7a966560f8d0efa1ef7/static/favicon.ico -------------------------------------------------------------------------------- /static/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metacpan/github-meets-cpan/5ce535e8e3617be97e4dc7a966560f8d0efa1ef7/static/github.png -------------------------------------------------------------------------------- /static/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metacpan/github-meets-cpan/5ce535e8e3617be97e4dc7a966560f8d0efa1ef7/static/robots.txt -------------------------------------------------------------------------------- /static/screen.css: -------------------------------------------------------------------------------- 1 | { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | body { 7 | margin: 0 auto; 8 | width: 900px; 9 | font: 15px/22px Helvetica, Arial, sans-serif; 10 | background: #f0f0f0; 11 | } 12 | 13 | h2 { 14 | font-size: 28px; 15 | line-height: 44px; 16 | padding: 22px 0; 17 | } 18 | 19 | h3 { 20 | font-size: 18px; 21 | line-height: 22px; 22 | margin: 0; 23 | } 24 | 25 | div.name h3 { 26 | padding-left: 102px; 27 | } 28 | 29 | div.reponame h3 { 30 | position: relative; 31 | top: -32px; 32 | padding-left: 10px; 33 | } 34 | 35 | div.top div.navigation { 36 | float: left; 37 | } 38 | 39 | div.top div.navigation ul { 40 | margin: 0; 41 | padding: 0; 42 | } 43 | 44 | div.top div.navigation li { 45 | background: #FFFFFF; 46 | border: 1px solid #aaaaaa; 47 | -moz-border-radius: 11px; 48 | -webkit-border-radius: 11px; 49 | float: left; 50 | position: relative; 51 | margin: 4px; 52 | padding: 8px 20px 8px 20px; 53 | list-style-type: none; 54 | } 55 | 56 | div.top div.logos { 57 | float: right; 58 | } 59 | 60 | div.top div.status { 61 | clear: both; 62 | float: right; 63 | font-size: 80%; 64 | background: #eeeeee; 65 | border: 1px solid #aaaaaa; 66 | -moz-border-radius: 6px; 67 | -webkit-border-radius: 6px; 68 | padding: 4px 10px 4px 10px; 69 | position: relative; 70 | z-index: 1; 71 | } 72 | 73 | div.top, div.item { 74 | clear: both; 75 | position:relative; 76 | top: -32px; 77 | padding: 21px; 78 | background: #E3E3E3; 79 | border: 1px solid #d7d7d7; 80 | -moz-border-radius: 11px; 81 | -webkit-border-radius: 11px; 82 | width: 80%; 83 | margin-bottom: 2em; 84 | } 85 | 86 | div.avatar { 87 | position: relative; 88 | z-index: 1; 89 | left: 8px; 90 | padding: 8px; 91 | background: #E3E3E3; 92 | border: 1px solid #a7a7a7; 93 | -moz-border-radius: 11px; 94 | -webkit-border-radius: 11px; 95 | width: 80px; 96 | height: 80px; 97 | float: left; 98 | } 99 | 100 | div.top { 101 | position: relative; 102 | top: -15px; 103 | padding-bottom: 4px; 104 | height: 56px; 105 | } 106 | 107 | div.name { 108 | clear: both; 109 | position: relative; 110 | top: -34px; 111 | left: 8px; 112 | } 113 | 114 | img.avatar { 115 | width: 80px; 116 | height: 80px; 117 | } 118 | 119 | span.heart { 120 | font-size: 400%; 121 | } 122 | 123 | span.heart a { 124 | text-decoration: none; 125 | color: #000; 126 | } 127 | 128 | abbr { 129 | font-weight: bold; 130 | } 131 | 132 | img { 133 | border: 0; 134 | } -------------------------------------------------------------------------------- /static/update.log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metacpan/github-meets-cpan/5ce535e8e3617be97e4dc7a966560f8d0efa1ef7/static/update.log.txt -------------------------------------------------------------------------------- /t/basic.t: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use Test::More; 7 | use Test::Mojo (); 8 | 9 | my $t = Test::Mojo->new('GMC'); 10 | $t->get_ok('/about')->status_is(200) 11 | ->content_type_is('text/html;charset=UTF-8') 12 | ->content_like(qr/GitHub Meets CPAN/i); 13 | 14 | done_testing(); 15 | -------------------------------------------------------------------------------- /templates/layouts/default.html.ep: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GitHub Meets CPAN<% if ($title) { %>: <%= title %><% } %> 6 | 7 | 8 | 9 | Fork me on GitHub 10 |
11 | 19 |
20 | GitHub 21 | 22 | CPAN 23 |
24 | <% if ($db_status) { %><% } %> 25 |
26 |
27 | <%= content %> 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /templates/parts/repo.html.ep: -------------------------------------------------------------------------------- 1 |

<%= $repo->{name} %>

2 |
3 | 11 |
12 | -------------------------------------------------------------------------------- /templates/parts/user.html.ep: -------------------------------------------------------------------------------- 1 |
Avatar
2 |

<% if ($position) { %><%= $position %>. <% } %><%= $user->{name} %>

3 |
4 | 26 |
27 | -------------------------------------------------------------------------------- /templates/root/about.html.ep: -------------------------------------------------------------------------------- 1 | % layout 'default'; 2 | % title 'About'; 3 |
4 | 5 | "GitHub Meets CPAN" presents a list of users who have set their GitHub account at MetaCPAN. This app uses the MetaCPAN 9 | API as well as the GitHub 10 | API (Pithub) to gather 11 | all the information presented here. It is hosted by the MetaCPAN project 12 | and uses the Mojolicious Web 13 | Framework. Fastly provides the 14 | caching layer which makes it so fast. You can fork this project on 16 | GitHub. The guy who was so bored to write this is called plu. The rank is calculated by this 18 | formula:
19 | 20 |
  (count of your followers)
21 | + (sum of watchers of all of your repositories)
22 | + (sum of forks of all of your repositories)
23 | = rank
24 |

Currently there are <%= $count %> users listed.

25 |

To appear on this list, you need to:

26 | 34 |
35 | 36 | -------------------------------------------------------------------------------- /templates/root/faq.html.ep: -------------------------------------------------------------------------------- 1 | % layout 'default'; 2 | % title 'FAQ'; 3 |
4 |

5 | Q: 6 | Why am I not in the ranking list? 7 |

8 |

9 | A: 10 | You need to set your GitHub account 11 | at MetaCPAN as well as your 12 | PAUSE account. 13 |

14 |
15 | 16 |
17 |

18 | Q: 19 | I've set my GitHub and PAUSE account, but I'm still not in the list? 20 |

21 |

22 | A: 23 | This may have many reasons. First make sure that you have set your 24 | GitHub account to your username 25 | (e.g.: PLU) and not to the full URL to your profile. 26 | Another reason might be that the list has not been updated in a while, 27 | see also: "How often is the data being updated?" 28 |

29 |
30 | 31 |
32 |

33 | Q: 34 | How often is the data being updated? 35 |

36 |

37 | A: 38 | Currently the data is updated once per hour, the cronjob starts at 39 | 49 * * * * and usually takes around 2-3 minutes. You can even see the 40 | update log file. 41 | Once I did a fresh deployment of the software the logfile might be 42 | empty until the next run. 43 |

44 |
45 | 46 |
47 |

48 | Q: 49 | What is the "Recent" section? 50 |

51 |

52 | A: 53 | A list of users, who have been added to github-meets-cpan.com in the 54 | last 24 hours. 55 |

56 |
57 | 58 | -------------------------------------------------------------------------------- /templates/root/list.html.ep: -------------------------------------------------------------------------------- 1 | % layout 'default'; 2 | % title 'Ranking'; 3 | % my $i = 1; 4 | % while (my $user = $users->next) { 5 | <%= include 'parts/user', user => $user, position => $i %> 6 | % ++$i 7 | % } 8 | -------------------------------------------------------------------------------- /templates/root/recent.html.ep: -------------------------------------------------------------------------------- 1 | % layout 'default'; 2 | % title 'Recent'; 3 | % if ($users->count) { 4 | % while (my $user = $users->next) { 5 | <%= include 'parts/user', user => $user, position => 0 %> 6 | % } 7 | % } 8 | % else { 9 |

There have been no new users added in the last 24 hours.

10 | % } 11 | -------------------------------------------------------------------------------- /templates/root/view.html.ep: -------------------------------------------------------------------------------- 1 | % layout 'default'; 2 | % title $user->{name}; 3 | <%= include 'parts/user' %> 4 | <% if ( $user->{coderwall_data} && scalar @{ $user->{coderwall_data}{badges} || [] } ) { %> 5 |
6 |

Coderwall Badges

7 |
8 | % foreach my $badge (@{ $user->{coderwall_data}{badges}} ) { 9 | <%= $badge->{name} %> 10 | % } 11 |
12 |
13 | <% } %> 14 | <% if ($repos->count) { %> 15 |
16 |

Repositories

17 | % while (my $repo = $repos->next) { 18 | <%= include 'parts/repo', repo => $repo %> 19 | % } 20 |
21 | <% } %> --------------------------------------------------------------------------------