diff --git a/.travis.yml b/.travis.yml index fad41d9..db37ec3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,9 @@ android: components: - tools - platform-tools - - build-tools-24.0.3 + - build-tools-24.0.2 - extra-android-m2repository - - android-25 + - android-24 jdk: - oraclejdk8 diff --git a/README.md b/README.md index a5a0e89..1791a98 100644 --- a/README.md +++ b/README.md @@ -3,50 +3,41 @@ **kotlin extension** to **pluralize** and **singularize** strings -[![Build Status](https://travis-ci.org/cesarferreira/kotlin-pluralizer.svg?branch=master)](https://travis-ci.org/cesarferreira/kotlin-pluralizer) [![Release](https://jitpack.io/v/cesarferreira/kotlin-pluralizer.svg)](https://jitpack.io/#cesarferreira/kotlin-pluralizer) - -### Show some love -[![GitHub followers](https://img.shields.io/github/followers/cesarferreira.svg?style=social&label=Follow)](https://github.com/cesarferreira/kotlin-pluralizer) [![Twitter Follow](https://img.shields.io/twitter/follow/cesarmcferreira.svg?style=social)](https://twitter.com/cesarmcferreira) +[![Build Status](https://travis-ci.org/cesarferreira/kotlin-pluralizer.svg?branch=master)](https://travis-ci.org/cesarferreira/kotlin-pluralizer) [![Release](https://jitpack.io/v/cesarferreira/kotlin-pluralizer.svg)](https://jitpack.io/#cesarferreira/kkotlin-pluralizer) [ ![bintray](https://api.bintray.com/packages/cesarferreira/maven/kotlin-pluralizer/images/download.svg) ](https://bintray.com/cesarferreira/maven/kotlin-pluralizer/_latestVersion) ## Usage - **Pluralization:** ```kotlin -"person".pluralize() # => "people" -"post".pluralize() # => "posts" -"sheep".pluralize() # => "sheep" -"foot".pluralize() # => "feet" +"person".pluralize() # => "people" +"post".pluralize() # => "posts" +"sheep".pluralize() # => "sheep" ``` **Singuralization:** ```kotlin -"words".singularize() # => "word" -"octopi".singularize() # => "octopus" -"people".singularize() # => "person" -"feet".singularize() # => "foot" -``` +"words".singularize() # => "word" +"octopi".singularize() # => "octopus" -**Quantities:** -```kotlin -"person".pluralize(1) # => "person" -"person".pluralize(2) # => "people" ``` ## Install ```groovy repositories { - jcenter() - maven { url "https://jitpack.io" } + jcenter() + maven { url "https://jitpack.io" } } dependencies { - compile 'com.github.cesarferreira:kotlin-pluralizer:0.2.9' + compile 'com.github.cesarferreira:kotlin-pluralizer:0.2.4' } ``` +## Show some love +[![GitHub followers](https://img.shields.io/github/followers/cesarferreira.svg?style=social&label=Follow)](https://github.com/cesarferreira/kotlin-pluralizer) [![Twitter Follow](https://img.shields.io/twitter/follow/cesarmcferreira.svg?style=social)](https://twitter.com/cesarmcferreira) + ## Contributing I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request. Here are some basic rules to follow to ensure timely addition of your request: @@ -54,11 +45,11 @@ I welcome and encourage all pull requests. It usually will take me within 24-48 2. If its a feature, bugfix, or anything please only change code to what you specify. 3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :) 4. Pull requests _must_ be made against `develop` branch. Any other branch (unless specified by the maintainers) will get rejected. - 5. Check for existing [issues](https://github.com/cesarferreira/kotlin-pluralizer/issues) first, before filing an issue. + 5. Check for existing [issues](https://github.com/cesarferreira/kotkotlin-pluralizer/issues) first, before filing an issue. 6. Have fun! -## Credits + ## Credits The pluralize and singularize methods are based on the code found in the following places. diff --git a/android-sample/build.gradle b/android-sample/build.gradle index c3e679e..fa4a664 100644 --- a/android-sample/build.gradle +++ b/android-sample/build.gradle @@ -12,18 +12,19 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 25 - buildToolsVersion "24.0.3" + compileSdkVersion 24 + buildToolsVersion "24.0.2" defaultConfig { + applicationId "com.cesarferreira.supposedlibrary" minSdkVersion 16 - targetSdkVersion 25 + targetSdkVersion 24 versionCode 1 versionName "1.0" } lintOptions { abortOnError false } - + buildTypes { release { minifyEnabled false @@ -38,8 +39,8 @@ android { dependencies { compile project(':library') compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - compile 'com.android.support:appcompat-v7:25.1.0' - compile 'com.android.support:design:25.1.0' + compile 'com.android.support:appcompat-v7:24.2.0' + compile 'com.android.support:design:24.2.0' } repositories { mavenCentral() diff --git a/build.gradle b/build.gradle index dc8c0f7..f750bae 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,12 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.0.6' + ext.kotlin_version = '1.0.3' ext { ext_groupId = 'com.cesarferreira' ext_artifactId = 'kotlin-pluralizer' - ext_version = '0.2.9' + ext_version = '0.2.4' ext_url = 'https://github.com/cesarferreira/kotlin-pluralizer' ext_vcsUrl = 'https://github.com/cesarferreira/kotlin-pluralizer.git' ext_description = 'Kotlin extension to pluralize and singularize strings' @@ -16,7 +16,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:2.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3fb1e18..e58f963 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/library/src/main/kotlin/com/cesarferreira/pluralize/Pluralize.kt b/library/src/main/java/com/cesarferreira/pluralize/Pluralize.kt similarity index 86% rename from library/src/main/kotlin/com/cesarferreira/pluralize/Pluralize.kt rename to library/src/main/java/com/cesarferreira/pluralize/Pluralize.kt index 159c823..db1d4cc 100644 --- a/library/src/main/kotlin/com/cesarferreira/pluralize/Pluralize.kt +++ b/library/src/main/java/com/cesarferreira/pluralize/Pluralize.kt @@ -25,48 +25,34 @@ fun String.singularize(plurality: Plurality = Plurality.Plural): String { if (this.pluralizer() != this && this + "s" != this.pluralizer() && this.pluralizer().singularize() == this && this.singularizer() != this) - return this + return this; return this.singularize() } -fun String.pluralize(count: Int): String { - if (count > 1) - return this.pluralize(Plurality.Plural) - else - return this.pluralize(Plurality.Singular) -} - -fun String.singularize(count: Int): String { - if (count > 1) - return this.singularize(Plurality.Plural) - else - return this.singularize(Plurality.Singular) -} - private fun String.pluralizer(): String { - if (unCountable().contains(this.toLowerCase())) return this + if (unCountable().contains(this)) return this val rule = pluralizeRules().last { Pattern.compile(it.component1(), Pattern.CASE_INSENSITIVE).matcher(this).find() } var found = Pattern.compile(rule.component1(), Pattern.CASE_INSENSITIVE).matcher(this).replaceAll(rule.component2()) - val endsWith = exceptions().firstOrNull { this.endsWith(it.component1()) } - if (endsWith != null) found = this.replace(endsWith.component1(), endsWith.component2()) - val exception = exceptions().firstOrNull() { this.equals(it.component1()) } - if (exception != null) found = exception.component2() + val endswith = exceptions().firstOrNull { this.endsWith(it.component1()) } + if (endswith != null) found = this.replace(endswith.component1(), endswith.component2()) + val excep = exceptions().firstOrNull() { this.equals(it.component1()) } + if (excep != null) found = excep.component2() return found } private fun String.singularizer(): String { - if (unCountable().contains(this.toLowerCase())) { + if (unCountable().contains(this)) { return this } - val exceptions = exceptions().firstOrNull() { this.equals(it.component2()) } + val excepions = exceptions().firstOrNull() { this.equals(it.component2()) } - if (exceptions != null) { - return exceptions.component1() + if (excepions != null) { + return excepions.component1() } - val endsWith = exceptions().firstOrNull { this.endsWith(it.component2()) } + val endswith = exceptions().firstOrNull { this.endsWith(it.component2()) } - if (endsWith != null) return this.replace(endsWith.component2(), endsWith.component1()) + if (endswith != null) return this.replace(endswith.component2(), endswith.component1()) try { if (singularizeRules().count { @@ -214,3 +200,5 @@ fun singularizeRules(): List> { "i$" to "us", "ae$" to "a") } + + diff --git a/library/src/main/kotlin/com/cesarferreira/pluralize/utils/Plurality.kt b/library/src/main/java/com/cesarferreira/pluralize/utils/Plurality.kt similarity index 100% rename from library/src/main/kotlin/com/cesarferreira/pluralize/utils/Plurality.kt rename to library/src/main/java/com/cesarferreira/pluralize/utils/Plurality.kt