cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-8595) Merge platform specific code into one place
Date Wed, 11 Mar 2015 14:19:39 GMT

    [ https://issues.apache.org/jira/browse/CB-8595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14356918#comment-14356918
] 

ASF GitHub Bot commented on CB-8595:
------------------------------------

Github user kamrik commented on a diff in the pull request:

    https://github.com/apache/cordova-lib/pull/183#discussion_r26215211
  
    --- Diff: cordova-lib/src/platforms/platforms.js ---
    @@ -0,0 +1,102 @@
    +/**
    +    Licensed to the Apache Software Foundation (ASF) under one
    +    or more contributor license agreements.  See the NOTICE file
    +    distributed with this work for additional information
    +    regarding copyright ownership.  The ASF licenses this file
    +    to you under the Apache License, Version 2.0 (the
    +    "License"); you may not use this file except in compliance
    +    with the License.  You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +    Unless required by applicable law or agreed to in writing,
    +    software distributed under the License is distributed on an
    +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +    KIND, either express or implied.  See the License for the
    +    specific language governing permissions and limitations
    +    under the License.
    +*/
    +
    +var platforms = require('./platformsConfig.json');
    +
    +// Remove this block soon. The parser property is no longer used in
    +// cordova-lib but some downstream tools still use it.
    +var addModuleProperty = require('../cordova/util').addModuleProperty;
    +Object.keys(platforms).forEach(function(key) {
    +    var obj = platforms[key];
    +    if (obj.parser_file) {
    +        addModuleProperty(module, 'parser', obj.parser_file, false, obj);
    +    }
    +});
    +
    +
    +// Avoid loading the same platform projects more than once (identified by path)
    +var cachedProjects = {};
    +
    +var PARSER_PUBLIC_METHODS = [
    +    'config_xml',
    +    'cordovajs_path',
    +    'update_from_config',
    +    'update_overrides',
    +    'update_project',
    +    'update_www',
    +    'www_dir',
    +];
    +
    +var HANDLER_PUBLIC_METHODS = [
    +    'package_name',
    +    'parseProjectFile',
    +    'purgeProjectFileCache',
    +];
    +
    +
    +// A single class that exposes functionality from platform specific files from
    +// both places cordova/metadata and plugman/platforms. Hopefully, to be soon
    +// replaced by real unified platform specific classes.
    +function PlatformProjectAdapter(platform, platformRootDir) {
    +    var self = this;
    +    self.root = platformRootDir;
    +    self.platform = platform;
    +    var ParserConstructor = require(platforms[platform].parser_file);
    +    self.parser = new ParserConstructor(platformRootDir);
    +    self.handler = require(platforms[platform].handler_file);
    +
    +    // Expos all public methods from the parser and handler, properly bound.
    +    PARSER_PUBLIC_METHODS.forEach(function(method) {
    +        if (self.parser[method]) {
    +            self[method] = self.parser[method].bind(self.parser);
    +        }
    +    });
    +
    +    HANDLER_PUBLIC_METHODS.forEach(function(method) {
    +        if (self.handler[method]) {
    --- End diff --
    
    For the handlers the if is still needed because there is actually code that checks if
the handler has a parseProjectFile() function before calling it.


> Merge platform specific code into one place
> -------------------------------------------
>
>                 Key: CB-8595
>                 URL: https://issues.apache.org/jira/browse/CB-8595
>             Project: Apache Cordova
>          Issue Type: Improvement
>            Reporter: Mark Koudritsky
>            Assignee: Mark Koudritsky
>
> Currently we have two separate places for platform specific code
> src/cordova/metadata
> src/plugman/platforms
> This is confusing.
> Once consolidated the platform specific code will be much easier to move to the platform
repos where it belongs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message