1666206840
Developer Utilities for macOS
Format/Validate JSON, encode/decode Base64, convert timestamps, debug JWT… with just one click! Native macOS app and works offline.
A friendly note ❤️
DevUtils is a paid "source-available" app. That means I'm selling the pre-built version of the app. It takes time and effort to develop, distribute, maintain, and provide supports. If you like the app, please consider buying here (one-time purchase). That would help me a lot! Thank you very much! 🙏
Source code
This source code is a delayed version of DevUtils.
Development environment:
Build Instructions
Clone repository.
Bootstrap carthage, this will install the required dependencies for the app:
carthage bootstrap --platform macOS
Update signing Team to be your Personal or organizational Team in Xcode. This is needed to build the app locally. If you have problems with code signing, please also check these articles to see if it helps:
Run the app in Xcode.
Contributing
Please see CONTRIBUTING.md
Contact
Author: DevUtilsApp
Source Code: https://github.com/DevUtilsApp/DevUtils-app
License: View license
1664229000
The StringUtils package in a work-in-progress, where I am placing various improvements on the String functionality in Julia language.
Currently, it adds a Swift style string macro, u"..."
, which uses the Swift syntax for interpolation, i.e. \(expression)
. This means that you never have to worry about strings with the $ character in them, which is rather frequent in some applications. Also, Unicode sequences are represented as in Swift, i.e. as \u{hexdigits}
, where there can be from 1 to 6 hex digits. This syntax eliminates having to worry about always outputting 4 or 8 hex digits, to prevent problems with 0-9,A-F,a-f characters immediately following. Finally, I have added four ways of representing characters in the literal string, \:emojiname:
, \<latexname>
, \&htmlname;
and \N{UnicodeName}
. This makes life a lot easier when you want to keep the text of a program in ASCII, and also to be able to write programs using those characters that might not even display correctly in their editor.
This now has some initial formatting capability, based on Tom Breloff's wonderful PR #10 to the JuliaIO/Formatting.jl package (by Dahua Lin and other contributors).
\%(arguments)
is interpolated as a call to fmt(arguments). This is especially useful when defaults have been set for the type of the first argument.
fmt_default!{T}(::Type{T}, syms::Symbol...; kwargs...)
sets the defaults for a particular type. fmt_default!(syms::Symbol...; kwargs...)
sets the defaults for all types. Symbols that can currently be used are: :ljust
or :left
, :rjust
or :right
, :commas
, :zpad
or :zeropad
, and :ipre
or :prefix
. reset!{T}(::Type{T})
resets the defaults for a particular type. defaultSpec(x)
will return the defaults for the type of x, and defaultSpec{T}(::Type{T})
will return the defaults for the given type.
This also adds support for \%ccc(arguments)
, where ccc is one or more characters of a single C style format specification, which is interpolated as a call to cfmt("ccc", arguments).
I'm also experimenting with adding Python style syntax (as much as possible), as u"{pythonformat}"
Author: ScottPJones
Source Code: https://github.com/ScottPJones/StringUtils.jl
License: View license
1664193205
A collection of utilities for messaging
Channels are like RemoteRefs, execpt that they are modelled as a queue and hence can hold more than one message.
channel(pid=myid(); T=Any, sz=1000)
constructs a channel on process pid
, holds objects of type T
with a maximum number of entries sz
.
The channel
constructor returns an object reference of type SyncObjRef{RemoteChannel}
which can be passed around safely across processes.
isready(c)
, fetch(c)
, take!(c)
and put!(c, v)
have the same behaviour as the RemoteRef
equivalents.
fetch
and take!
block if there are no elements.
put!
blocks if the channel already has sz
elements present.
fetch
, take!
and put!
all accept an optional keyword
argument timeout
which specifies the maximum number of seconds to block. If the request cannot be fulfilled within the requested time a MUtilTimeOutEx
exception is thrown.
TSpaces are tuple spaces. They store tuples, the first element of each tuple is a key to the tuple.
The tuples are stored as a queue and duplicates are allowed.
tspace(pid=myid(); sz=1000)
constructs a new tuple space and returns a SyncObjRef{RemoteTSpace}
put!(ts, v::Tuple)
adds a tuple v
into the space ts
.
isready(ts,k)
, fetch(ts, k)
and take!(ts, k)
all require the key k
to be specified when used on a tuple space ts
. It is matched against the first element of the tuples in the space.
If k
is a Regex
object, it is matched against all tuples where the firest element is a String
fetch
, take!
and put!
all accept an optional keyword
argument timeout
which specifies the maximum number of seconds to block. If the request cannot be fulfilled within the requested time a MUtilTimeOutEx
exception is thrown.
This is a key-value store.
kvspace(pid=myid(); sz=1000)
constructs a new key-value space and returns a SyncObjRef{RemoteKVSpace}
. Duplicates are not allowed. A put!
with an existing key overwrites the existing value
put!(kvs, k, v)
adds key k
and value v
into the space kvs
.
isready(kvs,k)
, fetch(kvs, k)
and take!(kvs, k)
all require the key k
to be specified when used on a kv space kvs
.
fetch
, take!
and put!
all accept an optional keyword
argument timeout
which specifies the maximum number of seconds to block. If the request cannot be fulfilled within the requested time a MUtilTimeOutEx
exception is thrown.
ctasks are named tasks with channels. The channels are used for messaging with the task.
ctask(f::Function; pid=myid(), name="")
returns a CTask
object that can be passed around processors.
f
is the function lanuched on processor pid
. The ctask runs till function f
terminates. If name
is specified, the task is addressable by name. The name-ctask mapping is stored in a KV Space on pid 1.
Every ctask has two channels associated with it. One for incoming messages and one for outbound messages.
The following functions can be used to send/recv messages from these channels.
put!(msg::Tuple)
appends a message to a tasks outbound channel
put!(ct::CTask, msg::Tuple)
appends a message to task ct
's inbound channel
put!(ctname::String, msg::Tuple)
appends a message to task addressed by ctname
's inbound channel
take!()
pops a message from the current tasks inbound channel
take!(ct::CTask)
pops a message from task ct
's outbound channel
take!(ctname::String)
pops a message from the task addressed by ctname
's outbound channel
The pipelining operator |>
can be used to send a message to a task. For example:
(:test_msg, "Hello") |> ct
will add the tuple (:test_msg, "Hello")
to ct
's inbound channel
put!
, take!
both accept an optional keyword
argument timeout
which specifies the maximum number of seconds to block. If the request cannot be fulfilled within the requested time a MUtilTimeOutEx
exception is thrown.
Note: The Julia 0.3 compatible version has send
/recv
in place of put!
/take
. This has been renamed in 0.4 for consistency.
Author: JuliaParallel
Source Code: https://github.com/JuliaParallel/MessageUtils.jl
License: View license
1661416800
SymbolicUtils.jl provides various utilities for symbolic computing. SymbolicUtils.jl is what one would use to build a Computer Algebra System (CAS). If you're looking for a complete CAS, similar to SymPy or Mathematica, see Symbolics.jl. If you want to build a crazy CAS for your weird Octonian algebras, you've come to the right place.
Symbols in SymbolicUtils carry type information. Operations on them propagate this information. A rule-based rewriting language can be used to find subexpressions that satisfy arbitrary conditions and apply arbitrary transformations on the matches. The library also contains a set of useful simplification rules for expressions of numeric symbols and numbers. These can be remixed and extended for special purposes.
If you are a Julia package develper in need of a rule rewriting system for your own types, have a look at the interfacing guide.
SymbolicUtils.jl is on the general registry and can be added the usual way:
pkg> add SymbolicUtils
or
julia> using Pkg; Pkg.add("SymbolicUtils")
julia> using SymbolicUtils
julia> SymbolicUtils.show_simplified[] = true
julia> @syms x::Real y::Real z::Complex f(::Number)::Real
(x, y, z, f(::Number)::Real)
julia> 2x^2 - y + x^2
(3 * (x ^ 2)) + (-1 * y)
julia> f(sin(x)^2 + cos(x)^2) + z
f(1) + z
julia> r = @rule sinh(im * ~x) => sin(~x)
sinh(im * ~x) => sin(~x)
julia> r(sinh(im * y))
sin(y)
julia> simplify(cos(y)^2 + sinh(im*y)^2, RuleSet([r]))
1
Citations
Author: JuliaSymbolics
Source Code: https://github.com/JuliaSymbolics/SymbolicUtils.jl
License: View license
1660991410
This package contains tools for analyzing Julia packages.
For now, it provides tools to build a highly simplified package search engine that can be queried as a service:
Example
Build a simplified search engine service:
using PkgUtils
PkgUtils.runservice()
Run a search website:
cd .julia/PkgUtils
julia scripts/server.jl
open site/index.html
Author: johnmyleswhite
Source Code: https://github.com/johnmyleswhite/PkgUtils.jl
1660754940
SnippetCoderUtils is a Utility package built with Flutter SDK to make Flutter development easier and more enjoyable than ever.
TextBox
, DropDown
, Buttons
.Generic Collection
, Sorting
, Edit
, Delete
& Custom Action Button
Add this to your pubspec.yaml file:
dependencies:
snippetcoder_utils: ^1.0.12
This utility will be used to create custom UI TextBox
, DropDown
, Buttons
.
FormHelper.inputFieldWidget(
context,
"host",
"Host URL",
(onValidateVal) {
if (onValidateVal.isEmpty) {
return 'Host URL can\'t be empty.';
}
return null;
},
(onSavedVal) => {
this.loginModel.host = onSavedVal,
},
initialValue: this.loginModel.host,
obscureText: false,
borderFocusColor: Theme.of(context).primaryColor,
prefixIconColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
),
FormHelper.submitButton(
"Login",
() {
},
btnColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
txtColor: Colors.black,
),
FormHelper.inputFieldWidgetWithLabel(
context,
"name",
"Category Name",
"",
(onValidateVal) {
if (onValidateVal.isEmpty) {
return 'Category Name can\'t be empty.';
}
return null;
},
(onSavedVal) => {
this.categoryModel.name = onSavedVal,
},
initialValue: this.categoryModel.name,
obscureText: false,
borderFocusColor: Theme.of(context).primaryColor,
prefixIconColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
borderRadius: 10,
paddingLeft: 0,
paddingRight: 0,
showPrefixIcon: true,
prefixIcon: Icon(Icons.web),
onChange: (val) {},
),
FormHelper.inputFieldWidgetWithLabel(
context,
"description",
"Category Description",
"",
(onValidateVal) {
return null;
},
(onSavedVal) => {
this.categoryModel.description = onSavedVal,
},
initialValue: this.categoryModel.description,
obscureText: false,
borderFocusColor: Theme.of(context).primaryColor,
prefixIconColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
borderRadius: 10,
paddingLeft: 0,
paddingRight: 0,
showPrefixIcon: true,
prefixIcon: Icon(Icons.web),
isMultiline: true,
onChange: (val) {},
),
Parameter | Type | Optional | Description |
---|---|---|---|
context | BuildContext | NO | Pass the current build context. |
keyName | String | NO | Key for the textbox, should be unique for every textbox. |
labelName | String | NO | LabelName will be used if using inputFieldWidgetWithLabel method to show label with TextBox. |
hintText | String | NO | Used to show placeholder in textbox |
onValidate | Function(String) | NO | Fired on textbox Validation |
onSaved | Function(String) | NO | Fires on form Saved. |
onChange | Function(String) | YES | Fires when textbox value changed. |
initialValue | String | YES | Used for showing initial value in textbox. |
obscureText | bool | YES | Used for showing or hiding text. Default value = false |
fontSize | double | YES | Used for TextFormField font size. Default value = 18 |
hintFontSize | double | YES | Used for TextFormField hint font size. Default value = 15 |
paddingLeft | double | YES | Used for TextFormField Container padding left. Default value = 20 |
paddingRight | double | YES | Used for TextFormField Container padding right. Default value = 20 |
paddingTop | double | YES | Used for TextFormField Container padding top. Default value = 0 |
paddingBottom | double | YES | Used for TextFormField Container padding bottom. Default value = 0 |
suffixIcon | Widget | YES | Used for TextFormField SuffixIcon Widget |
borderRadius | double | YES | Used for TextFormField Border Radius. Default value = 30 |
borderColor | Color | YES | Used for TextFormField Border Color. Default value = Colors.redAccent |
borderFocusColor | Color | YES | Used for TextFormField Border Focus Color. Default value = Colors.redAccent |
showPrefixIcon | bool | YES | Used for Show/Hide Prefix Icon. Default value = Colors.true |
prefixIcon | Icon | YES | Used to show Prefix Icon |
prefixIconColor | Color | YES | Used for PrefixIcon Color. Default value = Colors.redAccent |
prefixIconPaddingLeft | double | YES | Used for PrefixIcon Padding Left. Default value = 30 |
prefixIconPaddingRight | double | YES | Used for PrefixIcon Padding Right. Default value = 10 |
prefixIconPaddingTop | double | YES | Used for PrefixIcon Padding Top. Default value = 0 |
prefixIconPaddingBottom | double | YES | Used for PrefixIcon Padding Bottom. Default value = 0 |
isMultiline | bool | YES | Used for making TextFormField Multiline. Default value = false |
textColor | Color | YES | Used for TextFormField Text Color. Default value = Colors.black |
hintColor | Color | YES | Used for TextFormField Hint Color. Default value = Colors.black |
validationColor | Color | YES | Used for TextFormField Validations Color. Default value = Colors.redAccent |
borderWidth | double | YES | Used for Border Width. Default value = 2 |
focusedBorderWidth | double | YES | Used for Focus Border Width. Default value = 2 |
enabledBorderWidth | double | YES | Used for Enabled Border Width. Default value = 1 |
contentPadding | double | YES | Used for Content Padding. Default value = 6 |
multilineRows | double | YES | Used for Multiline Texbox no. of Rows. Default value = 4 |
isNumeric | double | YES | Used for Numeric Texbox for showing numeric keyboard. Default value = false |
backgroundColor | Color | YES | Used for Texbox background color. Default value = Colors.transparent |
List<dynamic> productTypesList = [];
this.productTypesList.add({"id": "simple", "name": "Simple"});
this.productTypesList.add({"id": "variable", "name": "Variable"});
FormHelper.dropDownWidget(
context,
"Select Product Type",
"",
this.productTypesList,
(onChangedVal) {
this.requestModel.productType = onChangedVal! ?? "";
},
(onValidateVal) {
if (onValidateVal == null) {
return 'Please Select Product Type';
}
return null;
},
borderFocusColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
borderRadius: 10,
),
List<dynamic> productTypesList = [];
this.productTypesList.add({"val": "1", "label": "Simple"});
this.productTypesList.add({"val": "2", "label": "Variable"});
FormHelper.dropDownWidgetWithLabel(
context,
"Product Type"
"Select Product Type",
"",
this.productTypesList,
(onChangedVal) {
this.requestModel.productType = onChangedVal! ?? "";
},
(onValidateVal) {
if (onValidateVal == null) {
return 'Please Select Product Type';
}
return null;
},
borderFocusColor: Theme.of(context).primaryColor,
borderColor: Theme.of(context).primaryColor,
borderRadius: 10,
optionValue: "val",
optionLabel: "label"
),
Parameter | Type | Optional | Description |
---|---|---|---|
context | BuildContext | NO | Pass the current build context. |
labelName | String | NO | LabelName will be used if using dropDownWidgetWithLabel method to show label with Dropdown. |
hintText | String | NO | Used to show Hint Text in Dropdown |
value | Dynamic | NO | Used for showing initial value in Dropdown. |
lstData | List<dynamic> | NO | Dropdown list Data |
onChanged | Function(String) | YES | Fires when dropdown value changed. |
onValidate | Function(String) | NO | Fired on dropdown Validation |
hintFontSize | double | YES | Used for DropdownField hint font size. Default value = 15 |
borderColor | Color | YES | Used for DropdownField Border Color. Default value = Colors.redAccent |
borderRadius | double | YES | Used for DropdownField Border Radius. Default value = 30 |
borderFocusColor | Color | YES | Used for DropdownField Border Focus Color. Default value = Colors.redAccent |
paddingLeft | double | YES | Used for DropdownField Container padding left. Default value = 20 |
paddingRight | double | YES | Used for DropdownField Container padding right. Default value = 20 |
paddingTop | double | YES | Used for DropdownField Container padding top. Default value = 0 |
paddingBottom | double | YES | Used for DropdownField Container padding bottom. Default value = 0 |
optionValue | String | YES | Used for DropdownField Option Value Column Mapping from Data Collection. Default value = id |
optionLabel | String | YES | Used for DropdownField Option Label Column Mapping from Data Collection. Default value = name |
contentPadding | double | YES | Used for Content Padding. Default value = 6 |
validationColor | Color | YES | Used for TextFormField Validations Color. Default value = Colors.redAccent |
textColor | Color | YES | Used for TextFormField Text Color. Default value = Colors.black |
hintColor | Color | YES | Used for TextFormField Hint Color. Default value = Colors.black |
borderWidth | double | YES | Used for Border Width. Default value = 2 |
focusedBorderWidth | double | YES | Used for Focus Border Width. Default value = 2 |
enabledBorderWidth | double | YES | Used for Enabled Border Width. Default value = 1 |
suffixIcon | Widget | YES | Used for TextFormField SuffixIcon Widget |
prefixIcon | Icon | YES | Used to show Prefix Icon |
showPrefixIcon | bool | YES | Used for Show/Hide Prefix Icon. Default value = Colors.true |
prefixIconColor | Color | YES | Used for PrefixIcon Color. Default value = Colors.redAccent |
prefixIconPaddingLeft | double | YES | Used for PrefixIcon Padding Left. Default value = 30 |
prefixIconPaddingRight | double | YES | Used for PrefixIcon Padding Right. Default value = 10 |
prefixIconPaddingTop | double | YES | Used for PrefixIcon Padding Top. Default value = 0 |
prefixIconPaddingBottom | double | YES | Used for PrefixIcon Padding Bottom. Default value = 0 |
This utility will be used to create DataTable list with Generic Collection
, Sorting
, Edit
, Delete
& Custom Action Button
return ListUtils.buildDataTable<CategoryModel>(
context,
["Name", "Description", ""],
["name", "description", ""],
sortAscending,
sortColumnIndex,
model.categoriesList,
(CategoryModel onEditVal) {
print(onEditVal.name);
},
(CategoryModel onRemoveVal) {
print(onRemoveVal.id);
},
onSort: (columnIndex, columnName, ascending) {
print(columnName);
print(ascending);
},
headingRowColor: Theme.of(context).primaryColor,
actionWidget: Icon(
Icons.add,
color: Colors.red,
),
onActionTap: (CategoryModel model) {
print(model.id);
},
);
Parameter | Type | Optional | Description |
---|---|---|---|
context | BuildContext | NO | Pass the current build context. |
columns | List<String> | NO | Pass the column name in string array. |
fields | List<String> | NO | Pass the field name in string array. |
sortAscending | bool | NO | If sorting in ascending order pass true else false . |
sortColumnIndex | number | NO | Column index of sorting based on. |
listOfData | dynamic | NO | DataSource for the DataTable list. |
onEditTap | Function(dyanmic) | NO | Fires when an edit is tapped and model will be return. |
onDeleteTap | Function(dyanmic) | NO | Fires when an delete is tapped and model will be return. |
onSort | Function(String, String, String) | YES | Fires when an column is click for sorting and it will return columnIndex , columnName , ascending . |
headingRowHeight | number | YES | Used for header row height. Default value = 45 |
headingRowColor | Color | YES | Used for header row color. Default value = Colors.redAccent |
columnTextFontSize | double | YES | Used for column Text font size. Default value = 15 |
columnTextBold | bool | YES | Used for column Text bold. Default value = true |
columnSpacing | bool | YES | Used for column spacing. Default value = 30 |
actionWidget | Widget | YES | Used for adding custom action button just like edit and delete icon. |
onActionTap | Function(dyanmic) | YES | Fires when an custom action button is tapped and model will be return. |
actionEditWidget | bool | YES | Used for making any custom Edit Widget |
actionDeleteWidget | bool | YES | Used for making any custom Delete Widget |
It's helpful to give the user an indication that content is being loaded while the app sends a network request to get new data.
When we start any network call we will set isApiCallProcess = true
, when the network call completed we will set back isApiCallProcess = false
bool isApiCallProcess = false;
return Scaffold(
appBar: _buildAppBar(),
body: ProgressHUD(
child: pageUI(),
inAsyncCall: isApiCallProcess,
opacity: 0.3,
),
);
Parameter | Type | Description |
---|---|---|
child | Widget | Assign the widget need to show. |
inAsyncCall | bool | Variable used to show or hide loader. |
opacity | double | Used for transparency of background. |
This will be used to convert any HEX color to Flutter Color.
color: HexColor("#FC4136"),
Parameter | Type | Description |
---|---|---|
hexColor | String | HexCode for conversion. |
This widget will be used to show multi select images using Camera
or Gallery
.
To get updated images collection, you can use the onImageChanged
parameter.
List<Object> images = [];
MultiImagePicker(
totalImages: 6,
imageSource: ImagePickSource.camera,
initialValue: this.productModel.images.map((e) => e.src).toList(), //for showing images from collection
onImageChanged: (images) {
this.images = images;
},
),
Parameter | Type | Description |
---|---|---|
totalImages | number | Set the total number of images to be show. |
imageSource | ImagePickSource | Change the Image Source. Can be either ImagePickSource.camera or ImagePickSource.gallery . |
initialValue | List<String> | Used for showing default images. |
onImageChanged | Function(List<Object>) | Fires when an image is added or deleted. |
Run this command:
With Flutter:
$ flutter pub add snippet_coder_utils
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
snippet_coder_utils: ^1.0.12
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:snippet_coder_utils/FormHelper.dart';
import 'package:snippet_coder_utils/ProgressHUD.dart';
import 'package:snippet_coder_utils/hex_color.dart';
import 'package:snippet_coder_utils/list_helper.dart';
import 'package:snippet_coder_utils/multi_images_utils.dart';
Donate
If you like my work, you can support me buying a cup of ☕
Code and documentation Copyright 2021 SnippetCoder. Code released under the Apache License. Docs released under Creative Commons.
Original article source at: https://pub.dev/packages/snippet_coder_utils
1658538120
Unicode Utils - Unicode algorithms for Ruby 1.9
UnicodeUtils implements Unicode algorithms for case conversion, normalization, text segmentation and more in pure Ruby code.
Install with RubyGems:
gem install unicode_utils
Or get the source from Github: github.com/lang/unicode_utils and follow the instructions in INSTALL.txt.
UnicodeUtils works with Ruby 1.9.1 or later.
require "unicode_utils/upcase"
UnicodeUtils.upcase("weiß") => "WEISS"
UnicodeUtils.upcase("i", :tr) => "İ"
Start with the UnicodeUtils module in the API documentation for complete documentation.
Online documentation
Source code
Rubyforge project
rubyforge.org/projects/unicode-utils
Home of the Unicode Consortium
UnicodeUtils is written by Stefan Lang. You can contact me at langstefan AT gmx.at
. Contributions welcome!
Author: lang
Source Code: https://github.com/lang/unicode_utils
License: BSD-2-Clause license
1657129200
A collection of serverless framework utilities
npm install -D serverless-plugin-utils
# or
yarn add -D serverless-plugin-utils
Add the serverless-plugin-utils entry to the plugins section of your serverless file.
plugins:
- serverless-plugin-utils
Function | Description |
---|---|
fn::lower | Converts a string to its lowercase representation |
fn::upper | Converts a string to its uppercase representation |
fn::ternary | Performs equality check and returns a defined result |
fn::join | Joins a collection of values with a given delimiter |
fn::split | Splits a string value on a given delimiter |
fn::switch | Performs switch-statement lookups |
fn::capitalized | Converts a string to its Titlecase representation |
All operations are done after yaml has been processed. This mean certain operations cannot be done in-line.
Example:
something:
fn::join:
delimiter: '-'
values:
- one
- two
injected: ${opt:stage}${self:custom.something}
// Serverless Error ---------------------------------------
// Trying to populate non string value into a string for variable ${self:custom.something}. Please make sure the value of the property is a string.
To work around this fully use the utils option. The above can be reworked as the following.
injected:
fn::join:
delimiter: '-'
values:
- ${opt:stage}one
- two
Author: icarus-sullivan
Source Code: https://github.com/icarus-sullivan/serverless-plugin-utils
License:
1656843180
The Utils plugin offers you many components and behaviors to make developing easier. This plugin is required by the [Cak
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
composer require cakemanager/cakephp-utils:dev-master
You will need to add the following line to your application's bootstrap.php file:
Plugin::load('Utils');
Gitter - Chat Tool for GitHub to talk about issues and new features.
GitHub - When there's something wrong, please open a new issue!
CakePHP Utils Plugin Docs - Documentation about the Utils Plugin.
If you have a good idea for a new feature, feel free to pull or open a new issue. Pull requests are always more than welcome!
Author: Cakemanager
Source Code: https://github.com/cakemanager/cakephp-utils
License: MIT license