Which options, 1 or 2? On 7/15/13 9:22 AM, "Max Woghiren" <m...@chromium.org> wrote:
>Just a heads up‹I plan to make this change and I will make the appropriate >documentation updates. > > >On Tue, Jul 9, 2013 at 4:15 PM, Filip Maj <f...@adobe.com> wrote: > >> 2 is more explicit. Either case require a good docs update. >> >> On 7/9/13 12:57 PM, "Andrew Grieve" <agri...@chromium.org> wrote: >> >> >Another use-case that's come up with the core plugins is the ability to >> >clobber one module with a platform-specific one (instead of merging >>with >> >it). >> > >> >Right now where this was happening we're copy & pasting the <js-module> >> >tag >> >for each non-specialized platform. Not great. >> > >> >Option 1: >> >Allow <js-module> within platform to have the same name= without >>plugman >> >complaining >> > >> >Option 2: >> ><js-module name="SameName" override="true"> >> > >> >I think I prefer option 1. >> > >> > >> > >> > >> > >> > >> > >> > >> >On Mon, Jul 8, 2013 at 2:51 PM, Andrew Grieve <agri...@chromium.org> >> >wrote: >> > >> >> You specify what JS path you want to merge into. I think this is >>wrong. >> >> >> >> E.g.: >> >> <js-module src="..." name="A" > >> >> <clobbers target="window.plugins.A" /> >> >> <clobbers target="window.oldPath.A" /> >> >> </js-module> >> >> >> >> <platform name="ios"> >> >> <js-module ...> >> >> <merges target="window.plugins.A" /> >> >> <merges target="window.oldPath.A" /> >> >> </js-module> >> >> </platform> >> >> >> >> With this example, you'd actually only need to have a single merge >>line, >> >> since window.plugins.A and window.oldPath.A actually refer to the >>same >> >> object. It's also less apparent when specifying the symbol path, that >> >> you're modifying the actual module that maps to it. >> >> >> >> Instead - I think what better captures the merges use-case would be >>to >> >> specify the name of the *module* to merge into. E.g.: >> >> >> >> <js-module src="..." name="A"> >> >> <clobbers target="window.plugins.A" /> >> >> <clobbers target="window.oldPath.A" /> >> >> </js-module> >> >> >> >> <platform name="ios"> >> >> <js-module ...> >> >> <merges target="A" /> >> >> </js-module> >> >> </platform> >> >> >> >> >> >> We could then also have a plugman-time check that the "A" module >>exists >> >>to >> >> be merged into. >> >> >> >> Existing uses of <merges> are minimal, so I think we can change this >>now >> >> without harm: >> >> >> >> $ grep merges cordova*plugin*/plugin.xml >> >> cordova-plugin-contacts/plugin.xml: <merges >> >> target="navigator.contacts" /> >> >> cordova-plugin-contacts/plugin.xml: <merges >>target="Contact" >> >>/> >> >> cordova-plugin-dialogs/plugin.xml: <merges >> >> target="navigator.notification" /> >> >> cordova-plugin-dialogs/plugin.xml: <merges >> >> target="navigator.notification" /> >> >> cordova-plugin-file/plugin.xml: <merges >> >>target="window.Entry" /> >> >> cordova-plugin-file/plugin.xml: <merges >> >> target="window.FileUploadOptions" /> >> >> cordova-plugin-file/plugin.xml: <merges >> >> target="window.FileUploadOptions" /> >> >> >> >>