ree_lib 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +13 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +91 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +8 -0
- data/lib/ree_lib/.gitignore +4 -0
- data/lib/ree_lib/.ree/templates/package/.gitignore +0 -0
- data/lib/ree_lib/.ree/templates/package/.rspec +2 -0
- data/lib/ree_lib/.ree/templates/package/<%=package_subdir_name%>/<%=package_name%>/.gitkeep +0 -0
- data/lib/ree_lib/.ree/templates/package/<%=package_subdir_name%>/<%=package_name%>.rb +15 -0
- data/lib/ree_lib/.ree/templates/package/Package.schema.json +0 -0
- data/lib/ree_lib/.ree/templates/package/bin/console +5 -0
- data/lib/ree_lib/.ree/templates/package/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/.ree/templates/package/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/.rspec +3 -0
- data/lib/ree_lib/.vscode-ree/templates/functions/template.rb +12 -0
- data/lib/ree_lib/.vscode-ree/templates/spec_template.rb +9 -0
- data/lib/ree_lib/Packages.schema.json +89 -0
- data/lib/ree_lib/bin/console +5 -0
- data/lib/ree_lib/packages/.vscode-ree/templates/spec_template.rb +11 -0
- data/lib/ree_lib/packages/ree_array/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_array/.rspec +2 -0
- data/lib/ree_lib/packages/ree_array/Package.schema.json +41 -0
- data/lib/ree_lib/packages/ree_array/bin/console +5 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb +26 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/in_groups.rb +61 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/in_groups_of.rb +56 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/index_by.rb +14 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/split_by.rb +34 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array/functions/wrap.rb +31 -0
- data/lib/ree_lib/packages/ree_array/package/ree_array.rb +7 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/group_by.schema.json +31 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/in_groups.schema.json +39 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/in_groups_of.schema.json +39 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/index_by.schema.json +31 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/split_by.schema.json +35 -0
- data/lib/ree_lib/packages/ree_array/schemas/ree_array/functions/wrap.schema.json +27 -0
- data/lib/ree_lib/packages/ree_array/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/group_by_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/in_groups_of_spec.rb +51 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/in_groups_spec.rb +43 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/index_by_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/split_by_spec.rb +32 -0
- data/lib/ree_lib/packages/ree_array/spec/ree_array/functions/wrap_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_array/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_dao/.gitignore +1 -0
- data/lib/ree_lib/packages/ree_dao/.rspec +2 -0
- data/lib/ree_lib/packages/ree_dao/Package.schema.json +48 -0
- data/lib/ree_lib/packages/ree_dao/bin/console +5 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/beans/connections.rb +20 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/dataset_extensions.rb +243 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/dsl.rb +130 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_connection.rb +103 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_dao.rb +26 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_pg_connection.rb +37 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_sqlite_connection.rb +25 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao.rb +16 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/beans/connections.schema.json +15 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_connection.schema.json +38 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_dao.schema.json +39 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_pg_connection.schema.json +38 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_sqlite_connection.schema.json +38 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/dsl.schema.json +24 -0
- data/lib/ree_lib/packages/ree_dao/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/build_sqlite_connection_spec.rb +230 -0
- data/lib/ree_lib/packages/ree_dao/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_date/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_date/.rspec +2 -0
- data/lib/ree_lib/packages/ree_date/Package.schema.json +229 -0
- data/lib/ree_lib/packages/ree_date/bin/console +5 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/advance.rb +31 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/all_month.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/all_quarter.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/all_week.rb +21 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/all_year.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/beginning_of_month.rb +21 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/beginning_of_quarter.rb +25 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/beginning_of_week.rb +21 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/beginning_of_year.rb +23 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/change.rb +28 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/constants.rb +17 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/days_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/days_in_month.rb +25 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/days_since.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/days_to_week_start.rb +21 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_month.rb +19 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb +25 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_week.rb +26 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_year.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/friday.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/is_after.rb +13 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/is_before.rb +13 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/is_week_day.rb +17 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/is_weekend.rb +17 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/monday.rb +17 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/months_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/months_since.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_day.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_month.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_occurring.rb +39 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_quarter.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_week.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/next_year.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/parse.rb +13 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_day.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_month.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_occurring.rb +39 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_quarter.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_week.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/prev_year.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/quarters_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/quarters_since.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/saturday.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/sunday.rb +17 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/thursday.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/today.rb +13 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/tomorrow.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/tuesday.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/wednesday.rb +18 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/weeks_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/weeks_since.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/years_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/years_since.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date/functions/yesterday.rb +16 -0
- data/lib/ree_lib/packages/ree_date/package/ree_date.rb +9 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/advance.schema.json +31 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/all_month.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/all_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/all_week.schema.json +54 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/all_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/beginning_of_month.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/beginning_of_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/beginning_of_week.schema.json +54 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/beginning_of_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/change.schema.json +31 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/days_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/days_in_month.schema.json +38 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/days_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/days_to_week_start.schema.json +38 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/end_of_month.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/end_of_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/end_of_week.schema.json +54 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/end_of_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/friday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/is_after.schema.json +31 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/is_before.schema.json +31 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/is_week_day.schema.json +34 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/is_weekend.schema.json +34 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/monday.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/months_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/months_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_month.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_occurring.schema.json +62 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_quarter.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_week.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/next_year.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/parse.schema.json +27 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_month.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_occurring.schema.json +62 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_quarter.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_week.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/prev_year.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/quarters_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/quarters_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/saturday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/sunday.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/thursday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/today.schema.json +24 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/tomorrow.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/tuesday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/wednesday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/weeks_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/weeks_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/years_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/years_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_date/schemas/ree_date/functions/yesterday.schema.json +42 -0
- data/lib/ree_lib/packages/ree_date/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/advance_spec.rb +33 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/all_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/all_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/all_week_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/all_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/beginning_of_month_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/beginning_of_quarter_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/beginning_of_week_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/beginning_of_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/change_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/days_ago_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/days_in_month_spec.rb +23 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/days_since_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/days_to_week_start_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/end_of_month_spec.rb +21 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/end_of_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/end_of_week_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/end_of_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/friday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/is_after_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/is_before_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/is_week_day_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/is_weekend_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/monday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/months_ago_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/months_since_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_day_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_month_spec.rb +16 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_occurring_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_quarter_spec.rb +16 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_week_spec.rb +16 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/next_year_spec.rb +16 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/parse_spec.rb +21 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_day_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_month_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_occurring_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_quarter_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_week_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/prev_year_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/quarters_ago_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/quarters_since_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/saturday_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/sunday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/thursday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/today_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/tomorrow_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/tuesday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/wednesday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/weeks_ago_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/weeks_since_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/years_ago_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/years_since_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/ree_date/functions/yesterday_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_date/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_datetime/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_datetime/.rspec +2 -0
- data/lib/ree_lib/packages/ree_datetime/Package.schema.json +384 -0
- data/lib/ree_lib/packages/ree_datetime/bin/console +5 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/advance.rb +55 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_day.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_hour.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_minute.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_month.rb +21 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_quarter.rb +21 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_week.rb +22 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/all_year.rb +21 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_day.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_hour.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_minute.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_month.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_quarter.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_week.rb +26 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/beginning_of_year.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/change.rb +47 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/constants.rb +157 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/days_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/days_diff.rb +36 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/days_since.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/distance_of_time_in_words.rb +161 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_day.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_hour.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_minute.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_month.rb +26 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_quarter.rb +27 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_week.rb +26 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/end_of_year.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/find_human_time_zones_by_offset.rb +31 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/find_time_zones_by_offset.rb +30 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/find_tzinfo.rb +15 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/friday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/general_diff.rb +63 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/get_default_time_zone.rb +15 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/get_default_tz_info.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/hours_ago.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/hours_diff.rb +36 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/hours_since.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/human_zone_offset.rb +24 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/in_default_time_zone.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/in_time_zone.rb +20 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/is_after.rb +13 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/is_before.rb +13 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/is_week_day.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/is_weekend.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/minutes_ago.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/minutes_diff.rb +33 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/minutes_since.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/monday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/months_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/months_diff.rb +36 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/months_since.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_day.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_hour.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_month.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_occurring.rb +37 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_quarter.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_week.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/next_year.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/now.rb +22 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/offset_to_string.rb +27 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/parse.rb +13 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_day.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_hour.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_month.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_occurring.rb +43 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_quarter.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_week.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/prev_year.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/quarters_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/quarters_since.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/saturday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/seconds_ago.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/seconds_diff.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/seconds_since.rb +14 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/set_default_time_zone.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/sunday.rb +25 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/thursday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/time_ago_in_words.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/tomorrow.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/tuesday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/wednesday.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/weeks_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/weeks_diff.rb +34 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/weeks_since.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/years_ago.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/years_diff.rb +37 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/years_since.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/yesterday.rb +16 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/zone_offset.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime/locales/en.yml +38 -0
- data/lib/ree_lib/packages/ree_datetime/package/ree_datetime.rb +20 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/advance.schema.json +62 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_day.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_hour.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_minute.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_month.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_week.schema.json +54 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/all_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_hour.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_minute.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_month.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_week.schema.json +62 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/beginning_of_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/change.schema.json +31 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/days_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/days_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/days_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/distance_of_time_in_words.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_hour.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_minute.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_month.schema.json +58 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_quarter.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_week.schema.json +62 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/end_of_year.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/find_human_time_zones_by_offset.schema.json +34 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/find_time_zones_by_offset.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/find_tzinfo.schema.json +27 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/friday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/general_diff.schema.json +106 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/get_default_time_zone.schema.json +24 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/get_default_tz_info.schema.json +39 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/hours_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/hours_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/hours_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/human_time_zone_offset.schema.json +34 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/human_zone_offset.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/in_default_time_zone.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/in_time_zone.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/is_after.schema.json +31 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/is_before.schema.json +31 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/is_week_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/is_weekend.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/minutes_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/minutes_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/minutes_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/monday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/months_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/months_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/months_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_hour.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_month.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_occurring.schema.json +54 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_quarter.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_week.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/next_year.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/now.schema.json +39 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/offset_to_string.schema.json +27 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/parse.schema.json +27 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_day.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_hour.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_month.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_occurring.schema.json +54 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_quarter.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_week.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/prev_year.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/quarters_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/quarters_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/saturday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/seconds_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/seconds_diff.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/seconds_since.schema.json +31 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/set_default_time_zone.schema.json +34 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/sunday.schema.json +58 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/thursday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/time_ago_in_words.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/tomorrow.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/tuesday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/wednesday.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/weeks_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/weeks_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/weeks_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/years_ago.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/years_diff.schema.json +50 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/years_since.schema.json +46 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/yesterday.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/schemas/ree_datetime/functions/zone_offset.schema.json +42 -0
- data/lib/ree_lib/packages/ree_datetime/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/advance_spec.rb +40 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_day_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_hour_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_minute_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_week_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/all_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_day_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_hour_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_minute_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_week_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/beginning_of_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/change_spec.rb +25 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/constants_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/days_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/days_diff_spec.rb +29 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/days_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/distance_of_time_in_words_spec.rb +33 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_day_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_hour_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_minute_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_week_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/end_of_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/find_human_time_zones_by_offset_spec.rb +12 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/find_time_zones_by_offset_spec.rb +12 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/friday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/general_diff_spec.rb +37 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/hours_ago_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/hours_diff_spec.rb +29 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/hours_since_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/human_zone_offset_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/in_default_time_zone_spec.rb +18 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/in_time_zone_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/is_after_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/is_before_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/is_week_day_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/is_weekend_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/minutes_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/minutes_diff_spec.rb +46 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/minutes_since_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/monday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/months_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/months_diff_spec.rb +28 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/months_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_day_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_hour_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_occurring_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_week_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/next_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/now_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/offset_to_string_spec.rb +23 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/parse_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_day_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_hour_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_month_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_occurring_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_quarter_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_week_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/prev_year_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/quarters_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/quarters_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/saturday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/seconds_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/seconds_diff_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/seconds_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/sunday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/thursday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/tomorrow_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/tuesday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/wednesday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/weeks_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/weeks_diff_spec.rb +29 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/weeks_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/years_ago_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/years_diff_spec.rb +56 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/years_since_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/yesterday_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_datetime/spec/ree_datetime/functions/zone_offset_spec.rb +9 -0
- data/lib/ree_lib/packages/ree_datetime/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_dto/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_dto/.rspec +2 -0
- data/lib/ree_lib/packages/ree_dto/Package.schema.json +18 -0
- data/lib/ree_lib/packages/ree_dto/bin/console +5 -0
- data/lib/ree_lib/packages/ree_dto/package/ree_dto/entity_dsl.rb +109 -0
- data/lib/ree_lib/packages/ree_dto/package/ree_dto.rb +7 -0
- data/lib/ree_lib/packages/ree_dto/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_dto/spec/ree_dto/entity_dsl_spec.rb +106 -0
- data/lib/ree_lib/packages/ree_dto/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_enum/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_enum/.rspec +2 -0
- data/lib/ree_lib/packages/ree_enum/Package.schema.json +23 -0
- data/lib/ree_lib/packages/ree_enum/bin/console +5 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum/contractable.rb +13 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum/dsl.rb +103 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum/enumerable.rb +68 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum/value.rb +60 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum/values.rb +46 -0
- data/lib/ree_lib/packages/ree_enum/package/ree_enum.rb +25 -0
- data/lib/ree_lib/packages/ree_enum/spec/package_schema_spec.rb +16 -0
- data/lib/ree_lib/packages/ree_enum/spec/ree_enum/dsl_spec.rb +151 -0
- data/lib/ree_lib/packages/ree_enum/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_errors/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_errors/.rspec +2 -0
- data/lib/ree_lib/packages/ree_errors/Package.schema.json +51 -0
- data/lib/ree_lib/packages/ree_errors/bin/console +5 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/auth_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/build_error.rb +20 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/conflict_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/error.rb +45 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/error_factory.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/invalid_param_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/not_found_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/payment_required_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/permission_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors/validation_error.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/package/ree_errors.rb +7 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/auth_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/build_error.schema.json +35 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/conflict_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/invalid_param_err.schema.json +31 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/invalid_param_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/not_found_err.schema.json +38 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/not_found_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/payment_required_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/permission_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/domain_errors/validation_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/auth_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/build_error.schema.json +35 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/conflict_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/invalid_param_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/not_found_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/payment_required_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/permission_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/schemas/ree_errors/validation_error.schema.json +22 -0
- data/lib/ree_lib/packages/ree_errors/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/auth_error_spec.rb +53 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/invalid_param_error_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/locales/en.yml +3 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/not_found_error_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/payment_required_error_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/permission_error_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/spec/ree_errors/validation_error_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_errors/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_hash/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_hash/.rspec +2 -0
- data/lib/ree_lib/packages/ree_hash/Package.schema.json +54 -0
- data/lib/ree_lib/packages/ree_hash/bin/console +5 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/contracts/hash_keys_contract.rb +34 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/build_filter_keys.rb +26 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/except.rb +69 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/merge.rb +49 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/slice.rb +72 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/stringify_keys.rb +15 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/symbolize_keys.rb +15 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/transform_keys.rb +45 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash/functions/transform_values.rb +51 -0
- data/lib/ree_lib/packages/ree_hash/package/ree_hash.rb +11 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/build_filter_keys.schema.json +27 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/convert_key.schema.json +27 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/except.schema.json +42 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/merge.schema.json +39 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/slice.schema.json +43 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/stringify_keys.schema.json +34 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/symbolize_keys.schema.json +34 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/transform_key.schema.json +31 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/transform_keys.schema.json +35 -0
- data/lib/ree_lib/packages/ree_hash/schemas/ree_hash/functions/transform_values.schema.json +35 -0
- data/lib/ree_lib/packages/ree_hash/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/except_spec.rb +205 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/merge_spec.rb +47 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/slice_spec.rb +133 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/stringify_keys_spec.rb +12 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/symbolize_keys_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/transform_keys_spec.rb +77 -0
- data/lib/ree_lib/packages/ree_hash/spec/ree_hash/functions/transform_values_spec.rb +39 -0
- data/lib/ree_lib/packages/ree_hash/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_http/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_http/.rspec +2 -0
- data/lib/ree_lib/packages/ree_http/Package.schema.json +69 -0
- data/lib/ree_lib/packages/ree_http/bin/console +5 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/constants.rb +13 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/build_request.rb +132 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/build_request_executor.rb +71 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/execute_request.rb +123 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_delete.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_exec.rb +99 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_get.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_head.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_options.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_patch.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_post.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/functions/http_put.rb +23 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http/http_exceptions.rb +9 -0
- data/lib/ree_lib/packages/ree_http/package/ree_http.rb +30 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/add_auth.schema.json +31 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/basic_auth.schema.json +15 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/build_request.schema.json +70 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/build_requester.schema.json +46 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/execute_request.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/build_request.schema.json +58 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/build_request_executor.schema.json +31 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/execute_request.schema.json +51 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/get_default_logger.schema.json +27 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_delete.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_exec.schema.json +62 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_get.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_head.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_options.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_patch.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_post.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/http_put.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/functions/set_default_logger.schema.json +27 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/get.schema.json +22 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/get_http.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/http_delete.schema.json +74 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/http_get.schema.json +66 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/http_patch.schema.json +74 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/http_post.schema.json +74 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/http_put.schema.json +74 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/post.schema.json +22 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/post_http.schema.json +42 -0
- data/lib/ree_lib/packages/ree_http/schemas/ree_http/response.schema.json +15 -0
- data/lib/ree_lib/packages/ree_http/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_delete_spec.rb +165 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_get_spec.rb +165 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_options_spec.rb +184 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_patch_spec.rb +176 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_post_spec.rb +183 -0
- data/lib/ree_lib/packages/ree_http/spec/ree_http/functions/http_put_spec.rb +176 -0
- data/lib/ree_lib/packages/ree_http/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_i18n/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_i18n/.rspec +2 -0
- data/lib/ree_lib/packages/ree_i18n/Package.schema.json +50 -0
- data/lib/ree_lib/packages/ree_i18n/bin/console +5 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/add_load_path.rb +16 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/get_default_locale.rb +12 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/get_locale.rb +12 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/set_default_locale.rb +12 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/set_locale.rb +12 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/t.rb +90 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n/functions/with_locale.rb +12 -0
- data/lib/ree_lib/packages/ree_i18n/package/ree_i18n.rb +10 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/add_load_path.schema.json +34 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/get_default_locale.schema.json +24 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/get_locale.schema.json +24 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/set_default_locale.schema.json +27 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/set_locale.schema.json +27 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/t.schema.json +48 -0
- data/lib/ree_lib/packages/ree_i18n/schemas/ree_i18n/functions/with_locale.schema.json +31 -0
- data/lib/ree_lib/packages/ree_i18n/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_i18n/spec/ree_i18n/functions/locales/en.yml +12 -0
- data/lib/ree_lib/packages/ree_i18n/spec/ree_i18n/functions/locales/ru.yml +11 -0
- data/lib/ree_lib/packages/ree_i18n/spec/ree_i18n/functions/set_locale_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_i18n/spec/ree_i18n/functions/t_spec.rb +113 -0
- data/lib/ree_lib/packages/ree_i18n/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_json/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_json/.rspec +2 -0
- data/lib/ree_lib/packages/ree_json/Package.schema.json +27 -0
- data/lib/ree_lib/packages/ree_json/bin/console +5 -0
- data/lib/ree_lib/packages/ree_json/package/ree_json/constants.rb +30 -0
- data/lib/ree_lib/packages/ree_json/package/ree_json/functions/from_json.rb +29 -0
- data/lib/ree_lib/packages/ree_json/package/ree_json/functions/to_json.rb +44 -0
- data/lib/ree_lib/packages/ree_json/package/ree_json.rb +10 -0
- data/lib/ree_lib/packages/ree_json/schemas/ree_json/functions/from_json.schema.json +35 -0
- data/lib/ree_lib/packages/ree_json/schemas/ree_json/functions/to_json.schema.json +35 -0
- data/lib/ree_lib/packages/ree_json/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/from_json_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/to_json_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_json/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_logger/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_logger/.rspec +2 -0
- data/lib/ree_lib/packages/ree_logger/Package.schema.json +67 -0
- data/lib/ree_lib/packages/ree_logger/bin/console +5 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/appender.rb +14 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/file_appender.rb +58 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/stdout_appender.rb +31 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/beans/logger.rb +48 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/config.rb +65 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/formatters/colorized_formatter.rb +82 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/formatters/default_formatter.rb +33 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/formatters/formatter.rb +5 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/functions/build_logger.rb +27 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/log_event.rb +2 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/multi_logger.rb +153 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/rate_limiter.rb +26 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger.rb +21 -0
- data/lib/ree_lib/packages/ree_logger/schemas/ree_logger/beans/logger.schema.json +46 -0
- data/lib/ree_lib/packages/ree_logger/schemas/ree_logger/config.schema.json +38 -0
- data/lib/ree_lib/packages/ree_logger/schemas/ree_logger/formatters/colorized_formatter.schema.json +30 -0
- data/lib/ree_lib/packages/ree_logger/schemas/ree_logger/formatters/default_formatter.schema.json +30 -0
- data/lib/ree_lib/packages/ree_logger/schemas/ree_logger/functions/build_logger.schema.json +39 -0
- data/lib/ree_lib/packages/ree_logger/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/appender_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/file_appender_spec.rb +72 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/stdout_appender_spec.rb +44 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/beans/logger_spec.rb +62 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/formatters/colorized_formatter_spec.rb +48 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/formatters/default_formatter_spec.rb +48 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/formatters/formatter_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/multi_logger_spec.rb +117 -0
- data/lib/ree_lib/packages/ree_logger/spec/spec_helper.rb +19 -0
- data/lib/ree_lib/packages/ree_mapper/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_mapper/.rspec +2 -0
- data/lib/ree_lib/packages/ree_mapper/Package.schema.json +34 -0
- data/lib/ree_lib/packages/ree_mapper/bin/console +5 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/default_factory.rb +19 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/dsl.rb +49 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/errors/coercion_error.rb +4 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/errors/error.rb +4 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/errors/type_error.rb +4 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/errors/unsupported_type_error.rb +4 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/field.rb +54 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb +31 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_strategy.rb +28 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper.rb +88 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory.rb +129 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory_proxy.rb +44 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_strategy.rb +60 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/object_output.rb +19 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/strategy_output.rb +21 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/string_key_hash_output.rb +14 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/symbol_key_hash_output.rb +14 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/abstract_type.rb +17 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/array.rb +70 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb +36 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date.rb +41 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb +41 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/float.rb +37 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/integer.rb +37 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/string.rb +27 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/time.rb +41 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper.rb +166 -0
- data/lib/ree_lib/packages/ree_mapper/schemas/ree_mapper/default_factory.schema.json +30 -0
- data/lib/ree_lib/packages/ree_mapper/schemas/ree_mapper/functions/build_mapper_factory.schema.json +27 -0
- data/lib/ree_lib/packages/ree_mapper/schemas/ree_mapper/functions/build_mapper_strategy.schema.json +35 -0
- data/lib/ree_lib/packages/ree_mapper/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/dsl/dsl_spec.rb +52 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/functions/build_mapper_factory_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/functions/build_mapper_strategy_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/mapper_factory_spec.rb +76 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/mapper_spec.rb +104 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/array_spec.rb +144 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/bool_spec.rb +159 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/date_spec.rb +111 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/date_time_spec.rb +135 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/float_spec.rb +107 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/hash_spec.rb +99 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/integer_spec.rb +111 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/string_spec.rb +63 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/time_spec.rb +135 -0
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/type_options_spec.rb +176 -0
- data/lib/ree_lib/packages/ree_mapper/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_migrator/.gitignore +1 -0
- data/lib/ree_lib/packages/ree_migrator/.rspec +2 -0
- data/lib/ree_lib/packages/ree_migrator/Package.schema.json +47 -0
- data/lib/ree_lib/packages/ree_migrator/bin/console +5 -0
- data/lib/ree_lib/packages/ree_migrator/package/ree_migrator/functions/apply_migration.rb +37 -0
- data/lib/ree_lib/packages/ree_migrator/package/ree_migrator/functions/apply_migrations.rb +94 -0
- data/lib/ree_lib/packages/ree_migrator/package/ree_migrator/functions/create_migrations_table.rb +28 -0
- data/lib/ree_lib/packages/ree_migrator/package/ree_migrator/functions/migrate_db.rb +34 -0
- data/lib/ree_lib/packages/ree_migrator/package/ree_migrator.rb +16 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/apply_data_migration.schema.json +31 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/apply_migration.schema.json +50 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/apply_migrations.schema.json +71 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/apply_schema_migration.schema.json +31 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/create_data_migrations_table.schema.json +27 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/create_migrations_table.schema.json +27 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/create_schema_migrations_table.schema.json +27 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/functions/migrate_db.schema.json +54 -0
- data/lib/ree_lib/packages/ree_migrator/schemas/ree_migrator/migrate_db.schema.json +15 -0
- data/lib/ree_lib/packages/ree_migrator/spec/db.rb +22 -0
- data/lib/ree_lib/packages/ree_migrator/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_migrator/spec/ree_migrator/functions/apply_migration_spec.rb +58 -0
- data/lib/ree_lib/packages/ree_migrator/spec/ree_migrator/functions/apply_migrations_spec.rb +49 -0
- data/lib/ree_lib/packages/ree_migrator/spec/ree_migrator/functions/migrate_db_spec.rb +38 -0
- data/lib/ree_lib/packages/ree_migrator/spec/sample_migrations/data_migrations/populate_test_table.rb +11 -0
- data/lib/ree_lib/packages/ree_migrator/spec/sample_migrations/migrations.yml +3 -0
- data/lib/ree_lib/packages/ree_migrator/spec/sample_migrations/schema_migrations/create_test_table.rb +7 -0
- data/lib/ree_lib/packages/ree_migrator/spec/spec_helper.rb +9 -0
- data/lib/ree_lib/packages/ree_number/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_number/.rspec +2 -0
- data/lib/ree_lib/packages/ree_number/Package.schema.json +62 -0
- data/lib/ree_lib/packages/ree_number/bin/console +5 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/constants.rb +25 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/digit_count.rb +14 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_currency.rb +79 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_delimited.rb +45 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_human.rb +210 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_human_size.rb +168 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_ordinalized.rb +60 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_percentage.rb +55 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_phone.rb +85 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/number_to_rounded.rb +100 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/functions/round_helper.rb +69 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number/locales/en.yml +58 -0
- data/lib/ree_lib/packages/ree_number/package/ree_number.rb +15 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/digit_count.schema.json +27 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_currency.schema.json +54 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_delimited.schema.json +31 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_human.schema.json +70 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_human_size.schema.json +62 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_ordinalized.schema.json +38 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_percentage.schema.json +46 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_phone.schema.json +31 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/number_to_rounded.schema.json +62 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_number/functions/round_helper.schema.json +38 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/digit_count.schema.json +27 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_currency.schema.json +54 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_delimited.schema.json +31 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_human.schema.json +78 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_human_size.schema.json +62 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_ordinalized.schema.json +38 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_percentage.schema.json +46 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_phone.schema.json +31 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/number_to_rounded.schema.json +62 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/round.schema.json +27 -0
- data/lib/ree_lib/packages/ree_number/schemas/ree_numbers/functions/round_helper.schema.json +38 -0
- data/lib/ree_lib/packages/ree_number/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/digit_count_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_currency_spec.rb +51 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_delimited_spec.rb +23 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_human_size_spec.rb +68 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_human_spec.rb +50 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_ordinalized_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_percentage_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_phone_spec.rb +27 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/number_to_rounded_spec.rb +79 -0
- data/lib/ree_lib/packages/ree_number/spec/ree_number/functions/round_helper_spec.rb +9 -0
- data/lib/ree_lib/packages/ree_number/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_object/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_object/.rspec +2 -0
- data/lib/ree_lib/packages/ree_object/Package.schema.json +43 -0
- data/lib/ree_lib/packages/ree_object/bin/console +5 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/as_json.rb +74 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/deep_dup.rb +92 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/deep_freeze.rb +60 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/is_blank.rb +40 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/not_blank.rb +15 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object/functions/to_obj.rb +97 -0
- data/lib/ree_lib/packages/ree_object/package/ree_object.rb +7 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/as_json.schema.json +27 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/deep_dup.schema.json +31 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/deep_freeze.schema.json +27 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/is_blank.schema.json +27 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/not_blank.schema.json +34 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/to_hash.schema.json +27 -0
- data/lib/ree_lib/packages/ree_object/schemas/ree_object/functions/to_obj.schema.json +54 -0
- data/lib/ree_lib/packages/ree_object/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/as_json_spec.rb +172 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/deep_dup_spec.rb +166 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/deep_freeze_spec.rb +112 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/is_blank_spec.rb +33 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/not_blank_spec.rb +33 -0
- data/lib/ree_lib/packages/ree_object/spec/ree_object/functions/to_obj_spec.rb +174 -0
- data/lib/ree_lib/packages/ree_object/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_string/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_string/.rspec +2 -0
- data/lib/ree_lib/packages/ree_string/Package.schema.json +83 -0
- data/lib/ree_lib/packages/ree_string/bin/console +5 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/acronyms_camelize_regex.rb +13 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/acronyms_underscore_regex.rb +13 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/camelize.rb +55 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/dasherize.rb +17 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/deconstantize.rb +21 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/demodulize.rb +28 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/indent.rb +51 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/pluralize.rb +13 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/remove.rb +22 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb +26 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/strip_heredoc.rb +32 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/truncate.rb +52 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/truncate_bytes.rb +60 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/truncate_words.rb +45 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/underscore.rb +43 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string/functions/upcase_first.rb +19 -0
- data/lib/ree_lib/packages/ree_string/package/ree_string.rb +10 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/acronyms_camelize_regex.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/acronyms_underscore_regex.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/camelize.schema.json +38 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/dasherize.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/deconstantize.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/demodulize.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/indent.schema.json +35 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/is_blank.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/pluralize.schema.json +35 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/remove.schema.json +31 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/squish.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/strip_heredoc.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/truncate.schema.json +35 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/truncate_bytes.schema.json +35 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/truncate_words.schema.json +35 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/underscore.schema.json +38 -0
- data/lib/ree_lib/packages/ree_string/schemas/ree_string/functions/upcase_first.schema.json +27 -0
- data/lib/ree_lib/packages/ree_string/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/camelize_spec.rb +31 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/dasherize_spec.rb +9 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/deconstantize_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/demodulize_spec.rb +15 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/indent_spec.rb +17 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/pluralize_spec.rb +10 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/remove_spec.rb +12 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/squish_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/strip_heredoc_spec.rb +44 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/truncate_bytes_spec.rb +40 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/truncate_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/truncate_words_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/underscore_spec.rb +26 -0
- data/lib/ree_lib/packages/ree_string/spec/ree_string/functions/upcase_first_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_string/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_swagger/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_swagger/.rspec +2 -0
- data/lib/ree_lib/packages/ree_swagger/Package.schema.json +61 -0
- data/lib/ree_lib/packages/ree_swagger/bin/console +5 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/beans/type_definitions_repo.rb +95 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/endpoint_dto.rb +13 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/path_dto.rb +8 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_endpoint_schema.rb +105 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_parameters.rb +48 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_request_body_schema.rb +43 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_schema.rb +26 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_serializer_schema.rb +36 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/get_caster_definition.rb +16 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/get_serializer_definition.rb +16 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/register_type.rb +20 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger.rb +9 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/beans/type_definitions_repo.schema.json +15 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/build_endpoint_schema.schema.json +50 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/build_parameters.schema.json +50 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/build_request_body_schema.schema.json +38 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/build_schema.schema.json +46 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/build_serializer_schema.schema.json +34 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/get_caster_definition.schema.json +38 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/get_serializer_definition.schema.json +38 -0
- data/lib/ree_lib/packages/ree_swagger/schemas/ree_swagger/functions/register_type.schema.json +42 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_endpoint_schema_spec.rb +197 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_parameters_spec.rb +43 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_schema_spec.rb +41 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_serializer_schema_spec.rb +110 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb +57 -0
- data/lib/ree_lib/packages/ree_swagger/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_swagger/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_text/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_text/.rspec +2 -0
- data/lib/ree_lib/packages/ree_text/Package.schema.json +77 -0
- data/lib/ree_lib/packages/ree_text/bin/console +5 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/constants.rb +26 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/escape_html.rb +15 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/escape_javascript.rb +22 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/excerpt.rb +122 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/highlight.rb +74 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/safe_join.rb +36 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/sanitize_css.rb +13 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/sanitize_html.rb +93 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/simple_format.rb +135 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/strip_links.rb +31 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/strip_tags.rb +41 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/to_sentence.rb +71 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/unescape_html.rb +15 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/functions/word_wrap.rb +57 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/locales/en.yml +5 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/scrubbers/permit_scrubber.rb +101 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/scrubbers/target_scrubber.rb +11 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text/scrubbers/text_only_scrubber.rb +16 -0
- data/lib/ree_lib/packages/ree_text/package/ree_text.rb +18 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/escape_html.schema.json +27 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/escape_javascript.schema.json +34 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/excerpt.schema.json +42 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/highlight.schema.json +46 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/html_scrubber.schema.json +34 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/safe_join.schema.json +38 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/safe_list_sanitizer.schema.json +24 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/sanitize.schema.json +35 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/sanitize_css.schema.json +27 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/sanitize_html.schema.json +35 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/save_list_sanitizer.schema.json +24 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/simple_format.schema.json +54 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/strip_links.schema.json +27 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/strip_tags.schema.json +34 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/to_sentence.schema.json +58 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/unescape_html.schema.json +27 -0
- data/lib/ree_lib/packages/ree_text/schemas/ree_text/functions/word_wrap.schema.json +31 -0
- data/lib/ree_lib/packages/ree_text/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/escape_html_spec.rb +19 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/escape_javascript_spec.rb +23 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/excerpt_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/highlight_spec.rb +40 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/safe_join_spec.rb +13 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/sanitize_css_spec.rb +11 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/sanitize_html_spec.rb +78 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/simple_format_spec.rb +29 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/strip_links_spec.rb +21 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/strip_tags_spec.rb +38 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/to_sentence_spec.rb +22 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/unescape_html_spec.rb +9 -0
- data/lib/ree_lib/packages/ree_text/spec/ree_text/functions/word_wrap_spec.rb +21 -0
- data/lib/ree_lib/packages/ree_text/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_validator/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_validator/.rspec +2 -0
- data/lib/ree_lib/packages/ree_validator/Package.schema.json +58 -0
- data/lib/ree_lib/packages/ree_validator/bin/console +5 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_email.rb +63 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_exclusion.rb +32 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_inclusion.rb +32 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_length.rb +75 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_paging.rb +73 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_password.rb +129 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_presence.rb +32 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_regexp.rb +32 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/functions/validate_url.rb +75 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/locales/en.yml +34 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator/locales/ru.yml +34 -0
- data/lib/ree_lib/packages/ree_validator/package/ree_validator.rb +13 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_email.schema.json +38 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_exclusion.schema.json +42 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_inclusion.schema.json +42 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_length.schema.json +42 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_paging.schema.json +54 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_password.schema.json +50 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_presence.schema.json +46 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_regexp.schema.json +42 -0
- data/lib/ree_lib/packages/ree_validator/schemas/ree_validator/functions/validate_url.schema.json +42 -0
- data/lib/ree_lib/packages/ree_validator/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/locales/fr.yml +4 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_email_spec.rb +23 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_exclusion_spec.rb +39 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_inclusion_spec.rb +39 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_length_spec.rb +48 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_paging_spec.rb +73 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_password_spec.rb +85 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_presence_spec.rb +55 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_regexp_spec.rb +29 -0
- data/lib/ree_lib/packages/ree_validator/spec/ree_validator/functions/validate_url_spec.rb +61 -0
- data/lib/ree_lib/packages/ree_validator/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/ree.setup.rb +7 -0
- data/lib/ree_lib/spec.init.rb +14 -0
- data/lib/ree_lib/version.rb +5 -0
- data/lib/ree_lib.rb +12 -0
- data/sig/ree_lib.rbs +4 -0
- metadata +1270 -0
@@ -0,0 +1,210 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToHuman
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_human do
|
7
|
+
link :round_helper, import: -> { ROUND_MODES }
|
8
|
+
link :number_to_rounded
|
9
|
+
link :t, from: :ree_i18n
|
10
|
+
link :number_to_delimited
|
11
|
+
link :slice, from: :ree_hash
|
12
|
+
link 'ree_number/functions/constants', -> { DECIMAL_UNITS & INVERTED_DECIMAL_UNITS }
|
13
|
+
end
|
14
|
+
|
15
|
+
DEFAULTS = {
|
16
|
+
units: "decimal_units",
|
17
|
+
locale: :en,
|
18
|
+
format: "%n %u",
|
19
|
+
precision: 3,
|
20
|
+
significant: true,
|
21
|
+
strip_insignificant_zeros: true,
|
22
|
+
separator: ".",
|
23
|
+
delimiter: "",
|
24
|
+
round_mode: :default
|
25
|
+
}.freeze
|
26
|
+
|
27
|
+
doc(<<~DOC)
|
28
|
+
Pretty prints (formats and approximates) a number in a way it
|
29
|
+
is more readable by humans (e.g.: 1200000000 becomes "1.2
|
30
|
+
Billion"). This is useful for numbers that can get very large
|
31
|
+
(and too hard to read).
|
32
|
+
|
33
|
+
See <tt>number_to_human_size</tt> if you want to print a file
|
34
|
+
size.
|
35
|
+
|
36
|
+
You can also define your own unit-quantifier names if you want
|
37
|
+
to use other decimal units (e.g.: 1500 becomes "1.5
|
38
|
+
kilometers", 0.150 becomes "150 milliliters", etc). You may
|
39
|
+
define a wide range of unit quantifiers, even fractional ones
|
40
|
+
(centi, deci, mili, etc).
|
41
|
+
|
42
|
+
==== Options
|
43
|
+
* <tt>:locale</tt> - Sets the locale to be used for formatting
|
44
|
+
(defaults to current locale).
|
45
|
+
* <tt>:precision</tt> - Sets the precision of the number
|
46
|
+
(defaults to 3).
|
47
|
+
* <tt>:significant</tt> - If +true+, precision will be the number
|
48
|
+
of significant_digits. If +false+, the number of fractional
|
49
|
+
digits (defaults to +true+)
|
50
|
+
* <tt>:round_mode</tt> - Determine how rounding is performed
|
51
|
+
(defaults to :default. See BigDecimal::mode)
|
52
|
+
* <tt>:separator</tt> - Sets the separator between the
|
53
|
+
fractional and integer digits (defaults to ".").
|
54
|
+
* <tt>:delimiter</tt> - Sets the thousands delimiter (defaults
|
55
|
+
to "").
|
56
|
+
* <tt>:strip_insignificant_zeros</tt> - If +true+ removes
|
57
|
+
insignificant zeros after the decimal separator (defaults to
|
58
|
+
+true+)
|
59
|
+
* <tt>:units</tt> - A Hash of unit quantifier names. Or a
|
60
|
+
string containing an i18n scope where to find this hash. It
|
61
|
+
might have the following keys:
|
62
|
+
* *integers*: <tt>:unit</tt>, <tt>:ten</tt>,
|
63
|
+
<tt>:hundred</tt>, <tt>:thousand</tt>, <tt>:million</tt>,
|
64
|
+
<tt>:billion</tt>, <tt>:trillion</tt>,
|
65
|
+
<tt>:quadrillion</tt>
|
66
|
+
* *fractionals*: <tt>:deci</tt>, <tt>:centi</tt>,
|
67
|
+
<tt>:mili</tt>, <tt>:micro</tt>, <tt>:nano</tt>,
|
68
|
+
<tt>:pico</tt>, <tt>:femto</tt>
|
69
|
+
* <tt>:format</tt> - Sets the format of the output string
|
70
|
+
(defaults to "%n %u"). The field types are:
|
71
|
+
* %u - The quantifier (ex.: 'thousand')
|
72
|
+
* %n - The number
|
73
|
+
==== Examples
|
74
|
+
number_to_human(123)
|
75
|
+
# => "123"
|
76
|
+
|
77
|
+
number_to_human(1234)
|
78
|
+
# => "1.23 Thousand"
|
79
|
+
|
80
|
+
number_to_human(12345)
|
81
|
+
# => "12.3 Thousand"
|
82
|
+
|
83
|
+
number_to_human(1234567)
|
84
|
+
# => "1.23 Million"
|
85
|
+
|
86
|
+
number_to_human(1234567890)
|
87
|
+
# => "1.23 Billion"
|
88
|
+
|
89
|
+
number_to_human(1234567890123)
|
90
|
+
# => "1.23 Trillion"
|
91
|
+
|
92
|
+
number_to_human(1234567890123456)
|
93
|
+
# => "1.23 Quadrillion"
|
94
|
+
|
95
|
+
number_to_human(1234567890123456789)
|
96
|
+
# => "1230 Quadrillion"
|
97
|
+
|
98
|
+
number_to_human(489939, precision: 2)
|
99
|
+
# => "490 Thousand"
|
100
|
+
|
101
|
+
number_to_human(489939, precision: 4)
|
102
|
+
# => "489.9 Thousand"
|
103
|
+
|
104
|
+
number_to_human(1234567, precision: 4, significant: false)
|
105
|
+
# => "1.2346 Million"
|
106
|
+
|
107
|
+
number_to_human(1234567, precision: 1, separator: ',', significant: false)
|
108
|
+
# => "1,2 Million"
|
109
|
+
|
110
|
+
number_to_human(500000000, precision: 5)
|
111
|
+
# => "500 Million"
|
112
|
+
|
113
|
+
number_to_human(12345012345, significant: false)
|
114
|
+
# => "12.345 Billion"
|
115
|
+
|
116
|
+
Non-significant zeros after the decimal separator are stripped
|
117
|
+
out by default (set <tt>:strip_insignificant_zeros</tt> to
|
118
|
+
+false+ to change that):
|
119
|
+
|
120
|
+
number_to_human(12.00001)
|
121
|
+
# => "12"
|
122
|
+
|
123
|
+
number_to_human(12.00001, strip_insignificant_zeros: false)
|
124
|
+
# => "12.0"
|
125
|
+
DOC
|
126
|
+
|
127
|
+
contract(
|
128
|
+
Or[Integer, Float, String],
|
129
|
+
Ksplat[
|
130
|
+
units?: String,
|
131
|
+
locale?: Symbol,
|
132
|
+
format?: String,
|
133
|
+
precision?: Integer,
|
134
|
+
significant?: Bool,
|
135
|
+
strip_insignificant_zeros?: Bool,
|
136
|
+
separator?: String,
|
137
|
+
delimiter?: String,
|
138
|
+
round_mode?: Or[*ROUND_MODES]
|
139
|
+
] => String
|
140
|
+
)
|
141
|
+
def call(number, **opts)
|
142
|
+
options = DEFAULTS.merge(opts)
|
143
|
+
|
144
|
+
number = round_helper(
|
145
|
+
number,
|
146
|
+
**slice(options, [:precision, :significant, :round_mode])
|
147
|
+
)
|
148
|
+
|
149
|
+
number = Float(number)
|
150
|
+
|
151
|
+
exponent = calculate_exponent(
|
152
|
+
number, options[:locale], options[:units]
|
153
|
+
)
|
154
|
+
|
155
|
+
number = number / (10**exponent)
|
156
|
+
|
157
|
+
rounded_number = number_to_rounded(
|
158
|
+
number,
|
159
|
+
**slice(
|
160
|
+
options,
|
161
|
+
[:precision, :significant, :strip_insignificant_zeros, :round_mode]
|
162
|
+
)
|
163
|
+
)
|
164
|
+
|
165
|
+
unit = determine_unit(
|
166
|
+
exponent, options[:units], options[:locale]
|
167
|
+
)
|
168
|
+
|
169
|
+
result_number = options[:format]
|
170
|
+
.gsub("%n", rounded_number)
|
171
|
+
.gsub("%u", unit)
|
172
|
+
.strip
|
173
|
+
|
174
|
+
number_to_delimited(
|
175
|
+
result_number,
|
176
|
+
**slice(options, [:separator, :delimiter])
|
177
|
+
)
|
178
|
+
end
|
179
|
+
|
180
|
+
private
|
181
|
+
|
182
|
+
def determine_unit(exponent, units, locale)
|
183
|
+
exp = DECIMAL_UNITS[exponent]
|
184
|
+
case units
|
185
|
+
when Hash
|
186
|
+
units[exp] || ""
|
187
|
+
when String, Symbol
|
188
|
+
t("human.#{units}.#{exp}", locale: locale, default_by_locale: :en)
|
189
|
+
else
|
190
|
+
t("human.decimal_units.#{exp}", count: number.to_i, default_by_locale: :en)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def calculate_exponent(number, locale, units)
|
195
|
+
exponent = number != 0 ? Math.log10(number.abs).floor : 0
|
196
|
+
|
197
|
+
unit_exponents(units, locale).find { |e| exponent >= e } || 0
|
198
|
+
end
|
199
|
+
|
200
|
+
def unit_exponents(units, locale)
|
201
|
+
case units
|
202
|
+
when Hash
|
203
|
+
units
|
204
|
+
when String, Symbol
|
205
|
+
t("human.#{units}", locale: locale, raise: true, default_by_locale: :en)
|
206
|
+
else
|
207
|
+
raise ArgumentError, ":units must be a Hash or String translation scope."
|
208
|
+
end.keys.map { |e_name| INVERTED_DECIMAL_UNITS[e_name] }.sort_by(&:-@)
|
209
|
+
end
|
210
|
+
end
|
@@ -0,0 +1,168 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToHumanSize
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_human_size do
|
7
|
+
link :number_to_rounded, import: -> { ROUND_MODES }
|
8
|
+
link :slice, from: :ree_hash
|
9
|
+
link :t, from: :ree_i18n
|
10
|
+
link :number_to_delimited
|
11
|
+
link 'ree_number/functions/constants', -> { STORAGE_UNITS }
|
12
|
+
end
|
13
|
+
|
14
|
+
DEFAULTS = {
|
15
|
+
locale: :en,
|
16
|
+
format: "%n %u",
|
17
|
+
precision: 3,
|
18
|
+
significant: true,
|
19
|
+
strip_insignificant_zeros: true,
|
20
|
+
separator: ".",
|
21
|
+
delimiter: "",
|
22
|
+
round_mode: :default
|
23
|
+
}.freeze
|
24
|
+
|
25
|
+
BASE = 1024
|
26
|
+
|
27
|
+
doc(<<~DOC)
|
28
|
+
Formats the bytes in +number+ into a more understandable
|
29
|
+
representation (e.g., giving it 1500 yields 1.46 KB). This
|
30
|
+
method is useful for reporting file sizes to users. You can
|
31
|
+
customize the format in the +options+ hash.
|
32
|
+
|
33
|
+
See <tt>number_to_human</tt> if you want to pretty-print a
|
34
|
+
generic number.
|
35
|
+
|
36
|
+
==== Options
|
37
|
+
|
38
|
+
* <tt>:locale</tt> - Sets the locale to be used for formatting
|
39
|
+
(defaults to current locale).
|
40
|
+
* <tt>:precision</tt> - Sets the precision of the number
|
41
|
+
(defaults to 3).
|
42
|
+
* <tt>:round_mode</tt> - Determine how rounding is performed
|
43
|
+
(defaults to :default. See BigDecimal::mode)
|
44
|
+
* <tt>:significant</tt> - If +true+, precision will be the number
|
45
|
+
of significant_digits. If +false+, the number of fractional
|
46
|
+
digits (defaults to +true+)
|
47
|
+
* <tt>:separator</tt> - Sets the separator between the
|
48
|
+
fractional and integer digits (defaults to ".").
|
49
|
+
* <tt>:delimiter</tt> - Sets the thousands delimiter (defaults
|
50
|
+
to "").
|
51
|
+
* <tt>:strip_insignificant_zeros</tt> - If +true+ removes
|
52
|
+
insignificant zeros after the decimal separator (defaults to
|
53
|
+
+true+)
|
54
|
+
==== Examples
|
55
|
+
number_to_human_size(123)
|
56
|
+
# => "123 Bytes"
|
57
|
+
|
58
|
+
number_to_human_size(1234)
|
59
|
+
# => "1.21 KB"
|
60
|
+
|
61
|
+
number_to_human_size(12345)
|
62
|
+
# => "12.1 KB"
|
63
|
+
|
64
|
+
number_to_human_size(1234567)
|
65
|
+
# => "1.18 MB"
|
66
|
+
|
67
|
+
number_to_human_size(1234567890)
|
68
|
+
# => "1.15 GB"
|
69
|
+
|
70
|
+
number_to_human_size(1234567890123)
|
71
|
+
# => "1.12 TB"
|
72
|
+
|
73
|
+
number_to_human_size(1234567890123456)
|
74
|
+
# => "1.1 PB"
|
75
|
+
|
76
|
+
number_to_human_size(1234567890123456789)
|
77
|
+
# => "1.07 EB"
|
78
|
+
|
79
|
+
number_to_human_size(1234567, precision: 2)
|
80
|
+
# => "1.2 MB"
|
81
|
+
|
82
|
+
number_to_human_size(483989, precision: 2)
|
83
|
+
# => "470 KB"
|
84
|
+
|
85
|
+
number_to_human_size(483989, precision: 2, round_mode: :up)
|
86
|
+
# => "480 KB"
|
87
|
+
|
88
|
+
number_to_human_size(1234567, precision: 2, separator: ',')
|
89
|
+
# => "1,2 MB"
|
90
|
+
|
91
|
+
number_to_human_size(1234567890123, precision: 5)
|
92
|
+
# => "1.1228 TB"
|
93
|
+
|
94
|
+
number_to_human_size(524288000, precision: 5)
|
95
|
+
# => "500 MB"
|
96
|
+
DOC
|
97
|
+
|
98
|
+
contract(
|
99
|
+
Or[Integer, Float, String],
|
100
|
+
Ksplat[
|
101
|
+
locale?: Symbol,
|
102
|
+
precision?: Integer,
|
103
|
+
significant?: Bool,
|
104
|
+
strip_insignificant_zeros?: Bool,
|
105
|
+
separator?: String,
|
106
|
+
delimiter?: String,
|
107
|
+
round_mode?: Or[*ROUND_MODES]
|
108
|
+
] => String
|
109
|
+
)
|
110
|
+
def call(number, **opts)
|
111
|
+
options = DEFAULTS.merge(opts)
|
112
|
+
|
113
|
+
number = Float(number)
|
114
|
+
|
115
|
+
if smaller_than_base?(number)
|
116
|
+
number_to_format = number.to_i.to_s
|
117
|
+
else
|
118
|
+
human_size = number / (BASE**exponent(number))
|
119
|
+
number_to_format = number_to_rounded(
|
120
|
+
human_size,
|
121
|
+
**slice(
|
122
|
+
options,
|
123
|
+
[:precision, :significant, :strip_insignificant_zeros, :round_mode]
|
124
|
+
)
|
125
|
+
)
|
126
|
+
end
|
127
|
+
|
128
|
+
storage_unit_key = storage_unit_key(number)
|
129
|
+
|
130
|
+
unit = unit(options[:locale], storage_unit_key, number)
|
131
|
+
result_number = options[:format]
|
132
|
+
.gsub("%n", number_to_format)
|
133
|
+
.gsub("%u", unit)
|
134
|
+
|
135
|
+
number_to_delimited(
|
136
|
+
result_number,
|
137
|
+
**slice(options, [:separator, :delimiter])
|
138
|
+
)
|
139
|
+
end
|
140
|
+
|
141
|
+
private
|
142
|
+
|
143
|
+
def unit(locale, storage_unit_key, number)
|
144
|
+
t(
|
145
|
+
storage_unit_key,
|
146
|
+
locale: locale,
|
147
|
+
count: number.to_i,
|
148
|
+
raise: true,
|
149
|
+
default_by_locale: :en
|
150
|
+
)
|
151
|
+
end
|
152
|
+
|
153
|
+
def storage_unit_key(number)
|
154
|
+
key_end = smaller_than_base?(number) ? "byte" : STORAGE_UNITS[exponent(number)]
|
155
|
+
"human.sizes.#{key_end}"
|
156
|
+
end
|
157
|
+
|
158
|
+
def exponent(number)
|
159
|
+
max = STORAGE_UNITS.size - 1
|
160
|
+
exp = (Math.log(number) / Math.log(BASE)).to_i
|
161
|
+
exp = max if exp > max
|
162
|
+
exp
|
163
|
+
end
|
164
|
+
|
165
|
+
def smaller_than_base?(number)
|
166
|
+
number.to_i < BASE
|
167
|
+
end
|
168
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToOrdinalized
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_ordinalized do
|
7
|
+
link :t, from: :ree_i18n
|
8
|
+
end
|
9
|
+
|
10
|
+
DEFAULTS = {
|
11
|
+
locale: :en
|
12
|
+
}
|
13
|
+
|
14
|
+
doc(<<~DOC)
|
15
|
+
Turns a number into an ordinal string used to denote the position in an
|
16
|
+
ordered sequence such as 1st, 2nd, 3rd, 4th.
|
17
|
+
|
18
|
+
ordinalize(1) # => "1st"
|
19
|
+
ordinalize(2) # => "2nd"
|
20
|
+
ordinalize(1002) # => "1002nd"
|
21
|
+
ordinalize(1003) # => "1003rd"
|
22
|
+
ordinalize(-11) # => "-11th"
|
23
|
+
ordinalize(-1021) # => "-1021st"
|
24
|
+
DOC
|
25
|
+
|
26
|
+
contract(
|
27
|
+
Integer,
|
28
|
+
Ksplat[locale?: Symbol] => String
|
29
|
+
)
|
30
|
+
def call(number, **opts)
|
31
|
+
options = DEFAULTS.merge(opts)
|
32
|
+
ordinalize(number, options[:locale])
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
# Returns the suffix that should be added to a number to denote the position
|
38
|
+
# in an ordered sequence such as 1st, 2nd, 3rd, 4th.
|
39
|
+
#
|
40
|
+
# ordinal(1) # => "st"
|
41
|
+
# ordinal(2) # => "nd"
|
42
|
+
# ordinal(1002) # => "nd"
|
43
|
+
# ordinal(1003) # => "rd"
|
44
|
+
# ordinal(-11) # => "th"
|
45
|
+
# ordinal(-1021) # => "st"
|
46
|
+
def ordinal(number, locale)
|
47
|
+
number = number.abs
|
48
|
+
number_key = number % 100
|
49
|
+
|
50
|
+
if number_key > 13
|
51
|
+
number_key %= 10
|
52
|
+
end
|
53
|
+
|
54
|
+
t("human.ordinals.#{number_key}", locale: locale, default_by_locale: :en)
|
55
|
+
end
|
56
|
+
|
57
|
+
def ordinalize(number, locale)
|
58
|
+
number.to_s + ordinal(number, locale)
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToPercentage
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_percentage do
|
7
|
+
link :number_to_rounded, import: -> { ROUND_MODES }
|
8
|
+
link :slice, from: :ree_hash
|
9
|
+
end
|
10
|
+
|
11
|
+
DEFAULTS = {
|
12
|
+
format: "%n%",
|
13
|
+
precision: 3,
|
14
|
+
significant: false,
|
15
|
+
strip_insignificant_zeros: false,
|
16
|
+
delimiter: "",
|
17
|
+
round_mode: :default
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
doc(<<~DOC)
|
21
|
+
Converts Integer, String or Float to a String with percentage at the end.
|
22
|
+
The +opts+ parameter takes a hash of any of these keys:
|
23
|
+
<tt>:format</tt>, <tt>:precision</tt>,
|
24
|
+
<tt>:significant</tt>, <tt>:strip_insignificant_zeros</tt>, <tt>:delimiter</tt>,
|
25
|
+
<tt>:round_mode</tt>
|
26
|
+
number_to_percentage(100) # => "100.000%"
|
27
|
+
number_to_percentage(123.400, precision: 3, strip_insignificant_zeros: true) # => "123.4%"
|
28
|
+
number_to_percentage.("-0.13", format_percentage: " %", precision: 2) # => "-0.13 %"
|
29
|
+
DOC
|
30
|
+
|
31
|
+
contract(
|
32
|
+
Or[Integer, String, Float],
|
33
|
+
Ksplat[
|
34
|
+
format?: String,
|
35
|
+
precision?: Integer,
|
36
|
+
significant?: Bool,
|
37
|
+
strip_insignificant_zeros?: Bool,
|
38
|
+
delimiter?: String,
|
39
|
+
round_mode?: Or[*ROUND_MODES]
|
40
|
+
] => String
|
41
|
+
)
|
42
|
+
def call(number, **opts)
|
43
|
+
options = DEFAULTS.merge(opts)
|
44
|
+
|
45
|
+
rounded_number = number_to_rounded(
|
46
|
+
number,
|
47
|
+
**slice(
|
48
|
+
options,
|
49
|
+
[:precision, :significant, :strip_insignificant_zeros, :round_mode]
|
50
|
+
)
|
51
|
+
)
|
52
|
+
|
53
|
+
options[:format].gsub("%n", rounded_number)
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToPhone
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_phone
|
7
|
+
|
8
|
+
DEFAULT_PHONE_PATTERN = /(\d{0,3})(\d{3})(\d{4})$/
|
9
|
+
DEFAULT_AREA_PHONE_PATTERN = /(\d{1,3})(\d{3})(\d{4}$)/
|
10
|
+
|
11
|
+
DEFAULTS = {
|
12
|
+
delimiter: "-"
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
doc(<<~DOC)
|
16
|
+
Converts Integer to a formatted string (phone number format).
|
17
|
+
Country_code, delimiter, area_code, extension are optional.
|
18
|
+
|
19
|
+
number_to_phone(5551234) # => "555-1234"
|
20
|
+
number_to_phone(8005551212) # => "800-555-1212"
|
21
|
+
number_to_phone(8005551212, area_code: true) # => "(800) 555-1212"
|
22
|
+
number_to_phone(8005551212, delimiter: " ") # => "800 555 1212"
|
23
|
+
number_to_phone(8005551212, country_code: 7) # => "+7-800-555-1212"
|
24
|
+
number_to_phone(8005551212, country_code: 7, extension: 123) # => "+7-800-555-1212 x 123"
|
25
|
+
DOC
|
26
|
+
|
27
|
+
contract(
|
28
|
+
Integer,
|
29
|
+
Ksplat[
|
30
|
+
country_code?: Integer,
|
31
|
+
delimiter?: String,
|
32
|
+
area_code?: Bool,
|
33
|
+
pattern?: Regexp,
|
34
|
+
extension?: Integer
|
35
|
+
] => String
|
36
|
+
)
|
37
|
+
def call(number, **opts)
|
38
|
+
options = DEFAULTS.merge(opts)
|
39
|
+
str = country_code(options[:country_code], options[:delimiter]).dup
|
40
|
+
|
41
|
+
str << convert_to_phone_number(
|
42
|
+
number.to_s.strip,
|
43
|
+
options[:delimiter],
|
44
|
+
options[:area_code],
|
45
|
+
options[:pattern]
|
46
|
+
)
|
47
|
+
|
48
|
+
str << phone_extension(options[:extension]) if options[:extension]
|
49
|
+
str
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def country_code(country_code, delimiter)
|
55
|
+
country_code ? "+#{country_code}#{delimiter}" : ""
|
56
|
+
end
|
57
|
+
|
58
|
+
def convert_to_phone_number(phone, delimiter, area_code, pattern)
|
59
|
+
if area_code
|
60
|
+
convert_with_area_code(phone, delimiter, pattern)
|
61
|
+
else
|
62
|
+
convert_without_area_code(phone, delimiter, pattern)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def convert_without_area_code(phone, delimiter, pattern)
|
67
|
+
converted_phone = phone.gsub(
|
68
|
+
pattern || DEFAULT_PHONE_PATTERN,
|
69
|
+
"\\1#{delimiter}\\2#{delimiter}\\3"
|
70
|
+
)
|
71
|
+
|
72
|
+
delimiter && converted_phone.start_with?(delimiter) ? converted_phone[1..-1] : converted_phone
|
73
|
+
end
|
74
|
+
|
75
|
+
def convert_with_area_code(phone, delimiter, pattern)
|
76
|
+
phone.gsub(
|
77
|
+
pattern || DEFAULT_AREA_PHONE_PATTERN,
|
78
|
+
"(\\1) \\2#{delimiter}\\3"
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
def phone_extension(extension)
|
83
|
+
" x #{extension}"
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeNumber::NumberToRounded
|
4
|
+
include Ree::FnDSL
|
5
|
+
|
6
|
+
fn :number_to_rounded do
|
7
|
+
link :number_to_delimited
|
8
|
+
link :digit_count
|
9
|
+
link :round_helper, import: -> { ROUND_MODES }
|
10
|
+
link :slice, from: :ree_hash
|
11
|
+
end
|
12
|
+
|
13
|
+
DEFAULTS = {
|
14
|
+
precision: 3,
|
15
|
+
significant: false,
|
16
|
+
strip_insignificant_zeros: false,
|
17
|
+
delimiter: "",
|
18
|
+
round_mode: :default
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
doc(<<~DOC)
|
22
|
+
Rounds Integer(Float, Rational, String) and converts to a String.
|
23
|
+
|
24
|
+
The +options+ parameter takes a hash of any of these keys:
|
25
|
+
<tt>:precision</tt>, <tt>:significant</tt>, <tt>:strip_insignificant_zeros</tt>.
|
26
|
+
|
27
|
+
Presicion is 3 by default.
|
28
|
+
number_to_rounded(111.2346) # => "111.235"
|
29
|
+
number_to_rounded("111.2346") # => "111.235"
|
30
|
+
number_to_rounded("111.2346", precision: 20) # => "111.23460000000000000000"
|
31
|
+
number_to_rounded(Rational(1112346, 10000) # => "111.2346"
|
32
|
+
number_to_rounded(123987, precision: 3, significant: true) # => "124000"
|
33
|
+
|
34
|
+
number_to_rounded(
|
35
|
+
5.3929,
|
36
|
+
precision: 10,
|
37
|
+
significant: true,
|
38
|
+
strip_insignificant_zeros: true
|
39
|
+
) # => "5.3929"
|
40
|
+
DOC
|
41
|
+
|
42
|
+
contract(
|
43
|
+
Or[Integer, Float, Rational, String],
|
44
|
+
Ksplat[
|
45
|
+
precision?: Integer,
|
46
|
+
significant?: Bool,
|
47
|
+
strip_insignificant_zeros?: Bool,
|
48
|
+
round_mode?: Or[*ROUND_MODES]
|
49
|
+
] => String
|
50
|
+
)
|
51
|
+
def call(number, **opts)
|
52
|
+
options = DEFAULTS.merge(opts)
|
53
|
+
|
54
|
+
rounded_number = round_helper(
|
55
|
+
number,
|
56
|
+
**slice(
|
57
|
+
options,
|
58
|
+
[:precision, :significant, :round_mode]
|
59
|
+
)
|
60
|
+
)
|
61
|
+
|
62
|
+
if precision = options[:precision]
|
63
|
+
|
64
|
+
if options[:significant] && precision > 0
|
65
|
+
digits = digit_count(rounded_number)
|
66
|
+
precision -= digits
|
67
|
+
precision = 0 if precision < 0
|
68
|
+
end
|
69
|
+
|
70
|
+
formatted_string =
|
71
|
+
|
72
|
+
if rounded_number.finite?
|
73
|
+
s = rounded_number.to_s("F")
|
74
|
+
a, b = s.to_s.split(".", 2)
|
75
|
+
|
76
|
+
if precision != 0
|
77
|
+
b << "0" * precision
|
78
|
+
a << "."
|
79
|
+
a << b[0, precision]
|
80
|
+
end
|
81
|
+
a
|
82
|
+
else
|
83
|
+
"%f" % rounded_number
|
84
|
+
end
|
85
|
+
|
86
|
+
else
|
87
|
+
formatted_string = rounded_number
|
88
|
+
end
|
89
|
+
|
90
|
+
delimited_number = number_to_delimited(formatted_string, **slice(options, [:separator, :delimiter]))
|
91
|
+
options[:strip_insignificant_zeros] ? format_number(delimited_number) : delimited_number
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def format_number(number)
|
97
|
+
escaped_separator = Regexp.escape(".")
|
98
|
+
number.sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, "")
|
99
|
+
end
|
100
|
+
end
|