Za pravilno namestitev in pravilno delovanje zunanjih vtičnikov morajo slediti nekaterim strukturnim smernicam glede njihove hierarhije datotek.
Oglejmo si prototipno hierarhijo datotek dodelanega vtičnika v arhivu. Ni vam treba vključiti vseh teh imenikov in/ali datotek za vtičnik za delo (preberite, če želite izvedeti, kaj je nujno potrebno), razmisliteo tem kot na primer “najboljše prakse”:
plugin_name/
inst/
rkward/
plugins/
plugin_name.xml
plugin_name.js
plugin_name.rkh
...
po/
ll/
LC_MESSAGES/
rkward__plugin_name_rkward.mo
rkward__plugin_name_rkward.ll.po
rkward__plugin_name_rkward.pot
tests/
testsuite_name/
RKTestStandards.sometest_name.rkcommands.R
RKTestStandards.sometest_name.rkout
...
testsuite.R
plugin_name.pluginmap
...
ChangeLog
README
AUTHORS
LICENSE
DESCRIPTION
Opomba
V tem primeru morajo vsi pojavi plugin_name,testsuite_name in sometest_name biti ustrezno nadomeščeni s svojimi pravilnimi imeni. Tudi ll je namesto za jezikovno okrajšavo (npr., “de”, “en” ali “es”).
Namig
Te hierarhije datotek vam ni treba ustvariti ročno. Če uporabljatefunkcijo rk.plugin.skeleton() iz rkwarddev paketa, bosamodejno ustvari vse potrebne datoteke in imenike, razen imenika po, ki ga ustvari in upravlja skript za prevajanje.
Obvezno je vključiti vsaj tri datoteke: a .pluginmap, vtičnik .xmlopis in datoteko vtičnika .js. to je celo imenik "plugins" neobvezen. Morda bi le pomagalo dati vaše datoteke v nekem redu, še posebej, če vključite več kot en vtičnik v pogovorno okno v arhivu, kar seveda ni problem. Lahko imate imenike za dejanske datoteke vtičnikov, kot se vam zdi primerno, preprosto morajo podobni .pluginmap.Prav tako je mogoče celo vključiti več .pluginmap datotek, če ustreza za vaše potrebe, vendar jih morate potem vse vključiti v “plugin_name.pluginmap”.
Vsak R paket mora imeti veljavno datoteko DESCRIPTION,kar je ključnega pomena tudi za RKWard ga prepoznajo kot ponudnika vtičnikov. Večina informacij, ki jih nosi, je potreben tudi v vtičniku Meta-information in morda dependencies, vendar v drugem formatu (dokumentacija R pojasnjuje DESCRIPTION datoteka s podrobnostmi).
Poleg splošne vsebine DESCRIPTION ne pozabite vključiti tudi vrstice “Enhances: rkward”.To bo povzročilo RKWard da samodejno pregleda paket za vtičnike, če jeje nameščen. Primer datoteke DESCRIPTION je videti takole:
Package: SquaretheCircle
Type: Package
Title: Square the circle
Version: 0.1-3
Date: 2011-09-19
Author: E.A. Dölle <doelle@eternalwondermaths.example.org>
Maintainer: A. Assistant <alterego@eternalwondermaths.example.org>
Enhances: rkward
Description: Squares the circle using Heisenberg compensation.
License: GPL
LazyLoad: yes
URL: http://eternalwondermaths.example.org/23/stc.html
Authors@R: c(person(given="E.A.", family="Dölle", role="aut",
email="doelle@eternalwondermaths.example.org"),
person(given="A.", family="Assistant", role=c("cre",
"ctb"), email="alterego@eternalwondermaths.example.org"))
Namig
Te datoteke vam ni treba pisati ročno. Če uporabljate funkcijork.plugin.skeleton() iz rkwarddev paket in zagotovite vsepotrebne informacije prek možnosti “o”, bosamodejno ustvaril delujočo datoteko DESCRIPTION za vas.
Dnevnik sprememb, README,AUTHORS, LICENSE bi morale biti samo po sebi razumljive in so v celoti neobvezne. Pravzaprav jih ne bo tolmačil RKWard, zato so bolj namenjeni prenašanju dodatnih informacij, ki bi lahko bile relevantne npr. za distributerje. Večina njihove ustrezne vsebine (avtorji, licenčni pogoji itd.) bodo vključeni v dejanski vtičnik datoteke vseeno (glejte razdelek o metainformacijah). Upoštevajte, da lahko vse te datoteke postavite tudi nekje v imenik "inst", če jih ne želite samo, da je prisoten v izvornem arhivu, ampak tudi v nameščenem paketu.
Drug izbirni imenik je "tests", ki je namenjen zagotavljanju datotekpotrebno za samodejno testiranje vtičnikov. Titesti so koristni za hitro preverjanje, ali vaši vtičniki še vedno delujejo z novimirazličicami R ali RKWard. Če želite vključiti teste, se morate res omejiti se na shemo poimenovanja in hierarhijo, prikazano tukaj. To je, da morajo biti testi v imeniku z imenom tests, kivključuje datoteko testsuite.R in mapo s standardi testov, poimenovani po ustreznem testnem nizu. Lahko pa zagotovite več kot ena zbirka testov; v tem primeru, če jih ne želite pripeti vseh v eni datoteki testsuite.R jih lahko razdelite v npr.eno datoteko za vsak preskusni paket in ustvarite en testsuite.Rs klici source() za vsako datoteko zbirke. V kateremkoli primeru ustvarite ločene podimenike s testnimi standardi za vsak definiran skupek.
Prednost vzdrževanja te strukture je, da je mogoče izvajati teste vtičnikov preprosto s klicem rktests.makplugintests() iz paketa rkwardtests brez dodatnih argumentov. Oglejte si spletno dokumentacijo oSamodejno testiranje vtičnikov za nadaljnje podrobnosti.