All Projects → pwittchen → kirai

pwittchen / kirai

Licence: Apache-2.0 License
String formatting library for Java, Android, Web and Unix Terminal

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to kirai

idea-uroborosql-formatter
Beautiful SQL Formatter for IntelliJ Platform
Stars: ✭ 18 (-73.91%)
Mutual labels:  formatter, formatting
formatting
源码格式自动化调整工具
Stars: ✭ 37 (-46.38%)
Mutual labels:  formatter, formatting
awesome-python-code-formatters
A curated list of awesome Python code formatters
Stars: ✭ 168 (+143.48%)
Mutual labels:  formatter, formatting
Juliaformatter.jl
An opinionated code formatter for Julia. Plot twist - the opinion is your own.
Stars: ✭ 217 (+214.49%)
Mutual labels:  formatter, formatting
AutoFormatInputWatcher
This repository contains input watcher for auto formatting digits in edit text
Stars: ✭ 15 (-78.26%)
Mutual labels:  formatter, formatting
Nginx Config Formatter
nginx config file formatter/beautifier written in Python.
Stars: ✭ 222 (+221.74%)
Mutual labels:  formatter, formatting
Golite
Add essential language support for the Go language to Sublime Text 3.
Stars: ✭ 14 (-79.71%)
Mutual labels:  formatter, formatting
React Element To Jsx String
Turn a ReactElement into the corresponding JSX string
Stars: ✭ 349 (+405.8%)
Mutual labels:  string, formatting
Prestyler
Elegant text formatting tool in Swift 🔥
Stars: ✭ 36 (-47.83%)
Mutual labels:  string, formatting
ufmt
Safe, atomic formatting with black and µsort
Stars: ✭ 46 (-33.33%)
Mutual labels:  formatter, formatting
Ssf
📝 Spreadsheet Number Formatter
Stars: ✭ 139 (+101.45%)
Mutual labels:  formatter, string
dockerfile-utils
A library and command line interface for formatting and linting Dockerfiles.
Stars: ✭ 17 (-75.36%)
Mutual labels:  formatter, formatting
Editorconfig Netbeans
A NetBeans IDE plugin supporting the EditorConfig standard. ⛺
Stars: ✭ 123 (+78.26%)
Mutual labels:  formatter, formatting
Sublime-uroboroSQL-formatter
Beautiful SQL Formatter for Sublime Text 3
Stars: ✭ 25 (-63.77%)
Mutual labels:  formatter, formatting
Vse Formatdocumentonsave
Visual Studio - Format Document on Save
Stars: ✭ 61 (-11.59%)
Mutual labels:  formatter, formatting
laravel-formatters
«‎Formatter» pattern for Laravel
Stars: ✭ 86 (+24.64%)
Mutual labels:  formatter, formatting
unicode-formatter
Convert portions of text to fancy text using unicode fonts for use on Twitter and other sites that don't support rich text
Stars: ✭ 31 (-55.07%)
Mutual labels:  formatter, formatting
Fmt.jl
Python-style format strings for Julia
Stars: ✭ 31 (-55.07%)
Mutual labels:  formatter, string
teks
Easily get custom go template based outputs to your command-line tool. Like in docker/kubernetes
Stars: ✭ 41 (-40.58%)
Mutual labels:  formatter, formatting
jawk
Awk for JSON.
Stars: ✭ 32 (-53.62%)
Mutual labels:  unix

Kirai

Build Status Android Arsenal Maven Central codecov

Kirai means phrase in Swahili language. It's string formatting library for Java, Android, Web and Unix Terminal.

Project is inspired by phrase, TaggerString and BabushkaText. Kirai has fluent API similar to phrase with additional formatting similar to TaggerString and allows to add formatted pieces of text like BabushkaText.

JavaDoc is available at: http://pwittchen.github.io/kirai/

Library is compatible with Java 1.7 and higher. It should work with Java 1.6 and is compatible with Android applications.

Contents

Usage

Basic

CharSequence formatted = Kirai
  .from("Hi {first_name}, your are {age} years old.")
  .put("first_name", firstName)
  .put("age", age)
  .format();

Android

CharSequence formatted = Kirai
  .from("Hi {first_name}, your are {age} years old.")
  .put(HtmlPiece.put("first_name", firstName).bold().italic().big())
  .put(HtmlPiece.put("age", age).underline().color("#FF0000"))
  .format(new Formatter() {
    @Override public CharSequence format(String input) {
      return Html.fromHtml(input);
    }
  });

Code above will generate formatted text and can be used in Android TextView as follows:

textView.setText(formatted);

Web

CharSequence formatted = Kirai
  .from("Hi {first_name}, your are {age} years old.")
  .put(HtmlPiece.put("first_name", firstName).bold().italic().big())
  .put(HtmlPiece.put("age", age).underline().color("#FF0000"))
  .format();

Code above will generate text formatted with HTML tags.

Terminal

CharSequence formatted = Kirai
  .from("Hi {first_name}, your are {age} years old.")
  .put(TerminalPiece.put("first_name", firstName).background(TerminalBgColor.DARK_GRAY).bold())
  .put(TerminalPiece.put("age", age).color(TerminalColor.CYAN).underline())
  .format();

Code above will generate formatted text ready to display in Unix terminal as follows:

System.out.println(formatted);

instead of TerminalColor and TerminalBgColor enums we can pass color code as a string to color(string) method and it will work as well. We can use it for setting foreground and background color. For the reference of color codes take a look at http://misc.flogisoft.com/bash/tip_colors_and_formatting website.

Download

You can depend on the library through Maven:

<dependency>
    <groupId>com.github.pwittchen.kirai</groupId>
    <artifactId>library</artifactId>
    <version>1.4.1</version>
</dependency>

or through Gradle:

dependencies {
  compile 'com.github.pwittchen.kirai:library:1.4.1'
}

Building project

To build project, run the following command:

./gradlew build

Tests

Unit Tests are available in library/src/test directory. They can be run from IntelliJ IDEA or CLI with Gradle Wrapper. Tests were written according to TDD methodology. They determine library specification and check if project is fault-tolerant. Code Coverage is monitored by codecov.io integrated with Travis CI.

To execute tests, run the following command:

./gradlew test

To generate code coverage report, run the following command:

./gradlew jacocoTestReport

All reports are generated in build/reports/ directory.

Static Code Analysis

Project has Static Code Analysis configured in build.gradle file. It consists of CheckStyle, PMD and FindBugs.

Static Code Analysis can be executed with the following command:

./gradlew check

Code style

Code style used in the project is called Square from Java Code Styles repository by Square available at: https://github.com/square/java-code-styles.

License

Copyright 2015 Piotr Wittchen

Licensed 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].