Comments (3)
@christianselig - I'm assuming the convention you are trying to keep is the property suffix represented as URL
vs Url
. Is that correct?
Your understanding of how plank derives property names is almost correct.
img_url
is split into it's components separated by_
([img
,url
])- These components are compared against a Dictionary that has common reserved keywords that could be issues in generated code. Example - If the schema key was
id
we would produce code that wouldn't compile so we convert this toidentifier
. - The first character of each component besides the first is capitalized ([
img
,Url
]). There is an exception to this logic forurl
that will capitalize the entire component toURL
. - The components are concatenated back to a single name
imgURL
Thanks for the suggestion and it has certainly come up internally at Pinterest before. Historically we've had a goal of keeping scheme keys 1:1 with the server-side specification to enforce the creation of reasonable keys for our API JSON responses.
A workaround we've used internally is to declare a property getter on a category on your model class which would look something like the below code.
// Generated model interface
@interface MyModel
@property (nonatomic, strong, readonly) NSURL *imgURL;
@end
// Your category
@interface MyModel(Aliases)
@property (nonatomic, strong, readonly) NSURL *imageURL;
@end
@implementation MyModel(Aliases)
- (NSURL *)imageURL
{
return self.imgURL;
}
@end
from plank.
Thanks @christianselig! Let me know if you run into any issues :)
from plank.
@rahul-malik Your assumption was correct! And awesome, that's terrific and should suffice fine, thanks for the prompt response and appreciate the library. :)
from plank.
Related Issues (20)
- Update Maven Bazel integration to new rules
- Add support for AndroidX nullability annotations HOT 1
- required fields don't do anything in Java HOT 2
- Java model _bits property should be transient HOT 2
- Java model's Builder-setters should annotate parameter with @Nullable or @NonNull
- Java model Builder.build() method should be annotated with @NonNull HOT 1
- Java model - mergeFrom should be annotated with @NonNull
- Java model Builders should apply @NonNull annotation to its getter methods if appropriate HOT 1
- Java model builders should order the fields checked in `equals()`
- Make it easier to detect use of outdated Plank binary HOT 3
- Custom merge strategies (Java) HOT 2
- Use Kotlin-friend Java method names for Boolean accessors
- Support nested object definitions
- Source code checksum changed HOT 6
- Java documentation is outdated
- Title field is not save when creating Pin from a direct link
- Any plans for dart/flutter support? HOT 1
- 'extends' isn't not a keyword in JSON-schema spec HOT 2
- iOS plank -initWithModelDictionary:error: assumes dictionary is dictionary
- [Security] Workflow ci.yml is using vulnerable action actions/checkout
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from plank.