cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Maj <...@adobe.com>
Subject Re: ios commit: added cdvshared
Date Mon, 01 Jul 2013 20:23:00 GMT
Copy/paste fine for this particular instance but if we start seeing every
other iOS plugin do a similar thing, I think that translates into
something that should be considered as the "core" iOS implementation
providing, no?

On 6/28/13 1:42 PM, "Andrew Grieve" <agrieve@chromium.org> wrote:

>Yeah, I think the need for shared code between plugins is going to come up
>a lot. I think it's important to keep Cordova core as leen as possible
>though, since that's the API that we promise to provide longer term.
>Probably it's fine in this case to just copy & paste the functions into
>each plugin. wdyt? Another option is to create a third plugin for the
>shared code, but that seems like overkill for such a small amount of code
>to me.
>
>
>On Fri, Jun 28, 2013 at 12:04 PM, Steven Gill
><stevengill97@gmail.com>wrote:
>
>> Hey Andrew,
>>
>> I have no issue with renaming CDVShared.
>>
>> CDVLocation got split into two plugins, CDVLocation and CDVCompass.
>>Those
>> methods were shared between the two, so I split them up and put them in
>> CDVShared. Without doing this, you couldn't install both plugins in one
>> project.
>>
>> https://issues.apache.org/jira/browse/CB-3511
>>
>>
>>
>> On Fri, Jun 28, 2013 at 8:17 AM, Andrew Grieve <agrieve@chromium.org>
>> wrote:
>>
>> > Hey Steve,
>> >
>> > Just noticed your CDVShared.h commit. For iOS, we have to be really
>> careful
>> > about namespacing since Obj-C has no namespaces. The category name
>>should
>> > being with "CDV". So, instead of JSONMethods, it should be
>> > "CDVJSONMethods", or maybe: "CDVExtensions".
>> >
>> > Since categories are a bit of a murky area, it's also important that
>>each
>> > category on a class go in a file names after the class it's modifying.
>> > These methods should go in:
>> >
>> > NSError+CDVExtensions.h
>> > CLLocation+CDVExtensions.h
>> >
>> > Just did a grep, and don't actually see these new methods used
>> anywhere...
>> > There is a copy of them in CDVLocation.m, but that's it. Maybe we can
>> just
>> > delete them?
>> >
>> >
>> > On Tue, Jun 25, 2013 at 8:01 PM, <steven@apache.org> wrote:
>> >
>> > > Updated Branches:
>> > >   refs/heads/3.0.0 9ca742180 -> f705b31e2
>> > >
>> > >
>> > > added cdvshared
>> > >
>> > >
>> > > Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
>> > > Commit:
>> > http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/f705b31e
>> > > Tree: 
>>http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/f705b31e
>> > > Diff: 
>>http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/f705b31e
>> > >
>> > > Branch: refs/heads/3.0.0
>> > > Commit: f705b31e27693bf44f7f2231cb438fa7809e7fba
>> > > Parents: 9ca7421
>> > > Author: Steven Gill <stevengill97@gmail.com>
>> > > Authored: Tue Jun 25 17:01:09 2013 -0700
>> > > Committer: Steven Gill <stevengill97@gmail.com>
>> > > Committed: Tue Jun 25 17:01:09 2013 -0700
>> > >
>> > > 
>>----------------------------------------------------------------------
>> > >  CordovaLib/Classes/CDVShared.h                  | 35 ++++++++++++
>> > >  CordovaLib/Classes/CDVShared.m                  | 59
>> > ++++++++++++++++++++
>> > >  CordovaLib/CordovaLib.xcodeproj/project.pbxproj | 10 +++-
>> > >  3 files changed, 103 insertions(+), 1 deletion(-)
>> > > 
>>----------------------------------------------------------------------
>> > >
>> > >
>> > >
>> > >
>> >
>> 
>>http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/f705b31e/CordovaL
>>ib/Classes/CDVShared.h
>> > > 
>>----------------------------------------------------------------------
>> > > diff --git a/CordovaLib/Classes/CDVShared.h
>> > > b/CordovaLib/Classes/CDVShared.h
>> > > new file mode 100644
>> > > index 0000000..0b59a37
>> > > --- /dev/null
>> > > +++ b/CordovaLib/Classes/CDVShared.h
>> > > @@ -0,0 +1,35 @@
>> > > +/*
>> > > + 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.
>> > > + */
>> > > +
>> > > +#import <Foundation/Foundation.h>
>> > > +#import <CoreLocation/CoreLocation.h>
>> > > +
>> > > +
>> > > +@interface NSError (JSONMethods)
>> > > +
>> > > +- (NSString*)JSONRepresentation;
>> > > +
>> > > +@end
>> > > +
>> > > +@interface CLLocation (JSONMethods)
>> > > +
>> > > +- (NSString*)JSONRepresentation;
>> > > +
>> > > +@end
>> > > +
>> > >
>> > >
>> > >
>> >
>> 
>>http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/f705b31e/CordovaL
>>ib/Classes/CDVShared.m
>> > > 
>>----------------------------------------------------------------------
>> > > diff --git a/CordovaLib/Classes/CDVShared.m
>> > > b/CordovaLib/Classes/CDVShared.m
>> > > new file mode 100644
>> > > index 0000000..8756c17
>> > > --- /dev/null
>> > > +++ b/CordovaLib/Classes/CDVShared.m
>> > > @@ -0,0 +1,59 @@
>> > > +/*
>> > > + 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.
>> > > + */
>> > > +
>> > > +#import "CDVShared.h"
>> > > +
>> > > +#pragma mark -
>> > > +#pragma mark CLLocation(JSONMethods)
>> > > +
>> > > +@implementation CLLocation (JSONMethods)
>> > > +
>> > > +- (NSString*)JSONRepresentation
>> > > +{
>> > > +    return [NSString stringWithFormat:
>> > > +            @"{ timestamp: %.00f, \
>> > > +            coords: { latitude: %f, longitude: %f, altitude: %.02f,
>> > > heading: %.02f, speed: %.02f, accuracy: %.02f, altitudeAccuracy:
>>%.02f
>> }
>> > \
>> > > +            }",
>> > > +            [self.timestamp timeIntervalSince1970] * 1000.0,
>> > > +            self.coordinate.latitude,
>> > > +            self.coordinate.longitude,
>> > > +            self.altitude,
>> > > +            self.course,
>> > > +            self.speed,
>> > > +            self.horizontalAccuracy,
>> > > +            self.verticalAccuracy
>> > > +            ];
>> > > +}
>> > > +
>> > > +@end
>> > > +
>> > > +#pragma mark NSError(JSONMethods)
>> > > +
>> > > +@implementation NSError (JSONMethods)
>> > > +
>> > > +- (NSString*)JSONRepresentation
>> > > +{
>> > > +    return [NSString stringWithFormat:
>> > > +            @"{ code: %d, message: '%@'}",
>> > > +            self.code,
>> > > +            [self localizedDescription]
>> > > +            ];
>> > > +}
>> > > +
>> > > +@end
>> > > \ No newline at end of file
>> > >
>> > >
>> > >
>> >
>> 
>>http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/f705b31e/CordovaL
>>ib/CordovaLib.xcodeproj/project.pbxproj
>> > > 
>>----------------------------------------------------------------------
>> > > diff --git a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
>> > > b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
>> > > index bf92ac3..2d97260 100644
>> > > --- a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
>> > > +++ b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
>> > > @@ -7,6 +7,8 @@
>> > >         objects = {
>> > >
>> > >  /* Begin PBXBuildFile section */
>> > > +               1B701028177A61CF00AE11F4 /* CDVShared.h in Headers
>>*/ =
>> > > {isa = PBXBuildFile; fileRef = 1B701026177A61CF00AE11F4 /*
>>CDVShared.h
>> > */;
>> > > };
>> > > +               1B701029177A61CF00AE11F4 /* CDVShared.m in Sources
>>*/ =
>> > > {isa = PBXBuildFile; fileRef = 1B701027177A61CF00AE11F4 /*
>>CDVShared.m
>> > */;
>> > > };
>> > >                 1F92F4A01314023E0046367C /* CDVPluginResult.h in
>> Headers
>> > > */ = {isa = PBXBuildFile; fileRef = 1F92F49E1314023E0046367C /*
>> > > CDVPluginResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
>> > >                 1F92F4A11314023E0046367C /* CDVPluginResult.m in
>> Sources
>> > > */ = {isa = PBXBuildFile; fileRef = 1F92F49F1314023E0046367C /*
>> > > CDVPluginResult.m */; };
>> > >                 301F2F2A14F3C9CA003FE9FC /* CDV.h in Headers */ =
>>{isa
>> =
>> > > PBXBuildFile; fileRef = 301F2F2914F3C9CA003FE9FC /* CDV.h */;
>>settings
>> =
>> > > {ATTRIBUTES = (Public, ); }; };
>> > > @@ -57,6 +59,8 @@
>> > >  /* End PBXBuildFile section */
>> > >
>> > >  /* Begin PBXFileReference section */
>> > > +               1B701026177A61CF00AE11F4 /* CDVShared.h */ = {isa =
>> > > PBXFileReference; fileEncoding = 4; lastKnownFileType =
>>sourcecode.c.h;
>> > > name = CDVShared.h; path = Classes/CDVShared.h; sourceTree =
>>"<group>";
>> > };
>> > > +               1B701027177A61CF00AE11F4 /* CDVShared.m */ = {isa =
>> > > PBXFileReference; fileEncoding = 4; lastKnownFileType =
>> > sourcecode.c.objc;
>> > > name = CDVShared.m; path = Classes/CDVShared.m; sourceTree =
>>"<group>";
>> > };
>> > >                 1F92F49E1314023E0046367C /* CDVPluginResult.h */ =
>> {isa =
>> > > PBXFileReference; fileEncoding = 4; lastKnownFileType =
>>sourcecode.c.h;
>> > > name = CDVPluginResult.h; path = Classes/CDVPluginResult.h;
>>sourceTree
>> =
>> > > "<group>"; };
>> > >                 1F92F49F1314023E0046367C /* CDVPluginResult.m */ =
>> {isa =
>> > > PBXFileReference; fileEncoding = 4; lastKnownFileType =
>> > sourcecode.c.objc;
>> > > name = CDVPluginResult.m; path = Classes/CDVPluginResult.m;
>>sourceTree
>> =
>> > > "<group>"; };
>> > >                 301F2F2914F3C9CA003FE9FC /* CDV.h */ = {isa =
>> > > PBXFileReference; fileEncoding = 4; lastKnownFileType =
>>sourcecode.c.h;
>> > > name = CDV.h; path = Classes/CDV.h; sourceTree = "<group>"; };
>> > > @@ -207,12 +211,14 @@
>> > >                                 30C684921407044A004C1A8E /*
>> > > CDVURLProtocol.h */,
>> > >                                 30C684931407044A004C1A8E /*
>> > > CDVURLProtocol.m */,
>> > >                                 30C6847E1406CB38004C1A8E /*
>> > CDVWhitelist.h
>> > > */,
>> > > +                               1B701026177A61CF00AE11F4 /*
>>CDVShared.h
>> > */,
>> > > +                               1B701027177A61CF00AE11F4 /*
>>CDVShared.m
>> > */,
>> > >                                 30C6847F1406CB38004C1A8E /*
>> > CDVWhitelist.m
>> > > */,
>> > >                                 30E33AF013A7E24B00594D64 /*
>>CDVPlugin.h
>> > */,
>> > >                                 30E33AF113A7E24B00594D64 /*
>>CDVPlugin.m
>> > */,
>> > >                                 1F92F49E1314023E0046367C /*
>> > > CDVPluginResult.h */,
>> > >                                 1F92F49F1314023E0046367C /*
>> > > CDVPluginResult.m */,
>> > > -                EB80C2AA15DEA63D004D9E7B /* CDVEcho.h */,
>> > > +                               EB80C2AA15DEA63D004D9E7B /*
>>CDVEcho.h
>> */,
>> > >                                 EB80C2AB15DEA63D004D9E7B /*
>>CDVEcho.m
>> */,
>> > >                                 8887FD341090FBE7009987E8 /*
>> > > CDVInvokedUrlCommand.h */,
>> > >                                 8887FD351090FBE7009987E8 /*
>> > > CDVInvokedUrlCommand.m */,
>> > > @@ -290,6 +296,7 @@
>> > >                                 EBFF4DBD16D3FE2E008F452B /*
>> > > CDVWebViewDelegate.h in Headers */,
>> > >                                 EB96673B16A8970A00D86CDF /*
>> > > CDVUserAgentUtil.h in Headers */,
>> > >                                 7E14B5A81705050A0032169E /*
>>CDVTimer.h
>> in
>> > > Headers */,
>> > > +                               1B701028177A61CF00AE11F4 /*
>>CDVShared.h
>> > in
>> > > Headers */,
>> > >                         );
>> > >                         runOnlyForDeploymentPostprocessing = 0;
>> > >                 };
>> > > @@ -368,6 +375,7 @@
>> > >                                 EB96673C16A8970A00D86CDF /*
>> > > CDVUserAgentUtil.m in Sources */,
>> > >                                 EBFF4DBC16D3FE2E008F452B /*
>> > > CDVWebViewDelegate.m in Sources */,
>> > >                                 7E14B5A91705050A0032169E /*
>>CDVTimer.m
>> in
>> > > Sources */,
>> > > +                               1B701029177A61CF00AE11F4 /*
>>CDVShared.m
>> > in
>> > > Sources */,
>> > >                         );
>> > >                         runOnlyForDeploymentPostprocessing = 0;
>> > >                 };
>> > >
>> > >
>> >
>>


Mime
View raw message