cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Grieve <agri...@chromium.org>
Subject Re: ios commit: added cdvshared
Date Fri, 28 Jun 2013 20:42:15 GMT
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/CordovaLib/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/CordovaLib/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/CordovaLib/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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message