From 30af251bc982b1790fab6ae7185b68640e15df79 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sun, 1 Nov 2015 17:00:09 -0800 Subject: [PATCH] [alfred] Update a bunch of workflows --- .../features/defaultresults/prefs.plist | 2 +- .../features/websearch/prefs.plist | 15 + .../CHANGELOG.md | 6 + .../Gemfile | 10 + .../Gemfile.lock | 31 + .../README.md | 11 + .../Rakefile | 10 + .../icon.png | Bin 0 -> 24455 bytes .../info.plist | 125 ++++ .../test_workflow.rb | 10 + .../vendor/bundle/bundler/setup.rb | 9 + .../bundle/ruby/2.0.0/cache/alphred-1.0.0.gem | Bin 0 -> 9728 bytes .../bundle/ruby/2.0.0/cache/builder-3.2.2.gem | Bin 0 -> 31744 bytes .../bundle/ruby/2.0.0/cache/faker-1.5.0.gem | Bin 0 -> 209920 bytes .../bundle/ruby/2.0.0/cache/i18n-0.7.0.gem | Bin 0 -> 57856 bytes .../ruby/2.0.0/gems/alphred-1.0.0/.gitignore | 9 + .../ruby/2.0.0/gems/alphred-1.0.0/.travis.yml | 4 + .../gems/alphred-1.0.0/CODE_OF_CONDUCT.md | 13 + .../ruby/2.0.0/gems/alphred-1.0.0/Gemfile | 10 + .../ruby/2.0.0/gems/alphred-1.0.0/Guardfile | 5 + .../ruby/2.0.0/gems/alphred-1.0.0/LICENSE.txt | 21 + .../ruby/2.0.0/gems/alphred-1.0.0/README.md | 123 ++++ .../ruby/2.0.0/gems/alphred-1.0.0/Rakefile | 17 + .../2.0.0/gems/alphred-1.0.0/alphred.gemspec | 26 + .../2.0.0/gems/alphred-1.0.0/lib/alphred.rb | 9 + .../gems/alphred-1.0.0/lib/alphred/icon.rb | 39 ++ .../gems/alphred-1.0.0/lib/alphred/item.rb | 59 ++ .../gems/alphred-1.0.0/lib/alphred/items.rb | 22 + .../gems/alphred-1.0.0/lib/alphred/mods.rb | 22 + .../gems/alphred-1.0.0/lib/alphred/tasks.rb | 40 ++ .../gems/alphred-1.0.0/lib/alphred/text.rb | 17 + .../gems/alphred-1.0.0/lib/alphred/version.rb | 3 + .../ruby/2.0.0/gems/builder-3.2.2/CHANGES | 107 +++ .../ruby/2.0.0/gems/builder-3.2.2/MIT-LICENSE | 20 + .../ruby/2.0.0/gems/builder-3.2.2/README.md | 258 ++++++++ .../ruby/2.0.0/gems/builder-3.2.2/Rakefile | 195 ++++++ .../2.0.0/gems/builder-3.2.2/doc/jamis.rb | 591 +++++++++++++++++ .../doc/releases/builder-1.2.4.rdoc | 31 + .../doc/releases/builder-2.0.0.rdoc | 46 ++ .../doc/releases/builder-2.1.1.rdoc | 58 ++ .../gems/builder-3.2.2/lib/blankslate.rb | 137 ++++ .../2.0.0/gems/builder-3.2.2/lib/builder.rb | 13 + .../builder-3.2.2/lib/builder/blankslate.rb | 23 + .../gems/builder-3.2.2/lib/builder/version.rb | 8 + .../gems/builder-3.2.2/lib/builder/xchar.rb | 197 ++++++ .../gems/builder-3.2.2/lib/builder/xmlbase.rb | 199 ++++++ .../builder-3.2.2/lib/builder/xmlevents.rb | 63 ++ .../builder-3.2.2/lib/builder/xmlmarkup.rb | 339 ++++++++++ .../gems/builder-3.2.2/rakelib/publish.rake | 17 + .../gems/builder-3.2.2/rakelib/tags.rake | 62 ++ .../gems/builder-3.2.2/test/performance.rb | 41 ++ .../2.0.0/gems/builder-3.2.2/test/preload.rb | 39 ++ .../builder-3.2.2/test/test_blankslate.rb | 217 +++++++ .../builder-3.2.2/test/test_eventbuilder.rb | 150 +++++ .../builder-3.2.2/test/test_markupbuilder.rb | 611 ++++++++++++++++++ .../builder-3.2.2/test/test_method_caching.rb | 62 ++ .../builder-3.2.2/test/test_namecollision.rb | 39 ++ .../gems/builder-3.2.2/test/test_xchar.rb | 78 +++ .../ruby/2.0.0/gems/faker-1.5.0/History.txt | 139 ++++ .../ruby/2.0.0/gems/faker-1.5.0/License.txt | 20 + .../ruby/2.0.0/gems/faker-1.5.0/README.md | 550 ++++++++++++++++ .../gems/faker-1.5.0/lib/extensions/array.rb | 22 + .../gems/faker-1.5.0/lib/extensions/symbol.rb | 9 + .../ruby/2.0.0/gems/faker-1.5.0/lib/faker.rb | 188 ++++++ .../gems/faker-1.5.0/lib/faker/address.rb | 59 ++ .../2.0.0/gems/faker-1.5.0/lib/faker/app.rb | 22 + .../gems/faker-1.5.0/lib/faker/avatar.rb | 14 + .../gems/faker-1.5.0/lib/faker/bitcoin.rb | 49 ++ .../2.0.0/gems/faker-1.5.0/lib/faker/book.rb | 19 + .../gems/faker-1.5.0/lib/faker/business.rb | 22 + .../2.0.0/gems/faker-1.5.0/lib/faker/code.rb | 70 ++ .../2.0.0/gems/faker-1.5.0/lib/faker/color.rb | 49 ++ .../gems/faker-1.5.0/lib/faker/commerce.rb | 55 ++ .../gems/faker-1.5.0/lib/faker/company.rb | 78 +++ .../2.0.0/gems/faker-1.5.0/lib/faker/date.rb | 42 ++ .../gems/faker-1.5.0/lib/faker/finance.rb | 26 + .../gems/faker-1.5.0/lib/faker/hacker.rb | 31 + .../gems/faker-1.5.0/lib/faker/internet.rb | 111 ++++ .../2.0.0/gems/faker-1.5.0/lib/faker/lorem.rb | 66 ++ .../2.0.0/gems/faker-1.5.0/lib/faker/name.rb | 22 + .../gems/faker-1.5.0/lib/faker/number.rb | 57 ++ .../faker-1.5.0/lib/faker/phone_number.rb | 52 ++ .../gems/faker-1.5.0/lib/faker/slack_emoji.rb | 43 ++ .../2.0.0/gems/faker-1.5.0/lib/faker/team.rb | 20 + .../2.0.0/gems/faker-1.5.0/lib/faker/time.rb | 48 ++ .../gems/faker-1.5.0/lib/faker/university.rb | 20 + .../gems/faker-1.5.0/lib/faker/version.rb | 3 + .../gems/faker-1.5.0/lib/helpers/char.rb | 44 ++ .../gems/faker-1.5.0/lib/locales/de-AT.yml | 49 ++ .../gems/faker-1.5.0/lib/locales/de-CH.yml | 19 + .../2.0.0/gems/faker-1.5.0/lib/locales/de.yml | 57 ++ .../gems/faker-1.5.0/lib/locales/en-AU.yml | 24 + .../gems/faker-1.5.0/lib/locales/en-BORK.yml | 4 + .../gems/faker-1.5.0/lib/locales/en-CA.yml | 14 + .../gems/faker-1.5.0/lib/locales/en-GB.yml | 13 + .../gems/faker-1.5.0/lib/locales/en-IND.yml | 20 + .../gems/faker-1.5.0/lib/locales/en-NEP.yml | 39 ++ .../gems/faker-1.5.0/lib/locales/en-UG.yml | 128 ++++ .../gems/faker-1.5.0/lib/locales/en-US.yml | 83 +++ .../faker-1.5.0/lib/locales/en-au-ocker.yml | 31 + .../2.0.0/gems/faker-1.5.0/lib/locales/en.yml | 189 ++++++ .../2.0.0/gems/faker-1.5.0/lib/locales/es.yml | 62 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/fa.yml | 6 + .../2.0.0/gems/faker-1.5.0/lib/locales/fr.yml | 55 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/it.yml | 59 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/ja.yml | 25 + .../2.0.0/gems/faker-1.5.0/lib/locales/ko.yml | 37 ++ .../gems/faker-1.5.0/lib/locales/nb-NO.yml | 52 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/nl.yml | 77 +++ .../2.0.0/gems/faker-1.5.0/lib/locales/pl.yml | 66 ++ .../gems/faker-1.5.0/lib/locales/pt-BR.yml | 57 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/ru.yml | 65 ++ .../2.0.0/gems/faker-1.5.0/lib/locales/sk.yml | 72 +++ .../2.0.0/gems/faker-1.5.0/lib/locales/sv.yml | 76 +++ .../2.0.0/gems/faker-1.5.0/lib/locales/uk.yml | 75 +++ .../2.0.0/gems/faker-1.5.0/lib/locales/vi.yml | 63 ++ .../gems/faker-1.5.0/lib/locales/zh-CN.yml | 27 + .../gems/faker-1.5.0/lib/locales/zh-TW.yml | 27 + .../test/test_array_sample_method_compat.rb | 56 ++ .../gems/faker-1.5.0/test/test_avatar.rb | 39 ++ .../test/test_en_au_ocker_locale.rb | 23 + .../faker-1.5.0/test/test_en_ca_locale.rb | 18 + .../gems/faker-1.5.0/test/test_en_locale.rb | 25 + .../faker-1.5.0/test/test_en_ug_locale.rb | 23 + .../faker-1.5.0/test/test_en_us_locale.rb | 79 +++ .../gems/faker-1.5.0/test/test_es_locale.rb | 34 + .../2.0.0/gems/faker-1.5.0/test/test_faker.rb | 29 + .../gems/faker-1.5.0/test/test_faker_app.rb | 12 + .../faker-1.5.0/test/test_faker_bitcoin.rb | 14 + .../gems/faker-1.5.0/test/test_faker_book.rb | 20 + .../faker-1.5.0/test/test_faker_business.rb | 34 + .../gems/faker-1.5.0/test/test_faker_city.rb | 45 ++ .../gems/faker-1.5.0/test/test_faker_code.rb | 31 + .../gems/faker-1.5.0/test/test_faker_color.rb | 46 ++ .../faker-1.5.0/test/test_faker_commerce.rb | 73 +++ .../faker-1.5.0/test/test_faker_company.rb | 30 + .../gems/faker-1.5.0/test/test_faker_date.rb | 77 +++ .../test/test_faker_hacker_talk.rb | 37 ++ .../faker-1.5.0/test/test_faker_internet.rb | 141 ++++ .../gems/faker-1.5.0/test/test_faker_lorem.rb | 87 +++ .../gems/faker-1.5.0/test/test_faker_name.rb | 20 + .../faker-1.5.0/test/test_faker_number.rb | 77 +++ .../test/test_faker_slack_emoji.rb | 45 ++ .../faker-1.5.0/test/test_faker_street.rb | 52 ++ .../gems/faker-1.5.0/test/test_faker_team.rb | 25 + .../gems/faker-1.5.0/test/test_faker_time.rb | 74 +++ .../faker-1.5.0/test/test_faker_university.rb | 20 + .../gems/faker-1.5.0/test/test_flexible.rb | 56 ++ .../gems/faker-1.5.0/test/test_helper.rb | 12 + .../gems/faker-1.5.0/test/test_locale.rb | 45 ++ .../gems/faker-1.5.0/test/test_pl_locale.rb | 24 + .../gems/faker-1.5.0/test/test_uk_locale.rb | 44 ++ .../ruby/2.0.0/gems/i18n-0.7.0/MIT-LICENSE | 20 + .../ruby/2.0.0/gems/i18n-0.7.0/README.md | 82 +++ .../i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x | 8 + .../gemfiles/Gemfile.rails-3.2.x.lock | 27 + .../i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x | 8 + .../gemfiles/Gemfile.rails-4.0.x.lock | 33 + .../i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x | 8 + .../gemfiles/Gemfile.rails-4.1.x.lock | 34 + .../i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x | 8 + .../gemfiles/Gemfile.rails-4.2.x.lock | 34 + .../i18n-0.7.0/gemfiles/Gemfile.rails-master | 8 + .../gemfiles/Gemfile.rails-master.lock | 40 ++ .../ruby/2.0.0/gems/i18n-0.7.0/lib/i18n.rb | 341 ++++++++++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/backend.rb | 18 + .../gems/i18n-0.7.0/lib/i18n/backend/base.rb | 189 ++++++ .../gems/i18n-0.7.0/lib/i18n/backend/cache.rb | 96 +++ .../i18n-0.7.0/lib/i18n/backend/cascade.rb | 54 ++ .../gems/i18n-0.7.0/lib/i18n/backend/chain.rb | 97 +++ .../i18n-0.7.0/lib/i18n/backend/fallbacks.rb | 69 ++ .../i18n-0.7.0/lib/i18n/backend/flatten.rb | 113 ++++ .../i18n-0.7.0/lib/i18n/backend/gettext.rb | 72 +++ .../i18n/backend/interpolation_compiler.rb | 121 ++++ .../i18n-0.7.0/lib/i18n/backend/key_value.rb | 100 +++ .../i18n-0.7.0/lib/i18n/backend/memoize.rb | 46 ++ .../i18n-0.7.0/lib/i18n/backend/metadata.rb | 65 ++ .../lib/i18n/backend/pluralization.rb | 53 ++ .../i18n-0.7.0/lib/i18n/backend/simple.rb | 87 +++ .../lib/i18n/backend/transliterator.rb | 99 +++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/config.rb | 140 ++++ .../gems/i18n-0.7.0/lib/i18n/core_ext/hash.rb | 29 + .../i18n/core_ext/kernel/suppress_warnings.rb | 8 + .../lib/i18n/core_ext/string/interpolate.rb | 9 + .../gems/i18n-0.7.0/lib/i18n/exceptions.rb | 104 +++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/gettext.rb | 25 + .../i18n-0.7.0/lib/i18n/gettext/helpers.rb | 64 ++ .../i18n-0.7.0/lib/i18n/gettext/po_parser.rb | 329 ++++++++++ .../i18n-0.7.0/lib/i18n/interpolate/ruby.rb | 37 ++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/locale.rb | 6 + .../i18n-0.7.0/lib/i18n/locale/fallbacks.rb | 96 +++ .../gems/i18n-0.7.0/lib/i18n/locale/tag.rb | 28 + .../i18n-0.7.0/lib/i18n/locale/tag/parents.rb | 22 + .../i18n-0.7.0/lib/i18n/locale/tag/rfc4646.rb | 74 +++ .../i18n-0.7.0/lib/i18n/locale/tag/simple.rb | 39 ++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/tests.rb | 12 + .../gems/i18n-0.7.0/lib/i18n/tests/basics.rb | 59 ++ .../i18n-0.7.0/lib/i18n/tests/defaults.rb | 40 ++ .../lib/i18n/tests/interpolation.rb | 133 ++++ .../gems/i18n-0.7.0/lib/i18n/tests/link.rb | 56 ++ .../i18n-0.7.0/lib/i18n/tests/localization.rb | 19 + .../lib/i18n/tests/localization/date.rb | 91 +++ .../lib/i18n/tests/localization/date_time.rb | 82 +++ .../lib/i18n/tests/localization/procs.rb | 116 ++++ .../lib/i18n/tests/localization/time.rb | 81 +++ .../gems/i18n-0.7.0/lib/i18n/tests/lookup.rb | 81 +++ .../lib/i18n/tests/pluralization.rb | 35 + .../gems/i18n-0.7.0/lib/i18n/tests/procs.rb | 55 ++ .../2.0.0/gems/i18n-0.7.0/lib/i18n/version.rb | 3 + .../i18n-0.7.0/test/api/all_features_test.rb | 58 ++ .../gems/i18n-0.7.0/test/api/cascade_test.rb | 28 + .../gems/i18n-0.7.0/test/api/chain_test.rb | 24 + .../i18n-0.7.0/test/api/fallbacks_test.rb | 30 + .../i18n-0.7.0/test/api/key_value_test.rb | 24 + .../gems/i18n-0.7.0/test/api/memoize_test.rb | 56 ++ .../gems/i18n-0.7.0/test/api/override_test.rb | 42 ++ .../i18n-0.7.0/test/api/pluralization_test.rb | 30 + .../gems/i18n-0.7.0/test/api/simple_test.rb | 28 + .../i18n-0.7.0/test/backend/cache_test.rb | 86 +++ .../i18n-0.7.0/test/backend/cascade_test.rb | 86 +++ .../i18n-0.7.0/test/backend/chain_test.rb | 91 +++ .../test/backend/exceptions_test.rb | 36 ++ .../i18n-0.7.0/test/backend/fallbacks_test.rb | 152 +++++ .../backend/interpolation_compiler_test.rb | 118 ++++ .../i18n-0.7.0/test/backend/key_value_test.rb | 43 ++ .../i18n-0.7.0/test/backend/memoize_test.rb | 47 ++ .../i18n-0.7.0/test/backend/metadata_test.rb | 48 ++ .../test/backend/pluralization_test.rb | 45 ++ .../i18n-0.7.0/test/backend/simple_test.rb | 84 +++ .../test/backend/transliterator_test.rb | 84 +++ .../i18n-0.7.0/test/core_ext/hash_test.rb | 30 + .../gems/i18n-0.7.0/test/gettext/api_test.rb | 207 ++++++ .../i18n-0.7.0/test/gettext/backend_test.rb | 92 +++ .../i18n-0.7.0/test/i18n/exceptions_test.rb | 105 +++ .../i18n-0.7.0/test/i18n/interpolate_test.rb | 80 +++ .../i18n-0.7.0/test/i18n/load_path_test.rb | 34 + .../2.0.0/gems/i18n-0.7.0/test/i18n_test.rb | 429 ++++++++++++ .../i18n-0.7.0/test/locale/fallbacks_test.rb | 133 ++++ .../test/locale/tag/rfc4646_test.rb | 143 ++++ .../i18n-0.7.0/test/locale/tag/simple_test.rb | 32 + .../2.0.0/gems/i18n-0.7.0/test/run_all.rb | 20 + .../i18n-0.7.0/test/test_data/locales/de.po | 82 +++ .../i18n-0.7.0/test/test_data/locales/en.rb | 3 + .../i18n-0.7.0/test/test_data/locales/en.yml | 3 + .../test/test_data/locales/invalid/empty.yml | 0 .../test/test_data/locales/invalid/syntax.yml | 4 + .../test/test_data/locales/plurals.rb | 113 ++++ .../2.0.0/gems/i18n-0.7.0/test/test_helper.rb | 55 ++ .../specifications/alphred-1.0.0.gemspec | 37 ++ .../specifications/builder-3.2.2.gemspec | 20 + .../2.0.0/specifications/faker-1.5.0.gemspec | 29 + .../2.0.0/specifications/i18n-0.7.0.gemspec | 19 + .../workflow.rb | 64 ++ .../dash_keyword_gems.png | Bin 0 -> 35651 bytes .../dash_keyword_s.png | Bin 0 -> 35651 bytes .../info.plist | 249 +++++-- .../info.plist | 65 ++ 257 files changed, 16300 insertions(+), 48 deletions(-) create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/CHANGELOG.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/README.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Rakefile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/icon.png create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/info.plist create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/test_workflow.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/bundler/setup.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/alphred-1.0.0.gem create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/builder-3.2.2.gem create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/faker-1.5.0.gem create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/i18n-0.7.0.gem create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/.gitignore create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/.travis.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/CODE_OF_CONDUCT.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Gemfile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Guardfile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/LICENSE.txt create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/README.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Rakefile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/alphred.gemspec create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/icon.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/item.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/items.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/mods.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/tasks.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/text.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/version.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/CHANGES create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/MIT-LICENSE create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/README.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/Rakefile create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/jamis.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-1.2.4.rdoc create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.0.0.rdoc create mode 100755 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.1.1.rdoc create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/blankslate.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/blankslate.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/version.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xchar.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlbase.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlevents.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlmarkup.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/publish.rake create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/tags.rake create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/performance.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/preload.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_blankslate.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_eventbuilder.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_markupbuilder.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_method_caching.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_namecollision.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_xchar.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/History.txt create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/License.txt create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/README.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/array.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/symbol.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/address.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/app.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/avatar.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/bitcoin.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/book.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/business.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/code.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/color.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/commerce.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/company.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/date.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/finance.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/hacker.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/internet.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/lorem.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/name.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/number.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/phone_number.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/slack_emoji.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/team.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/time.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/university.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/version.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/helpers/char.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-AT.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-CH.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-AU.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-BORK.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-CA.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-GB.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-IND.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-NEP.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-UG.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-US.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-au-ocker.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/es.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fa.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fr.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/it.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ja.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ko.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nb-NO.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nl.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pl.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pt-BR.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ru.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sk.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sv.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/uk.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/vi.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-CN.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-TW.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_array_sample_method_compat.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_avatar.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_au_ocker_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ca_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ug_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_us_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_es_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_app.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_bitcoin.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_book.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_business.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_city.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_code.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_color.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_commerce.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_company.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_date.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_hacker_talk.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_internet.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_lorem.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_name.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_number.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_slack_emoji.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_street.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_team.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_time.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_university.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_flexible.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_helper.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_pl_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_uk_locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/MIT-LICENSE create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/README.md create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master.lock create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cache.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cascade.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/chain.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/flatten.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/gettext.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/interpolation_compiler.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/key_value.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/memoize.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/metadata.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/simple.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/transliterator.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/config.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/hash.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/kernel/suppress_warnings.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/string/interpolate.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/exceptions.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/helpers.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/po_parser.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/interpolate/ruby.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/fallbacks.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/parents.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/rfc4646.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/simple.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/basics.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/defaults.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/interpolation.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/link.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date_time.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/procs.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/time.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/lookup.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/pluralization.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/procs.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/version.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/all_features_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/cascade_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/chain_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/fallbacks_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/key_value_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/memoize_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/override_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/pluralization_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/simple_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cache_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cascade_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/chain_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/exceptions_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/fallbacks_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/interpolation_compiler_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/key_value_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/memoize_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/metadata_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/pluralization_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/simple_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/transliterator_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/core_ext/hash_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/api_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/backend_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/exceptions_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/interpolate_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/load_path_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/fallbacks_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/rfc4646_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/simple_test.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/run_all.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/de.po create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/empty.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/syntax.yml create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/plurals.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_helper.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/alphred-1.0.0.gemspec create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/builder-3.2.2.gemspec create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/faker-1.5.0.gemspec create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/i18n-0.7.0.gemspec create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/workflow.rb create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.35F259A3-BBD9-4A1B-B237-5E149EE1E723/dash_keyword_gems.png create mode 100644 Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.35F259A3-BBD9-4A1B-B237-5E149EE1E723/dash_keyword_s.png diff --git a/Alfred 2/Alfred.alfredpreferences/preferences/features/defaultresults/prefs.plist b/Alfred 2/Alfred.alfredpreferences/preferences/features/defaultresults/prefs.plist index fb068eb..947d47d 100644 --- a/Alfred 2/Alfred.alfredpreferences/preferences/features/defaultresults/prefs.plist +++ b/Alfred 2/Alfred.alfredpreferences/preferences/features/defaultresults/prefs.plist @@ -8,8 +8,8 @@ features.websearch.duckduckgo.fallback features.websearch.google.fallback - features.websearch.amazon.fallback features.websearch.wiki.fallback + features.websearch.custom.491B807D-42B3-4CB4-861F-2ADF20727F53.fallback diff --git a/Alfred 2/Alfred.alfredpreferences/preferences/features/websearch/prefs.plist b/Alfred 2/Alfred.alfredpreferences/preferences/features/websearch/prefs.plist index c682ece..39cc754 100644 --- a/Alfred 2/Alfred.alfredpreferences/preferences/features/websearch/prefs.plist +++ b/Alfred 2/Alfred.alfredpreferences/preferences/features/websearch/prefs.plist @@ -64,6 +64,21 @@ utf8 + 78F38D7E-7CF4-41FC-AD5F-C4017FFCA0AE + + enabled + + keyword + giphy + plusSpaces + + text + Search Giphy for '{query}' + url + http://giphy.com/search/?q={query} + utf8 + + A5E2DBA1-C7F6-4F89-8348-987E767FC291 enabled diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/CHANGELOG.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/CHANGELOG.md new file mode 100644 index 0000000..684ff65 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/CHANGELOG.md @@ -0,0 +1,6 @@ +## Unreleased + +## 1.0.0 - 2015.10.25 +### Added + +- Initial release of Faker.alfredworkflow! diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile new file mode 100644 index 0000000..bcadbee --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile @@ -0,0 +1,10 @@ +source "https://rubygems.org" + +gem "alphred", "~> 1.0" +gem "faker", "~> 1.5" + +group :development do + gem "minitest" + gem "rake" + gem "pry" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile.lock new file mode 100644 index 0000000..414b661 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Gemfile.lock @@ -0,0 +1,31 @@ +GEM + remote: https://rubygems.org/ + specs: + alphred (1.0.0) + builder (~> 3.2) + builder (3.2.2) + coderay (1.1.0) + faker (1.5.0) + i18n (~> 0.5) + i18n (0.7.0) + method_source (0.8.2) + minitest (5.8.2) + pry (0.10.3) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + rake (10.4.2) + slop (3.6.0) + +PLATFORMS + ruby + +DEPENDENCIES + alphred (~> 1.0) + faker (~> 1.5) + minitest + pry + rake + +BUNDLED WITH + 1.10.6 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/README.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/README.md new file mode 100644 index 0000000..3d0bbef --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/README.md @@ -0,0 +1,11 @@ +# Faker.alfredworkflow + +This [Alfred](https://www.alfredapp.com/) workflow generates fake data using +the [Faker](https://github.com/stympy/faker) Ruby gem. I use it mainly for +creating dummy answers for security questions required for creating accounts. + +## Credits + +- [Faker](https://github.com/stympy/faker) +- [eye mask icon by Creative Stall from the Noun +Project](https://thenounproject.com/term/eye-mask/178273/) diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Rakefile b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Rakefile new file mode 100644 index 0000000..014c7fd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/Rakefile @@ -0,0 +1,10 @@ +require "rake/testtask" + +require "alphred/tasks" + +Rake::TestTask.new do |t| + t.test_files = FileList["test_*.rb"] + t.verbose = true +end + +task default: :test diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/icon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0b84a1bfe9f47599f45377dc14bbdd0777d143 GIT binary patch literal 24455 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 literal 0 HcmV?d00001 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/info.plist b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/info.plist new file mode 100644 index 0000000..0dad0cc --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/info.plist @@ -0,0 +1,125 @@ + + + + + bundleid + com.arbitrarydefinitions.faker + category + Tools + connections + + 6C68D0BB-A89A-4FDD-BB99-B5A5B460646E + + + destinationuid + B5EB1D6A-BBD4-461B-AEBC-5A1CFBD844FA + modifiers + 0 + modifiersubtext + + + + destinationuid + 9DE3E4D9-4D72-4C53-9013-D1B1C4AE8776 + modifiers + 0 + modifiersubtext + + + + + createdby + Alpha Chen + description + Creates fake data + disabled + + name + Faker + objects + + + type + alfred.workflow.output.largetype + uid + B5EB1D6A-BBD4-461B-AEBC-5A1CFBD844FA + version + 0 + + + config + + argumenttype + 0 + escaping + 127 + keyword + faker + queuedelaycustom + 1 + queuedelayimmediatelyinitially + + queuedelaymode + 0 + queuemode + 1 + runningsubtext + Generating fake data... + script + ruby workflow.rb {query} + subtext + Generate fake data for "..." + title + Generate fake data + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + 6C68D0BB-A89A-4FDD-BB99-B5A5B460646E + version + 0 + + + config + + autopaste + + clipboardtext + {query} + + type + alfred.workflow.output.clipboard + uid + 9DE3E4D9-4D72-4C53-9013-D1B1C4AE8776 + version + 0 + + + readme + + uidata + + 6C68D0BB-A89A-4FDD-BB99-B5A5B460646E + + ypos + 70 + + 9DE3E4D9-4D72-4C53-9013-D1B1C4AE8776 + + ypos + 130 + + B5EB1D6A-BBD4-461B-AEBC-5A1CFBD844FA + + ypos + 10 + + + webaddress + https://github.com/kejadlen/faker + + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/test_workflow.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/test_workflow.rb new file mode 100644 index 0000000..3b18b3f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/test_workflow.rb @@ -0,0 +1,10 @@ +require "minitest/autorun" + +require_relative "workflow" + +class TestWorkflow < Minitest::Test + def test_i18n_failure + workflow = Workflow::Faker.new("a") + workflow.items.to_xml + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/bundler/setup.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/bundler/setup.rb new file mode 100644 index 0000000..dffc5f4 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/bundler/setup.rb @@ -0,0 +1,9 @@ +require 'rbconfig' +# ruby 1.8.7 doesn't define RUBY_ENGINE +ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' +ruby_version = RbConfig::CONFIG["ruby_version"] +path = File.expand_path('..', __FILE__) +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/builder-3.2.2/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/alphred-1.0.0/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-0.7.0/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/faker-1.5.0/lib" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/alphred-1.0.0.gem b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/alphred-1.0.0.gem new file mode 100644 index 0000000000000000000000000000000000000000..0c21d95a7d4ec237dbd04f3bcb29a4308f42e1ca GIT binary patch literal 9728 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 Ie>wvH0jyl}qW}N^ literal 0 HcmV?d00001 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/builder-3.2.2.gem b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/builder-3.2.2.gem new file mode 100644 index 0000000000000000000000000000000000000000..b59ef922ebd687bf5b6b254f410f4d511c1ccf6e GIT binary patch literal 31744 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 P;y)Ak&jkKon!x`66^mbr literal 0 HcmV?d00001 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/faker-1.5.0.gem b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/faker-1.5.0.gem new file mode 100644 index 0000000000000000000000000000000000000000..1d37fd5113c829069130b43f042c6ae7be935baf GIT binary patch literal 209920 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%0AEG_Mc&U2bDdg^Jgeh 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

+ENDIF:description + +IF:requires +
Required Files
+
    +START:requires +
  • HREF:aref:name:
  • +END:requires +
+ENDIF:requires + +IF:toc +
Contents
+
+ENDIF:toc + +IF:methods +
Methods
+
    +START:methods +
  • HREF:aref:name:
  • +END:methods +
+ENDIF:methods + +IF:includes +
Included Modules
+
    +START:includes +
  • HREF:aref:name:
  • +END:includes +
+ENDIF:includes + +START:sections +IF:sectitle + +IF:seccomment +
+%seccomment% +
+ENDIF:seccomment +ENDIF:sectitle + +IF:classlist +
Classes and Modules
+ %classlist% +ENDIF:classlist + +IF:constants +
Constants
+ +START:constants + + + + + +IF:desc + + + + +ENDIF:desc +END:constants +
%name%=%value%
 %desc%
+ENDIF:constants + +IF:attributes +
Attributes
+ +START:attributes + + + + + +END:attributes +
+IF:rw +[%rw%] +ENDIF:rw + %name%%a_desc%
+ENDIF:attributes + +IF:method_list +START:method_list +IF:methods +
%type% %category% methods
+START:methods +
+
+IF:callseq + %callseq% +ENDIF:callseq +IFNOT:callseq + %name%%params% +ENDIF:callseq +IF:codeurl +[ source ] +ENDIF:codeurl +
+IF:m_desc +
+ %m_desc% +
+ENDIF:m_desc +IF:aka +
+ This method is also aliased as +START:aka + %name% +END:aka +
+ENDIF:aka +IF:sourcecode +
+ +
+
+%sourcecode%
+
+
+
+ENDIF:sourcecode +
+END:methods +ENDIF:methods +END:method_list +ENDIF:method_list +END:sections + +HTML + +FOOTER = < + +ENDFOOTER + +BODY = HEADER + < + +
+ #{METHOD_LIST} +
+ + #{FOOTER} +ENDBODY + +########################## Source code ########################## + +SRC_PAGE = XHTML_PREAMBLE + < +%title% + + + + +
%code%
+ + +HTML + +########################## Index ################################ + +FR_INDEX_BODY = < + + + + + + + +
+START:entries +%name%
+END:entries +
+ +HTML + +CLASS_INDEX = FILE_INDEX +METHOD_INDEX = FILE_INDEX + +INDEX = XHTML_PREAMBLE + < + + %title% + + + + + + + + + +IF:inline_source + +ENDIF:inline_source +IFNOT:inline_source + + + + +ENDIF:inline_source + + <body bgcolor="white"> + Click <a href="html/index.html">here</a> for a non-frames + version of this page. + </body> + + + + +HTML + +end +end + + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-1.2.4.rdoc b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-1.2.4.rdoc new file mode 100644 index 0000000..a1cf54f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-1.2.4.rdoc @@ -0,0 +1,31 @@ += Builder 1.2.4 Released. + +Added a "CDATA" method to the XML Markup builder (from Josh Knowles). + +== What is Builder? + +Builder::XmlMarkup allows easy programmatic creation of XML markup. +For example: + + builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2) + builder.person { |b| b.name("Jim"); b.phone("555-1234") } + puts builder.target! + +will generate: + + + Jim + 555-1234 + + +== Availability + +The easiest way to get and install builder is via RubyGems ... + + gem install builder (you may need root/admin privileges) + +== Thanks + +* Josh Knowles for the cdata! patch. + +-- Jim Weirich diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.0.0.rdoc b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.0.0.rdoc new file mode 100644 index 0000000..ed9e086 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.0.0.rdoc @@ -0,0 +1,46 @@ += Builder 2.0.0 Released. + +== Changes in 2.0.0 + +* UTF-8 characters in data are now correctly translated to their XML + equivalents. (Thanks to Sam Ruby) + +* Attribute values are now escaped by default. See the README + file for details. + +NOTE: The escaping attribute values by default is different +than in previous releases of Builder. This makes version 2.0.0 +somewhat incompatible with the 1.x series of Builder. If you use "&", +"<", or ">" in attributes values, you may have to change your +code. (Essentially you remove the manual escaping. The new way is +easier, believe me). + +== What is Builder? + +Builder::XmlMarkup is a library that allows easy programmatic creation +of XML markup. For example: + + builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2) + builder.person { |b| b.name("Jim"); b.phone("555-1234") } + +will generate: + + + Jim + 555-1234 + + +== Availability + +The easiest way to get and install builder is via RubyGems ... + + gem install builder (you may need root/admin privileges) + +== Thanks + +* Sam Ruby for the XChar module and the related UTF-8 translation + tools. +* Also to Sam Ruby for gently persuading me to start quoting attribute + values. + +-- Jim Weirich diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.1.1.rdoc b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.1.1.rdoc new file mode 100755 index 0000000..dbbf121 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/releases/builder-2.1.1.rdoc @@ -0,0 +1,58 @@ += Builder 2.1.1 Released. + +Release 2.1.1 of Builder is mainly a bug fix release. + +== Changes in 2.1.1 + +* Added reveal capability to BlankSlate. + +* Fixed a bug in BlankSlate where including a module into Object could + cause methods to leak into BlankSlate. + +* Fixed typo in XmlMarkup class docs (from Martin Fowler). + +* Fixed test on private methods to differentiate between targetted and + untargetted private methods. + +* Removed legacy capture of @self in XmlBase (@self was used back when + we used instance eval). + +* Added additional tests for global functions (both direct and + included). + +* Several misc internal cleanups, including rearranging the source + code tree. + +NOTE: The escaping attribute values by default is different +than in previous releases of Builder. This makes version 2.0.x +somewhat incompatible with the 1.x series of Builder. If you use "&", +"<", or ">" in attributes values, you may have to change your +code. (Essentially you remove the manual escaping. The new way is +easier, believe me). + +== What is Builder? + +Builder::XmlMarkup is a library that allows easy programmatic creation +of XML markup. For example: + + builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2) + builder.person { |b| b.name("Jim"); b.phone("555-1234") } + +will generate: + + + Jim + 555-1234 + + +== Availability + +The easiest way to get and install builder is via RubyGems ... + + gem install builder (you may need root/admin privileges) + +== Thanks + +* Martin Fowler for spotting some typos in the documentation. + +-- Jim Weirich diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/blankslate.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/blankslate.rb new file mode 100644 index 0000000..931c8a7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/blankslate.rb @@ -0,0 +1,137 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +class String + if instance_methods.first.is_a?(Symbol) + def _blankslate_as_name + to_sym + end + else + def _blankslate_as_name + self + end + end +end + +class Symbol + if instance_methods.first.is_a?(Symbol) + def _blankslate_as_name + self + end + else + def _blankslate_as_name + to_s + end + end +end + +###################################################################### +# BlankSlate provides an abstract base class with no predefined +# methods (except for \_\_send__ and \_\_id__). +# BlankSlate is useful as a base class when writing classes that +# depend upon method_missing (e.g. dynamic proxies). +# +class BlankSlate + class << self + + # Hide the method named +name+ in the BlankSlate class. Don't + # hide +instance_eval+ or any method beginning with "__". + def hide(name) + warn_level = $VERBOSE + $VERBOSE = nil + if instance_methods.include?(name._blankslate_as_name) && + name !~ /^(__|instance_eval$)/ + @hidden_methods ||= {} + @hidden_methods[name.to_sym] = instance_method(name) + undef_method name + end + ensure + $VERBOSE = warn_level + end + + def find_hidden_method(name) + @hidden_methods ||= {} + @hidden_methods[name] || superclass.find_hidden_method(name) + end + + # Redefine a previously hidden method so that it may be called on a blank + # slate object. + def reveal(name) + hidden_method = find_hidden_method(name) + fail "Don't know how to reveal method '#{name}'" unless hidden_method + define_method(name, hidden_method) + end + end + + instance_methods.each { |m| hide(m) } +end + +###################################################################### +# Since Ruby is very dynamic, methods added to the ancestors of +# BlankSlate after BlankSlate is defined will show up in the +# list of available BlankSlate methods. We handle this by defining a +# hook in the Object and Kernel classes that will hide any method +# defined after BlankSlate has been loaded. +# +module Kernel + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Kernel and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Kernel + BlankSlate.hide(name) + result + end + end +end + +###################################################################### +# Same as above, except in Object. +# +class Object + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Object and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Object + BlankSlate.hide(name) + result + end + + def find_hidden_method(name) + nil + end + end +end + +###################################################################### +# Also, modules included into Object need to be scanned and have their +# instance methods removed from blank slate. In theory, modules +# included into Kernel would have to be removed as well, but a +# "feature" of Ruby prevents late includes into modules from being +# exposed in the first place. +# +class Module + alias blankslate_original_append_features append_features + def append_features(mod) + result = blankslate_original_append_features(mod) + return result if mod != Object + instance_methods.each do |name| + BlankSlate.hide(name) + end + result + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder.rb new file mode 100644 index 0000000..9719277 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' +require 'builder/xmlevents' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/blankslate.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/blankslate.rb new file mode 100644 index 0000000..67d2f24 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/blankslate.rb @@ -0,0 +1,23 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +###################################################################### +# BlankSlate has been promoted to a top level name and is now +# available as a standalone gem. We make the name available in the +# Builder namespace for compatibility. +# +module Builder + if Object::const_defined?(:BasicObject) + BlankSlate = ::BasicObject + else + require 'blankslate' + BlankSlate = ::BlankSlate + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/version.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/version.rb new file mode 100644 index 0000000..cbe7bc4 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/version.rb @@ -0,0 +1,8 @@ +module Builder + VERSION_NUMBERS = [ + VERSION_MAJOR = 3, + VERSION_MINOR = 2, + VERSION_BUILD = 2, + ] + VERSION = VERSION_NUMBERS.join(".") +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xchar.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xchar.rb new file mode 100644 index 0000000..c7daa48 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xchar.rb @@ -0,0 +1,197 @@ +#!/usr/bin/env ruby + +# The XChar library is provided courtesy of Sam Ruby (See +# http://intertwingly.net/stories/2005/09/28/xchar.rb) + +# -------------------------------------------------------------------- + +# If the Builder::XChar module is not currently defined, fail on any +# name clashes in standard library classes. + +module Builder + def self.check_for_name_collision(klass, method_name, defined_constant=nil) + if klass.method_defined?(method_name.to_s) + fail RuntimeError, + "Name Collision: Method '#{method_name}' is already defined in #{klass}" + end + end +end + +if ! defined?(Builder::XChar) and ! String.method_defined?(:encode) + Builder.check_for_name_collision(String, "to_xs") + Builder.check_for_name_collision(Fixnum, "xchr") +end + +###################################################################### +module Builder + + #################################################################### + # XML Character converter, from Sam Ruby: + # (see http://intertwingly.net/stories/2005/09/28/xchar.rb). + # + module XChar # :nodoc: + + # See + # http://intertwingly.net/stories/2004/04/14/i18n.html#CleaningWindows + # for details. + CP1252 = { # :nodoc: + 128 => 8364, # euro sign + 130 => 8218, # single low-9 quotation mark + 131 => 402, # latin small letter f with hook + 132 => 8222, # double low-9 quotation mark + 133 => 8230, # horizontal ellipsis + 134 => 8224, # dagger + 135 => 8225, # double dagger + 136 => 710, # modifier letter circumflex accent + 137 => 8240, # per mille sign + 138 => 352, # latin capital letter s with caron + 139 => 8249, # single left-pointing angle quotation mark + 140 => 338, # latin capital ligature oe + 142 => 381, # latin capital letter z with caron + 145 => 8216, # left single quotation mark + 146 => 8217, # right single quotation mark + 147 => 8220, # left double quotation mark + 148 => 8221, # right double quotation mark + 149 => 8226, # bullet + 150 => 8211, # en dash + 151 => 8212, # em dash + 152 => 732, # small tilde + 153 => 8482, # trade mark sign + 154 => 353, # latin small letter s with caron + 155 => 8250, # single right-pointing angle quotation mark + 156 => 339, # latin small ligature oe + 158 => 382, # latin small letter z with caron + 159 => 376, # latin capital letter y with diaeresis + } + + # See http://www.w3.org/TR/REC-xml/#dt-chardata for details. + PREDEFINED = { + 38 => '&', # ampersand + 60 => '<', # left angle bracket + 62 => '>', # right angle bracket + } + + # See http://www.w3.org/TR/REC-xml/#charsets for details. + VALID = [ + 0x9, 0xA, 0xD, + (0x20..0xD7FF), + (0xE000..0xFFFD), + (0x10000..0x10FFFF) + ] + + # http://www.fileformat.info/info/unicode/char/fffd/index.htm + REPLACEMENT_CHAR = + if String.method_defined?(:encode) + "\uFFFD" + elsif $KCODE == 'UTF8' + "\xEF\xBF\xBD" + else + '*' + end + end + +end + + +if String.method_defined?(:encode) + module Builder + module XChar # :nodoc: + CP1252_DIFFERENCES, UNICODE_EQUIVALENT = Builder::XChar::CP1252.each. + inject([[],[]]) {|(domain,range),(key,value)| + [domain << key,range << value] + }.map {|seq| seq.pack('U*').force_encoding('utf-8')} + + XML_PREDEFINED = Regexp.new('[' + + Builder::XChar::PREDEFINED.keys.pack('U*').force_encoding('utf-8') + + ']') + + INVALID_XML_CHAR = Regexp.new('[^'+ + Builder::XChar::VALID.map { |item| + case item + when Fixnum + [item].pack('U').force_encoding('utf-8') + when Range + [item.first, '-'.ord, item.last].pack('UUU').force_encoding('utf-8') + end + }.join + + ']') + + ENCODING_BINARY = Encoding.find('BINARY') + ENCODING_UTF8 = Encoding.find('UTF-8') + ENCODING_ISO1 = Encoding.find('ISO-8859-1') + + # convert a string to valid UTF-8, compensating for a number of + # common errors. + def XChar.unicode(string) + if string.encoding == ENCODING_BINARY + if string.ascii_only? + string + else + string = string.clone.force_encoding(ENCODING_UTF8) + if string.valid_encoding? + string + else + string.encode(ENCODING_UTF8, ENCODING_ISO1) + end + end + + elsif string.encoding == ENCODING_UTF8 + if string.valid_encoding? + string + else + string.encode(ENCODING_UTF8, ENCODING_ISO1) + end + + else + string.encode(ENCODING_UTF8) + end + end + + # encode a string per XML rules + def XChar.encode(string) + unicode(string). + tr(CP1252_DIFFERENCES, UNICODE_EQUIVALENT). + gsub(INVALID_XML_CHAR, REPLACEMENT_CHAR). + gsub(XML_PREDEFINED) {|c| PREDEFINED[c.ord]} + end + end + end + +else + + ###################################################################### + # Enhance the Fixnum class with a XML escaped character conversion. + # + class Fixnum + XChar = Builder::XChar if ! defined?(XChar) + + # XML escaped version of chr. When escape is set to false + # the CP1252 fix is still applied but utf-8 characters are not + # converted to character entities. + def xchr(escape=true) + n = XChar::CP1252[self] || self + case n when *XChar::VALID + XChar::PREDEFINED[n] or + (n<128 ? n.chr : (escape ? "&##{n};" : [n].pack('U*'))) + else + Builder::XChar::REPLACEMENT_CHAR + end + end + end + + + ###################################################################### + # Enhance the String class with a XML escaped character version of + # to_s. + # + class String + # XML escaped version of to_s. When escape is set to false + # the CP1252 fix is still applied but utf-8 characters are not + # converted to character entities. + def to_xs(escape=true) + unpack('U*').map {|n| n.xchr(escape)}.join # ASCII, UTF-8 + rescue + unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252 + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlbase.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlbase.rb new file mode 100644 index 0000000..8f03a82 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlbase.rb @@ -0,0 +1,199 @@ +#!/usr/bin/env ruby + +require 'builder/blankslate' + +module Builder + + # Generic error for builder + class IllegalBlockError < RuntimeError; end + + # XmlBase is a base class for building XML builders. See + # Builder::XmlMarkup and Builder::XmlEvents for examples. + class XmlBase < BlankSlate + + class << self + attr_accessor :cache_method_calls + end + + # Create an XML markup builder. + # + # out :: Object receiving the markup. +out+ must respond to + # <<. + # indent :: Number of spaces used for indentation (0 implies no + # indentation and no line breaks). + # initial :: Level of initial indentation. + # encoding :: When encoding and $KCODE are set to 'utf-8' + # characters aren't converted to character entities in + # the output stream. + def initialize(indent=0, initial=0, encoding='utf-8') + @indent = indent + @level = initial + @encoding = encoding.downcase + end + + def explicit_nil_handling? + @explicit_nil_handling + end + + # Create a tag named +sym+. Other than the first argument which + # is the tag name, the arguments are the same as the tags + # implemented via method_missing. + def tag!(sym, *args, &block) + text = nil + attrs = nil + sym = "#{sym}:#{args.shift}" if args.first.kind_of?(::Symbol) + sym = sym.to_sym unless sym.class == ::Symbol + args.each do |arg| + case arg + when ::Hash + attrs ||= {} + attrs.merge!(arg) + when nil + attrs ||= {} + attrs.merge!({:nil => true}) if explicit_nil_handling? + else + text ||= '' + text << arg.to_s + end + end + if block + unless text.nil? + ::Kernel::raise ::ArgumentError, + "XmlMarkup cannot mix a text argument with a block" + end + _indent + _start_tag(sym, attrs) + _newline + begin + _nested_structures(block) + ensure + _indent + _end_tag(sym) + _newline + end + elsif text.nil? + _indent + _start_tag(sym, attrs, true) + _newline + else + _indent + _start_tag(sym, attrs) + text! text + _end_tag(sym) + _newline + end + @target + end + + # Create XML markup based on the name of the method. This method + # is never invoked directly, but is called for each markup method + # in the markup block that isn't cached. + def method_missing(sym, *args, &block) + cache_method_call(sym) if ::Builder::XmlBase.cache_method_calls + tag!(sym, *args, &block) + end + + # Append text to the output target. Escape any markup. May be + # used within the markup brackets as: + # + # builder.p { |b| b.br; b.text! "HI" } #=>


HI

+ def text!(text) + _text(_escape(text)) + end + + # Append text to the output target without escaping any markup. + # May be used within the markup brackets as: + # + # builder.p { |x| x << "
HI" } #=>


HI

+ # + # This is useful when using non-builder enabled software that + # generates strings. Just insert the string directly into the + # builder without changing the inserted markup. + # + # It is also useful for stacking builder objects. Builders only + # use << to append to the target, so by supporting this + # method/operation builders can use other builders as their + # targets. + def <<(text) + _text(text) + end + + # For some reason, nil? is sent to the XmlMarkup object. If nil? + # is not defined and method_missing is invoked, some strange kind + # of recursion happens. Since nil? won't ever be an XML tag, it + # is pretty safe to define it here. (Note: this is an example of + # cargo cult programming, + # cf. http://fishbowl.pastiche.org/2004/10/13/cargo_cult_programming). + def nil? + false + end + + private + + require 'builder/xchar' + if ::String.method_defined?(:encode) + def _escape(text) + result = XChar.encode(text) + begin + encoding = ::Encoding::find(@encoding) + raise Exception if encoding.dummy? + result.encode(encoding) + rescue + # if the encoding can't be supported, use numeric character references + result. + gsub(/[^\u0000-\u007F]/) {|c| "&##{c.ord};"}. + force_encoding('ascii') + end + end + else + def _escape(text) + if (text.method(:to_xs).arity == 0) + text.to_xs + else + text.to_xs((@encoding != 'utf-8' or $KCODE != 'UTF8')) + end + end + end + + def _escape_attribute(text) + _escape(text).gsub("\n", " ").gsub("\r", " "). + gsub(%r{"}, '"') # " WART + end + + def _newline + return if @indent == 0 + text! "\n" + end + + def _indent + return if @indent == 0 || @level == 0 + text!(" " * (@level * @indent)) + end + + def _nested_structures(block) + @level += 1 + block.call(self) + ensure + @level -= 1 + end + + # If XmlBase.cache_method_calls = true, we dynamicly create the method + # missed as an instance method on the XMLBase object. Because XML + # documents are usually very repetative in nature, the next node will + # be handled by the new method instead of method_missing. As + # method_missing is very slow, this speeds up document generation + # significantly. + def cache_method_call(sym) + class << self; self; end.class_eval do + unless method_defined?(sym) + define_method(sym) do |*args, &block| + tag!(sym, *args, &block) + end + end + end + end + end + + XmlBase.cache_method_calls = true + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlevents.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlevents.rb new file mode 100644 index 0000000..91fcd21 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlevents.rb @@ -0,0 +1,63 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' + +module Builder + + # Create a series of SAX-like XML events (e.g. start_tag, end_tag) + # from the markup code. XmlEvent objects are used in a way similar + # to XmlMarkup objects, except that a series of events are generated + # and passed to a handler rather than generating character-based + # markup. + # + # Usage: + # xe = Builder::XmlEvents.new(hander) + # xe.title("HI") # Sends start_tag/end_tag/text messages to the handler. + # + # Indentation may also be selected by providing value for the + # indentation size and initial indentation level. + # + # xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level) + # + # == XML Event Handler + # + # The handler object must expect the following events. + # + # [start_tag(tag, attrs)] + # Announces that a new tag has been found. +tag+ is the name of + # the tag and +attrs+ is a hash of attributes for the tag. + # + # [end_tag(tag)] + # Announces that an end tag for +tag+ has been found. + # + # [text(text)] + # Announces that a string of characters (+text+) has been found. + # A series of characters may be broken up into more than one + # +text+ call, so the client cannot assume that a single + # callback contains all the text data. + # + class XmlEvents < XmlMarkup + def text!(text) + @target.text(text) + end + + def _start_tag(sym, attrs, end_too=false) + @target.start_tag(sym, attrs) + _end_tag(sym) if end_too + end + + def _end_tag(sym) + @target.end_tag(sym) + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlmarkup.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlmarkup.rb new file mode 100644 index 0000000..4730d09 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/lib/builder/xmlmarkup.rb @@ -0,0 +1,339 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +# Provide a flexible and easy to use Builder for creating XML markup. +# See XmlBuilder for usage details. + +require 'builder/xmlbase' + +module Builder + + # Create XML markup easily. All (well, almost all) methods sent to + # an XmlMarkup object will be translated to the equivalent XML + # markup. Any method with a block will be treated as an XML markup + # tag with nested markup in the block. + # + # Examples will demonstrate this easier than words. In the + # following, +xm+ is an +XmlMarkup+ object. + # + # xm.em("emphasized") # => emphasized + # xm.em { xm.b("emp & bold") } # => emph & bold + # xm.a("A Link", "href"=>"http://onestepback.org") + # # => A Link + # xm.div { xm.br } # =>

+ # xm.target("name"=>"compile", "option"=>"fast") + # # => + # # NOTE: order of attributes is not specified. + # + # xm.instruct! # + # xm.html { # + # xm.head { # + # xm.title("History") # History + # } # + # xm.body { # + # xm.comment! "HI" # + # xm.h1("Header") #

Header

+ # xm.p("paragraph") #

paragraph

+ # } # + # } # + # + # == Notes: + # + # * The order that attributes are inserted in markup tags is + # undefined. + # + # * Sometimes you wish to insert text without enclosing tags. Use + # the text! method to accomplish this. + # + # Example: + # + # xm.div { #
+ # xm.text! "line"; xm.br # line
+ # xm.text! "another line"; xmbr # another line
+ # } #
+ # + # * The special XML characters <, >, and & are converted to <, + # > and & automatically. Use the << operation to + # insert text without modification. + # + # * Sometimes tags use special characters not allowed in ruby + # identifiers. Use the tag! method to handle these + # cases. + # + # Example: + # + # xml.tag!("SOAP:Envelope") { ... } + # + # will produce ... + # + # ... " + # + # tag! will also take text and attribute arguments (after + # the tag name) like normal markup methods. (But see the next + # bullet item for a better way to handle XML namespaces). + # + # * Direct support for XML namespaces is now available. If the + # first argument to a tag call is a symbol, it will be joined to + # the tag to produce a namespace:tag combination. It is easier to + # show this than describe it. + # + # xml.SOAP :Envelope do ... end + # + # Just put a space before the colon in a namespace to produce the + # right form for builder (e.g. "SOAP:Envelope" => + # "xml.SOAP :Envelope") + # + # * XmlMarkup builds the markup in any object (called a _target_) + # that accepts the << method. If no target is given, + # then XmlMarkup defaults to a string target. + # + # Examples: + # + # xm = Builder::XmlMarkup.new + # result = xm.title("yada") + # # result is a string containing the markup. + # + # buffer = "" + # xm = Builder::XmlMarkup.new(buffer) + # # The markup is appended to buffer (using <<) + # + # xm = Builder::XmlMarkup.new(STDOUT) + # # The markup is written to STDOUT (using <<) + # + # xm = Builder::XmlMarkup.new + # x2 = Builder::XmlMarkup.new(:target=>xm) + # # Markup written to +x2+ will be send to +xm+. + # + # * Indentation is enabled by providing the number of spaces to + # indent for each level as a second argument to XmlBuilder.new. + # Initial indentation may be specified using a third parameter. + # + # Example: + # + # xm = Builder.new(:indent=>2) + # # xm will produce nicely formatted and indented XML. + # + # xm = Builder.new(:indent=>2, :margin=>4) + # # xm will produce nicely formatted and indented XML with 2 + # # spaces per indent and an over all indentation level of 4. + # + # builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2) + # builder.name { |b| b.first("Jim"); b.last("Weirich) } + # # prints: + # # + # # Jim + # # Weirich + # # + # + # * The instance_eval implementation which forces self to refer to + # the message receiver as self is now obsolete. We now use normal + # block calls to execute the markup block. This means that all + # markup methods must now be explicitly send to the xml builder. + # For instance, instead of + # + # xml.div { strong("text") } + # + # you need to write: + # + # xml.div { xml.strong("text") } + # + # Although more verbose, the subtle change in semantics within the + # block was found to be prone to error. To make this change a + # little less cumbersome, the markup block now gets the markup + # object sent as an argument, allowing you to use a shorter alias + # within the block. + # + # For example: + # + # xml_builder = Builder::XmlMarkup.new + # xml_builder.div { |xml| + # xml.stong("text") + # } + # + class XmlMarkup < XmlBase + + # Create an XML markup builder. Parameters are specified by an + # option hash. + # + # :target => target_object:: + # Object receiving the markup. +target_object+ must respond to + # the <<(a_string) operator and return + # itself. The default target is a plain string target. + # + # :indent => indentation:: + # Number of spaces used for indentation. The default is no + # indentation and no line breaks. + # + # :margin => initial_indentation_level:: + # Amount of initial indentation (specified in levels, not + # spaces). + # + # :quote => :single:: + # Use single quotes for attributes rather than double quotes. + # + # :escape_attrs => OBSOLETE:: + # The :escape_attrs option is no longer supported by builder + # (and will be quietly ignored). String attribute values are + # now automatically escaped. If you need unescaped attribute + # values (perhaps you are using entities in the attribute + # values), then give the value as a Symbol. This allows much + # finer control over escaping attribute values. + # + def initialize(options={}) + indent = options[:indent] || 0 + margin = options[:margin] || 0 + @quote = (options[:quote] == :single) ? "'" : '"' + @explicit_nil_handling = options[:explicit_nil_handling] + super(indent, margin) + @target = options[:target] || "" + end + + # Return the target of the builder. + def target! + @target + end + + def comment!(comment_text) + _ensure_no_block ::Kernel::block_given? + _special("", comment_text, nil) + end + + # Insert an XML declaration into the XML markup. + # + # For example: + # + # xml.declare! :ELEMENT, :blah, "yada" + # # => + def declare!(inst, *args, &block) + _indent + @target << "" + _newline + end + + # Insert a processing instruction into the XML markup. E.g. + # + # For example: + # + # xml.instruct! + # #=> + # xml.instruct! :aaa, :bbb=>"ccc" + # #=> + # + # Note: If the encoding is setup to "UTF-8" and the value of + # $KCODE is "UTF8", then builder will emit UTF-8 encoded strings + # rather than the entity encoding normally used. + def instruct!(directive_tag=:xml, attrs={}) + _ensure_no_block ::Kernel::block_given? + if directive_tag == :xml + a = { :version=>"1.0", :encoding=>"UTF-8" } + attrs = a.merge attrs + @encoding = attrs[:encoding].downcase + end + _special( + "", + nil, + attrs, + [:version, :encoding, :standalone]) + end + + # Insert a CDATA section into the XML markup. + # + # For example: + # + # xml.cdata!("text to be included in cdata") + # #=> + # + def cdata!(text) + _ensure_no_block ::Kernel::block_given? + _special("", text.gsub(']]>', ']]]]>'), nil) + end + + private + + # NOTE: All private methods of a builder object are prefixed when + # a "_" character to avoid possible conflict with XML tag names. + + # Insert text directly in to the builder's target. + def _text(text) + @target << text + end + + # Insert special instruction. + def _special(open, close, data=nil, attrs=nil, order=[]) + _indent + @target << open + @target << data if data + _insert_attributes(attrs, order) if attrs + @target << close + _newline + end + + # Start an XML tag. If end_too is true, then the start + # tag is also the end tag (e.g.
+ def _start_tag(sym, attrs, end_too=false) + @target << "<#{sym}" + _insert_attributes(attrs) + @target << "/" if end_too + @target << ">" + end + + # Insert an ending tag. + def _end_tag(sym) + @target << "" + end + + # Insert the attributes (given in the hash). + def _insert_attributes(attrs, order=[]) + return if attrs.nil? + order.each do |k| + v = attrs[k] + @target << %{ #{k}=#{@quote}#{_attr_value(v)}#{@quote}} if v + end + attrs.each do |k, v| + @target << %{ #{k}=#{@quote}#{_attr_value(v)}#{@quote}} unless order.member?(k) # " WART + end + end + + def _attr_value(value) + case value + when ::Symbol + value.to_s + else + _escape_attribute(value.to_s) + end + end + + def _ensure_no_block(got_block) + if got_block + ::Kernel::raise IllegalBlockError.new( + "Blocks are not allowed on XML instructions" + ) + end + end + + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/publish.rake b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/publish.rake new file mode 100644 index 0000000..9849e0d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/publish.rake @@ -0,0 +1,17 @@ +# Optional publish task for Rake + +require 'rake/contrib/sshpublisher' +require 'rake/contrib/rubyforgepublisher' + +publisher = Rake::CompositePublisher.new +publisher.add Rake::RubyForgePublisher.new('builder', 'jimweirich') +publisher.add Rake::SshFilePublisher.new( + 'linode', + 'htdocs/software/builder', + '.', + 'builder.blurb') + +desc "Publish the Documentation to RubyForge." +task :publish => [:rdoc] do + publisher.upload +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/tags.rake b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/tags.rake new file mode 100644 index 0000000..93b47df --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/rakelib/tags.rake @@ -0,0 +1,62 @@ +#!/usr/bin/env ruby + +module Tags + extend Rake::DSL if defined?(Rake::DSL) + + PROG = ENV['TAGS'] || 'ctags' + + RAKEFILES = FileList['Rakefile', '**/*.rake'] + + FILES = FileList['**/*.rb', '**/*.js'] + RAKEFILES + FILES.exclude('pkg', 'dist') + + PROJECT_DIR = ['.'] + + RVM_GEMDIR = File.join(`rvm gemdir`.strip, "gems") + SYSTEM_DIRS = File.exists?(RVM_GEMDIR) ? RVM_GEMDIR : [] + + module_function + + # Convert key_word to --key-word. + def keyword(key) + k = key.to_s.gsub(/_/, '-') + (k.length == 1) ? "-#{k}" : "--#{k}" + end + + # Run ctags command + def run(*args) + opts = { + :e => true, + :totals => true, + :recurse => true, + } + opts = opts.merge(args.pop) if args.last.is_a?(Hash) + command_args = opts.map { |k, v| + (v == true) ? keyword(k) : "#{keyword(k)}=#{v}" + }.join(" ") + sh %{#{Tags::PROG} #{command_args} #{args.join(' ')}} + end +end + +namespace "tags" do + desc "Generate an Emacs TAGS file" + task :emacs, [:all] => Tags::FILES do |t, args| + puts "Making Emacs TAGS file" + verbose(true) do + Tags.run(Tags::PROJECT_DIR) + Tags.run(Tags::RAKEFILES, + :language_force => "ruby", + :append => true) + if args.all + Tags::SYSTEM_DIRS.each do |dir| + Tags.run(dir, + :language_force => "ruby", + :append => true) + end + end + end + end +end + +desc "Generate the TAGS file" +task :tags, [:all] => ["tags:emacs"] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/performance.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/performance.rb new file mode 100644 index 0000000..e764205 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/performance.rb @@ -0,0 +1,41 @@ +#!/usr/bin/env ruby +# encoding: iso-8859-1 + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' +require 'benchmark' + +text = "This is a test of the new xml markup. I�t�rn�ti�n�liz�ti�n\n" * 10000 + +include Benchmark # we need the CAPTION and FMTSTR constants +include Builder +n = 50 +Benchmark.benchmark do |bm| + tf = bm.report("base") { + n.times do + x = XmlMarkup.new + x.text(text) + x.target! + end + } + def XmlMarkup._escape(text) + text.to_xs + end + tf = bm.report("to_xs") { + n.times do + x = XmlMarkup.new + x.text(text) + x.target! + end + } +end + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/preload.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/preload.rb new file mode 100644 index 0000000..395e043 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/preload.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +# We are defining method_added in Kernel and Object so that when +# BlankSlate overrides them later, we can verify that it correctly +# calls the older hooks. + +module Kernel + class << self + attr_reader :k_added_names + alias_method :preload_method_added, :method_added + def method_added(name) + preload_method_added(name) + @k_added_names ||= [] + @k_added_names << name + end + end +end + +class Object + class << self + attr_reader :o_added_names + alias_method :preload_method_added, :method_added + def method_added(name) + preload_method_added(name) + @o_added_names ||= [] + @o_added_names << name + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_blankslate.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_blankslate.rb new file mode 100644 index 0000000..ea38ced --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_blankslate.rb @@ -0,0 +1,217 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'test/unit' +require 'test/preload' +require 'blankslate' +require 'stringio' + +# Methods to be introduced into the Object class late. +module LateObject + def late_object + 33 + end + def LateObject.included(mod) + # Modules defining an included method should not prevent blank + # slate erasure! + end +end + +# Methods to be introduced into the Kernel module late. +module LateKernel + def late_kernel + 44 + end + def LateKernel.included(mod) + # Modules defining an included method should not prevent blank + # slate erasure! + end +end + +# Introduce some late methods (both module and direct) into the Kernel +# module. +module Kernel + include LateKernel + + def late_addition + 1234 + end + + def double_late_addition + 11 + end + + def double_late_addition + 22 + end +end + + +# Introduce some late methods (both module and direct) into the Object +# class. +class Object + include LateObject + def another_late_addition + 4321 + end +end + +# Introduce some late methods by inclusion. +module GlobalModule + def global_inclusion + 42 + end +end +include GlobalModule + +def direct_global + 43 +end + +###################################################################### +# Test case for blank slate. +# +class TestBlankSlate < Test::Unit::TestCase + def setup + @bs = BlankSlate.new + end + + def test_undefined_methods_remain_undefined + assert_raise(NoMethodError) { @bs.no_such_method } + assert_raise(NoMethodError) { @bs.nil? } + end + + + # NOTE: NameError is acceptable because the lack of a '.' means that + # Ruby can't tell if it is a method or a local variable. + def test_undefined_methods_remain_undefined_during_instance_eval + assert_raise(NoMethodError, NameError) do + @bs.instance_eval do nil? end + end + assert_raise(NoMethodError, NameError) do + @bs.instance_eval do no_such_method end + end + end + + def test_private_methods_are_undefined + assert_raise(NoMethodError) do + @bs.puts "HI" + end + end + + def test_targetted_private_methods_are_undefined_during_instance_eval + assert_raise(NoMethodError, NameError) do + @bs.instance_eval do self.puts "HI" end + end + end + + def test_untargetted_private_methods_are_defined_during_instance_eval + oldstdout = $stdout + $stdout = StringIO.new + @bs.instance_eval do + puts "HI" + end + ensure + $stdout = oldstdout + end + + def test_methods_added_late_to_kernel_remain_undefined + assert_equal 1234, nil.late_addition + assert_raise(NoMethodError) { @bs.late_addition } + end + + def test_methods_added_late_to_object_remain_undefined + assert_equal 4321, nil.another_late_addition + assert_raise(NoMethodError) { @bs.another_late_addition } + end + + def test_methods_added_late_to_global_remain_undefined + assert_equal 42, global_inclusion + assert_raise(NoMethodError) { @bs.global_inclusion } + end + + def test_preload_method_added + assert Kernel.k_added_names.include?(:late_addition) + assert Object.o_added_names.include?(:another_late_addition) + end + + def test_method_defined_late_multiple_times_remain_undefined + assert_equal 22, nil.double_late_addition + assert_raise(NoMethodError) { @bs.double_late_addition } + end + + def test_late_included_module_in_object_is_ok + assert_equal 33, 1.late_object + assert_raise(NoMethodError) { @bs.late_object } + end + + def test_late_included_module_in_kernel_is_ok + assert_raise(NoMethodError) { @bs.late_kernel } + end + + def test_revealing_previously_hidden_methods_are_callable + with_to_s = Class.new(BlankSlate) do + reveal :to_s + end + assert_match(/^#<.*>$/, with_to_s.new.to_s) + end + + def test_revealing_previously_hidden_methods_are_callable_with_block + Object.class_eval <<-EOS + def given_block(&block) + block + end + EOS + + with_given_block = Class.new(BlankSlate) do + reveal :given_block + end + assert_not_nil with_given_block.new.given_block {} + end + + def test_revealing_a_hidden_method_twice_is_ok + with_to_s = Class.new(BlankSlate) do + reveal :to_s + reveal :to_s + end + assert_match(/^#<.*>$/, with_to_s.new.to_s) + end + + def test_revealing_unknown_hidden_method_is_an_error + assert_raises(RuntimeError) do + Class.new(BlankSlate) do + reveal :xyz + end + end + end + + def test_global_includes_still_work + assert_nothing_raised do + assert_equal 42, global_inclusion + assert_equal 42, Object.new.global_inclusion + assert_equal 42, "magic number".global_inclusion + assert_equal 43, direct_global + end + end + + def test_reveal_should_not_bind_to_an_instance + with_object_id = Class.new(BlankSlate) do + reveal(:object_id) + end + + obj1 = with_object_id.new + obj2 = with_object_id.new + + assert obj1.object_id != obj2.object_id, + "Revealed methods should not be bound to a particular instance" + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_eventbuilder.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_eventbuilder.rb new file mode 100644 index 0000000..f434470 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_eventbuilder.rb @@ -0,0 +1,150 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'test/unit' +require 'test/preload' +require 'builder' +require 'builder/xmlevents' + +class TestEvents < Test::Unit::TestCase + + class Target + attr_reader :events + + def initialize + @events = [] + end + + def start_tag(tag, attrs) + @events << [:start_tag, tag, attrs] + end + + def end_tag(tag) + @events << [:end_tag, tag] + end + + def text(string) + @events << [:text, string] + end + + end + + + def setup + @target = Target.new + @xml = Builder::XmlEvents.new(:target=>@target) + end + + def test_simple + @xml.one + expect [:start_tag, :one, nil] + expect [:end_tag, :one] + expect_done + end + + def test_nested + @xml.one { @xml.two } + expect [:start_tag, :one, nil] + expect [:start_tag, :two, nil] + expect [:end_tag, :two] + expect [:end_tag, :one] + expect_done + end + + def test_text + @xml.one("a") + expect [:start_tag, :one, nil] + expect [:text, "a"] + expect [:end_tag, :one] + expect_done + end + + def test_special_text + @xml.one("H&R") + expect [:start_tag, :one, nil] + expect [:text, "H&R"] + expect [:end_tag, :one] + expect_done + end + + def test_text_with_entity + @xml.one("H&R") + expect [:start_tag, :one, nil] + expect [:text, "H&R"] + expect [:end_tag, :one] + expect_done + end + + def test_attributes + @xml.a(:b=>"c", :x=>"y") + expect [:start_tag, :a, {:x => "y", :b => "c"}] + expect [:end_tag, :a] + expect_done + end + + def test_moderately_complex + @xml.tag! "address-book" do |x| + x.entry :id=>"1" do + x.name { + x.first "Bill" + x.last "Smith" + } + x.address "Cincinnati" + end + x.entry :id=>"2" do + x.name { + x.first "John" + x.last "Doe" + } + x.address "Columbus" + end + end + expect [:start_tag, "address-book".intern, nil] + expect [:start_tag, :entry, {:id => "1"}] + expect [:start_tag, :name, nil] + expect [:start_tag, :first, nil] + expect [:text, "Bill"] + expect [:end_tag, :first] + expect [:start_tag, :last, nil] + expect [:text, "Smith"] + expect [:end_tag, :last] + expect [:end_tag, :name] + expect [:start_tag, :address, nil] + expect [:text, "Cincinnati"] + expect [:end_tag, :address] + expect [:end_tag, :entry] + expect [:start_tag, :entry, {:id => "2"}] + expect [:start_tag, :name, nil] + expect [:start_tag, :first, nil] + expect [:text, "John"] + expect [:end_tag, :first] + expect [:start_tag, :last, nil] + expect [:text, "Doe"] + expect [:end_tag, :last] + expect [:end_tag, :name] + expect [:start_tag, :address, nil] + expect [:text, "Columbus"] + expect [:end_tag, :address] + expect [:end_tag, :entry] + expect [:end_tag, "address-book".intern] + expect_done + end + + def expect(value) + assert_equal value, @target.events.shift + end + + def expect_done + assert_nil @target.events.shift + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_markupbuilder.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_markupbuilder.rb new file mode 100644 index 0000000..562b12a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_markupbuilder.rb @@ -0,0 +1,611 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'test/unit' +require 'test/preload' +require 'builder' +require 'builder/xmlmarkup' + +class TestMarkup < Test::Unit::TestCase + def setup + @xml = Builder::XmlMarkup.new + end + + def test_create + assert_not_nil @xml + end + + def test_simple + @xml.simple + assert_equal "", @xml.target! + end + + def test_value + @xml.value("hi") + assert_equal "hi", @xml.target! + end + + def test_empty_value + @xml.value("") + assert_equal "", @xml.target! + end + + def test_nil_value + @xml.value(nil) + assert_equal "", @xml.target! + end + + def test_no_value + @xml.value() + assert_equal "", @xml.target! + end + + def test_nested + @xml.outer { |x| x.inner("x") } + assert_equal "x", @xml.target! + end + + def test_attributes + @xml.ref(:id => 12) + assert_equal %{}, @xml.target! + end + + def test_single_quotes_for_attrs + @xml = Builder::XmlMarkup.new(:quote => :single) + @xml.ref(:id => 12) + assert_equal %{}, @xml.target! + end + + def test_mixed_quotes_for_attrs + @xml = Builder::XmlMarkup.new(:quote => :single) + x = Builder::XmlMarkup.new(:target=>@xml, :quote => :double) + @xml.ref(:id => 12) do + x.link(:id => 13) + end + assert_equal %{}, @xml.target! + end + + def test_string_attributes_are_escaped_by_default + @xml.ref(:id => "H&R") + assert_equal %{}, @xml.target! + end + + def test_symbol_attributes_are_unescaped_by_default + @xml.ref(:id => :"H&R") + assert_equal %{}, @xml.target! + end + + def test_attributes_escaping_can_be_turned_on + @xml = Builder::XmlMarkup.new + @xml.ref(:id => "") + assert_equal %{}, @xml.target! + end + + def test_mixed_attribute_escaping_with_nested_builders + x = Builder::XmlMarkup.new(:target=>@xml) + @xml.ref(:id=>:"H&R") { + x.element(:tag=>"Long&Short") + } + assert_equal "", + @xml.target! + end + + def test_multiple_attributes + @xml.ref(:id => 12, :name => "bill") + assert_match %r{^$}, @xml.target! + end + + def test_attributes_with_text + @xml.a("link", :href=>"http://onestepback.org") + assert_equal %{link}, @xml.target! + end + + def test_attributes_with_newlines + @xml.abbr("W3C", :title=>"World\nWide\rWeb\r\nConsortium") + assert_equal %{W3C}, + @xml.target! + end + + def test_complex + @xml.body(:bg=>"#ffffff") { |x| + x.title("T", :style=>"red") + } + assert_equal %{T}, @xml.target! + end + + def test_funky_symbol + @xml.tag!("non-ruby-token", :id=>1) { |x| x.ok } + assert_equal %{}, @xml.target! + end + + def test_tag_can_handle_private_method + @xml.tag!("loop", :id=>1) { |x| x.ok } + assert_equal %{}, @xml.target! + end + + def test_no_explicit_marker + @xml.p { |x| x.b("HI") } + assert_equal "

HI

", @xml.target! + end + + def test_reference_local_vars + n = 3 + @xml.ol { |x| n.times { x.li(n) } } + assert_equal "
  1. 3
  2. 3
  3. 3
", @xml.target! + end + + def test_reference_methods + @xml.title { |x| x.a { x.b(name) } } + assert_equal "<a><b>bob</b></a>", @xml.target! + end + + def test_append_text + @xml.p { |x| x.br; x.text! "HI" } + assert_equal "


HI

", @xml.target! + end + + def test_ambiguous_markup + ex = assert_raise(ArgumentError) { + @xml.h1("data1") { b } + } + assert_match(/\btext\b/, ex.message) + assert_match(/\bblock\b/, ex.message) + end + + def test_capitalized_method + @xml.P { |x| x.B("hi"); x.BR(); x.EM { x.text! "world" } } + assert_equal "

hi
world

", @xml.target! + end + + def test_escaping + @xml.div { |x| x.text! ""; x.em("H&R Block") } + assert_equal %{
<hi>H&R Block
}, @xml.target! + end + + def test_nil + b = Builder::XmlMarkup.new + b.tag! "foo", nil + assert_equal %{}, b.target! + end + + def test_nil_without_explicit_nil_handling + b = Builder::XmlMarkup.new(:explicit_nil_handling => false) + b.tag! "foo", nil + assert_equal %{}, b.target! + end + + def test_nil_with_explicit_nil_handling + b = Builder::XmlMarkup.new(:explicit_nil_handling => true) + b.tag! "foo", nil + assert_equal %{}, b.target! + end + + def test_non_escaping + @xml.div("ns:xml"=>:"&xml;") { |x| x << ""; x.em("H&R Block") } + assert_equal %{
H&R Block
}, @xml.target! + end + + def test_return_value + str = @xml.x("men") + assert_equal @xml.target!, str + end + + def test_stacked_builders + b = Builder::XmlMarkup.new( :target => @xml ) + b.div { @xml.span { @xml.a("text", :href=>"ref") } } + assert_equal "", @xml.target! + end + + def name + "bob" + end +end + +class TestAttributeEscaping < Test::Unit::TestCase + + def setup + @xml = Builder::XmlMarkup.new + end + + def test_element_gt + @xml.title('1<2') + assert_equal '1<2', @xml.target! + end + + def test_element_amp + @xml.title('AT&T') + assert_equal 'AT&T', @xml.target! + end + + def test_element_amp2 + @xml.title('&') + assert_equal '&amp;', @xml.target! + end + + def test_attr_less + @xml.a(:title => '2>1') + assert_equal '', @xml.target! + end + + def test_attr_amp + @xml.a(:title => 'AT&T') + assert_equal '', @xml.target! + end + + def test_attr_quot + @xml.a(:title => '"x"') + assert_equal '', @xml.target! + end + +end + +class TestNameSpaces < Test::Unit::TestCase + def setup + @xml = Builder::XmlMarkup.new(:indent=>2) + end + + def test_simple_name_spaces + @xml.rdf :RDF + assert_equal "\n", @xml.target! + end + + def test_long + xml = Builder::XmlMarkup.new(:indent=>2) + xml.instruct! + xml.rdf :RDF, + "xmlns:rdf" => :"&rdf;", + "xmlns:rdfs" => :"&rdfs;", + "xmlns:xsd" => :"&xsd;", + "xmlns:owl" => :"&owl;" do + xml.owl :Class, :'rdf:ID'=>'Bird' do + xml.rdfs :label, 'bird' + xml.rdfs :subClassOf do + xml.owl :Restriction do + xml.owl :onProperty, 'rdf:resource'=>'#wingspan' + xml.owl :maxCardinality,1,'rdf:datatype'=>'&xsd;nonNegativeInteger' + end + end + end + end + assert_match(/^<\?xml/, xml.target!) + assert_match(/\n/m, xml.target!) + end + + def test_ensure + xml = Builder::XmlMarkup.new + xml.html do + xml.body do + begin + xml.p do + raise Exception.new('boom') + end + rescue Exception => e + xml.pre e + end + end + end + assert_match %r{

}, xml.target! + assert_match %r{

}, xml.target! + end +end + +class TestDeclarations < Test::Unit::TestCase + def setup + @xml = Builder::XmlMarkup.new(:indent=>2) + end + + def test_declare + @xml.declare! :element + assert_equal "\n", @xml.target! + end + + def test_bare_arg + @xml.declare! :element, :arg + assert_equal"\n", @xml.target! + end + + def test_string_arg + @xml.declare! :element, "string" + assert_equal"\n", @xml.target! + end + + def test_mixed_args + @xml.declare! :element, :x, "y", :z, "-//OASIS//DTD DocBook XML//EN" + assert_equal "\n", @xml.target! + end + + def test_nested_declarations + @xml = Builder::XmlMarkup.new + @xml.declare! :DOCTYPE, :chapter do |x| + x.declare! :ELEMENT, :chapter, "(title,para+)".intern + end + assert_equal "]>", @xml.target! + end + + def test_nested_indented_declarations + @xml.declare! :DOCTYPE, :chapter do |x| + x.declare! :ELEMENT, :chapter, "(title,para+)".intern + end + assert_equal "\n]>\n", @xml.target! + end + + def test_complex_declaration + @xml.declare! :DOCTYPE, :chapter do |x| + x.declare! :ELEMENT, :chapter, "(title,para+)".intern + x.declare! :ELEMENT, :title, "(#PCDATA)".intern + x.declare! :ELEMENT, :para, "(#PCDATA)".intern + end + expected = %{ + + +]> +} + assert_equal expected, @xml.target! + end +end + + +class TestSpecialMarkup < Test::Unit::TestCase + def setup + @xml = Builder::XmlMarkup.new(:indent=>2) + end + + def test_comment + @xml.comment!("COMMENT") + assert_equal "\n", @xml.target! + end + + def test_indented_comment + @xml.p { @xml.comment! "OK" } + assert_equal "

\n \n

\n", @xml.target! + end + + def test_instruct + @xml.instruct! :abc, :version=>"0.9" + assert_equal "\n", @xml.target! + end + + def test_indented_instruct + @xml.p { @xml.instruct! :xml } + assert_match %r{

\n <\?xml version="1.0" encoding="UTF-8"\?>\n

\n}, + @xml.target! + end + + def test_instruct_without_attributes + @xml.instruct! :zz + assert_equal "\n", @xml.target! + end + + def test_xml_instruct + @xml.instruct! + assert_match(/^<\?xml version="1.0" encoding="UTF-8"\?>$/, @xml.target!) + end + + def test_xml_instruct_with_overrides + @xml.instruct! :xml, :encoding=>"UCS-2" + assert_match(/^<\?xml version="1.0" encoding="UCS-2"\?>$/, @xml.target!) + end + + def test_xml_instruct_with_standalong + @xml.instruct! :xml, :encoding=>"UCS-2", :standalone=>"yes" + assert_match(/^<\?xml version="1.0" encoding="UCS-2" standalone="yes"\?>$/, @xml.target!) + end + + def test_no_blocks + assert_raise(Builder::IllegalBlockError) do + @xml.instruct! { |x| x.hi } + end + assert_raise(Builder::IllegalBlockError) do + @xml.comment!(:element) { |x| x.hi } + end + end + + def test_cdata + @xml.cdata!("TEST") + assert_equal "\n", @xml.target! + end + + def test_cdata_with_ampersand + @xml.cdata!("TEST&CHECK") + assert_equal "\n", @xml.target! + end + + def test_cdata_with_included_close + @xml.cdata!("TEST]]>CHECK") + assert_equal "CHECK]]>\n", @xml.target! + end +end + +class TestIndentedXmlMarkup < Test::Unit::TestCase + def setup + @xml = Builder::XmlMarkup.new(:indent=>2) + end + + def test_one_level + @xml.ol { |x| x.li "text" } + assert_equal "
    \n
  1. text
  2. \n
\n", @xml.target! + end + + def test_two_levels + @xml.p { |x| + x.ol { x.li "text" } + x.br + } + assert_equal "

\n

    \n
  1. text
  2. \n
\n
\n

\n", @xml.target! + end + + def test_initial_level + @xml = Builder::XmlMarkup.new(:indent=>2, :margin=>4) + @xml.name { |x| x.first("Jim") } + assert_equal " \n Jim\n \n", @xml.target! + end + + class TestUtfMarkup < Test::Unit::TestCase + if ! String.method_defined?(:encode) + def setup + @old_kcode = $KCODE + end + + def teardown + $KCODE = @old_kcode + end + + def test_use_entities_if_no_encoding_is_given_and_kcode_is_none + $KCODE = 'NONE' + xml = Builder::XmlMarkup.new + xml.p("\xE2\x80\x99") + assert_match(%r(

), xml.target!) # + end + + def test_use_entities_if_encoding_is_utf_but_kcode_is_not + $KCODE = 'NONE' + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'UTF-8') + xml.p("\xE2\x80\x99") + assert_match(%r(

), xml.target!) # + end + else + # change in behavior. As there is no $KCODE anymore, the default + # moves from "does not understand utf-8" to "supports utf-8". + + def test_use_entities_if_no_encoding_is_given_and_kcode_is_none + xml = Builder::XmlMarkup.new + xml.p("\xE2\x80\x99") + assert_match("

\u2019

", xml.target!) # + end + + def test_use_entities_if_encoding_is_utf_but_kcode_is_not + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'UTF-8') + xml.p("\xE2\x80\x99") + assert_match("

\u2019

", xml.target!) # + end + end + + def encode string, encoding + if !String.method_defined?(:encode) + $KCODE = encoding + string + elsif encoding == 'UTF8' + string.force_encoding('UTF-8') + else + string + end + end + + def test_use_entities_if_kcode_is_utf_but_encoding_is_dummy_encoding + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'UTF-16') + xml.p(encode("\xE2\x80\x99", 'UTF8')) + assert_match(%r(

), xml.target!) # + end + + def test_use_entities_if_kcode_is_utf_but_encoding_is_unsupported_encoding + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'UCS-2') + xml.p(encode("\xE2\x80\x99", 'UTF8')) + assert_match(%r(

), xml.target!) # + end + + def test_use_utf8_if_encoding_defaults_and_kcode_is_utf8 + xml = Builder::XmlMarkup.new + xml.p(encode("\xE2\x80\x99",'UTF8')) + assert_equal encode("

\xE2\x80\x99

",'UTF8'), xml.target! + end + + def test_use_utf8_if_both_encoding_and_kcode_are_utf8 + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'UTF-8') + xml.p(encode("\xE2\x80\x99",'UTF8')) + assert_match encode("

\xE2\x80\x99

",'UTF8'), xml.target! + end + + def test_use_utf8_if_both_encoding_and_kcode_are_utf8_with_lowercase + xml = Builder::XmlMarkup.new + xml.instruct!(:xml, :encoding => 'utf-8') + xml.p(encode("\xE2\x80\x99",'UTF8')) + assert_match encode("

\xE2\x80\x99

",'UTF8'), xml.target! + end + end + + class TestXmlEvents < Test::Unit::TestCase + def setup + @handler = EventHandler.new + @xe = Builder::XmlEvents.new(:target=>@handler) + end + + def test_simple + @xe.p + assert_equal [:start, :p, nil], @handler.events.shift + assert_equal [:end, :p], @handler.events.shift + end + + def test_text + @xe.p("HI") + assert_equal [:start, :p, nil], @handler.events.shift + assert_equal [:text, "HI"], @handler.events.shift + assert_equal [:end, :p], @handler.events.shift + end + + def test_attributes + @xe.p("id"=>"2") + ev = @handler.events.shift + assert_equal [:start, :p], ev[0,2] + assert_equal "2", ev[2]['id'] + assert_equal [:end, :p], @handler.events.shift + end + + def test_indented + @xml = Builder::XmlEvents.new(:indent=>2, :target=>@handler) + @xml.p { |x| x.b("HI") } + assert_equal [:start, :p, nil], @handler.events.shift + assert_equal "\n ", pop_text + assert_equal [:start, :b, nil], @handler.events.shift + assert_equal "HI", pop_text + assert_equal [:end, :b], @handler.events.shift + assert_equal "\n", pop_text + assert_equal [:end, :p], @handler.events.shift + end + + def pop_text + result = '' + while ! @handler.events.empty? && @handler.events[0][0] == :text + result << @handler.events[0][1] + @handler.events.shift + end + result + end + + class EventHandler + attr_reader :events + def initialize + @events = [] + end + + def start_tag(sym, attrs) + @events << [:start, sym, attrs] + end + + def end_tag(sym) + @events << [:end, sym] + end + + def text(txt) + @events << [:text, txt] + end + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_method_caching.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_method_caching.rb new file mode 100644 index 0000000..91f7aca --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_method_caching.rb @@ -0,0 +1,62 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2011 by Bart ten Brinke (info@retrosync.com). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'test/unit' +require 'test/preload' +require 'builder' + +class TestMethodCaching < Test::Unit::TestCase + + # We can directly ask if xml object responds to the cache_me or + # do_not_cache_me methods because xml is derived from BasicObject + # (and repond_to? is not defined in BasicObject). + # + # Instead we are going to stub out method_missing so that it throws + # an error, and then make sure that error is either thrown or not + # thrown as appropriate. + + def teardown + super + Builder::XmlBase.cache_method_calls = true + end + + def test_caching_does_not_break_weird_symbols + xml = Builder::XmlMarkup.new + xml.__send__("work-order", 1) + assert_equal "1", xml.target! + end + + def test_method_call_caching + xml = Builder::XmlMarkup.new + xml.cache_me + + def xml.method_missing(*args) + ::Kernel.fail StandardError, "SHOULD NOT BE CALLED" + end + assert_nothing_raised do + xml.cache_me + end + end + + def test_method_call_caching_disabled + Builder::XmlBase.cache_method_calls = false + xml = Builder::XmlMarkup.new + xml.do_not_cache_me + + def xml.method_missing(*args) + ::Kernel.fail StandardError, "SHOULD BE CALLED" + end + assert_raise(StandardError, "SHOULD BE CALLED") do + xml.do_not_cache_me + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_namecollision.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_namecollision.rb new file mode 100644 index 0000000..5b16b30 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_namecollision.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'test/unit' +require 'builder/xchar' + +class TestNameCollisions < Test::Unit::TestCase + module Collide + def xchr + end + end + + def test_no_collision + assert_nothing_raised do + Builder.check_for_name_collision(Collide, :not_defined) + end + end + + def test_collision + assert_raise RuntimeError do + Builder.check_for_name_collision(Collide, "xchr") + end + end + + def test_collision_with_symbol + assert_raise RuntimeError do + Builder.check_for_name_collision(Collide, :xchr) + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_xchar.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_xchar.rb new file mode 100644 index 0000000..6a00716 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/test/test_xchar.rb @@ -0,0 +1,78 @@ +#!/usr/bin/env ruby +# encoding: us-ascii + +#-- +# Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# Portions copyright 2005 by Sam Ruby (rubys@intertwingly.net). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +#!/usr/bin/env ruby + +require 'test/unit' +require 'builder/xchar' + +if String.method_defined?(:encode) + class String + ENCODING_BINARY = Encoding.find('BINARY') + + # shim method for testing purposes + def to_xs(escape=true) + raise NameError.new('to_xs') unless caller[0].index(__FILE__) + + result = Builder::XChar.encode(self) + if escape + result.gsub(/[^\u0000-\u007F]/) {|c| "&##{c.ord};"} + else + # really only useful for testing purposes + result.force_encoding(ENCODING_BINARY) + end + end + end +end + +class TestXmlEscaping < Test::Unit::TestCase + REPLACEMENT_CHAR = Builder::XChar::REPLACEMENT_CHAR.to_xs + + def test_ascii + assert_equal 'abc', 'abc'.to_xs + end + + def test_predefined + assert_equal '&', '&'.to_xs # ampersand + assert_equal '<', '<'.to_xs # left angle bracket + assert_equal '>', '>'.to_xs # right angle bracket + end + + def test_invalid + assert_equal REPLACEMENT_CHAR, "\x00".to_xs # null + assert_equal REPLACEMENT_CHAR, "\x0C".to_xs # form feed + assert_equal REPLACEMENT_CHAR, "\xEF\xBF\xBF".to_xs # U+FFFF + end + + def test_iso_8859_1 + assert_equal 'ç', "\xE7".to_xs # small c cedilla + assert_equal '©', "\xA9".to_xs # copyright symbol + end + + def test_win_1252 + assert_equal '’', "\x92".to_xs # smart quote + assert_equal '€', "\x80".to_xs # euro + end + + def test_utf8 + assert_equal '’', "\xE2\x80\x99".to_xs # right single quote + assert_equal '©', "\xC2\xA9".to_xs # copy + end + + def test_utf8_verbatim + assert_equal "\xE2\x80\x99", "\xE2\x80\x99".to_xs(false) # right single quote + assert_equal "\xC2\xA9", "\xC2\xA9".to_xs(false) # copy + assert_equal "\xC2\xA9&\xC2\xA9", + "\xC2\xA9&\xC2\xA9".to_xs(false) # copy with ampersand + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/History.txt b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/History.txt new file mode 100644 index 0000000..ea3c5f5 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/History.txt @@ -0,0 +1,139 @@ +== 1.5.0 2015-08-17 +* Added logos +* Added Slack Emoji +* Updated image generators +* Updated Dutch Locale +* Added support for generating RGB values, HSL colors, alpha channel, and HSLA colors +* Added locale for Uganda +* Added basic Ukrainian support +* Added university name generator +* Updated documentation +* Updated a variety of locales +* Various fixes + +== 1.4.3 2014-08-15 +* Updated Russian locale +* Added EIN generator +* Fixed Swedish locale +* Added birthday to Faker::Date +* Added Faker::App + +== 1.4.2 2014-07-15 +* Added Swedish locale +* README update + +== 1.4.1 2014-07-04 +* Bugfix and cleanup + +== 1.4.0 2014-07-03 +* Many enhancements and bugfixes + +== 1.3.0 2014-03-08 +* Many enhancements and few bugfixes + +== 1.2.0 2013-07-27 +* Many major and minor enhancements :) + +== 1.1.2 2012-09-18 +* 1 minor change: + * Fixed Ruby 1.8 compatibility + +== 1.1.1 2012-09-17 +* 1 minor change: + * Removed ja locale because of parse errors + +== 1.1.0 2012-09-15 +* 1 major change: + * Removed deprecated methods from Address: earth_country, us_state, us_state_abbr, uk_postcode, uk_county +* Many minor changes (please see github pull requests for credits) + * Added many localizations + * Added range and array support for Lorem + +== 1.0.1 2011-09-27 +* 1 minor enhancement + * Added safe_email method to get someaddress@example.com [Kazimierz Kiełkowicz] +* 1 bug fix: + * Use the locale fallback properly when parsing string formats + +== 1.0.0 2011-09-08 +* 2 major enhancements + * Moved all formats to locale files + * Stopped interfering with I18n's global settings for fallbacks +* 3 minor bug fixes: + * Ruby 1.9.2 fixes [eMxyzptlk] + * UTF8 fixes [maxmiliano] + * Updated IPv4 generator to return valid addresses [Sylvain Desbureaux] +* Many minor enhancements: + * Added bork locale for bork-ified lorem [johnbentcope] + * Added IPv6 address generator [jc00ke] + * Removed deprecation warnings for Array#rand [chrismarshall] + * Added German translation and I18n improvments [Matthias Kühnert] + * Added Dutch translation [moretea] + * Added Lat/Long generator [Andy Callaghan] + * Added buzzword-laden title generator [supercleanse] + * Added optional extended wordlist for lorem [chriskottom] + * Updated German translation [Jan Schwenzien] + * Locale improvements [suweller] + * Added limit to lorem generator [darrenterhune] + * Added Brazilian Portuguese translation [maxmiliano] + * Added Australian translation [madeindata] + * Added Canadian translation [igbanam] + * Added Norwegian translation [kytrinyx] + * Lots of translation-related cleanup [kytrinyx] + + +== 0.9.5 2011-01-27 +* 1 minor bug fix: + * Fixed YAML [Aaron Patterson] +* 3 minor enhancements: + * Added default rake task to run all tests [Aaron Patterson] + * Removed shuffle method [Aaron Patterson] + * Use psych if present [Aaron Patterson] + +== 0.9.4 2010-12-29 +* 1 minor bug fix: + * Stopped getting in the way of Rails' late locale loading + +== 0.9.3 2010-12-28 +* 1 minor enhancement: + * Added a faker namespace for translations + +== 0.9.2 2010-12-22 +* 1 bug fix: + * Stopped stomping on I18n load path + +== 0.9.1 2010-12-22 +* 1 bug fix: + * Stopped setting I18n default locale +* 1 major enhancement: + * Added method_missing to Address to add methods based on data in locale files +* 1 minor enhancement: + * Added Swiss locale [Lukas Westermann] + +== 0.9.0 2010-12-21 +* 1 major enhancement: + * Moved strings and some formats to locale files + +== 0.3.1 2008-04-03 +* 1 minor enhancement: + * Added city to Address + +== 0.3.0 2008-01-01 +* 3 major enhancements: + * Added Lorem to generate fake Latin + * Added secondary_address to Address, and made inclusion of + secondary address in street_address optional (false by + default). + * Added UK address methods [Caius Durling] + +== 0.2.1 2007-12-05 +* 1 major enhancement: + * Dropped facets to avoid conflict with ActiveSupport +* 2 minor enhancements: + * Changed the output of user_name to randomly separate with a . or _ + * Added a few tests + +== 0.1.0 2007-11-22 + +* 1 major enhancement: + * Initial release diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/License.txt b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/License.txt new file mode 100644 index 0000000..1c0fd9f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/License.txt @@ -0,0 +1,20 @@ +Copyright (c) 2007-2010 Benjamin Curtis + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/README.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/README.md new file mode 100644 index 0000000..d2db487 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/README.md @@ -0,0 +1,550 @@ +Faker +===== +This gem is a port of Perl's Data::Faker library that generates fake data. + +It comes in very handy for taking screenshots (taking screenshots for my +project, [Catch the Best](http://catchthebest.com/) was the original impetus +for the creation of this gem), having real-looking test data, and having your +database populated with more than one or two records while you're doing +development. + +NOTE: While Faker generates data at random, returned values are not guaranteed to be unique. + +Installing +---------- +```bash +gem install faker +``` + +##Usage +----- +```ruby +Faker::Name.name #=> "Christophe Bartell" + +Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info" +``` + +###Faker::Address +----------------- + +```ruby +Faker::Address.city #=> "Imogeneborough" + +Faker::Address.street_name #=> "Larkin Fork" + +Faker::Address.street_address #=> "282 Kevin Brook" + +Faker::Address.secondary_address #=> "Apt. 672" + +Faker::Address.building_number #=> "7304" + +Faker::Address.zip_code #=> "58517" + +Faker::Address.zip #=> "58517" + +Faker::Address.postcode #=> "58517" + +Faker::Address.time_zone #=> "Asia/Yakutsk" + +Faker::Address.street_suffix #=> "Street" + +Faker::Address.city_suffix #=> "fort" + +Faker::Address.city_prefix #=> "Lake" + +Faker::Address.state #=> "California" + +Faker::Address.state_abbr #=> "AP" + +Faker::Address.country #=> "French Guiana" + +Faker::Address.country_code #=> "IT" + +Faker::Address.latitude #=> "-58.17256227443719" + +Faker::Address.longitude #=> "-156.65548382095133" + + +``` + +###Faker::Bitcoin +----------------- + +```ruby + +Faker::Bitcoin.address #=> "1HUoGjmgChmnxxYhz87YytV4gVjfPaExmh" +Faker::Bitcoin.testnet_address #=> ""msHGunDvoEwmVFXvd2Bub1SNw5RP1YHJaf"" + +``` + +###Faker::Business +------------------ + +```ruby + +Faker::Business.credit_card_number #=> "1228-1221-1221-1431" + +Faker::Business.credit_card_expiry_date #=> + +Faker::Business.credit_card_type #=> "visa" + +``` + +###Faker::Code +-------------- + +```ruby + +Faker::Code.isbn #=> "759021701-8" + +Faker::Code.ean #=> "4600051000057" + +``` + +###Faker::Commerce +------------------ + +```ruby + +Faker::Commerce.color #=> "lavender" + +# Optional arguments max=3, fixed_amount=false +Faker::Commerce.department #=> "Grocery, Health & Beauty" +Faker::Commerce.department(5) #=> "Grocery, Books, Health & Beauty" +Faker::Commerce.department(2, true) #=> "Books & Tools" + +Faker::Commerce.product_name #=> "Practical Granite Shirt" + +Faker::Commerce.price #=> "44.6" + +``` + +###Faker::Company +----------------- + +```ruby + +Faker::Company.name #=> "Hirthe-Ritchie" + +Faker::Company.suffix #=> "Group" + +# Generate a buzzword-laden catch phrase. +Faker::Company.catch_phrase #=> "Business-focused coherent parallelism" + +Faker::Company.buzzword #=> "Business-focused" + +# When a straight answer won't do, BS to the rescue! +Faker::Company.bs #=> "empower one-to-one web-readiness" + +Faker::Company.ein #=> "34-8488813" + +Faker::Company.duns_number #=> "08-341-3736" + +# Get a random company logo url in PNG format. +Faker::Company.logo #=> "http://pigment.github.com/fake-logos/logos/medium/color/5.png" + +Faker::Company.swedish_organisation_number #=> "7718797652" + +``` + +###Faker::Date +--------------------- + +```ruby +# Random date between dates +Faker::Date.between(2.days.ago, Date.today) #=> "Wed, 24 Sep 2014" + +# Random date in the future (up to maximum of N days) +Faker::Date.forward(23) # => "Fri, 03 Oct 2014" + +# Random date in the past (up to maximum of N days) +Faker::Date.backward(14) #=> "Fri, 19 Sep 2014" +``` + +###Faker::Internet +--------------- + +```ruby +# Optional argument name=nil +Faker::Internet.email #=> "eliza@mann.net" + +Faker::Internet.email('Nancy') #=> "nancy@terry.biz" + +# Optional argument name=nil +Faker::Internet.free_email #=> "freddy@gmail.com" + +Faker::Internet.free_email('Nancy') #=> "nancy@yahoo.com" + +# Optional argument name=nil +Faker::Internet.safe_email #=> "christelle@example.org" + +Faker::Internet.safe_email('Nancy') #=> "nancy@example.net" + +# Optional arguments specifier=nil, separators=%w(. _) +Faker::Internet.user_name #=> "alexie" + +Faker::Internet.user_name('Nancy') #=> "nancy" + +Faker::Internet.user_name('Nancy Johnson', %w(. _ -)) #=> "johnson-nancy" + +# Optional arguments: min_length=8, max_length=16 +Faker::Internet.password #=> "vg5msvy1uerg7" + +Faker::Internet.password(8) #=> "yfgjik0hgzdqs0" + +Faker::Internet.password(10, 20) #=> "eoc9shwd1hwq4vbgfw" + +Faker::Internet.domain_name #=> "effertz.info" + +Faker::Internet.fix_umlauts('äöüß') #=> "aeoeuess" + +Faker::Internet.domain_word #=> "haleyziemann" + +Faker::Internet.domain_suffix #=> "info" + +Faker::Internet.ip_v4_address #=> "24.29.18.175" + +Faker::Internet.ip_v6_address #=> "ac5f:d696:3807:1d72:2eb5:4e81:7d2b:e1df" + +# Optional argument prefix='' +Faker::Internet.mac_address #=> "e6:0d:00:11:ed:4f" +Faker::Internet.mac_address('55:44:33') #=> "55:44:33:02:1d:9b" + +# Optional arguments: host=domain_name, path="/#{user_name}" +Faker::Internet.url #=> "http://thiel.com/chauncey_simonis" +Faker::Internet.url('example.com') #=> "http://example.com/clotilde.swift" +Faker::Internet.url('example.com', '/foobar.html') #=> "http://example.com/foobar.html" + +# Optional arguments: words=nil, glue=nil +Faker::Internet.slug #=> "pariatur_laudantium" +Faker::Internet.slug('foo bar') #=> "foo.bar" +Faker::Internet.slug('foo bar', '-') #=> "foo-bar" + + +``` + +###Faker::Lorem +--------------- + +```ruby + +Faker::Lorem.word #=> "repellendus" + +# Optional arguments: num=3, supplemental=false +Faker::Lorem.words #=> ["dolores", "adipisci", "nesciunt"] +Faker::Lorem.words(4) #=> ["culpa", "recusandae", "aut", "omnis"] +Faker::Lorem.words(4, true) #=> ["colloco", "qui", "vergo", "deporto"] + +# Optional arguments: char_count=255 +Faker::Lorem.characters #=> "uw1ep04lhs0c4d931n1jmrspprf5wrj85fefue0y7y6m56b6omquh7br7dhqijwlawejpl765nb1716idmp3xnfo85v349pzy2o9rir23y2qhflwr71c1585fnynguiphkjm8p0vktwitcsm16lny7jzp9t4drwav3qmhz4yjq4k04x14gl6p148hulyqioo72tf8nwrxxcclfypz2lc58lsibgfe5w5p0xv95peafjjmm2frkhdc6duoky0aha" +Faker::Lorem.characters(10) #=> "ang9cbhoa8" + +# Optional arguments: word_count=4, supplemental=false, random_words_to_add=6 +Faker::Lorem.sentence #=> "Dolore illum animi et neque accusantium." +Faker::Lorem.sentence(3) #=> "Commodi qui minus deserunt sed vero quia." +Faker::Lorem.sentence(3, true) #=> "Inflammatio denego necessitatibus caelestis autus illum." +Faker::Lorem.sentence(3, false, 4) #=> "Aut voluptatem illum fugit ut sit." +Faker::Lorem.sentence(3, true, 4) #=> "Accusantium tantillus dolorem timor." + +# Optional arguments: sentence_count=3, supplemental=false +Faker::Lorem.sentences #=> ["Vero earum commodi soluta.", "Quaerat fuga cumque et vero eveniet omnis ut.", "Cumque sit dolor ut est consequuntur."] +Faker::Lorem.sentences(1) #=> ["Ut perspiciatis explicabo possimus doloribus enim quia."] +Faker::Lorem.sentences(1, true) #=> ["Quis capillus curo ager veritatis voro et ipsum."] + +# Optional arguments: sentence_count=3, supplemental=false, random_sentences_to_add=3 +Faker::Lorem.paragraph #=> "Neque dicta enim quasi. Qui corrupti est quisquam. Facere animi quod aut. Qui nulla consequuntur consectetur sapiente." +Faker::Lorem.paragraph(2) #=> "Illo qui voluptas. Id sit quaerat enim aut cupiditate voluptates dolorum. Porro necessitatibus numquam dolor quia earum." +Faker::Lorem.paragraph(2, true) #=> "Cedo vero adipisci. Theatrum crustulum coaegresco tonsor crastinus stabilis. Aliqua crur consequatur amor una tolero sum." +Faker::Lorem.paragraph(2, false, 4) #=> "Neque aut et nemo aut incidunt voluptates. Dolore cum est sint est. Vitae assumenda porro odio dolores fugiat. Est voluptatum quia rerum." +Faker::Lorem.paragraph(2, true, 4) #=> "Vomito unde uxor annus. Et patior utilis sursum." + +# Optional arguments: paragraph_count=3, supplemental=false +Faker::Lorem.paragraphs #=> ["Dolores quis quia ad quo voluptates. Maxime delectus totam numquam. Necessitatibus vel atque qui dolore.", "Id neque nemo. Dolores iusto facere est ad. Accusamus ipsa dolor ut.", "Et officiis ut hic. Sunt asperiores minus distinctio debitis ipsa dolor. Minima eos deleniti."] +Faker::Lorem.paragraphs(1) #=> ["Labore voluptas sequi. Ratione nulla eaque quia molestiae fugit. At quam laboriosam aut ut dignissimos."] +Faker::Lorem.paragraphs(1, true) #=> ["Depulso animi cunctatio amicitia adficio. Vester viduo qui despirmatio voluptas. Validus laudantium adopto ut agnitio venustas. Aer arcus odio esse."] + +``` + +###Faker::Name +-------------- + +```ruby + +Faker::Name.name #=> "Tyshawn Johns Sr." + +Faker::Name.first_name #=> "Kaci" + +Faker::Name.last_name #=> "Ernser" + +Faker::Name.prefix #=> "Mr." + +Faker::Name.suffix #=> "IV" + +Faker::Name.title #=> "Legacy Creative Director" + +``` + +###Faker::Avatar +---------------- + +```ruby + +Faker::Avatar.image #=> "http://robohash.org/sitsequiquia.png?size=300x300" + +Faker::Avatar.image("my-own-slug") #=> "http://robohash.org/my-own-slug.png?size=300x300" + +Faker::Avatar.image("my-own-slug", "50x50") #=> "http://robohash.org/my-own-slug.png?size=50x50" + +Faker::Avatar.image("my-own-slug", "50x50", "jpg") #=> "http://robohash.org/my-own-slug.jpg?size=50x50" + +Faker::Avatar.image("my-own-slug", "50x50", "bmp") #=> "http://robohash.org/my-own-slug.bmp?size=50x50" +``` + +###Faker::Number +---------------- + +```ruby + +# Required parameter: digits +Faker::Number.number(10) #=> "1968353479" + +# Required parameter: l_digits +Faker::Number.decimal(2) #=> "11.88" + +Faker::Number.decimal(2, 3) #=> "18.843" + +# Required parameter: digits +Faker::Number.hexadecimal(3) #=> "e74" + +Faker::Number.between(1, 10) #=> 7 + +Faker::Number.positive #=> 235.59238499107653 + +Faker::Number.negative #=> -4480.042585669558 + +Faker::Number.digit #=> "1" + +``` + +###Faker::PhoneNumber +--------------------- + +Phone numbers may be in any of the following formats: + + * 333-333-3333 + * (333) 333-3333 + * 1-333-333-3333 + * 333.333.3333 + * 333-333-3333 + * 333-333-3333 x3333 + * (333) 333-3333 x3333 + * 1-333-333-3333 x3333 + * 333.333.3333 x3333 + +(Don't let the example output below fool you - any format can be returned at random.) + +```ruby + +Faker::PhoneNumber.phone_number #=> "397.693.1309" + +Faker::PhoneNumber.cell_phone #=> "(186)285-7925" + +# NOTE NOTE NOTE NOTE +# For the 'US only' methods below, first you must do the following: +Faker::Config.locale = 'en-US' + +# US only +Faker::PhoneNumber.area_code #=> "201" + +# US only +Faker::PhoneNumber.exchange_code #=> "208" + +# Optional parameter: length=4 +Faker::PhoneNumber.subscriber_number #=> "3873" + +Faker::PhoneNumber.subscriber_number(2) #=> "39" + +Faker::PhoneNumber.extension #=> "3764" + +``` + +###Faker::Time +--------------------- + +```ruby +# Random date between dates +Faker::Time.between(DateTime.now - 1, DateTime.now) #=> "2014-09-18 12:30:59 -0700" + +# Random date between dates (within specified part of the day) +# You can install the active_support gem to facilitate time manipulation like 45.minutes + 2.hours +require "as-duration" +Faker::Time.between(2.days.ago, Time.now, :all) #=> "2014-09-19 07:03:30 -0700" +Faker::Time.between(2.days.ago, Time.now, :day) #=> "2014-09-18 16:28:13 -0700" +Faker::Time.between(2.days.ago, Time.now, :night) #=> "2014-09-20 19:39:38 -0700" +Faker::Time.between(2.days.ago, Time.now, :morning) #=> "2014-09-19 08:07:52 -0700" +Faker::Time.between(2.days.ago, Time.now, :afternoon) #=> "2014-09-18 12:10:34 -0700" +Faker::Time.between(2.days.ago, Time.now, :evening) #=> "2014-09-19 20:21:03 -0700" +Faker::Time.between(2.days.ago, Time.now, :midnight) #=> "2014-09-20 00:40:14 -0700" + +# Random time in the future (up to maximum of N days) +Faker::Time.forward(23, :morning) # => "2014-09-26 06:54:47 -0700" + +# Random time in the past (up to maximum of N days) +Faker::Time.backward(14, :evening) #=> "2014-09-17 19:56:33 -0700" +``` + +###Faker::Hacker +--------------------- +Are you having trouble writing tech-savvy dialogue for your latest screenplay? +Worry not! Hollywood-grade technical talk is ready to fill out any form where you need to look smart. + +```ruby +# Full Phrase +Faker::Hacker.say_something_smart #=> "Try to compress the SQL interface, maybe it will program the back-end hard drive!" + +# Short technical abbreviations +Faker::Hacker.abbreviation #=> "RAM" + +# Hacker centric adjectives +Faker::Hacker.adjective #=> "open-source" + +# Only the best hacker related nouns +Faker::Hacker.noun #=> "bandwidth" + +# Actions that hackers take +Faker::Hacker.verb #=> "bypass" + +# Verbs that end in -ing +Faker::Hacker.ingverb #=> "synthesizing" +``` + +###Faker::App +----------------- + +```ruby + +Faker::App.name #=> "Treeflex" + +Faker::App.version #=> "0.7.9" + +Faker::App.author #=> "Daphne Swift" + +``` + +###Faker::SlackEmoji +----------------- + +```ruby + +# Random Slack Emoji from people category +Faker::SlackEmoji.people #=> ":sleepy:" + +# Random Slack Emoji from nature category +Faker::SlackEmoji.nature #=> ":chestnut:" + +# Random Slack Emoji from food and drink category +Faker::SlackEmoji.food_and_drink #=> ":tangerine:" + +# Random Slack Emoji from celebration category +Faker::SlackEmoji.celebration #=> ":ribbon:" + +# Random Slack Emoji from activity category +Faker::SlackEmoji.activity #=> ":performing_arts:" + +# Random Slack Emoji from travel and places category +Faker::SlackEmoji.travel_and_places #=> ":truck:" + +# Random Slack Emoji from objects & symbols category +Faker::SlackEmoji.objects_and_symbols #=> ":alarm_clock:" + +# Random Slack Emoji from custom category +Faker::SlackEmoji.custom #=> ":suspect:" + +# Random Slack Emoji from any category +Faker::SlackEmoji.emoji #=> ":last_quarter_moon:" + +``` + +###Faker::Team +----------------- + +```ruby + +# Random Team Creature +Faker::Team.creature #=> "gooses" + +# Random Team Name created from random US State (Faker::Address.state) prepended to a random Team Creature +Faker::Team.name #=> "Oregon vixens" + +# Random Team State +Faker::Team.state #=> "Oregon" + +# Random Team Sport +Faker::Team.sport #=> "lacrosse" + +``` + +###Faker::Book +------------------ + +```ruby + +# Random Book Title +Faker::Book.title #=> "The Odd Sister" + +# Random Author +Faker::Book.author #=> "Alysha Olsen" + +# Random Publisher +Faker::Book.publisher #=> "Opus Reader" + +``` + +###Faker::University +------------------ + +```ruby + +# Random University Name +Faker::University.name #=> "South Texas College" + +``` + +Customization +------------ +Since you may want to make addresses and other types of data look different +depending on where in the world you are (US postal codes vs. UK postal codes, +for example), Faker uses the I18n gem to store strings (like state names) and +formats (US postal codes are NNNNN while UK postal codes are AAN NAA), +allowing you to get different formats by switching locales. Just set +Faker::Config.locale to the locale you want, and Faker will take care of the +rest. + +If your locale doesn't already exist, create it in the \lib\locales\ directory +and you can then override or add elements to suit + +```yaml + +en-au-ocker: + faker: + name: + # Existing faker field, new data + first_name: [Charlotte, Ava, Chloe, Emily] + + # New faker fields + ocker_first_name: [Bazza, Bluey, Davo, Johno, Shano, Shazza] + region: [South East Queensland, Wide Bay Burnett, Margaret River, Port Pirie, Gippsland, Elizabeth, Barossa] + +``` + +Contributing +------------ +See [CONTRIBUTING.md](https://github.com/stympy/faker/blob/master/CONTRIBUTING.md). + +Contact +------- +Comments and feedback are welcome. Send an email to Benjamin Curtis via the [google group](http://groups.google.com/group/ruby-faker). + +License +------- +This code is free to use under the terms of the MIT license. diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/array.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/array.rb new file mode 100644 index 0000000..c8cf8a8 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/array.rb @@ -0,0 +1,22 @@ +class Array + unless self.method_defined? :sample + def sample(n = nil) + #based on code from https://github.com/marcandre/backports + size = self.length + return self[Kernel.rand(size)] if n.nil? + + n = n.to_int + raise ArgumentError, "negative array size" if n < 0 + + n = size if n > size + + result = Array.new(self) + n.times do |i| + r = i + Kernel.rand(size - i) + result[i], result[r] = result[r], result[i] + end + result[n..size] = [] + result + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/symbol.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/symbol.rb new file mode 100644 index 0000000..90fa0d6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/extensions/symbol.rb @@ -0,0 +1,9 @@ +# For Ruby 1.8 +unless :symbol.respond_to?(:downcase) + Symbol.class_eval do + def downcase + to_s.downcase.intern + end + end +end + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker.rb new file mode 100644 index 0000000..c425647 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker.rb @@ -0,0 +1,188 @@ +# -*- coding: utf-8 -*- +mydir = File.expand_path(File.dirname(__FILE__)) + +begin + require 'psych' +rescue LoadError +end + +require 'i18n' +require 'set' # Fixes a bug in i18n 0.6.11 + +if I18n.respond_to?(:enforce_available_locales=) + I18n.enforce_available_locales = true +end +I18n.load_path += Dir[File.join(mydir, 'locales', '*.yml')] + + +module Faker + class Config + @locale = nil + + class << self + attr_writer :locale + def locale + @locale || I18n.locale + end + end + end + + class Base + Numbers = Array(0..9) + ULetters = Array('A'..'Z') + Letters = ULetters + Array('a'..'z') + + class << self + ## make sure numerify results doesn’t start with a zero + def numerify(number_string) + number_string.sub(/#/) { (rand(9)+1).to_s }.gsub(/#/) { rand(10).to_s } + end + + def letterify(letter_string) + letter_string.gsub(/\?/) { ULetters.sample } + end + + def bothify(string) + letterify(numerify(string)) + end + + # Given a regular expression, attempt to generate a string + # that would match it. This is a rather simple implementation, + # so don't be shocked if it blows up on you in a spectacular fashion. + # + # It does not handle ., *, unbounded ranges such as {1,}, + # extensions such as (?=), character classes, some abbreviations + # for character classes, and nested parentheses. + # + # I told you it was simple. :) It's also probably dog-slow, + # so you shouldn't use it. + # + # It will take a regex like this: + # + # /^[A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}$/ + # + # and generate a string like this: + # + # "U3V 3TP" + # + def regexify(re) + re = re.source if re.respond_to?(:source) # Handle either a Regexp or a String that looks like a Regexp + re. + gsub(/^\/?\^?/, '').gsub(/\$?\/?$/, ''). # Ditch the anchors + gsub(/\{(\d+)\}/, '{\1,\1}').gsub(/\?/, '{0,1}'). # All {2} become {2,2} and ? become {0,1} + gsub(/(\[[^\]]+\])\{(\d+),(\d+)\}/) {|match| $1 * Array(Range.new($2.to_i, $3.to_i)).sample }. # [12]{1,2} becomes [12] or [12][12] + gsub(/(\([^\)]+\))\{(\d+),(\d+)\}/) {|match| $1 * Array(Range.new($2.to_i, $3.to_i)).sample }. # (12|34){1,2} becomes (12|34) or (12|34)(12|34) + gsub(/(\\?.)\{(\d+),(\d+)\}/) {|match| $1 * Array(Range.new($2.to_i, $3.to_i)).sample }. # A{1,2} becomes A or AA or \d{3} becomes \d\d\d + gsub(/\((.*?)\)/) {|match| match.gsub(/[\(\)]/, '').split('|').sample }. # (this|that) becomes 'this' or 'that' + gsub(/\[([^\]]+)\]/) {|match| match.gsub(/(\w\-\w)/) {|range| Array(Range.new(*range.split('-'))).sample } }. # All A-Z inside of [] become C (or X, or whatever) + gsub(/\[([^\]]+)\]/) {|match| $1.split('').sample }. # All [ABC] become B (or A or C) + gsub('\d') {|match| Numbers.sample }. + gsub('\w') {|match| Letters.sample } + end + + # Helper for the common approach of grabbing a translation + # with an array of values and selecting one of them. + def fetch(key) + fetched = translate("faker.#{key}") + fetched = fetched.sample if fetched.respond_to?(:sample) + if fetched.match(/^\//) and fetched.match(/\/$/) # A regex + regexify(fetched) + else + fetched + end + end + + # Load formatted strings from the locale, "parsing" them + # into method calls that can be used to generate a + # formatted translation: e.g., "#{first_name} #{last_name}". + def parse(key) + fetch(key).scan(/(\(?)#\{([A-Za-z]+\.)?([^\}]+)\}([^#]+)?/).map {|prefix, kls, meth, etc| + # If the token had a class Prefix (e.g., Name.first_name) + # grab the constant, otherwise use self + cls = kls ? Faker.const_get(kls.chop) : self + + # If an optional leading parentheses is not present, prefix.should == "", otherwise prefix.should == "(" + # In either case the information will be retained for reconstruction of the string. + text = prefix + + # If the class has the method, call it, otherwise + # fetch the transation (i.e., faker.name.first_name) + text += cls.respond_to?(meth) ? cls.send(meth) : fetch("#{(kls || self).to_s.split('::').last.downcase}.#{meth.downcase}") + + # And tack on spaces, commas, etc. left over in the string + text += etc.to_s + }.join + end + + # Call I18n.translate with our configured locale if no + # locale is specified + def translate(*args) + opts = args.last.is_a?(Hash) ? args.pop : {} + opts[:locale] ||= Faker::Config.locale + opts[:raise] = true + I18n.translate(*(args.push(opts))) + rescue I18n::MissingTranslationData + # Super-simple fallback -- fallback to en if the + # translation was missing. If the translation isn't + # in en either, then it will raise again. + I18n.translate(*(args.push(opts.merge(:locale => :en)))) + end + + def flexible(key) + @flexible_key = key + end + + # You can add whatever you want to the locale file, and it will get caught here. + # E.g., in your locale file, create a + # name: + # girls_name: ["Alice", "Cheryl", "Tatiana"] + # Then you can call Faker::Name.girls_name and it will act like #first_name + def method_missing(m, *args, &block) + super unless @flexible_key + + # Use the alternate form of translate to get a nil rather than a "missing translation" string + if translation = translate(:faker)[@flexible_key][m] + translation.respond_to?(:sample) ? translation.sample : translation + else + super + end + end + + # Generates a random value between the interval + def rand_in_range(from, to) + from, to = to, from if to < from + Random.new.rand(from..to) + end + end + end +end + +require 'faker/address' +require 'faker/code' +require 'faker/color' +require 'faker/company' +require 'faker/university' +require 'faker/finance' +require 'faker/internet' +require 'faker/lorem' +require 'faker/name' +require 'faker/team' +require 'faker/phone_number' +require 'faker/business' +require 'faker/commerce' +require 'faker/version' +require 'faker/number' +require 'faker/bitcoin' +require 'faker/avatar' +require 'faker/date' +require 'faker/time' +require 'faker/number' +require 'faker/hacker' +require 'faker/app' +require 'faker/slack_emoji' +require 'faker/book' + +require 'extensions/array' +require 'extensions/symbol' + +require 'helpers/char' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/address.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/address.rb new file mode 100644 index 0000000..5122937 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/address.rb @@ -0,0 +1,59 @@ +module Faker + class Address < Base + flexible :address + + class << self + def city + parse('address.city') + end + + def street_name + parse('address.street_name') + end + + def street_address(include_secondary = false) + numerify(parse('address.street_address') + (include_secondary ? ' ' + secondary_address : '')) + end + + def secondary_address + numerify(fetch('address.secondary_address')) + end + + def building_number + bothify(fetch('address.building_number')) + end + + def zip_code(state_abbreviation = '') + return bothify(fetch('address.postcode')) if state_abbreviation === '' + + # provide a zip code that is valid for the state provided + # see http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf + bothify(fetch('address.postcode_by_state.' + state_abbreviation)) + end + + def time_zone + fetch('address.time_zone') + end + + alias_method :zip, :zip_code + alias_method :postcode, :zip_code + + def street_suffix; fetch('address.street_suffix'); end + def city_suffix; fetch('address.city_suffix'); end + def city_prefix; fetch('address.city_prefix'); end + def state_abbr; fetch('address.state_abbr'); end + def state; fetch('address.state'); end + def country; fetch('address.country'); end + def country_code; fetch('address.country_code'); end + + def latitude + ((rand * 180) - 90).to_s + end + + def longitude + ((rand * 360) - 180).to_s + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/app.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/app.rb new file mode 100644 index 0000000..49ebe40 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/app.rb @@ -0,0 +1,22 @@ +module Faker + class App < Base + class << self + + def name + fetch('app.name') + end + + def version + if parse('app.version') == "" + numerify(fetch('app.version')) + else + parse('app.version') + end + end + + def author + parse('app.author') + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/avatar.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/avatar.rb new file mode 100644 index 0000000..10fb2da --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/avatar.rb @@ -0,0 +1,14 @@ +module Faker + class Avatar < Base + class << self + SUPPORTED_FORMATS = %w(png jpg bmp) + + def image(slug = nil, size = '300x300', format = 'png', set = 'set1') + raise ArgumentError, "Size should be specified in format 300x300" unless size.match(/^[0-9]+x[0-9]+$/) + raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format) + slug ||= Faker::Lorem.words.join + "http://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}" + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/bitcoin.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/bitcoin.rb new file mode 100644 index 0000000..d4e5cc7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/bitcoin.rb @@ -0,0 +1,49 @@ +require 'digest' +require 'securerandom' + +module Faker + class Bitcoin < Base + class << self + + PROTOCOL_VERSIONS = { + main: 0, + testnet: 111 + } + + def address + address_for(:main) + end + + def testnet_address + address_for(:testnet) + end + + protected + + def base58(str) + alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' + base = alphabet.size + + lv = 0 + str.split('').reverse.each_with_index { |v,i| lv += v.unpack('C')[0] * 256**i } + + ret = '' + while lv > 0 do + lv, mod = lv.divmod(base) + ret << alphabet[mod] + end + + npad = str.match(/^#{0.chr}*/)[0].to_s.size + '1'*npad + ret.reverse + end + + def address_for(network) + version = PROTOCOL_VERSIONS.fetch(network) + hash = SecureRandom.hex(20) + packed = version.chr + [hash].pack("H*") + checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3] + base58(packed + checksum) + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/book.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/book.rb new file mode 100644 index 0000000..ac12e62 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/book.rb @@ -0,0 +1,19 @@ +module Faker + class Book < Base + flexible :book + + class << self + def title + fetch('book.title') + end + + def author + fetch('book.author') + end + + def publisher + fetch('book.publisher') + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/business.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/business.rb new file mode 100644 index 0000000..4b53857 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/business.rb @@ -0,0 +1,22 @@ +require 'date' + +module Faker + class Business < Base + flexible :business + + class << self + def credit_card_number + fetch('business.credit_card_numbers') + end + + def credit_card_expiry_date + ::Date.today + (365 * (rand(4) + 1)) + end + + def credit_card_type + fetch('business.credit_card_types') + end + end + + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/code.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/code.rb new file mode 100644 index 0000000..0a34cbb --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/code.rb @@ -0,0 +1,70 @@ +module Faker + class Code < Base + class << self + + # Generates a 10 digit NPI (National Provider Identifier + # issued to health care providers in the United States) + def npi + Random.new.rand(10 ** 10).to_s.rjust(10, '0') + end + + # By default generates 10 sign isbn code in format 123456789-X + # You can pass 13 to generate new 13 sign code + def isbn(base = 10) + base == 13 ? generate_base13_isbn : generate_base10_isbn + end + + # By default generates 13 sign ean code in format 1234567890123 + # You can pass 8 to generate ean8 code + def ean(base = 13) + base == 8 ? generate_base8_ean : generate_base13_ean + end + + def rut + value = Number.number(8) + vd = rut_verificator_digit(value) + value << "-#{vd}" + end + + private + + def generate_base10_isbn + values = regexify(/\d{9}/) + remainder = sum(values) { |value, index| (index + 1) * value.to_i } % 11 + values << "-#{remainder == 10 ? 'X' : remainder}" + end + + def generate_base13_isbn + values = regexify(/\d{12}/) + remainder = sum(values) { |value, index| index.even? ? value.to_i : value.to_i * 3 } % 10 + values << "-#{((10 - remainder) % 10)}" + end + + def sum(values, &block) + values.split(//).each_with_index.inject(0) do |sum, (value, index)| + sum + block.call(value, index) + end + end + + def generate_base8_ean + values = regexify(/\d{7}/) + check_digit = 10 - values.split(//).each_with_index.inject(0){ |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10 + values << (check_digit == 10 ? 0 : check_digit).to_s + end + + def generate_base13_ean + values = regexify(/\d{12}/) + check_digit = 10 - values.split(//).each_with_index.inject(0){ |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10 + values << (check_digit == 10 ? 0 : check_digit).to_s + end + + EAN_CHECK_DIGIT8 = [3, 1, 3, 1, 3, 1, 3] + EAN_CHECK_DIGIT13 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3] + + def rut_verificator_digit(rut) + total = rut.to_s.rjust(8, '0').split(//).zip(%w(3 2 7 6 5 4 3 2)).collect{|a, b| a.to_i * b.to_i}.inject(:+) + (11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0') + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/color.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/color.rb new file mode 100644 index 0000000..3f3c738 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/color.rb @@ -0,0 +1,49 @@ +module Faker + class Color < Base + class << self + def hex_color + @hex_color = "#%06x" % (rand * 0xffffff) + end + + def single_rgb_color + @single_rgb_color = (0..255).to_a.sample + @single_rgb_color + end + + def rgb_color + @rgb_colors = [] + 3.times do + @rgb_colors.push single_rgb_color + end + @rgb_colors + end + + def single_hsl_color + @single_hsla_color = Faker::Base::rand_in_range(0.0, 360.00).round(2) + @single_hsla_color + end + + def alpha_channel + @alpha_channel = rand + @alpha_channel + end + + def hsl_color + @hsl_colors = [] + 3.times do + @hsl_colors.push single_hsl_color + end + @hsl_colors + end + + def hsla_color + @hsla_colors = [] + 3.times do + @hsla_colors.push single_hsl_color + end + @hsla_colors.push alpha_channel + @hsla_colors + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/commerce.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/commerce.rb new file mode 100644 index 0000000..f1ce2e7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/commerce.rb @@ -0,0 +1,55 @@ +module Faker + class Commerce < Base + + class << self + def color + fetch('commerce.color') + end + + def department(max = 3, fixed_amount = false) + num = max if fixed_amount + num ||= 1 + rand(max) + + categories = categories(num) + + if num > 1 + merge_categories(categories) + else + categories[0] + end + end + + def product_name + fetch('commerce.product_name.adjective') + ' ' + fetch('commerce.product_name.material') + ' ' + fetch('commerce.product_name.product') + end + + def material + fetch('commerce.product_name.material') + end + + def price + random = Random.new + (random.rand(0..100.0) * 100).floor/100.0 + end + + private + + def categories(num) + categories = [] + while categories.length < num do + category = fetch('commerce.department') + categories << category unless categories.include?(category) + end + + categories + end + + def merge_categories(categories) + separator = fetch('separator') + comma_separated = categories.slice!(0...-1).join(', ') + + [comma_separated, categories[0]].join(separator) + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/company.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/company.rb new file mode 100644 index 0000000..7b48bef --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/company.rb @@ -0,0 +1,78 @@ +module Faker + class Company < Base + flexible :company + + class << self + def name + parse('company.name') + end + + def suffix + fetch('company.suffix') + end + + # Generate a buzzword-laden catch phrase. + def catch_phrase + translate('faker.company.buzzwords').collect {|list| list.sample }.join(' ') + end + + def buzzword + translate('faker.company.buzzwords').flatten.sample + end + + # When a straight answer won't do, BS to the rescue! + def bs + translate('faker.company.bs').collect {|list| list.sample }.join(' ') + end + + def ein + ('%09d' % rand(10 ** 9)).gsub(/(\d\d)(\d\d\d\d\d\d\d)/, '\\1-\\2') + end + + def duns_number + ('%09d' % rand(10 ** 9)).gsub(/(\d\d)(\d\d\d)(\d\d\d\d)/, '\\1-\\2-\\3') + end + + # Get a random company logo url in PNG format. + def logo + rand_num = Random.rand(13) + 1 + "http://pigment.github.io/fake-logos/logos/medium/color/#{rand_num}.png" + end + + def swedish_organisation_number + base = ('%09d' % rand(10 ** 9)) + base + luhn_algorithm(base).to_s + end + + private + + def luhn_algorithm(number) + multiplications = [] + + number.split(//).each_with_index do |digit, i| + if i % 2 == 0 + multiplications << digit.to_i * 2 + else + multiplications << digit.to_i + end + end + + sum = 0 + + multiplications.each do |num| + num.to_s.each_byte do |character| + sum += character.chr.to_i + end + end + + if sum % 10 == 0 + control_digit = 0 + else + control_digit = (sum / 10 + 1) * 10 - sum + end + + control_digit + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/date.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/date.rb new file mode 100644 index 0000000..e52f50c --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/date.rb @@ -0,0 +1,42 @@ +module Faker + class Date < Base + class << self + def between(from, to) + from = get_date_object(from) + to = get_date_object(to) + + Faker::Base::rand_in_range(from, to) + end + + def forward(days = 365) + from = ::Date.today + 1 + to = ::Date.today + days + + between(from, to).to_date + end + + def backward(days = 365) + from = ::Date.today - days + to = ::Date.today - 1 + + between(from, to).to_date + end + + def birthday(min_age = 18, max_age = 65) + t = ::Date.today + from = ::Date.new(t.year - min_age, t.month, t.day) + to = ::Date.new(t.year - max_age, t.month, t.day) + + between(from, to).to_date + end + + private + + def get_date_object(date) + date = ::Date.parse(date) if date.is_a?(String) + date = date.to_date if date.respond_to?(:to_date) + date + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/finance.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/finance.rb new file mode 100644 index 0000000..28ce330 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/finance.rb @@ -0,0 +1,26 @@ +module Faker + class Finance < Base + CREDIT_CARD_TYPES = [ :visa, :mastercard, :discover, :american_express, :diners_club, :jcb, :switch, :solo, :dankort, :maestro, :forbrugsforeningen, :laser ] + + class << self + def credit_card(*types) + types = CREDIT_CARD_TYPES if types.empty? + type = types.sample + template = numerify(fetch("credit_card.#{type}")) + + # calculate the luhn checksum digit + multiplier = 1 + luhn_sum = template.gsub(/[^0-9]/, '').split('').reverse.map(&:to_i).inject(0) do |sum, digit| + multiplier = (multiplier == 2 ? 1 : 2) + sum + (digit * multiplier).to_s.split('').map(&:to_i).inject(0) { |digit_sum, cur| digit_sum + cur } + end + # the sum plus whatever the last digit is must be a multiple of 10. So, the + # last digit must be 10 - the last digit of the sum. + luhn_digit = (10 - (luhn_sum % 10)) % 10 + + template.gsub! 'L', luhn_digit.to_s + template + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/hacker.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/hacker.rb new file mode 100644 index 0000000..de80c93 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/hacker.rb @@ -0,0 +1,31 @@ +#Port of http://shinytoylabs.com/jargon/ +module Faker + class Hacker < Base + flexible :hacker + + class << self + def say_something_smart + phrases.sample + end + + def abbreviation; fetch('hacker.abbreviation'); end + def adjective; fetch('hacker.adjective'); end + def noun; fetch('hacker.noun'); end + def verb; fetch('hacker.verb'); end + def ingverb; fetch('hacker.ingverb'); end + + def phrases + [ "If we #{verb} the #{noun}, we can get to the #{abbreviation} #{noun} through the #{adjective} #{abbreviation} #{noun}!", + "We need to #{verb} the #{adjective} #{abbreviation} #{noun}!", + "Try to #{verb} the #{abbreviation} #{noun}, maybe it will #{verb} the #{adjective} #{noun}!", + "You can't #{verb} the #{noun} without #{ingverb} the #{adjective} #{abbreviation} #{noun}!", + "Use the #{adjective} #{abbreviation} #{noun}, then you can #{verb} the #{adjective} #{noun}!", + "The #{abbreviation} #{noun} is down, #{verb} the #{adjective} #{noun} so we can #{verb} the #{abbreviation} #{noun}!", + "#{ingverb} the #{noun} won't do anything, we need to #{verb} the #{adjective} #{abbreviation} #{noun}!", + "I'll #{verb} the #{adjective} #{abbreviation} #{noun}, that should #{noun} the #{abbreviation} #{noun}!" + ] + end + end + + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/internet.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/internet.rb new file mode 100644 index 0000000..bb3a125 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/internet.rb @@ -0,0 +1,111 @@ +# encoding: utf-8 +module Faker + class Internet < Base + class << self + def email(name = nil) + [user_name(name), domain_name].join('@') + end + + def free_email(name = nil) + [user_name(name), fetch('internet.free_email')].join('@') + end + + def safe_email(name = nil) + [user_name(name), 'example.'+ %w[org com net].shuffle.first].join('@') + end + + def user_name(specifier = nil, separators = %w(. _)) + if specifier.kind_of? String + return specifier.scan(/\w+/).shuffle.join(separators.sample).downcase + elsif specifier.kind_of? Integer + tries = 0 # Don't try forever in case we get something like 1_000_000. + begin + result = user_name nil, separators + tries += 1 + end while result.length < specifier and tries < 7 + until result.length >= specifier + result = result * 2 + end + return result + elsif specifier.kind_of? Range + tries = 0 + begin + result = user_name specifier.min, separators + tries += 1 + end while not specifier.include? result.length and tries < 7 + return result[0...specifier.max] + end + + [ + Char.prepare(Name.first_name), + [Name.first_name, Name.last_name].map{ |name| + Char.prepare name + }.join(separators.sample) + ].sample + end + + def password(min_length = 8, max_length = 16) + temp = Lorem.characters(min_length) + diff_length = max_length - min_length + if diff_length > 0 + diff_rand = rand(diff_length + 1) + temp += Lorem.characters(diff_rand) + end + temp = temp[0..min_length] if min_length > 0 + return temp + end + + def domain_name + [Char.prepare(domain_word), domain_suffix].join('.') + end + + def fix_umlauts(string) + Char.fix_umlauts string + end + + def domain_word + if %w(uk).include? Config.locale + return Char.prepare Company.name.split(' ')[1] + end + Char.prepare Company.name.split(' ').first + end + + def domain_suffix + fetch('internet.domain_suffix') + end + + def mac_address(prefix='') + prefix_digits = prefix.split(':').map{ |d| d.to_i(16) } + address_digits = (6 - prefix_digits.size).times.map{ rand(256) } + (prefix_digits + address_digits).map{ |d| '%02x' % d }.join(':') + end + + def ip_v4_address + ary = (2..254).to_a + [ary.sample, + ary.sample, + ary.sample, + ary.sample].join('.') + end + + def ip_v6_address + @@ip_v6_space ||= (0..65535).to_a + container = (1..8).map{ |_| @@ip_v6_space.sample } + container.map{ |n| n.to_s(16) }.join(':') + end + + def url(host = domain_name, path = "/#{user_name}") + "http://#{host}#{path}" + end + + def slug(words = nil, glue = nil) + glue ||= %w[- _ .].sample + (words || Faker::Lorem::words(2).join(' ')).gsub(' ', glue).downcase + end + + def device_token + rand(16 ** 64).to_s(16).rjust(64, '0').chars.to_a.shuffle.join + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/lorem.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/lorem.rb new file mode 100644 index 0000000..acb85f7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/lorem.rb @@ -0,0 +1,66 @@ +module Faker + # Based on Perl's Text::Lorem + class Lorem < Base + class << self + def word + translate('faker.lorem.words').sample + end + + def words(num = 3, supplemental = false) + resolved_num = resolve(num) + word_list = ( + translate('faker.lorem.words') + + (supplemental ? translate('faker.lorem.supplemental') : []) + ) + word_list = word_list * ((resolved_num / word_list.length) + 1) + word_list.shuffle[0, resolved_num] + end + + def character + characters(1) + end + + def characters(char_count = 255) + return '' if char_count.respond_to?(:to_i) && char_count.to_i < 1 + char_count = resolve(char_count) + rand(36**char_count).to_s(36).rjust(char_count, '0').chars.to_a.shuffle.join + end + + def sentence(word_count = 4, supplemental = false, random_words_to_add = 6) + words(word_count + rand(random_words_to_add.to_i).to_i, supplemental).join(' ').capitalize + '.' + end + + def sentences(sentence_count = 3, supplemental = false) + [].tap do |sentences| + 1.upto(resolve(sentence_count)) do + sentences << sentence(3, supplemental) + end + end + end + + def paragraph(sentence_count = 3, supplemental = false, random_sentences_to_add = 3) + sentences(resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i, supplemental).join(' ') + end + + def paragraphs(paragraph_count = 3, supplemental = false) + [].tap do |paragraphs| + 1.upto(resolve(paragraph_count)) do + paragraphs << paragraph(3, supplemental) + end + end + end + + private + + # If an array or range is passed, a random value will be selected. + # All other values are simply returned. + def resolve(value) + case value + when Array then value[rand(value.size)] + when Range then rand((value.last+1) - value.first) + value.first + else value + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/name.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/name.rb new file mode 100644 index 0000000..b07c90d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/name.rb @@ -0,0 +1,22 @@ +module Faker + class Name < Base + flexible :name + + class << self + + def name + parse('name.name') + end + + def first_name; fetch('name.first_name'); end + def last_name; fetch('name.last_name'); end + def prefix; fetch('name.prefix'); end + def suffix; fetch('name.suffix'); end + + # Generate a buzzword-laden job title + # Wordlist from http://www.bullshitjob.com/title/ + def title; fetch('name.title.descriptor') + ' ' + fetch('name.title.level') + ' ' + fetch('name.title.job'); end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/number.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/number.rb new file mode 100644 index 0000000..a9f879a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/number.rb @@ -0,0 +1,57 @@ +module Faker + class Number < Base + class << self + def number(digits) + (1..digits).collect {digit}.join + end + + def decimal(l_digits, r_digits = 2) + l_d = self.number(l_digits) + r_d = self.number(r_digits) + "#{l_d}.#{r_d}" + end + + def digit + (rand() * 9).round.to_s + end + + def hexadecimal(digits) + hex = "" + digits.times { hex += rand(15).to_s(16) } + hex + end + + def between(from = 1.00, to = 5000.00) + Faker::Base::rand_in_range(from, to) + end + + def positive(from = 1.00, to = 5000.00) + random_number = between(from, to) + greater_than_zero(random_number) + end + + def negative(from = -5000.00, to = -1.00) + random_number = between(from, to) + less_than_zero(random_number) + end + + private + + def greater_than_zero(number) + should_be(number, :>) + end + + def less_than_zero(number) + should_be(number, :<) + end + + def should_be(number, method_to_compare) + if number.send(method_to_compare, 0) + number + else + number * -1 + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/phone_number.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/phone_number.rb new file mode 100644 index 0000000..673d8be --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/phone_number.rb @@ -0,0 +1,52 @@ +module Faker + class PhoneNumber < Base + class << self + def phone_number + if parse('phone_number.formats') == "" + numerify(fetch('phone_number.formats')) + else + parse('phone_number.formats') + end + end + + def cell_phone + if parse('cell_phone.formats') == "" + numerify(fetch('cell_phone.formats')) + else + parse('cell_phone.formats') + end + end + + # US only + def area_code + begin + fetch('phone_number.area_code') + rescue I18n::MissingTranslationData + nil + end + end + + # US only + def exchange_code + begin + fetch('phone_number.exchange_code') + rescue I18n::MissingTranslationData + nil + end + end + + # US only + # Can be used for both extensions and last four digits of phone number. + # Since extensions can be of variable length, this method taks a length parameter + def subscriber_number(length = 4) + begin + rand.to_s[2..(1 + length)] + rescue I18n::MissingTranslationData + nil + end + end + + alias_method :extension, :subscriber_number + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/slack_emoji.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/slack_emoji.rb new file mode 100644 index 0000000..e6c5285 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/slack_emoji.rb @@ -0,0 +1,43 @@ +module Faker + class SlackEmoji < Base + class << self + + def people + fetch('slack_emoji.people') + end + + def nature + fetch('slack_emoji.nature') + end + + def food_and_drink + fetch('slack_emoji.food_and_drink') + end + + def celebration + fetch('slack_emoji.celebration') + end + + def activity + fetch('slack_emoji.activity') + end + + def travel_and_places + fetch('slack_emoji.travel_and_places') + end + + def objects_and_symbols + fetch('slack_emoji.objects_and_symbols') + end + + def custom + fetch('slack_emoji.custom') + end + + def emoji + parse('slack_emoji.emoji') + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/team.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/team.rb new file mode 100644 index 0000000..d47792e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/team.rb @@ -0,0 +1,20 @@ +module Faker + class Team < Base + flexible :team + + class << self + def name + parse('team.name') + end + + def creature + fetch('team.creature') + end + + def state + fetch('address.state') + end + end + + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/time.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/time.rb new file mode 100644 index 0000000..06f8f98 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/time.rb @@ -0,0 +1,48 @@ +module Faker + class Time < Date + TIME_RANGES = { + :all => (0..23), + :day => (9..17), + :night => (18..23), + :morning => (6..11), + :afternoon => (12..17), + :evening => (17..21), + :midnight => (0..4) + } + + class << self + def between(from, to, period = :all) + super(from, to).to_time + random_time(period) + end + + def forward(days = 365, period = :all) + super(days).to_time + random_time(period) + end + + def backward(days = 365, period = :all) + super(days).to_time + random_time(period) + end + + private + + def random_time(period) + hours(period) + minutes + seconds + end + + def hours(period) + raise ArgumentError, 'invalid period' unless TIME_RANGES.has_key? period + hour_at_period = TIME_RANGES[period].to_a.sample + + (60 * 60 * hour_at_period) + end + + def minutes + 60 * seconds + end + + def seconds + (0..59).to_a.sample + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/university.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/university.rb new file mode 100644 index 0000000..6d3bd80 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/university.rb @@ -0,0 +1,20 @@ +module Faker + class University < Base + flexible :university + + class << self + def name + parse('university.name') + end + + def prefix + fetch('university.prefix') + end + + def suffix + fetch('university.suffix') + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/version.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/version.rb new file mode 100644 index 0000000..957dda1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/faker/version.rb @@ -0,0 +1,3 @@ +module Faker #:nodoc: + VERSION = "1.5.0" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/helpers/char.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/helpers/char.rb new file mode 100644 index 0000000..94379e5 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/helpers/char.rb @@ -0,0 +1,44 @@ +# coding: utf-8 +module Faker + module Char + def self.prepare(string) + result = romanize_cyrillic string + result = fix_umlauts result + result.gsub(/\W/, '').downcase + end + + def self.fix_umlauts(string) + string.gsub(/[äöüß]/i) do |match| + case match.downcase + when "ä" 'ae' + when "ö" 'oe' + when "ü" 'ue' + when "ß" 'ss' + end + end + end + + def self.romanize_cyrillic(string) + if Faker::Config.locale == "uk" + # Based on conventions abopted by BGN/PCGN for Ukrainian + uk_chars = { + 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'h', 'ґ' => 'g', 'д' => 'd', + 'е' => 'e', 'є' => 'ye', 'ж' => 'zh', 'з' => 'z', 'и' => 'y', 'і' => 'i', + 'ї' => 'yi', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', + 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', + 'ф' => 'f', 'х' => 'kh', 'ц' => 'ts', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'shch', + 'ю' => 'yu', 'я' => 'ya', + 'А' => 'a', 'Б' => 'b', 'В' => 'v', 'Г' => 'h', 'Ґ' => 'g', 'Д' => 'd', + 'Е' => 'e', 'Є' => 'ye', 'Ж' => 'zh', 'З' => 'z', 'И' => 'y', 'І' => 'i', + 'Ї' => 'yi', 'Й' => 'y', 'К' => 'k', 'Л' => 'l', 'М' => 'm', 'Н' => 'n', + 'О' => 'o', 'П' => 'p', 'Р' => 'r', 'С' => 's', 'Т' => 't', 'У' => 'u', + 'Ф' => 'f', 'Х' => 'kh', 'Ц' => 'ts', 'Ч' => 'ch', 'Ш' => 'sh', 'Щ' => 'shch', + 'Ю' => 'yu', 'Я' => 'ya', + 'ь' => '' # Ignore symbol, because its standard presentation is not allowed in URLs + } + return string.gsub(/[а-яА-ЯіїєґІЇЄҐ]/, uk_chars) + end + string + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-AT.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-AT.yml new file mode 100644 index 0000000..4d71698 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-AT.yml @@ -0,0 +1,49 @@ +de-AT: + faker: + address: + country: [Ägypten, Äquatorialguinea, Äthiopien, Österreich, Afghanistan, Albanien, Algerien, Amerikanisch-Samoa, Amerikanische Jungferninseln, Andorra, Angola, Anguilla, Antarktis, Antigua und Barbuda, Argentinien, Armenien, Aruba, Aserbaidschan, Australien, Bahamas, Bahrain, Bangladesch, Barbados, Belarus, Belgien, Belize, Benin, die Bermudas, Bhutan, Bolivien, Bosnien und Herzegowina, Botsuana, Bouvetinsel, Brasilien, Britische Jungferninseln, Britisches Territorium im Indischen Ozean, Brunei Darussalam, Bulgarien, Burkina Faso, Burundi, Chile, China, Cookinseln, Costa Rica, Dänemark, Demokratische Republik Kongo, Demokratische Volksrepublik Korea, Deutschland, Dominica, Dominikanische Republik, Dschibuti, Ecuador, El Salvador, Eritrea, Estland, Färöer, Falklandinseln, Fidschi, Finnland, Frankreich, Französisch-Guayana, Französisch-Polynesien, Französische Gebiete im südlichen Indischen Ozean, Gabun, Gambia, Georgien, Ghana, Gibraltar, Grönland, Grenada, Griechenland, Guadeloupe, Guam, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard und McDonaldinseln, Honduras, Hongkong, Indien, Indonesien, Irak, Iran, Irland, Island, Israel, Italien, Jamaika, Japan, Jemen, Jordanien, Jugoslawien, Kaimaninseln, Kambodscha, Kamerun, Kanada, Kap Verde, Kasachstan, Katar, Kenia, Kirgisistan, Kiribati, Kleinere amerikanische Überseeinseln, Kokosinseln, Kolumbien, Komoren, Kongo, Kroatien, Kuba, Kuwait, Laos, Lesotho, Lettland, Libanon, Liberia, Libyen, Liechtenstein, Litauen, Luxemburg, Macau, Madagaskar, Malawi, Malaysia, Malediven, Mali, Malta, ehemalige jugoslawische Republik Mazedonien, Marokko, Marshallinseln, Martinique, Mauretanien, Mauritius, Mayotte, Mexiko, Mikronesien, Monaco, Mongolei, Montserrat, Mosambik, Myanmar, Nördliche Marianen, Namibia, Nauru, Nepal, Neukaledonien, Neuseeland, Nicaragua, Niederländische Antillen, Niederlande, Niger, Nigeria, Niue, Norfolkinsel, Norwegen, Oman, Osttimor, Pakistan, Palau, Panama, Papua-Neuguinea, Paraguay, Peru, Philippinen, Pitcairninseln, Polen, Portugal, Puerto Rico, Réunion, Republik Korea, Republik Moldau, Ruanda, Rumänien, Russische Föderation, São Tomé und Príncipe, Südafrika, Südgeorgien und Südliche Sandwichinseln, Salomonen, Sambia, Samoa, San Marino, Saudi-Arabien, Schweden, Schweiz, Senegal, Seychellen, Sierra Leone, Simbabwe, Singapur, Slowakei, Slowenien, Somalien, Spanien, Sri Lanka, St. Helena, St. Kitts und Nevis, St. Lucia, St. Pierre und Miquelon, St. Vincent und die Grenadinen, Sudan, Surinam, Svalbard und Jan Mayen, Swasiland, Syrien, Türkei, Tadschikistan, Taiwan, Tansania, Thailand, Togo, Tokelau, Tonga, Trinidad und Tobago, Tschad, Tschechische Republik, Tunesien, Turkmenistan, Turks- und Caicosinseln, Tuvalu, Uganda, Ukraine, Ungarn, Uruguay, Usbekistan, Vanuatu, Vatikanstadt, Venezuela, Vereinigte Arabische Emirate, Vereinigte Staaten, Vereinigtes Königreich, Vietnam, Wallis und Futuna, Weihnachtsinsel, Westsahara, Zentralafrikanische Republik, Zypern] + street_root: [Ahorn, Ahorngasse (St. Andrä), Alleestraße (Poysbrunn), Alpenlandstraße, Alte Poststraße, Alte Ufergasse, Am Kronawett (Hagenbrunn), Am Mühlwasser, Am Rebenhang, Am Sternweg, Anton Wildgans-Straße, Auer-von-Welsbach-Weg, Auf der Stift, Aufeldgasse, Bahngasse, Bahnhofstraße, Bahnstraße (Gerhaus), Basteigasse, Berggasse, Bergstraße, Birkenweg, Blasiussteig, Blattur, Bruderhofgasse, Brunnelligasse, Bühelweg, Darnautgasse, Donaugasse, Dorfplatz (Haselbach), Dr.-Oberreiter-Straße, Dr.Karl Holoubek-Str., Drautal Bundesstraße, Dürnrohrer Straße, Ebenthalerstraße, Eckgrabenweg, Erlenstraße, Erlenweg, Eschenweg, Etrichgasse, Fassergasse, Feichteggerwiese, Feld-Weg, Feldgasse, Feldstapfe, Fischpointweg, Flachbergstraße, Flurweg, Franz Schubert-Gasse, Franz-Schneeweiß-Weg, Franz-von-Assisi-Straße, Fritz-Pregl-Straße, Fuchsgrubenweg, Födlerweg, Föhrenweg, Fünfhaus (Paasdorf), Gabelsbergerstraße, Gartenstraße, Geigen, Geigergasse, Gemeindeaugasse, Gemeindeplatz, Georg-Aichinger-Straße, Glanfeldbachweg, Graben (Burgauberg), Grub, Gröretgasse, Grünbach, Gösting, Hainschwang, Hans-Mauracher-Straße, Hart, Teichstraße, Hauptplatz, Hauptstraße, Heideweg, Heinrich Landauer Gasse, Helenengasse, Hermann von Gilmweg, Hermann-Löns-Gasse, Herminengasse, Hernstorferstraße, Hirsdorf, Hochfeistritz, Hochhaus Neue Donau, Hof, Hussovits Gasse, Höggen, Hütten, Janzgasse, Jochriemgutstraße, Johann-Strauß-Gasse, Julius-Raab-Straße, Kahlenberger Straße, Karl Kraft-Straße, Kegelprielstraße, Keltenberg-Eponaweg, Kennedybrücke, Kerpelystraße, Kindergartenstraße, Kinderheimgasse, Kirchenplatz, Kirchweg, Klagenfurter Straße, Klamm, Kleinbaumgarten, Klingergasse, Koloniestraße, Konrad-Duden-Gasse, Krankenhausstraße, Kubinstraße, Köhldorfergasse, Lackenweg, Lange Mekotte, Leifling, Leopold Frank-Straße (Pellendorf), Lerchengasse (Pirka), Lichtensternsiedlung V, Lindenhofstraße, Lindenweg, Luegstraße, Maierhof, Malerweg, Mitterweg, Mittlere Hauptstraße, Moosbachgasse, Morettigasse, Musikpavillon Riezlern, Mühlboden, Mühle, Mühlenweg, Neustiftgasse, Niederegg, Niedergams, Nordwestbahnbrücke, Oberbödenalm, Obere Berggasse, Oedt, Am Färberberg, Ottogasse, Paul Peters-Gasse, Perspektivstraße, Poppichl, Privatweg, Prixgasse, Pyhra, Radetzkystraße, Raiden, Reichensteinstraße, Reitbauernstraße, Reiterweg, Reitschulgasse, Ringweg, Rupertistraße, Römerstraße, Römerweg, Sackgasse, Schaunbergerstraße, Schloßweg, Schulgasse (Langeck), Schönholdsiedlung, Seeblick, Seestraße, Semriacherstraße, Simling, Sipbachzeller Straße, Sonnenweg, Spargelfeldgasse, Spiesmayrweg, Sportplatzstraße, St.Ulrich, Steilmannstraße, Steingrüneredt, Strassfeld, Straßerau, Stöpflweg, Stüra, Taferngasse, Tennweg, Thomas Koschat-Gasse, Tiroler Straße, Torrogasse, Uferstraße (Schwarzau am Steinfeld), Unterdörfl, Unterer Sonnrainweg, Verwaltersiedlung, Waldhang, Wasen, Weidenstraße, Weiherweg, Wettsteingasse, Wiener Straße, Windisch, Zebragasse, Zellerstraße, Ziehrerstraße, Zulechnerweg, Zwergjoch, Ötzbruck] + building_number: ['###', '##', '#', '##a', '##b', '##c'] + secondary_address: ['Apt. ###', 'Zimmer ###', '# OG'] + postcode: ['####'] + state: [Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien] + state_abbr: [Bgld., Ktn., NÖ, OÖ, Sbg., Stmk., T, Vbg., W] + city_name: [Aigen im Mühlkreis, Allerheiligen bei Wildon, Altenfelden, Arriach, Axams, Baumgartenberg, Bergern im Dunkelsteinerwald, Berndorf bei Salzburg, Bregenz, Breitenbach am Inn, Deutsch-Wagram, Dienten am Hochkönig, Dietach, Dornbirn, Dürnkrut, Eben im Pongau, Ebenthal in Kärnten, Eichgraben, Eisenstadt, Ellmau, Feistritz am Wechsel, Finkenberg, Fiss, Frantschach-St. Gertraud, Fritzens, Gams bei Hieflau, Geiersberg, Graz, Großhöflein, Gößnitz, Hartl, Hausleiten, Herzogenburg, Hinterhornbach, Hochwolkersdorf, Ilz, Ilztal, Innerbraz, Innsbruck, Itter, Jagerberg, Jeging, Johnsbach, Johnsdorf-Brunn, Jungholz, Kirchdorf am Inn, Klagenfurt, Kottes-Purk, Krumau am Kamp, Krumbach, Lavamünd, Lech, Linz, Ludesch, Lödersdorf, Marbach an der Donau, Mattsee, Mautern an der Donau, Mauterndorf, Mitterbach am Erlaufsee, Neudorf bei Passail, Neudorf bei Staatz, Neukirchen an der Enknach, Neustift an der Lafnitz, Niederleis, Oberndorf in Tirol, Oberstorcha, Oberwaltersdorf, Oed-Oehling, Ort im Innkreis, Pilgersdorf, Pitschgau, Pollham, Preitenegg, Purbach am Neusiedler See, Rabenwald, Raiding, Rastenfeld, Ratten, Rettenegg, Salzburg, Sankt Johann im Saggautal, St. Peter am Kammersberg, St. Pölten, St. Veit an der Glan, Taxenbach, Tragwein, Trebesing, Trieben, Turnau, Ungerdorf, Unterauersbach, Unterstinkenbrunn, Untertilliach, Uttendorf, Vals, Velden am Wörther See, Viehhofen, Villach, Vitis, Waidhofen an der Thaya, Waldkirchen am Wesen, Weißkirchen an der Traun, Wien, Wimpassing im Schwarzatale, Ybbs an der Donau, Ybbsitz, Yspertal, Zeillern, Zell am Pettenfirst, Zell an der Pram, Zerlach, Zwölfaxing, Öblarn, Übelbach, Überackern, Übersaxen, Übersbach] + city: + - "#{city_name}" + street_name: + - "#{street_root}" + street_address: + - "#{street_name} #{building_number}" + default_country: [Österreich] + + company: + suffix: [GmbH, AG, Gruppe, KG, GmbH & Co. KG, UG, OHG] + legal_form: [GmbH, AG, Gruppe, KG, GmbH & Co. KG, UG, OHG] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} und #{Name.last_name}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, info, name, net, org, de, ch, at] + + name: + first_name: [Aaron, Abdul, Abdullah, Adam, Adrian, Adriano, Ahmad, Ahmed, Ahmet, Alan, Albert, Alessandro, Alessio, Alex, Alexander, Alfred, Ali, Amar, Amir, Amon, Andre, Andreas, Andrew, Angelo, Ansgar, Anthony, Anton, Antonio, Arda, Arian, Armin, Arne, Arno, Arthur, Artur, Arved, Arvid, Ayman, Baran, Baris, Bastian, Batuhan, Bela, Ben, Benedikt, Benjamin, Bennet, Bennett, Benno, Bent, Berat, Berkay, Bernd, Bilal, Bjarne, Björn, Bo, Boris, Brandon, Brian, Bruno, Bryan, Burak, Calvin, Can, Carl, Carlo, Carlos, Caspar, Cedric, Cedrik, Cem, Charlie, Chris, Christian, Christiano, Christoph, Christopher, Claas, Clemens, Colin, Collin, Conner, Connor, Constantin, Corvin, Curt, Damian, Damien, Daniel, Danilo, Danny, Darian, Dario, Darius, Darren, David, Davide, Davin, Dean, Deniz, Dennis, Denny, Devin, Diego, Dion, Domenic, Domenik, Dominic, Dominik, Dorian, Dustin, Dylan, Ecrin, Eddi, Eddy, Edgar, Edwin, Efe, Ege, Elia, Eliah, Elias, Elijah, Emanuel, Emil, Emilian, Emilio, Emir, Emirhan, Emre, Enes, Enno, Enrico, Eren, Eric, Erik, Etienne, Fabian, Fabien, Fabio, Fabrice, Falk, Felix, Ferdinand, Fiete, Filip, Finlay, Finley, Finn, Finnley, Florian, Francesco, Franz, Frederic, Frederick, Frederik, Friedrich, Fritz, Furkan, Fynn, Gabriel, Georg, Gerrit, Gian, Gianluca, Gino, Giuliano, Giuseppe, Gregor, Gustav, Hagen, Hamza, Hannes, Hanno, Hans, Hasan, Hassan, Hauke, Hendrik, Hennes, Henning, Henri, Henrick, Henrik, Henry, Hugo, Hussein, Ian, Ibrahim, Ilias, Ilja, Ilyas, Immanuel, Ismael, Ismail, Ivan, Iven, Jack, Jacob, Jaden, Jakob, Jamal, James, Jamie, Jan, Janek, Janis, Janne, Jannek, Jannes, Jannik, Jannis, Jano, Janosch, Jared, Jari, Jarne, Jarno, Jaron, Jason, Jasper, Jay, Jayden, Jayson, Jean, Jens, Jeremias, Jeremie, Jeremy, Jermaine, Jerome, Jesper, Jesse, Jim, Jimmy, Joe, Joel, Joey, Johann, Johannes, John, Johnny, Jon, Jona, Jonah, Jonas, Jonathan, Jonte, Joost, Jordan, Joris, Joscha, Joschua, Josef, Joseph, Josh, Joshua, Josua, Juan, Julian, Julien, Julius, Juri, Justin, Justus, Kaan, Kai, Kalle, Karim, Karl, Karlo, Kay, Keanu, Kenan, Kenny, Keno, Kerem, Kerim, Kevin, Kian, Kilian, Kim, Kimi, Kjell, Klaas, Klemens, Konrad, Konstantin, Koray, Korbinian, Kurt, Lars, Lasse, Laurence, Laurens, Laurenz, Laurin, Lean, Leander, Leandro, Leif, Len, Lenn, Lennard, Lennart, Lennert, Lennie, Lennox, Lenny, Leo, Leon, Leonard, Leonardo, Leonhard, Leonidas, Leopold, Leroy, Levent, Levi, Levin, Lewin, Lewis, Liam, Lian, Lias, Lino, Linus, Lio, Lion, Lionel, Logan, Lorenz, Lorenzo, Loris, Louis, Luan, Luc, Luca, Lucas, Lucian, Lucien, Ludwig, Luis, Luiz, Luk, Luka, Lukas, Luke, Lutz, Maddox, Mads, Magnus, Maik, Maksim, Malik, Malte, Manuel, Marc, Marcel, Marco, Marcus, Marek, Marian, Mario, Marius, Mark, Marko, Markus, Marlo, Marlon, Marten, Martin, Marvin, Marwin, Mateo, Mathis, Matis, Mats, Matteo, Mattes, Matthias, Matthis, Matti, Mattis, Maurice, Max, Maxim, Maximilian, Mehmet, Meik, Melvin, Merlin, Mert, Michael, Michel, Mick, Miguel, Mika, Mikail, Mike, Milan, Milo, Mio, Mirac, Mirco, Mirko, Mohamed, Mohammad, Mohammed, Moritz, Morten, Muhammed, Murat, Mustafa, Nathan, Nathanael, Nelson, Neo, Nevio, Nick, Niclas, Nico, Nicolai, Nicolas, Niels, Nikita, Niklas, Niko, Nikolai, Nikolas, Nils, Nino, Noah, Noel, Norman, Odin, Oke, Ole, Oliver, Omar, Onur, Oscar, Oskar, Pascal, Patrice, Patrick, Paul, Peer, Pepe, Peter, Phil, Philip, Philipp, Pierre, Piet, Pit, Pius, Quentin, Quirin, Rafael, Raik, Ramon, Raphael, Rasmus, Raul, Rayan, René, Ricardo, Riccardo, Richard, Rick, Rico, Robert, Robin, Rocco, Roman, Romeo, Ron, Ruben, Ryan, Said, Salih, Sam, Sami, Sammy, Samuel, Sandro, Santino, Sascha, Sean, Sebastian, Selim, Semih, Shawn, Silas, Simeon, Simon, Sinan, Sky, Stefan, Steffen, Stephan, Steve, Steven, Sven, Sönke, Sören, Taha, Tamino, Tammo, Tarik, Tayler, Taylor, Teo, Theo, Theodor, Thies, Thilo, Thomas, Thorben, Thore, Thorge, Tiago, Til, Till, Tillmann, Tim, Timm, Timo, Timon, Timothy, Tino, Titus, Tizian, Tjark, Tobias, Tom, Tommy, Toni, Tony, Torben, Tore, Tristan, Tyler, Tyron, Umut, Valentin, Valentino, Veit, Victor, Viktor, Vin, Vincent, Vito, Vitus, Wilhelm, Willi, William, Willy, Xaver, Yannic, Yannick, Yannik, Yannis, Yasin, Youssef, Yunus, Yusuf, Yven, Yves, Ömer, Aaliyah, Abby, Abigail, Ada, Adelina, Adriana, Aileen, Aimee, Alana, Alea, Alena, Alessa, Alessia, Alexa, Alexandra, Alexia, Alexis, Aleyna, Alia, Alica, Alice, Alicia, Alina, Alisa, Alisha, Alissa, Aliya, Aliyah, Allegra, Alma, Alyssa, Amalia, Amanda, Amelia, Amelie, Amina, Amira, Amy, Ana, Anabel, Anastasia, Andrea, Angela, Angelina, Angelique, Anja, Ann, Anna, Annabel, Annabell, Annabelle, Annalena, Anne, Anneke, Annelie, Annemarie, Anni, Annie, Annika, Anny, Anouk, Antonia, Arda, Ariana, Ariane, Arwen, Ashley, Asya, Aurelia, Aurora, Ava, Ayleen, Aylin, Ayse, Azra, Betty, Bianca, Bianka, Caitlin, Cara, Carina, Carla, Carlotta, Carmen, Carolin, Carolina, Caroline, Cassandra, Catharina, Catrin, Cecile, Cecilia, Celia, Celina, Celine, Ceyda, Ceylin, Chantal, Charleen, Charlotta, Charlotte, Chayenne, Cheyenne, Chiara, Christin, Christina, Cindy, Claire, Clara, Clarissa, Colleen, Collien, Cora, Corinna, Cosima, Dana, Daniela, Daria, Darleen, Defne, Delia, Denise, Diana, Dilara, Dina, Dorothea, Ecrin, Eda, Eileen, Ela, Elaine, Elanur, Elea, Elena, Eleni, Eleonora, Eliana, Elif, Elina, Elisa, Elisabeth, Ella, Ellen, Elli, Elly, Elsa, Emelie, Emely, Emilia, Emilie, Emily, Emma, Emmely, Emmi, Emmy, Enie, Enna, Enya, Esma, Estelle, Esther, Eva, Evelin, Evelina, Eveline, Evelyn, Fabienne, Fatima, Fatma, Felicia, Felicitas, Felina, Femke, Fenja, Fine, Finia, Finja, Finnja, Fiona, Flora, Florentine, Francesca, Franka, Franziska, Frederike, Freya, Frida, Frieda, Friederike, Giada, Gina, Giulia, Giuliana, Greta, Hailey, Hana, Hanna, Hannah, Heidi, Helen, Helena, Helene, Helin, Henriette, Henrike, Hermine, Ida, Ilayda, Imke, Ina, Ines, Inga, Inka, Irem, Isa, Isabel, Isabell, Isabella, Isabelle, Ivonne, Jacqueline, Jamie, Jamila, Jana, Jane, Janin, Janina, Janine, Janna, Janne, Jara, Jasmin, Jasmina, Jasmine, Jella, Jenna, Jennifer, Jenny, Jessica, Jessy, Jette, Jil, Jill, Joana, Joanna, Joelina, Joeline, Joelle, Johanna, Joleen, Jolie, Jolien, Jolin, Jolina, Joline, Jona, Jonah, Jonna, Josefin, Josefine, Josephin, Josephine, Josie, Josy, Joy, Joyce, Judith, Judy, Jule, Julia, Juliana, Juliane, Julie, Julienne, Julika, Julina, Juna, Justine, Kaja, Karina, Karla, Karlotta, Karolina, Karoline, Kassandra, Katarina, Katharina, Kathrin, Katja, Katrin, Kaya, Kayra, Kiana, Kiara, Kim, Kimberley, Kimberly, Kira, Klara, Korinna, Kristin, Kyra, Laila, Lana, Lara, Larissa, Laura, Laureen, Lavinia, Lea, Leah, Leana, Leandra, Leann, Lee, Leila, Lena, Lene, Leni, Lenia, Lenja, Lenya, Leona, Leoni, Leonie, Leonora, Leticia, Letizia, Levke, Leyla, Lia, Liah, Liana, Lili, Lilia, Lilian, Liliana, Lilith, Lilli, Lillian, Lilly, Lily, Lina, Linda, Lindsay, Line, Linn, Linnea, Lisa, Lisann, Lisanne, Liv, Livia, Liz, Lola, Loreen, Lorena, Lotta, Lotte, Louisa, Louise, Luana, Luca, Lucia, Lucie, Lucienne, Lucy, Luisa, Luise, Luka, Luna, Luzie, Lya, Lydia, Lyn, Lynn, Madeleine, Madita, Madleen, Madlen, Magdalena, Maike, Mailin, Maira, Maja, Malena, Malia, Malin, Malina, Mandy, Mara, Marah, Mareike, Maren, Maria, Mariam, Marie, Marieke, Mariella, Marika, Marina, Marisa, Marissa, Marit, Marla, Marleen, Marlen, Marlena, Marlene, Marta, Martha, Mary, Maryam, Mathilda, Mathilde, Matilda, Maxi, Maxima, Maxine, Maya, Mayra, Medina, Medine, Meike, Melanie, Melek, Melike, Melina, Melinda, Melis, Melisa, Melissa, Merle, Merve, Meryem, Mette, Mia, Michaela, Michelle, Mieke, Mila, Milana, Milena, Milla, Mina, Mira, Miray, Miriam, Mirja, Mona, Monique, Nadine, Nadja, Naemi, Nancy, Naomi, Natalia, Natalie, Nathalie, Neele, Nela, Nele, Nelli, Nelly, Nia, Nicole, Nika, Nike, Nikita, Nila, Nina, Nisa, Noemi, Nora, Olivia, Patricia, Patrizia, Paula, Paulina, Pauline, Penelope, Philine, Phoebe, Pia, Rahel, Rania, Rebecca, Rebekka, Riana, Rieke, Rike, Romina, Romy, Ronja, Rosa, Rosalie, Ruby, Sabrina, Sahra, Sally, Salome, Samantha, Samia, Samira, Sandra, Sandy, Sanja, Saphira, Sara, Sarah, Saskia, Selin, Selina, Selma, Sena, Sidney, Sienna, Silja, Sina, Sinja, Smilla, Sofia, Sofie, Sonja, Sophia, Sophie, Soraya, Stefanie, Stella, Stephanie, Stina, Sude, Summer, Susanne, Svea, Svenja, Sydney, Tabea, Talea, Talia, Tamara, Tamia, Tamina, Tanja, Tara, Tarja, Teresa, Tessa, Thalea, Thalia, Thea, Theresa, Tia, Tina, Tomke, Tuana, Valentina, Valeria, Valerie, Vanessa, Vera, Veronika, Victoria, Viktoria, Viola, Vivian, Vivien, Vivienne, Wibke, Wiebke, Xenia, Yara, Yaren, Yasmin, Ylvi, Ylvie, Yvonne, Zara, Zehra, Zeynep, Zoe, Zoey, Zoé] + last_name: [Abel, Abicht, Abraham, Abramovic, Abt, Achilles, Achkinadze, Ackermann, Adam, Adams, Ade, Agostini, Ahlke, Ahrenberg, Ahrens, Aigner, Albert, Albrecht, Alexa, Alexander, Alizadeh, Allgeyer, Amann, Amberg, Anding, Anggreny, Apitz, Arendt, Arens, Arndt, Aryee, Aschenbroich, Assmus, Astafei, Auer, Axmann, Baarck, Bachmann, Badane, Bader, Baganz, Bahl, Bak, Balcer, Balck, Balkow, Balnuweit, Balzer, Banse, Barr, Bartels, Barth, Barylla, Baseda, Battke, Bauer, Bauermeister, Baumann, Baumeister, Bauschinger, Bauschke, Bayer, Beavogui, Beck, Beckel, Becker, Beckmann, Bedewitz, Beele, Beer, Beggerow, Beh, Behr, Behrenbruch, Belz, Bender, Benecke, Benner, Benninger, Benzing, Berends, Berger, Berner, Berning, Bertenbreiter, Best, Bethke, Betz, Beushausen, Beutelspacher, Beyer, Biba, Bichler, Bickel, Biedermann, Bieler, Bielert, Bienasch, Bienias, Biesenbach, Bigdeli, Birkemeyer, Bittner, Blank, Blaschek, Blassneck, Bloch, Blochwitz, Blockhaus, Blum, Blume, Bock, Bode, Bogdashin, Bogenrieder, Bohge, Bolm, Borgschulze, Bork, Bormann, Bornscheuer, Borrmann, Borsch, Boruschewski, Bos, Bosler, Bourrouag, Bouschen, Boxhammer, Boyde, Bozsik, Brand, Brandenburg, Brandis, Brandt, Brauer, Braun, Brehmer, Breitenstein, Bremer, Bremser, Brenner, Brettschneider, Breu, Breuer, Briesenick, Bringmann, Brinkmann, Brix, Broening, Brosch, Bruckmann, Bruder, Bruhns, Brunner, Bruns, Bräutigam, Brömme, Brüggmann, Buchholz, Buchrucker, Buder, Bultmann, Bunjes, Burger, Burghagen, Burkhard, Burkhardt, Burmeister, Busch, Buschbaum, Busemann, Buss, Busse, Bussmann, Byrd, Bäcker, Böhm, Bönisch, Börgeling, Börner, Böttner, Büchele, Bühler, Büker, Büngener, Bürger, Bürklein, Büscher, Büttner, Camara, Carlowitz, Carlsohn, Caspari, Caspers, Chapron, Christ, Cierpinski, Clarius, Cleem, Cleve, Co, Conrad, Cordes, Cornelsen, Cors, Cotthardt, Crews, Cronjäger, Crosskofp, Da, Dahm, Dahmen, Daimer, Damaske, Danneberg, Danner, Daub, Daubner, Daudrich, Dauer, Daum, Dauth, Dautzenberg, De, Decker, Deckert, Deerberg, Dehmel, Deja, Delonge, Demut, Dengler, Denner, Denzinger, Derr, Dertmann, Dethloff, Deuschle, Dieckmann, Diedrich, Diekmann, Dienel, Dies, Dietrich, Dietz, Dietzsch, Diezel, Dilla, Dingelstedt, Dippl, Dittmann, Dittmar, Dittmer, Dix, Dobbrunz, Dobler, Dohring, Dolch, Dold, Dombrowski, Donie, Doskoczynski, Dragu, Drechsler, Drees, Dreher, Dreier, Dreissigacker, Dressler, Drews, Duma, Dutkiewicz, Dyett, Dylus, Dächert, Döbel, Döring, Dörner, Dörre, Dück, Eberhard, Eberhardt, Ecker, Eckhardt, Edorh, Effler, Eggenmueller, Ehm, Ehmann, Ehrig, Eich, Eichmann, Eifert, Einert, Eisenlauer, Ekpo, Elbe, Eleyth, Elss, Emert, Emmelmann, Ender, Engel, Engelen, Engelmann, Eplinius, Erdmann, Erhardt, Erlei, Erm, Ernst, Ertl, Erwes, Esenwein, Esser, Evers, Everts, Ewald, Fahner, Faller, Falter, Farber, Fassbender, Faulhaber, Fehrig, Feld, Felke, Feller, Fenner, Fenske, Feuerbach, Fietz, Figl, Figura, Filipowski, Filsinger, Fincke, Fink, Finke, Fischer, Fitschen, Fleischer, Fleischmann, Floder, Florczak, Flore, Flottmann, Forkel, Forst, Frahmeke, Frank, Franke, Franta, Frantz, Franz, Franzis, Franzmann, Frauen, Frauendorf, Freigang, Freimann, Freimuth, Freisen, Frenzel, Frey, Fricke, Fried, Friedek, Friedenberg, Friedmann, Friedrich, Friess, Frisch, Frohn, Frosch, Fuchs, Fuhlbrügge, Fusenig, Fust, Förster, Gaba, Gabius, Gabler, Gadschiew, Gakstädter, Galander, Gamlin, Gamper, Gangnus, Ganzmann, Garatva, Gast, Gastel, Gatzka, Gauder, Gebhardt, Geese, Gehre, Gehrig, Gehring, Gehrke, Geiger, Geisler, Geissler, Gelling, Gens, Gerbennow, Gerdel, Gerhardt, Gerschler, Gerson, Gesell, Geyer, Ghirmai, Ghosh, Giehl, Gierisch, Giesa, Giesche, Gilde, Glatting, Goebel, Goedicke, Goldbeck, Goldfuss, Goldkamp, Goldkühle, Goller, Golling, Gollnow, Golomski, Gombert, Gotthardt, Gottschalk, Gotz, Goy, Gradzki, Graf, Grams, Grasse, Gratzky, Grau, Greb, Green, Greger, Greithanner, Greschner, Griem, Griese, Grimm, Gromisch, Gross, Grosser, Grossheim, Grosskopf, Grothaus, Grothkopp, Grotke, Grube, Gruber, Grundmann, Gruning, Gruszecki, Gröss, Grötzinger, Grün, Grüner, Gummelt, Gunkel, Gunther, Gutjahr, Gutowicz, Gutschank, Göbel, Göckeritz, Göhler, Görlich, Görmer, Götz, Götzelmann, Güldemeister, Günther, Günz, Gürbig, Haack, Haaf, Habel, Hache, Hackbusch, Hackelbusch, Hadfield, Hadwich, Haferkamp, Hahn, Hajek, Hallmann, Hamann, Hanenberger, Hannecker, Hanniske, Hansen, Hardy, Hargasser, Harms, Harnapp, Harter, Harting, Hartlieb, Hartmann, Hartwig, Hartz, Haschke, Hasler, Hasse, Hassfeld, Haug, Hauke, Haupt, Haverney, Heberstreit, Hechler, Hecht, Heck, Hedermann, Hehl, Heidelmann, Heidler, Heinemann, Heinig, Heinke, Heinrich, Heinze, Heiser, Heist, Hellmann, Helm, Helmke, Helpling, Hengmith, Henkel, Hennes, Henry, Hense, Hensel, Hentel, Hentschel, Hentschke, Hepperle, Herberger, Herbrand, Hering, Hermann, Hermecke, Herms, Herold, Herrmann, Herschmann, Hertel, Herweg, Herwig, Herzenberg, Hess, Hesse, Hessek, Hessler, Hetzler, Heuck, Heydemüller, Hiebl, Hildebrand, Hildenbrand, Hilgendorf, Hillard, Hiller, Hingsen, Hingst, Hinrichs, Hirsch, Hirschberg, Hirt, Hodea, Hoffman, Hoffmann, Hofmann, Hohenberger, Hohl, Hohn, Hohnheiser, Hold, Holdt, Holinski, Holl, Holtfreter, Holz, Holzdeppe, Holzner, Hommel, Honz, Hooss, Hoppe, Horak, Horn, Horna, Hornung, Hort, Howard, Huber, Huckestein, Hudak, Huebel, Hugo, Huhn, Hujo, Huke, Huls, Humbert, Huneke, Huth, Häber, Häfner, Höcke, Höft, Höhne, Hönig, Hördt, Hübenbecker, Hübl, Hübner, Hügel, Hüttcher, Hütter, Ibe, Ihly, Illing, Isak, Isekenmeier, Itt, Jacob, Jacobs, Jagusch, Jahn, Jahnke, Jakobs, Jakubczyk, Jambor, Jamrozy, Jander, Janich, Janke, Jansen, Jarets, Jaros, Jasinski, Jasper, Jegorov, Jellinghaus, Jeorga, Jerschabek, Jess, John, Jonas, Jossa, Jucken, Jung, Jungbluth, Jungton, Just, Jürgens, Kaczmarek, Kaesmacher, Kahl, Kahlert, Kahles, Kahlmeyer, Kaiser, Kalinowski, Kallabis, Kallensee, Kampf, Kampschulte, Kappe, Kappler, Karhoff, Karrass, Karst, Karsten, Karus, Kass, Kasten, Kastner, Katzinski, Kaufmann, Kaul, Kausemann, Kawohl, Kazmarek, Kedzierski, Keil, Keiner, Keller, Kelm, Kempe, Kemper, Kempter, Kerl, Kern, Kesselring, Kesselschläger, Kette, Kettenis, Keutel, Kick, Kiessling, Kinadeter, Kinzel, Kinzy, Kirch, Kirst, Kisabaka, Klaas, Klabuhn, Klapper, Klauder, Klaus, Kleeberg, Kleiber, Klein, Kleinert, Kleininger, Kleinmann, Kleinsteuber, Kleiss, Klemme, Klimczak, Klinger, Klink, Klopsch, Klose, Kloss, Kluge, Kluwe, Knabe, Kneifel, Knetsch, Knies, Knippel, Knobel, Knoblich, Knoll, Knorr, Knorscheidt, Knut, Kobs, Koch, Kochan, Kock, Koczulla, Koderisch, Koehl, Koehler, Koenig, Koester, Kofferschlager, Koha, Kohle, Kohlmann, Kohnle, Kohrt, Koj, Kolb, Koleiski, Kolokas, Komoll, Konieczny, Konig, Konow, Konya, Koob, Kopf, Kosenkow, Koster, Koszewski, Koubaa, Kovacs, Kowalick, Kowalinski, Kozakiewicz, Krabbe, Kraft, Kral, Kramer, Krauel, Kraus, Krause, Krauspe, Kreb, Krebs, Kreissig, Kresse, Kreutz, Krieger, Krippner, Krodinger, Krohn, Krol, Kron, Krueger, Krug, Kruger, Krull, Kruschinski, Krämer, Kröckert, Kröger, Krüger, Kubera, Kufahl, Kuhlee, Kuhnen, Kulimann, Kulma, Kumbernuss, Kummle, Kunz, Kupfer, Kupprion, Kuprion, Kurnicki, Kurrat, Kurschilgen, Kuschewitz, Kuschmann, Kuske, Kustermann, Kutscherauer, Kutzner, Kwadwo, Kähler, Käther, Köhler, Köhrbrück, Köhre, Kölotzei, König, Köpernick, Köseoglu, Kúhn, Kúhnert, Kühn, Kühnel, Kühnemund, Kühnert, Kühnke, Küsters, Küter, Laack, Lack, Ladewig, Lakomy, Lammert, Lamos, Landmann, Lang, Lange, Langfeld, Langhirt, Lanig, Lauckner, Lauinger, Laurén, Lausecker, Laux, Laws, Lax, Leberer, Lehmann, Lehner, Leibold, Leide, Leimbach, Leipold, Leist, Leiter, Leiteritz, Leitheim, Leiwesmeier, Lenfers, Lenk, Lenz, Lenzen, Leo, Lepthin, Lesch, Leschnik, Letzelter, Lewin, Lewke, Leyckes, Lg, Lichtenfeld, Lichtenhagen, Lichtl, Liebach, Liebe, Liebich, Liebold, Lieder, Lienshöft, Linden, Lindenberg, Lindenmayer, Lindner, Linke, Linnenbaum, Lippe, Lipske, Lipus, Lischka, Lobinger, Logsch, Lohmann, Lohre, Lohse, Lokar, Loogen, Lorenz, Losch, Loska, Lott, Loy, Lubina, Ludolf, Lufft, Lukoschek, Lutje, Lutz, Löser, Löwa, Lübke, Maak, Maczey, Madetzky, Madubuko, Mai, Maier, Maisch, Malek, Malkus, Mallmann, Malucha, Manns, Manz, Marahrens, Marchewski, Margis, Markowski, Marl, Marner, Marquart, Marschek, Martel, Marten, Martin, Marx, Marxen, Mathes, Mathies, Mathiszik, Matschke, Mattern, Matthes, Matula, Mau, Maurer, Mauroff, May, Maybach, Mayer, Mebold, Mehl, Mehlhorn, Mehlorn, Meier, Meisch, Meissner, Meloni, Melzer, Menga, Menne, Mensah, Mensing, Merkel, Merseburg, Mertens, Mesloh, Metzger, Metzner, Mewes, Meyer, Michallek, Michel, Mielke, Mikitenko, Milde, Minah, Mintzlaff, Mockenhaupt, Moede, Moedl, Moeller, Moguenara, Mohr, Mohrhard, Molitor, Moll, Moller, Molzan, Montag, Moormann, Mordhorst, Morgenstern, Morhelfer, Moritz, Moser, Motchebon, Motzenbbäcker, Mrugalla, Muckenthaler, Mues, Muller, Mulrain, Mächtig, Mäder, Möcks, Mögenburg, Möhsner, Möldner, Möllenbeck, Möller, Möllinger, Mörsch, Mühleis, Müller, Münch, Nabein, Nabow, Nagel, Nannen, Nastvogel, Nau, Naubert, Naumann, Ne, Neimke, Nerius, Neubauer, Neubert, Neuendorf, Neumair, Neumann, Neupert, Neurohr, Neuschwander, Newton, Ney, Nicolay, Niedermeier, Nieklauson, Niklaus, Nitzsche, Noack, Nodler, Nolte, Normann, Norris, Northoff, Nowak, Nussbeck, Nwachukwu, Nytra, Nöh, Oberem, Obergföll, Obermaier, Ochs, Oeser, Olbrich, Onnen, Ophey, Oppong, Orth, Orthmann, Oschkenat, Osei, Osenberg, Ostendarp, Ostwald, Otte, Otto, Paesler, Pajonk, Pallentin, Panzig, Paschke, Patzwahl, Paukner, Peselman, Peter, Peters, Petzold, Pfeiffer, Pfennig, Pfersich, Pfingsten, Pflieger, Pflügner, Philipp, Pichlmaier, Piesker, Pietsch, Pingpank, Pinnock, Pippig, Pitschugin, Plank, Plass, Platzer, Plauk, Plautz, Pletsch, Plotzitzka, Poehn, Poeschl, Pogorzelski, Pohl, Pohland, Pohle, Polifka, Polizzi, Pollmächer, Pomp, Ponitzsch, Porsche, Porth, Poschmann, Poser, Pottel, Prah, Prange, Prediger, Pressler, Preuk, Preuss, Prey, Priemer, Proske, Pusch, Pöche, Pöge, Raabe, Rabenstein, Rach, Radtke, Rahn, Ranftl, Rangen, Ranz, Rapp, Rath, Rau, Raubuch, Raukuc, Rautenkranz, Rehwagen, Reiber, Reichardt, Reichel, Reichling, Reif, Reifenrath, Reimann, Reinberg, Reinelt, Reinhardt, Reinke, Reitze, Renk, Rentz, Renz, Reppin, Restle, Restorff, Retzke, Reuber, Reumann, Reus, Reuss, Reusse, Rheder, Rhoden, Richards, Richter, Riedel, Riediger, Rieger, Riekmann, Riepl, Riermeier, Riester, Riethmüller, Rietmüller, Rietscher, Ringel, Ringer, Rink, Ripken, Ritosek, Ritschel, Ritter, Rittweg, Ritz, Roba, Rockmeier, Rodehau, Rodowski, Roecker, Roggatz, Rohländer, Rohrer, Rokossa, Roleder, Roloff, Roos, Rosbach, Roschinsky, Rose, Rosenauer, Rosenbauer, Rosenthal, Rosksch, Rossberg, Rossler, Roth, Rother, Ruch, Ruckdeschel, Rumpf, Rupprecht, Ruth, Ryjikh, Ryzih, Rädler, Räntsch, Rödiger, Röse, Röttger, Rücker, Rüdiger, Rüter, Sachse, Sack, Saflanis, Sagafe, Sagonas, Sahner, Saile, Sailer, Salow, Salzer, Salzmann, Sammert, Sander, Sarvari, Sattelmaier, Sauer, Sauerland, Saumweber, Savoia, Scc, Schacht, Schaefer, Schaffarzik, Schahbasian, Scharf, Schedler, Scheer, Schelk, Schellenbeck, Schembera, Schenk, Scherbarth, Scherer, Schersing, Scherz, Scheurer, Scheuring, Scheytt, Schielke, Schieskow, Schildhauer, Schilling, Schima, Schimmer, Schindzielorz, Schirmer, Schirrmeister, Schlachter, Schlangen, Schlawitz, Schlechtweg, Schley, Schlicht, Schlitzer, Schmalzle, Schmid, Schmidt, Schmidtchen, Schmitt, Schmitz, Schmuhl, Schneider, Schnelting, Schnieder, Schniedermeier, Schnürer, Schoberg, Scholz, Schonberg, Schondelmaier, Schorr, Schott, Schottmann, Schouren, Schrader, Schramm, Schreck, Schreiber, Schreiner, Schreiter, Schroder, Schröder, Schuermann, Schuff, Schuhaj, Schuldt, Schult, Schulte, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schupp, Schuri, Schuster, Schwab, Schwalm, Schwanbeck, Schwandke, Schwanitz, Schwarthoff, Schwartz, Schwarz, Schwarzer, Schwarzkopf, Schwarzmeier, Schwatlo, Schweisfurth, Schwennen, Schwerdtner, Schwidde, Schwirkschlies, Schwuchow, Schäfer, Schäffel, Schäffer, Schäning, Schöckel, Schönball, Schönbeck, Schönberg, Schönebeck, Schönenberger, Schönfeld, Schönherr, Schönlebe, Schötz, Schüler, Schüppel, Schütz, Schütze, Seeger, Seelig, Sehls, Seibold, Seidel, Seiders, Seigel, Seiler, Seitz, Semisch, Senkel, Sewald, Siebel, Siebert, Siegling, Sielemann, Siemon, Siener, Sievers, Siewert, Sihler, Sillah, Simon, Sinnhuber, Sischka, Skibicki, Sladek, Slotta, Smieja, Soboll, Sokolowski, Soller, Sollner, Sommer, Somssich, Sonn, Sonnabend, Spahn, Spank, Spelmeyer, Spiegelburg, Spielvogel, Spinner, Spitzmüller, Splinter, Sporrer, Sprenger, Spöttel, Stahl, Stang, Stanger, Stauss, Steding, Steffen, Steffny, Steidl, Steigauf, Stein, Steinecke, Steinert, Steinkamp, Steinmetz, Stelkens, Stengel, Stengl, Stenzel, Stepanov, Stephan, Stern, Steuk, Stief, Stifel, Stoll, Stolle, Stolz, Storl, Storp, Stoutjesdijk, Stratmann, Straub, Strausa, Streck, Streese, Strege, Streit, Streller, Strieder, Striezel, Strogies, Strohschank, Strunz, Strutz, Stube, Stöckert, Stöppler, Stöwer, Stürmer, Suffa, Sujew, Sussmann, Suthe, Sutschet, Swillims, Szendrei, Sören, Sürth, Tafelmeier, Tang, Tasche, Taufratshofer, Tegethof, Teichmann, Tepper, Terheiden, Terlecki, Teufel, Theele, Thieke, Thimm, Thiomas, Thomas, Thriene, Thränhardt, Thust, Thyssen, Thöne, Tidow, Tiedtke, Tietze, Tilgner, Tillack, Timmermann, Tischler, Tischmann, Tittman, Tivontschik, Tonat, Tonn, Trampeli, Trauth, Trautmann, Travan, Treff, Tremmel, Tress, Tsamonikian, Tschiers, Tschirch, Tuch, Tucholke, Tudow, Tuschmo, Tächl, Többen, Töpfer, Uhlemann, Uhlig, Uhrig, Uibel, Uliczka, Ullmann, Ullrich, Umbach, Umlauft, Umminger, Unger, Unterpaintner, Urban, Urbaniak, Urbansky, Urhig, Vahlensieck, Van, Vangermain, Vater, Venghaus, Verniest, Verzi, Vey, Viellehner, Vieweg, Voelkel, Vogel, Vogelgsang, Vogt, Voigt, Vokuhl, Volk, Volker, Volkmann, Von, Vona, Vontein, Wachenbrunner, Wachtel, Wagner, Waibel, Wakan, Waldmann, Wallner, Wallstab, Walter, Walther, Walton, Walz, Wanner, Wartenberg, Waschbüsch, Wassilew, Wassiluk, Weber, Wehrsen, Weidlich, Weidner, Weigel, Weight, Weiler, Weimer, Weis, Weiss, Weller, Welsch, Welz, Welzel, Weniger, Wenk, Werle, Werner, Werrmann, Wessel, Wessinghage, Weyel, Wezel, Wichmann, Wickert, Wiebe, Wiechmann, Wiegelmann, Wierig, Wiese, Wieser, Wilhelm, Wilky, Will, Willwacher, Wilts, Wimmer, Winkelmann, Winkler, Winter, Wischek, Wischer, Wissing, Wittich, Wittl, Wolf, Wolfarth, Wolff, Wollenberg, Wollmann, Woytkowska, Wujak, Wurm, Wyludda, Wölpert, Wöschler, Wühn, Wünsche, Zach, Zaczkiewicz, Zahn, Zaituc, Zandt, Zanner, Zapletal, Zauber, Zeidler, Zekl, Zender, Zeuch, Zeyen, Zeyhle, Ziegler, Zimanyi, Zimmer, Zimmermann, Zinser, Zintl, Zipp, Zipse, Zschunke, Zuber, Zwiener, Zümsande, Östringer, Überacker] + prefix: [Dr., Prof. Dr.] + nobility_title_prefix: [zu, von, vom, von der] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{nobility_title_prefix} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ['01 #######', '01#######', '+43-1-#######', '+431#######', '0#### ####', '0#########', '+43-####-####', '+43 ########'] + + cell_phone: + formats: ['+43-6##-#######', '06##-########', '+436#########', '06##########'] \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-CH.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-CH.yml new file mode 100644 index 0000000..c545367 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de-CH.yml @@ -0,0 +1,19 @@ +de-CH: + faker: + address: + country_code: [CH, CH, CH, DE, AT, US, LI, US, HK, VN] + postcode: ['1###', '2###', '3###', '4###', '5###', '6###', '7###', '8###', '9###'] + default_country: [Schweiz] + + company: + suffix: [AG, GmbH, und Söhne, und Partner, "& Co.", Gruppe, LLC, Inc.] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} und #{Name.last_name}" + + internet: + domain_suffix: [com, net, biz, ch, de, li, at, ch, ch] + + phone_number: + formats: ['0800 ### ###', '0800 ## ## ##', '0## ### ## ##', '0## ### ## ##', '+41 ## ### ## ##', '0900 ### ###', '076 ### ## ##', '+4178 ### ## ##', '0041 79 ### ## ##'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de.yml new file mode 100644 index 0000000..a6de959 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/de.yml @@ -0,0 +1,57 @@ +de: + faker: + address: + city_prefix: [Nord, Ost, West, Süd, Neu, Alt, Bad] + city_suffix: [stadt, dorf, land, scheid, burg] + country: [Ägypten, Äquatorialguinea, Äthiopien, Österreich, Afghanistan, Albanien, Algerien, Amerikanisch-Samoa, Amerikanische Jungferninseln, Andorra, Angola, Anguilla, Antarktis, Antigua und Barbuda, Argentinien, Armenien, Aruba, Aserbaidschan, Australien, Bahamas, Bahrain, Bangladesch, Barbados, Belarus, Belgien, Belize, Benin, die Bermudas, Bhutan, Bolivien, Bosnien und Herzegowina, Botsuana, Bouvetinsel, Brasilien, Britische Jungferninseln, Britisches Territorium im Indischen Ozean, Brunei Darussalam, Bulgarien, Burkina Faso, Burundi, Chile, China, Cookinseln, Costa Rica, Dänemark, Demokratische Republik Kongo, Demokratische Volksrepublik Korea, Deutschland, Dominica, Dominikanische Republik, Dschibuti, Ecuador, El Salvador, Eritrea, Estland, Färöer, Falklandinseln, Fidschi, Finnland, Frankreich, Französisch-Guayana, Französisch-Polynesien, Französische Gebiete im südlichen Indischen Ozean, Gabun, Gambia, Georgien, Ghana, Gibraltar, Grönland, Grenada, Griechenland, Guadeloupe, Guam, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard und McDonaldinseln, Honduras, Hongkong, Indien, Indonesien, Irak, Iran, Irland, Island, Israel, Italien, Jamaika, Japan, Jemen, Jordanien, Jugoslawien, Kaimaninseln, Kambodscha, Kamerun, Kanada, Kap Verde, Kasachstan, Katar, Kenia, Kirgisistan, Kiribati, Kleinere amerikanische Überseeinseln, Kokosinseln, Kolumbien, Komoren, Kongo, Kroatien, Kuba, Kuwait, Laos, Lesotho, Lettland, Libanon, Liberia, Libyen, Liechtenstein, Litauen, Luxemburg, Macau, Madagaskar, Malawi, Malaysia, Malediven, Mali, Malta, ehemalige jugoslawische Republik Mazedonien, Marokko, Marshallinseln, Martinique, Mauretanien, Mauritius, Mayotte, Mexiko, Mikronesien, Monaco, Mongolei, Montserrat, Mosambik, Myanmar, Nördliche Marianen, Namibia, Nauru, Nepal, Neukaledonien, Neuseeland, Nicaragua, Niederländische Antillen, Niederlande, Niger, Nigeria, Niue, Norfolkinsel, Norwegen, Oman, Osttimor, Pakistan, Palau, Panama, Papua-Neuguinea, Paraguay, Peru, Philippinen, Pitcairninseln, Polen, Portugal, Puerto Rico, Réunion, Republik Korea, Republik Moldau, Ruanda, Rumänien, Russische Föderation, São Tomé und Príncipe, Südafrika, Südgeorgien und Südliche Sandwichinseln, Salomonen, Sambia, Samoa, San Marino, Saudi-Arabien, Schweden, Schweiz, Senegal, Seychellen, Sierra Leone, Simbabwe, Singapur, Slowakei, Slowenien, Somalien, Spanien, Sri Lanka, St. Helena, St. Kitts und Nevis, St. Lucia, St. Pierre und Miquelon, St. Vincent und die Grenadinen, Sudan, Surinam, Svalbard und Jan Mayen, Swasiland, Syrien, Türkei, Tadschikistan, Taiwan, Tansania, Thailand, Togo, Tokelau, Tonga, Trinidad und Tobago, Tschad, Tschechische Republik, Tunesien, Turkmenistan, Turks- und Caicosinseln, Tuvalu, Uganda, Ukraine, Ungarn, Uruguay, Usbekistan, Vanuatu, Vatikanstadt, Venezuela, Vereinigte Arabische Emirate, Vereinigte Staaten, Vereinigtes Königreich, Vietnam, Wallis und Futuna, Weihnachtsinsel, Westsahara, Zentralafrikanische Republik, Zypern] + street_root: [Ackerweg, Adalbert-Stifter-Str., Adalbertstr., Adolf-Baeyer-Str., Adolf-Kaschny-Str., Adolf-Reichwein-Str., Adolfsstr., Ahornweg, Ahrstr., Akazienweg, Albert-Einstein-Str., Albert-Schweitzer-Str., Albertus-Magnus-Str., Albert-Zarthe-Weg, Albin-Edelmann-Str., Albrecht-Haushofer-Str., Aldegundisstr., Alexanderstr., Alfred-Delp-Str., Alfred-Kubin-Str., Alfred-Stock-Str., Alkenrather Str., Allensteiner Str., Alsenstr., Alt Steinbücheler Weg, Alte Garten, Alte Heide, Alte Landstr., Alte Ziegelei, Altenberger Str., Altenhof, Alter Grenzweg, Altstadtstr., Am Alten Gaswerk, Am Alten Schafstall, Am Arenzberg, Am Benthal, Am Birkenberg, Am Blauen Berg, Am Borsberg, Am Brungen, Am Büchelter Hof, Am Buttermarkt, Am Ehrenfriedhof, Am Eselsdamm, Am Falkenberg, Am Frankenberg, Am Gesundheitspark, Am Gierlichshof, Am Graben, Am Hagelkreuz, Am Hang, Am Heidkamp, Am Hemmelrather Hof, Am Hofacker, Am Hohen Ufer, Am Höllers Eck, Am Hühnerberg, Am Jägerhof, Am Junkernkamp, Am Kemperstiegel, Am Kettnersbusch, Am Kiesberg, Am Klösterchen, Am Knechtsgraben, Am Köllerweg, Am Köttersbach, Am Kreispark, Am Kronefeld, Am Küchenhof, Am Kühnsbusch, Am Lindenfeld, Am Märchen, Am Mittelberg, Am Mönchshof, Am Mühlenbach, Am Neuenhof, Am Nonnenbruch, Am Plattenbusch, Am Quettinger Feld, Am Rosenhügel, Am Sandberg, Am Scherfenbrand, Am Schokker, Am Silbersee, Am Sonnenhang, Am Sportplatz, Am Stadtpark, Am Steinberg, Am Telegraf, Am Thelenhof, Am Vogelkreuz, Am Vogelsang, Am Vogelsfeldchen, Am Wambacher Hof, Am Wasserturm, Am Weidenbusch, Am Weiher, Am Weingarten, Am Werth, Amselweg, An den Irlen, An den Rheinauen, An der Bergerweide, An der Dingbank, An der Evangelischen Kirche, An der Evgl. Kirche, An der Feldgasse, An der Fettehenne, An der Kante, An der Laach, An der Lehmkuhle, An der Lichtenburg, An der Luisenburg, An der Robertsburg, An der Schmitten, An der Schusterinsel, An der Steinrütsch, An St. Andreas, An St. Remigius, Andreasstr., Ankerweg, Annette-Kolb-Str., Apenrader Str., Arnold-Ohletz-Str., Atzlenbacher Str., Auerweg, Auestr., Auf dem Acker, Auf dem Blahnenhof, Auf dem Bohnbüchel, Auf dem Bruch, Auf dem End, Auf dem Forst, Auf dem Herberg, Auf dem Lehn, Auf dem Stein, Auf dem Weierberg, Auf dem Weiherhahn, Auf den Reien, Auf der Donnen, Auf der Grieße, Auf der Ohmer, Auf der Weide, Auf'm Berg, Auf'm Kamp, Augustastr., August-Kekulé-Str., A.-W.-v.-Hofmann-Str., Bahnallee, Bahnhofstr., Baltrumstr., Bamberger Str., Baumberger Str., Bebelstr., Beckers Kämpchen, Beerenstr., Beethovenstr., Behringstr., Bendenweg, Bensberger Str., Benzstr., Bergische Landstr., Bergstr., Berliner Platz, Berliner Str., Bernhard-Letterhaus-Str., Bernhard-Lichtenberg-Str., Bernhard-Ridder-Str., Bernsteinstr., Bertha-Middelhauve-Str., Bertha-von-Suttner-Str., Bertolt-Brecht-Str., Berzeliusstr., Bielertstr., Biesenbach, Billrothstr., Birkenbergstr., Birkengartenstr., Birkenweg, Bismarckstr., Bitterfelder Str., Blankenburg, Blaukehlchenweg, Blütenstr., Boberstr., Böcklerstr., Bodelschwinghstr., Bodestr., Bogenstr., Bohnenkampsweg, Bohofsweg, Bonifatiusstr., Bonner Str., Borkumstr., Bornheimer Str., Borsigstr., Borussiastr., Bracknellstr., Brahmsweg, Brandenburger Str., Breidenbachstr., Breslauer Str., Bruchhauser Str., Brückenstr., Brucknerstr., Brüder-Bonhoeffer-Str., Buchenweg, Bürgerbuschweg, Burgloch, Burgplatz, Burgstr., Burgweg, Bürriger Weg, Burscheider Str., Buschkämpchen, Butterheider Str., Carl-Duisberg-Platz, Carl-Duisberg-Str., Carl-Leverkus-Str., Carl-Maria-von-Weber-Platz, Carl-Maria-von-Weber-Str., Carlo-Mierendorff-Str., Carl-Rumpff-Str., Carl-von-Ossietzky-Str., Charlottenburger Str., Christian-Heß-Str., Claasbruch, Clemens-Winkler-Str., Concordiastr., Cranachstr., Dahlemer Str., Daimlerstr., Damaschkestr., Danziger Str., Debengasse, Dechant-Fein-Str., Dechant-Krey-Str., Deichtorstr., Dhünnberg, Dhünnstr., Dianastr., Diedenhofener Str., Diepental, Diepenthaler Str., Dieselstr., Dillinger Str., Distelkamp, Dohrgasse, Domblick, Dönhoffstr., Dornierstr., Drachenfelsstr., Dr.-August-Blank-Str., Dresdener Str., Driescher Hecke, Drosselweg, Dudweilerstr., Dünenweg, Dünfelder Str., Dünnwalder Grenzweg, Düppeler Str., Dürerstr., Dürscheider Weg, Düsseldorfer Str., Edelrather Weg, Edmund-Husserl-Str., Eduard-Spranger-Str., Ehrlichstr., Eichenkamp, Eichenweg, Eidechsenweg, Eifelstr., Eifgenstr., Eintrachtstr., Elbestr., Elisabeth-Langgässer-Str., Elisabethstr., Elisabeth-von-Thadden-Str., Elisenstr., Elsa-Brändström-Str., Elsbachstr., Else-Lasker-Schüler-Str., Elsterstr., Emil-Fischer-Str., Emil-Nolde-Str., Engelbertstr., Engstenberger Weg, Entenpfuhl, Erbelegasse, Erftstr., Erfurter Str., Erich-Heckel-Str., Erich-Klausener-Str., Erich-Ollenhauer-Str., Erlenweg, Ernst-Bloch-Str., Ernst-Ludwig-Kirchner-Str., Erzbergerstr., Eschenallee, Eschenweg, Esmarchstr., Espenweg, Euckenstr., Eulengasse, Eulenkamp, Ewald-Flamme-Str., Ewald-Röll-Str., Fährstr., Farnweg, Fasanenweg, Faßbacher Hof, Felderstr., Feldkampstr., Feldsiefer Weg, Feldsiefer Wiesen, Feldstr., Feldtorstr., Felix-von-Roll-Str., Ferdinand-Lassalle-Str., Fester Weg, Feuerbachstr., Feuerdornweg, Fichtenweg, Fichtestr., Finkelsteinstr., Finkenweg, Fixheider Str., Flabbenhäuschen, Flensburger Str., Fliederweg, Florastr., Florianweg, Flotowstr., Flurstr., Föhrenweg, Fontanestr., Forellental, Fortunastr., Franz-Esser-Str., Franz-Hitze-Str., Franz-Kail-Str., Franz-Marc-Str., Freiburger Str., Freiheitstr., Freiherr-vom-Stein-Str., Freudenthal, Freudenthaler Weg, Fridtjof-Nansen-Str., Friedenberger Str., Friedensstr., Friedhofstr., Friedlandstr., Friedlieb-Ferdinand-Runge-Str., Friedrich-Bayer-Str., Friedrich-Bergius-Platz, Friedrich-Ebert-Platz, Friedrich-Ebert-Str., Friedrich-Engels-Str., Friedrich-List-Str., Friedrich-Naumann-Str., Friedrich-Sertürner-Str., Friedrichstr., Friedrich-Weskott-Str., Friesenweg, Frischenberg, Fritz-Erler-Str., Fritz-Henseler-Str., Fröbelstr., Fürstenbergplatz, Fürstenbergstr., Gabriele-Münter-Str., Gartenstr., Gebhardstr., Geibelstr., Gellertstr., Georg-von-Vollmar-Str., Gerhard-Domagk-Str., Gerhart-Hauptmann-Str., Gerichtsstr., Geschwister-Scholl-Str., Gezelinallee, Gierener Weg, Ginsterweg, Gisbert-Cremer-Str., Glücksburger Str., Gluckstr., Gneisenaustr., Goetheplatz, Goethestr., Golo-Mann-Str., Görlitzer Str., Görresstr., Graebestr., Graf-Galen-Platz, Gregor-Mendel-Str., Greifswalder Str., Grillenweg, Gronenborner Weg, Große Kirchstr., Grunder Wiesen, Grundermühle, Grundermühlenhof, Grundermühlenweg, Grüner Weg, Grunewaldstr., Grünstr., Günther-Weisenborn-Str., Gustav-Freytag-Str., Gustav-Heinemann-Str., Gustav-Radbruch-Str., Gut Reuschenberg, Gutenbergstr., Haberstr., Habichtgasse, Hafenstr., Hagenauer Str., Hahnenblecher, Halenseestr., Halfenleimbach, Hallesche Str., Halligstr., Hamberger Str., Hammerweg, Händelstr., Hannah-Höch-Str., Hans-Arp-Str., Hans-Gerhard-Str., Hans-Sachs-Str., Hans-Schlehahn-Str., Hans-von-Dohnanyi-Str., Hardenbergstr., Haselweg, Hauptstr., Haus-Vorster-Str., Hauweg, Havelstr., Havensteinstr., Haydnstr., Hebbelstr., Heckenweg, Heerweg, Hegelstr., Heidberg, Heidehöhe, Heidestr., Heimstättenweg, Heinrich-Böll-Str., Heinrich-Brüning-Str., Heinrich-Claes-Str., Heinrich-Heine-Str., Heinrich-Hörlein-Str., Heinrich-Lübke-Str., Heinrich-Lützenkirchen-Weg, Heinrichstr., Heinrich-Strerath-Str., Heinrich-von-Kleist-Str., Heinrich-von-Stephan-Str., Heisterbachstr., Helenenstr., Helmestr., Hemmelrather Weg, Henry-T.-v.-Böttinger-Str., Herderstr., Heribertstr., Hermann-Ehlers-Str., Hermann-Hesse-Str., Hermann-König-Str., Hermann-Löns-Str., Hermann-Milde-Str., Hermann-Nörrenberg-Str., Hermann-von-Helmholtz-Str., Hermann-Waibel-Str., Herzogstr., Heymannstr., Hindenburgstr., Hirzenberg, Hitdorfer Kirchweg, Hitdorfer Str., Höfer Mühle, Höfer Weg, Hohe Str., Höhenstr., Höltgestal, Holunderweg, Holzer Weg, Holzer Wiesen, Hornpottweg, Hubertusweg, Hufelandstr., Hufer Weg, Humboldtstr., Hummelsheim, Hummelweg, Humperdinckstr., Hüscheider Gärten, Hüscheider Str., Hütte, Ilmstr., Im Bergischen Heim, Im Bruch, Im Buchenhain, Im Bühl, Im Burgfeld, Im Dorf, Im Eisholz, Im Friedenstal, Im Frohental, Im Grunde, Im Hederichsfeld, Im Jücherfeld, Im Kalkfeld, Im Kirberg, Im Kirchfeld, Im Kreuzbruch, Im Mühlenfeld, Im Nesselrader Kamp, Im Oberdorf, Im Oberfeld, Im Rosengarten, Im Rottland, Im Scheffengarten, Im Staderfeld, Im Steinfeld, Im Weidenblech, Im Winkel, Im Ziegelfeld, Imbach, Imbacher Weg, Immenweg, In den Blechenhöfen, In den Dehlen, In der Birkenau, In der Dasladen, In der Felderhütten, In der Hartmannswiese, In der Höhle, In der Schaafsdellen, In der Wasserkuhl, In der Wüste, In Holzhausen, Insterstr., Jacob-Fröhlen-Str., Jägerstr., Jahnstr., Jakob-Eulenberg-Weg, Jakobistr., Jakob-Kaiser-Str., Jenaer Str., Johannes-Baptist-Str., Johannes-Dott-Str., Johannes-Popitz-Str., Johannes-Wislicenus-Str., Johannisburger Str., Johann-Janssen-Str., Johann-Wirtz-Weg, Josefstr., Jüch, Julius-Doms-Str., Julius-Leber-Str., Kaiserplatz, Kaiserstr., Kaiser-Wilhelm-Allee, Kalkstr., Kämpchenstr., Kämpenwiese, Kämper Weg, Kamptalweg, Kanalstr., Kandinskystr., Kantstr., Kapellenstr., Karl-Arnold-Str., Karl-Bosch-Str., Karl-Bückart-Str., Karl-Carstens-Ring, Karl-Friedrich-Goerdeler-Str., Karl-Jaspers-Str., Karl-König-Str., Karl-Krekeler-Str., Karl-Marx-Str., Karlstr., Karl-Ulitzka-Str., Karl-Wichmann-Str., Karl-Wingchen-Str., Käsenbrod, Käthe-Kollwitz-Str., Katzbachstr., Kerschensteinerstr., Kiefernweg, Kieler Str., Kieselstr., Kiesweg, Kinderhausen, Kleiberweg, Kleine Kirchstr., Kleingansweg, Kleinheider Weg, Klief, Kneippstr., Knochenbergsweg, Kochergarten, Kocherstr., Kockelsberg, Kolberger Str., Kolmarer Str., Kölner Gasse, Kölner Str., Kolpingstr., Königsberger Platz, Konrad-Adenauer-Platz, Köpenicker Str., Kopernikusstr., Körnerstr., Köschenberg, Köttershof, Kreuzbroicher Str., Kreuzkamp, Krummer Weg, Kruppstr., Kuhlmannweg, Kump, Kumper Weg, Kunstfeldstr., Küppersteger Str., Kursiefen, Kursiefer Weg, Kurtekottenweg, Kurt-Schumacher-Ring, Kyllstr., Langenfelder Str., Längsleimbach, Lärchenweg, Legienstr., Lehner Mühle, Leichlinger Str., Leimbacher Hof, Leinestr., Leineweberstr., Leipziger Str., Lerchengasse, Lessingstr., Libellenweg, Lichstr., Liebigstr., Lindenstr., Lingenfeld, Linienstr., Lippe, Löchergraben, Löfflerstr., Loheweg, Lohrbergstr., Lohrstr., Löhstr., Lortzingstr., Lötzener Str., Löwenburgstr., Lucasstr., Ludwig-Erhard-Platz, Ludwig-Girtler-Str., Ludwig-Knorr-Str., Luisenstr., Lupinenweg, Lurchenweg, Lützenkirchener Str., Lycker Str., Maashofstr., Manforter Str., Marc-Chagall-Str., Maria-Dresen-Str., Maria-Terwiel-Str., Marie-Curie-Str., Marienburger Str., Mariendorfer Str., Marienwerderstr., Marie-Schlei-Str., Marktplatz, Markusweg, Martin-Buber-Str., Martin-Heidegger-Str., Martin-Luther-Str., Masurenstr., Mathildenweg, Maurinusstr., Mauspfad, Max-Beckmann-Str., Max-Delbrück-Str., Max-Ernst-Str., Max-Holthausen-Platz, Max-Horkheimer-Str., Max-Liebermann-Str., Max-Pechstein-Str., Max-Planck-Str., Max-Scheler-Str., Max-Schönenberg-Str., Maybachstr., Meckhofer Feld, Meisenweg, Memelstr., Menchendahler Str., Mendelssohnstr., Merziger Str., Mettlacher Str., Metzer Str., Michaelsweg, Miselohestr., Mittelstr., Mohlenstr., Moltkestr., Monheimer Str., Montanusstr., Montessoriweg, Moosweg, Morsbroicher Str., Moselstr., Moskauer Str., Mozartstr., Mühlenweg, Muhrgasse, Muldestr., Mülhausener Str., Mülheimer Str., Münsters Gäßchen, Münzstr., Müritzstr., Myliusstr., Nachtigallenweg, Nauener Str., Neißestr., Nelly-Sachs-Str., Netzestr., Neuendriesch, Neuenhausgasse, Neuenkamp, Neujudenhof, Neukronenberger Str., Neustadtstr., Nicolai-Hartmann-Str., Niederblecher, Niederfeldstr., Nietzschestr., Nikolaus-Groß-Str., Nobelstr., Norderneystr., Nordstr., Ober dem Hof, Obere Lindenstr., Obere Str., Oberölbach, Odenthaler Str., Oderstr., Okerstr., Olof-Palme-Str., Ophovener Str., Opladener Platz, Opladener Str., Ortelsburger Str., Oskar-Moll-Str., Oskar-Schlemmer-Str., Oststr., Oswald-Spengler-Str., Otto-Dix-Str., Otto-Grimm-Str., Otto-Hahn-Str., Otto-Müller-Str., Otto-Stange-Str., Ottostr., Otto-Varnhagen-Str., Otto-Wels-Str., Ottweilerstr., Oulustr., Overfeldweg, Pappelweg, Paracelsusstr., Parkstr., Pastor-Louis-Str., Pastor-Scheibler-Str., Pastorskamp, Paul-Klee-Str., Paul-Löbe-Str., Paulstr., Peenestr., Pescher Busch, Peschstr., Pestalozzistr., Peter-Grieß-Str., Peter-Joseph-Lenné-Str., Peter-Neuenheuser-Str., Petersbergstr., Peterstr., Pfarrer-Jekel-Str., Pfarrer-Klein-Str., Pfarrer-Röhr-Str., Pfeilshofstr., Philipp-Ott-Str., Piet-Mondrian-Str., Platanenweg, Pommernstr., Porschestr., Poststr., Potsdamer Str., Pregelstr., Prießnitzstr., Pützdelle, Quarzstr., Quettinger Str., Rat-Deycks-Str., Rathenaustr., Ratherkämp, Ratiborer Str., Raushofstr., Regensburger Str., Reinickendorfer Str., Renkgasse, Rennbaumplatz, Rennbaumstr., Reuschenberger Str., Reusrather Str., Reuterstr., Rheinallee, Rheindorfer Str., Rheinstr., Rhein-Wupper-Platz, Richard-Wagner-Str., Rilkestr., Ringstr., Robert-Blum-Str., Robert-Koch-Str., Robert-Medenwald-Str., Rolandstr., Romberg, Röntgenstr., Roonstr., Ropenstall, Ropenstaller Weg, Rosenthal, Rostocker Str., Rotdornweg, Röttgerweg, Rückertstr., Rudolf-Breitscheid-Str., Rudolf-Mann-Platz, Rudolf-Stracke-Str., Ruhlachplatz, Ruhlachstr., Rüttersweg, Saalestr., Saarbrücker Str., Saarlauterner Str., Saarstr., Salamanderweg, Samlandstr., Sanddornstr., Sandstr., Sauerbruchstr., Schäfershütte, Scharnhorststr., Scheffershof, Scheidemannstr., Schellingstr., Schenkendorfstr., Schießbergstr., Schillerstr., Schlangenhecke, Schlebuscher Heide, Schlebuscher Str., Schlebuschrath, Schlehdornstr., Schleiermacherstr., Schloßstr., Schmalenbruch, Schnepfenflucht, Schöffenweg, Schöllerstr., Schöne Aussicht, Schöneberger Str., Schopenhauerstr., Schubertplatz, Schubertstr., Schulberg, Schulstr., Schumannstr., Schwalbenweg, Schwarzastr., Sebastianusweg, Semmelweisstr., Siebelplatz, Siemensstr., Solinger Str., Sonderburger Str., Spandauer Str., Speestr., Sperberweg, Sperlingsweg, Spitzwegstr., Sporrenberger Mühle, Spreestr., St. Ingberter Str., Starenweg, Stauffenbergstr., Stefan-Zweig-Str., Stegerwaldstr., Steglitzer Str., Steinbücheler Feld, Steinbücheler Str., Steinstr., Steinweg, Stephan-Lochner-Str., Stephanusstr., Stettiner Str., Stixchesstr., Stöckenstr., Stralsunder Str., Straßburger Str., Stresemannplatz, Strombergstr., Stromstr., Stüttekofener Str., Sudestr., Sürderstr., Syltstr., Talstr., Tannenbergstr., Tannenweg, Taubenweg, Teitscheider Weg, Telegrafenstr., Teltower Str., Tempelhofer Str., Theodor-Adorno-Str., Theodor-Fliedner-Str., Theodor-Gierath-Str., Theodor-Haubach-Str., Theodor-Heuss-Ring, Theodor-Storm-Str., Theodorstr., Thomas-Dehler-Str., Thomas-Morus-Str., Thomas-von-Aquin-Str., Tönges Feld, Torstr., Treptower Str., Treuburger Str., Uhlandstr., Ulmenweg, Ulmer Str., Ulrichstr., Ulrich-von-Hassell-Str., Umlag, Unstrutstr., Unter dem Schildchen, Unterölbach, Unterstr., Uppersberg, Van\'t-Hoff-Str., Veit-Stoß-Str., Vereinsstr., Viktor-Meyer-Str., Vincent-van-Gogh-Str., Virchowstr., Voigtslach, Volhardstr., Völklinger Str., Von-Brentano-Str., Von-Diergardt-Str., Von-Eichendorff-Str., Von-Ketteler-Str., Von-Knoeringen-Str., Von-Pettenkofer-Str., Von-Siebold-Str., Wacholderweg, Waldstr., Walter-Flex-Str., Walter-Hempel-Str., Walter-Hochapfel-Str., Walter-Nernst-Str., Wannseestr., Warnowstr., Warthestr., Weddigenstr., Weichselstr., Weidenstr., Weidfeldstr., Weiherfeld, Weiherstr., Weinhäuser Str., Weißdornweg, Weißenseestr., Weizkamp, Werftstr., Werkstättenstr., Werner-Heisenberg-Str., Werrastr., Weyerweg, Widdauener Str., Wiebertshof, Wiehbachtal, Wiembachallee, Wiesdorfer Platz, Wiesenstr., Wilhelm-Busch-Str., Wilhelm-Hastrich-Str., Wilhelm-Leuschner-Str., Wilhelm-Liebknecht-Str., Wilhelmsgasse, Wilhelmstr., Willi-Baumeister-Str., Willy-Brandt-Ring, Winand-Rossi-Str., Windthorststr., Winkelweg, Winterberg, Wittenbergstr., Wolf-Vostell-Str., Wolkenburgstr., Wupperstr., Wuppertalstr., Wüstenhof, Yitzhak-Rabin-Str., Zauberkuhle, Zedernweg, Zehlendorfer Str., Zehntenweg, Zeisigweg, Zeppelinstr., Zschopaustr., Zum Claashäuschen, Zündhütchenweg, Zur Alten Brauerei, Zur alten Fabrik] + building_number: ['###', '##', '#', '##a', '##b', '##c'] + # street_suffix: [straße weg platz] + secondary_address: ['Apt. ###', 'Zimmer ###', '# OG'] + postcode: ['#####', '#####'] + state: [Baden-Württemberg, Bayern, Berlin, Brandenburg, Bremen, Hamburg, Hessen, Mecklenburg-Vorpommern, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thüringen] + state_abbr: [BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH] + city: + - "#{city_prefix} #{Name.first_name}#{city_suffix}" + - "#{city_prefix} #{Name.first_name}" + - "#{Name.first_name}#{city_suffix}" + - "#{Name.last_name}#{city_suffix}" + street_name: + - "#{street_root}" + street_address: + - "#{street_name} #{building_number}" + default_country: [Deutschland] + + company: + suffix: [GmbH, AG, Gruppe, KG, GmbH & Co. KG, UG, OHG] + legal_form: [GmbH, AG, Gruppe, KG, GmbH & Co. KG, UG, OHG] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} und #{Name.last_name}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, info, name, net, org, de, ch] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + + name: + first_name: [Aaron, Abdul, Abdullah, Adam, Adrian, Adriano, Ahmad, Ahmed, Ahmet, Alan, Albert, Alessandro, Alessio, Alex, Alexander, Alfred, Ali, Amar, Amir, Amon, Andre, Andreas, Andrew, Angelo, Ansgar, Anthony, Anton, Antonio, Arda, Arian, Armin, Arne, Arno, Arthur, Artur, Arved, Arvid, Ayman, Baran, Baris, Bastian, Batuhan, Bela, Ben, Benedikt, Benjamin, Bennet, Bennett, Benno, Bent, Berat, Berkay, Bernd, Bilal, Bjarne, Björn, Bo, Boris, Brandon, Brian, Bruno, Bryan, Burak, Calvin, Can, Carl, Carlo, Carlos, Caspar, Cedric, Cedrik, Cem, Charlie, Chris, Christian, Christiano, Christoph, Christopher, Claas, Clemens, Colin, Collin, Conner, Connor, Constantin, Corvin, Curt, Damian, Damien, Daniel, Danilo, Danny, Darian, Dario, Darius, Darren, David, Davide, Davin, Dean, Deniz, Dennis, Denny, Devin, Diego, Dion, Domenic, Domenik, Dominic, Dominik, Dorian, Dustin, Dylan, Ecrin, Eddi, Eddy, Edgar, Edwin, Efe, Ege, Elia, Eliah, Elias, Elijah, Emanuel, Emil, Emilian, Emilio, Emir, Emirhan, Emre, Enes, Enno, Enrico, Eren, Eric, Erik, Etienne, Fabian, Fabien, Fabio, Fabrice, Falk, Felix, Ferdinand, Fiete, Filip, Finlay, Finley, Finn, Finnley, Florian, Francesco, Franz, Frederic, Frederick, Frederik, Friedrich, Fritz, Furkan, Fynn, Gabriel, Georg, Gerrit, Gian, Gianluca, Gino, Giuliano, Giuseppe, Gregor, Gustav, Hagen, Hamza, Hannes, Hanno, Hans, Hasan, Hassan, Hauke, Hendrik, Hennes, Henning, Henri, Henrick, Henrik, Henry, Hugo, Hussein, Ian, Ibrahim, Ilias, Ilja, Ilyas, Immanuel, Ismael, Ismail, Ivan, Iven, Jack, Jacob, Jaden, Jakob, Jamal, James, Jamie, Jan, Janek, Janis, Janne, Jannek, Jannes, Jannik, Jannis, Jano, Janosch, Jared, Jari, Jarne, Jarno, Jaron, Jason, Jasper, Jay, Jayden, Jayson, Jean, Jens, Jeremias, Jeremie, Jeremy, Jermaine, Jerome, Jesper, Jesse, Jim, Jimmy, Joe, Joel, Joey, Johann, Johannes, John, Johnny, Jon, Jona, Jonah, Jonas, Jonathan, Jonte, Joost, Jordan, Joris, Joscha, Joschua, Josef, Joseph, Josh, Joshua, Josua, Juan, Julian, Julien, Julius, Juri, Justin, Justus, Kaan, Kai, Kalle, Karim, Karl, Karlo, Kay, Keanu, Kenan, Kenny, Keno, Kerem, Kerim, Kevin, Kian, Kilian, Kim, Kimi, Kjell, Klaas, Klemens, Konrad, Konstantin, Koray, Korbinian, Kurt, Lars, Lasse, Laurence, Laurens, Laurenz, Laurin, Lean, Leander, Leandro, Leif, Len, Lenn, Lennard, Lennart, Lennert, Lennie, Lennox, Lenny, Leo, Leon, Leonard, Leonardo, Leonhard, Leonidas, Leopold, Leroy, Levent, Levi, Levin, Lewin, Lewis, Liam, Lian, Lias, Lino, Linus, Lio, Lion, Lionel, Logan, Lorenz, Lorenzo, Loris, Louis, Luan, Luc, Luca, Lucas, Lucian, Lucien, Ludwig, Luis, Luiz, Luk, Luka, Lukas, Luke, Lutz, Maddox, Mads, Magnus, Maik, Maksim, Malik, Malte, Manuel, Marc, Marcel, Marco, Marcus, Marek, Marian, Mario, Marius, Mark, Marko, Markus, Marlo, Marlon, Marten, Martin, Marvin, Marwin, Mateo, Mathis, Matis, Mats, Matteo, Mattes, Matthias, Matthis, Matti, Mattis, Maurice, Max, Maxim, Maximilian, Mehmet, Meik, Melvin, Merlin, Mert, Michael, Michel, Mick, Miguel, Mika, Mikail, Mike, Milan, Milo, Mio, Mirac, Mirco, Mirko, Mohamed, Mohammad, Mohammed, Moritz, Morten, Muhammed, Murat, Mustafa, Nathan, Nathanael, Nelson, Neo, Nevio, Nick, Niclas, Nico, Nicolai, Nicolas, Niels, Nikita, Niklas, Niko, Nikolai, Nikolas, Nils, Nino, Noah, Noel, Norman, Odin, Oke, Ole, Oliver, Omar, Onur, Oscar, Oskar, Pascal, Patrice, Patrick, Paul, Peer, Pepe, Peter, Phil, Philip, Philipp, Pierre, Piet, Pit, Pius, Quentin, Quirin, Rafael, Raik, Ramon, Raphael, Rasmus, Raul, Rayan, René, Ricardo, Riccardo, Richard, Rick, Rico, Robert, Robin, Rocco, Roman, Romeo, Ron, Ruben, Ryan, Said, Salih, Sam, Sami, Sammy, Samuel, Sandro, Santino, Sascha, Sean, Sebastian, Selim, Semih, Shawn, Silas, Simeon, Simon, Sinan, Sky, Stefan, Steffen, Stephan, Steve, Steven, Sven, Sönke, Sören, Taha, Tamino, Tammo, Tarik, Tayler, Taylor, Teo, Theo, Theodor, Thies, Thilo, Thomas, Thorben, Thore, Thorge, Tiago, Til, Till, Tillmann, Tim, Timm, Timo, Timon, Timothy, Tino, Titus, Tizian, Tjark, Tobias, Tom, Tommy, Toni, Tony, Torben, Tore, Tristan, Tyler, Tyron, Umut, Valentin, Valentino, Veit, Victor, Viktor, Vin, Vincent, Vito, Vitus, Wilhelm, Willi, William, Willy, Xaver, Yannic, Yannick, Yannik, Yannis, Yasin, Youssef, Yunus, Yusuf, Yven, Yves, Ömer, Aaliyah, Abby, Abigail, Ada, Adelina, Adriana, Aileen, Aimee, Alana, Alea, Alena, Alessa, Alessia, Alexa, Alexandra, Alexia, Alexis, Aleyna, Alia, Alica, Alice, Alicia, Alina, Alisa, Alisha, Alissa, Aliya, Aliyah, Allegra, Alma, Alyssa, Amalia, Amanda, Amelia, Amelie, Amina, Amira, Amy, Ana, Anabel, Anastasia, Andrea, Angela, Angelina, Angelique, Anja, Ann, Anna, Annabel, Annabell, Annabelle, Annalena, Anne, Anneke, Annelie, Annemarie, Anni, Annie, Annika, Anny, Anouk, Antonia, Arda, Ariana, Ariane, Arwen, Ashley, Asya, Aurelia, Aurora, Ava, Ayleen, Aylin, Ayse, Azra, Betty, Bianca, Bianka, Caitlin, Cara, Carina, Carla, Carlotta, Carmen, Carolin, Carolina, Caroline, Cassandra, Catharina, Catrin, Cecile, Cecilia, Celia, Celina, Celine, Ceyda, Ceylin, Chantal, Charleen, Charlotta, Charlotte, Chayenne, Cheyenne, Chiara, Christin, Christina, Cindy, Claire, Clara, Clarissa, Colleen, Collien, Cora, Corinna, Cosima, Dana, Daniela, Daria, Darleen, Defne, Delia, Denise, Diana, Dilara, Dina, Dorothea, Ecrin, Eda, Eileen, Ela, Elaine, Elanur, Elea, Elena, Eleni, Eleonora, Eliana, Elif, Elina, Elisa, Elisabeth, Ella, Ellen, Elli, Elly, Elsa, Emelie, Emely, Emilia, Emilie, Emily, Emma, Emmely, Emmi, Emmy, Enie, Enna, Enya, Esma, Estelle, Esther, Eva, Evelin, Evelina, Eveline, Evelyn, Fabienne, Fatima, Fatma, Felicia, Felicitas, Felina, Femke, Fenja, Fine, Finia, Finja, Finnja, Fiona, Flora, Florentine, Francesca, Franka, Franziska, Frederike, Freya, Frida, Frieda, Friederike, Giada, Gina, Giulia, Giuliana, Greta, Hailey, Hana, Hanna, Hannah, Heidi, Helen, Helena, Helene, Helin, Henriette, Henrike, Hermine, Ida, Ilayda, Imke, Ina, Ines, Inga, Inka, Irem, Isa, Isabel, Isabell, Isabella, Isabelle, Ivonne, Jacqueline, Jamie, Jamila, Jana, Jane, Janin, Janina, Janine, Janna, Janne, Jara, Jasmin, Jasmina, Jasmine, Jella, Jenna, Jennifer, Jenny, Jessica, Jessy, Jette, Jil, Jill, Joana, Joanna, Joelina, Joeline, Joelle, Johanna, Joleen, Jolie, Jolien, Jolin, Jolina, Joline, Jona, Jonah, Jonna, Josefin, Josefine, Josephin, Josephine, Josie, Josy, Joy, Joyce, Judith, Judy, Jule, Julia, Juliana, Juliane, Julie, Julienne, Julika, Julina, Juna, Justine, Kaja, Karina, Karla, Karlotta, Karolina, Karoline, Kassandra, Katarina, Katharina, Kathrin, Katja, Katrin, Kaya, Kayra, Kiana, Kiara, Kim, Kimberley, Kimberly, Kira, Klara, Korinna, Kristin, Kyra, Laila, Lana, Lara, Larissa, Laura, Laureen, Lavinia, Lea, Leah, Leana, Leandra, Leann, Lee, Leila, Lena, Lene, Leni, Lenia, Lenja, Lenya, Leona, Leoni, Leonie, Leonora, Leticia, Letizia, Levke, Leyla, Lia, Liah, Liana, Lili, Lilia, Lilian, Liliana, Lilith, Lilli, Lillian, Lilly, Lily, Lina, Linda, Lindsay, Line, Linn, Linnea, Lisa, Lisann, Lisanne, Liv, Livia, Liz, Lola, Loreen, Lorena, Lotta, Lotte, Louisa, Louise, Luana, Luca, Lucia, Lucie, Lucienne, Lucy, Luisa, Luise, Luka, Luna, Luzie, Lya, Lydia, Lyn, Lynn, Madeleine, Madita, Madleen, Madlen, Magdalena, Maike, Mailin, Maira, Maja, Malena, Malia, Malin, Malina, Mandy, Mara, Marah, Mareike, Maren, Maria, Mariam, Marie, Marieke, Mariella, Marika, Marina, Marisa, Marissa, Marit, Marla, Marleen, Marlen, Marlena, Marlene, Marta, Martha, Mary, Maryam, Mathilda, Mathilde, Matilda, Maxi, Maxima, Maxine, Maya, Mayra, Medina, Medine, Meike, Melanie, Melek, Melike, Melina, Melinda, Melis, Melisa, Melissa, Merle, Merve, Meryem, Mette, Mia, Michaela, Michelle, Mieke, Mila, Milana, Milena, Milla, Mina, Mira, Miray, Miriam, Mirja, Mona, Monique, Nadine, Nadja, Naemi, Nancy, Naomi, Natalia, Natalie, Nathalie, Neele, Nela, Nele, Nelli, Nelly, Nia, Nicole, Nika, Nike, Nikita, Nila, Nina, Nisa, Noemi, Nora, Olivia, Patricia, Patrizia, Paula, Paulina, Pauline, Penelope, Philine, Phoebe, Pia, Rahel, Rania, Rebecca, Rebekka, Riana, Rieke, Rike, Romina, Romy, Ronja, Rosa, Rosalie, Ruby, Sabrina, Sahra, Sally, Salome, Samantha, Samia, Samira, Sandra, Sandy, Sanja, Saphira, Sara, Sarah, Saskia, Selin, Selina, Selma, Sena, Sidney, Sienna, Silja, Sina, Sinja, Smilla, Sofia, Sofie, Sonja, Sophia, Sophie, Soraya, Stefanie, Stella, Stephanie, Stina, Sude, Summer, Susanne, Svea, Svenja, Sydney, Tabea, Talea, Talia, Tamara, Tamia, Tamina, Tanja, Tara, Tarja, Teresa, Tessa, Thalea, Thalia, Thea, Theresa, Tia, Tina, Tomke, Tuana, Valentina, Valeria, Valerie, Vanessa, Vera, Veronika, Victoria, Viktoria, Viola, Vivian, Vivien, Vivienne, Wibke, Wiebke, Xenia, Yara, Yaren, Yasmin, Ylvi, Ylvie, Yvonne, Zara, Zehra, Zeynep, Zoe, Zoey, Zoé] + last_name: [Abel, Abicht, Abraham, Abramovic, Abt, Achilles, Achkinadze, Ackermann, Adam, Adams, Ade, Agostini, Ahlke, Ahrenberg, Ahrens, Aigner, Albert, Albrecht, Alexa, Alexander, Alizadeh, Allgeyer, Amann, Amberg, Anding, Anggreny, Apitz, Arendt, Arens, Arndt, Aryee, Aschenbroich, Assmus, Astafei, Auer, Axmann, Baarck, Bachmann, Badane, Bader, Baganz, Bahl, Bak, Balcer, Balck, Balkow, Balnuweit, Balzer, Banse, Barr, Bartels, Barth, Barylla, Baseda, Battke, Bauer, Bauermeister, Baumann, Baumeister, Bauschinger, Bauschke, Bayer, Beavogui, Beck, Beckel, Becker, Beckmann, Bedewitz, Beele, Beer, Beggerow, Beh, Behr, Behrenbruch, Belz, Bender, Benecke, Benner, Benninger, Benzing, Berends, Berger, Berner, Berning, Bertenbreiter, Best, Bethke, Betz, Beushausen, Beutelspacher, Beyer, Biba, Bichler, Bickel, Biedermann, Bieler, Bielert, Bienasch, Bienias, Biesenbach, Bigdeli, Birkemeyer, Bittner, Blank, Blaschek, Blassneck, Bloch, Blochwitz, Blockhaus, Blum, Blume, Bock, Bode, Bogdashin, Bogenrieder, Bohge, Bolm, Borgschulze, Bork, Bormann, Bornscheuer, Borrmann, Borsch, Boruschewski, Bos, Bosler, Bourrouag, Bouschen, Boxhammer, Boyde, Bozsik, Brand, Brandenburg, Brandis, Brandt, Brauer, Braun, Brehmer, Breitenstein, Bremer, Bremser, Brenner, Brettschneider, Breu, Breuer, Briesenick, Bringmann, Brinkmann, Brix, Broening, Brosch, Bruckmann, Bruder, Bruhns, Brunner, Bruns, Bräutigam, Brömme, Brüggmann, Buchholz, Buchrucker, Buder, Bultmann, Bunjes, Burger, Burghagen, Burkhard, Burkhardt, Burmeister, Busch, Buschbaum, Busemann, Buss, Busse, Bussmann, Byrd, Bäcker, Böhm, Bönisch, Börgeling, Börner, Böttner, Büchele, Bühler, Büker, Büngener, Bürger, Bürklein, Büscher, Büttner, Camara, Carlowitz, Carlsohn, Caspari, Caspers, Chapron, Christ, Cierpinski, Clarius, Cleem, Cleve, Co, Conrad, Cordes, Cornelsen, Cors, Cotthardt, Crews, Cronjäger, Crosskofp, Da, Dahm, Dahmen, Daimer, Damaske, Danneberg, Danner, Daub, Daubner, Daudrich, Dauer, Daum, Dauth, Dautzenberg, De, Decker, Deckert, Deerberg, Dehmel, Deja, Delonge, Demut, Dengler, Denner, Denzinger, Derr, Dertmann, Dethloff, Deuschle, Dieckmann, Diedrich, Diekmann, Dienel, Dies, Dietrich, Dietz, Dietzsch, Diezel, Dilla, Dingelstedt, Dippl, Dittmann, Dittmar, Dittmer, Dix, Dobbrunz, Dobler, Dohring, Dolch, Dold, Dombrowski, Donie, Doskoczynski, Dragu, Drechsler, Drees, Dreher, Dreier, Dreissigacker, Dressler, Drews, Duma, Dutkiewicz, Dyett, Dylus, Dächert, Döbel, Döring, Dörner, Dörre, Dück, Eberhard, Eberhardt, Ecker, Eckhardt, Edorh, Effler, Eggenmueller, Ehm, Ehmann, Ehrig, Eich, Eichmann, Eifert, Einert, Eisenlauer, Ekpo, Elbe, Eleyth, Elss, Emert, Emmelmann, Ender, Engel, Engelen, Engelmann, Eplinius, Erdmann, Erhardt, Erlei, Erm, Ernst, Ertl, Erwes, Esenwein, Esser, Evers, Everts, Ewald, Fahner, Faller, Falter, Farber, Fassbender, Faulhaber, Fehrig, Feld, Felke, Feller, Fenner, Fenske, Feuerbach, Fietz, Figl, Figura, Filipowski, Filsinger, Fincke, Fink, Finke, Fischer, Fitschen, Fleischer, Fleischmann, Floder, Florczak, Flore, Flottmann, Forkel, Forst, Frahmeke, Frank, Franke, Franta, Frantz, Franz, Franzis, Franzmann, Frauen, Frauendorf, Freigang, Freimann, Freimuth, Freisen, Frenzel, Frey, Fricke, Fried, Friedek, Friedenberg, Friedmann, Friedrich, Friess, Frisch, Frohn, Frosch, Fuchs, Fuhlbrügge, Fusenig, Fust, Förster, Gaba, Gabius, Gabler, Gadschiew, Gakstädter, Galander, Gamlin, Gamper, Gangnus, Ganzmann, Garatva, Gast, Gastel, Gatzka, Gauder, Gebhardt, Geese, Gehre, Gehrig, Gehring, Gehrke, Geiger, Geisler, Geissler, Gelling, Gens, Gerbennow, Gerdel, Gerhardt, Gerschler, Gerson, Gesell, Geyer, Ghirmai, Ghosh, Giehl, Gierisch, Giesa, Giesche, Gilde, Glatting, Goebel, Goedicke, Goldbeck, Goldfuss, Goldkamp, Goldkühle, Goller, Golling, Gollnow, Golomski, Gombert, Gotthardt, Gottschalk, Gotz, Goy, Gradzki, Graf, Grams, Grasse, Gratzky, Grau, Greb, Green, Greger, Greithanner, Greschner, Griem, Griese, Grimm, Gromisch, Gross, Grosser, Grossheim, Grosskopf, Grothaus, Grothkopp, Grotke, Grube, Gruber, Grundmann, Gruning, Gruszecki, Gröss, Grötzinger, Grün, Grüner, Gummelt, Gunkel, Gunther, Gutjahr, Gutowicz, Gutschank, Göbel, Göckeritz, Göhler, Görlich, Görmer, Götz, Götzelmann, Güldemeister, Günther, Günz, Gürbig, Haack, Haaf, Habel, Hache, Hackbusch, Hackelbusch, Hadfield, Hadwich, Haferkamp, Hahn, Hajek, Hallmann, Hamann, Hanenberger, Hannecker, Hanniske, Hansen, Hardy, Hargasser, Harms, Harnapp, Harter, Harting, Hartlieb, Hartmann, Hartwig, Hartz, Haschke, Hasler, Hasse, Hassfeld, Haug, Hauke, Haupt, Haverney, Heberstreit, Hechler, Hecht, Heck, Hedermann, Hehl, Heidelmann, Heidler, Heinemann, Heinig, Heinke, Heinrich, Heinze, Heiser, Heist, Hellmann, Helm, Helmke, Helpling, Hengmith, Henkel, Hennes, Henry, Hense, Hensel, Hentel, Hentschel, Hentschke, Hepperle, Herberger, Herbrand, Hering, Hermann, Hermecke, Herms, Herold, Herrmann, Herschmann, Hertel, Herweg, Herwig, Herzenberg, Hess, Hesse, Hessek, Hessler, Hetzler, Heuck, Heydemüller, Hiebl, Hildebrand, Hildenbrand, Hilgendorf, Hillard, Hiller, Hingsen, Hingst, Hinrichs, Hirsch, Hirschberg, Hirt, Hodea, Hoffman, Hoffmann, Hofmann, Hohenberger, Hohl, Hohn, Hohnheiser, Hold, Holdt, Holinski, Holl, Holtfreter, Holz, Holzdeppe, Holzner, Hommel, Honz, Hooss, Hoppe, Horak, Horn, Horna, Hornung, Hort, Howard, Huber, Huckestein, Hudak, Huebel, Hugo, Huhn, Hujo, Huke, Huls, Humbert, Huneke, Huth, Häber, Häfner, Höcke, Höft, Höhne, Hönig, Hördt, Hübenbecker, Hübl, Hübner, Hügel, Hüttcher, Hütter, Ibe, Ihly, Illing, Isak, Isekenmeier, Itt, Jacob, Jacobs, Jagusch, Jahn, Jahnke, Jakobs, Jakubczyk, Jambor, Jamrozy, Jander, Janich, Janke, Jansen, Jarets, Jaros, Jasinski, Jasper, Jegorov, Jellinghaus, Jeorga, Jerschabek, Jess, John, Jonas, Jossa, Jucken, Jung, Jungbluth, Jungton, Just, Jürgens, Kaczmarek, Kaesmacher, Kahl, Kahlert, Kahles, Kahlmeyer, Kaiser, Kalinowski, Kallabis, Kallensee, Kampf, Kampschulte, Kappe, Kappler, Karhoff, Karrass, Karst, Karsten, Karus, Kass, Kasten, Kastner, Katzinski, Kaufmann, Kaul, Kausemann, Kawohl, Kazmarek, Kedzierski, Keil, Keiner, Keller, Kelm, Kempe, Kemper, Kempter, Kerl, Kern, Kesselring, Kesselschläger, Kette, Kettenis, Keutel, Kick, Kiessling, Kinadeter, Kinzel, Kinzy, Kirch, Kirst, Kisabaka, Klaas, Klabuhn, Klapper, Klauder, Klaus, Kleeberg, Kleiber, Klein, Kleinert, Kleininger, Kleinmann, Kleinsteuber, Kleiss, Klemme, Klimczak, Klinger, Klink, Klopsch, Klose, Kloss, Kluge, Kluwe, Knabe, Kneifel, Knetsch, Knies, Knippel, Knobel, Knoblich, Knoll, Knorr, Knorscheidt, Knut, Kobs, Koch, Kochan, Kock, Koczulla, Koderisch, Koehl, Koehler, Koenig, Koester, Kofferschlager, Koha, Kohle, Kohlmann, Kohnle, Kohrt, Koj, Kolb, Koleiski, Kolokas, Komoll, Konieczny, Konig, Konow, Konya, Koob, Kopf, Kosenkow, Koster, Koszewski, Koubaa, Kovacs, Kowalick, Kowalinski, Kozakiewicz, Krabbe, Kraft, Kral, Kramer, Krauel, Kraus, Krause, Krauspe, Kreb, Krebs, Kreissig, Kresse, Kreutz, Krieger, Krippner, Krodinger, Krohn, Krol, Kron, Krueger, Krug, Kruger, Krull, Kruschinski, Krämer, Kröckert, Kröger, Krüger, Kubera, Kufahl, Kuhlee, Kuhnen, Kulimann, Kulma, Kumbernuss, Kummle, Kunz, Kupfer, Kupprion, Kuprion, Kurnicki, Kurrat, Kurschilgen, Kuschewitz, Kuschmann, Kuske, Kustermann, Kutscherauer, Kutzner, Kwadwo, Kähler, Käther, Köhler, Köhrbrück, Köhre, Kölotzei, König, Köpernick, Köseoglu, Kúhn, Kúhnert, Kühn, Kühnel, Kühnemund, Kühnert, Kühnke, Küsters, Küter, Laack, Lack, Ladewig, Lakomy, Lammert, Lamos, Landmann, Lang, Lange, Langfeld, Langhirt, Lanig, Lauckner, Lauinger, Laurén, Lausecker, Laux, Laws, Lax, Leberer, Lehmann, Lehner, Leibold, Leide, Leimbach, Leipold, Leist, Leiter, Leiteritz, Leitheim, Leiwesmeier, Lenfers, Lenk, Lenz, Lenzen, Leo, Lepthin, Lesch, Leschnik, Letzelter, Lewin, Lewke, Leyckes, Lg, Lichtenfeld, Lichtenhagen, Lichtl, Liebach, Liebe, Liebich, Liebold, Lieder, Lienshöft, Linden, Lindenberg, Lindenmayer, Lindner, Linke, Linnenbaum, Lippe, Lipske, Lipus, Lischka, Lobinger, Logsch, Lohmann, Lohre, Lohse, Lokar, Loogen, Lorenz, Losch, Loska, Lott, Loy, Lubina, Ludolf, Lufft, Lukoschek, Lutje, Lutz, Löser, Löwa, Lübke, Maak, Maczey, Madetzky, Madubuko, Mai, Maier, Maisch, Malek, Malkus, Mallmann, Malucha, Manns, Manz, Marahrens, Marchewski, Margis, Markowski, Marl, Marner, Marquart, Marschek, Martel, Marten, Martin, Marx, Marxen, Mathes, Mathies, Mathiszik, Matschke, Mattern, Matthes, Matula, Mau, Maurer, Mauroff, May, Maybach, Mayer, Mebold, Mehl, Mehlhorn, Mehlorn, Meier, Meisch, Meissner, Meloni, Melzer, Menga, Menne, Mensah, Mensing, Merkel, Merseburg, Mertens, Mesloh, Metzger, Metzner, Mewes, Meyer, Michallek, Michel, Mielke, Mikitenko, Milde, Minah, Mintzlaff, Mockenhaupt, Moede, Moedl, Moeller, Moguenara, Mohr, Mohrhard, Molitor, Moll, Moller, Molzan, Montag, Moormann, Mordhorst, Morgenstern, Morhelfer, Moritz, Moser, Motchebon, Motzenbbäcker, Mrugalla, Muckenthaler, Mues, Muller, Mulrain, Mächtig, Mäder, Möcks, Mögenburg, Möhsner, Möldner, Möllenbeck, Möller, Möllinger, Mörsch, Mühleis, Müller, Münch, Nabein, Nabow, Nagel, Nannen, Nastvogel, Nau, Naubert, Naumann, Ne, Neimke, Nerius, Neubauer, Neubert, Neuendorf, Neumair, Neumann, Neupert, Neurohr, Neuschwander, Newton, Ney, Nicolay, Niedermeier, Nieklauson, Niklaus, Nitzsche, Noack, Nodler, Nolte, Normann, Norris, Northoff, Nowak, Nussbeck, Nwachukwu, Nytra, Nöh, Oberem, Obergföll, Obermaier, Ochs, Oeser, Olbrich, Onnen, Ophey, Oppong, Orth, Orthmann, Oschkenat, Osei, Osenberg, Ostendarp, Ostwald, Otte, Otto, Paesler, Pajonk, Pallentin, Panzig, Paschke, Patzwahl, Paukner, Peselman, Peter, Peters, Petzold, Pfeiffer, Pfennig, Pfersich, Pfingsten, Pflieger, Pflügner, Philipp, Pichlmaier, Piesker, Pietsch, Pingpank, Pinnock, Pippig, Pitschugin, Plank, Plass, Platzer, Plauk, Plautz, Pletsch, Plotzitzka, Poehn, Poeschl, Pogorzelski, Pohl, Pohland, Pohle, Polifka, Polizzi, Pollmächer, Pomp, Ponitzsch, Porsche, Porth, Poschmann, Poser, Pottel, Prah, Prange, Prediger, Pressler, Preuk, Preuss, Prey, Priemer, Proske, Pusch, Pöche, Pöge, Raabe, Rabenstein, Rach, Radtke, Rahn, Ranftl, Rangen, Ranz, Rapp, Rath, Rau, Raubuch, Raukuc, Rautenkranz, Rehwagen, Reiber, Reichardt, Reichel, Reichling, Reif, Reifenrath, Reimann, Reinberg, Reinelt, Reinhardt, Reinke, Reitze, Renk, Rentz, Renz, Reppin, Restle, Restorff, Retzke, Reuber, Reumann, Reus, Reuss, Reusse, Rheder, Rhoden, Richards, Richter, Riedel, Riediger, Rieger, Riekmann, Riepl, Riermeier, Riester, Riethmüller, Rietmüller, Rietscher, Ringel, Ringer, Rink, Ripken, Ritosek, Ritschel, Ritter, Rittweg, Ritz, Roba, Rockmeier, Rodehau, Rodowski, Roecker, Roggatz, Rohländer, Rohrer, Rokossa, Roleder, Roloff, Roos, Rosbach, Roschinsky, Rose, Rosenauer, Rosenbauer, Rosenthal, Rosksch, Rossberg, Rossler, Roth, Rother, Ruch, Ruckdeschel, Rumpf, Rupprecht, Ruth, Ryjikh, Ryzih, Rädler, Räntsch, Rödiger, Röse, Röttger, Rücker, Rüdiger, Rüter, Sachse, Sack, Saflanis, Sagafe, Sagonas, Sahner, Saile, Sailer, Salow, Salzer, Salzmann, Sammert, Sander, Sarvari, Sattelmaier, Sauer, Sauerland, Saumweber, Savoia, Scc, Schacht, Schaefer, Schaffarzik, Schahbasian, Scharf, Schedler, Scheer, Schelk, Schellenbeck, Schembera, Schenk, Scherbarth, Scherer, Schersing, Scherz, Scheurer, Scheuring, Scheytt, Schielke, Schieskow, Schildhauer, Schilling, Schima, Schimmer, Schindzielorz, Schirmer, Schirrmeister, Schlachter, Schlangen, Schlawitz, Schlechtweg, Schley, Schlicht, Schlitzer, Schmalzle, Schmid, Schmidt, Schmidtchen, Schmitt, Schmitz, Schmuhl, Schneider, Schnelting, Schnieder, Schniedermeier, Schnürer, Schoberg, Scholz, Schonberg, Schondelmaier, Schorr, Schott, Schottmann, Schouren, Schrader, Schramm, Schreck, Schreiber, Schreiner, Schreiter, Schroder, Schröder, Schuermann, Schuff, Schuhaj, Schuldt, Schult, Schulte, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schupp, Schuri, Schuster, Schwab, Schwalm, Schwanbeck, Schwandke, Schwanitz, Schwarthoff, Schwartz, Schwarz, Schwarzer, Schwarzkopf, Schwarzmeier, Schwatlo, Schweisfurth, Schwennen, Schwerdtner, Schwidde, Schwirkschlies, Schwuchow, Schäfer, Schäffel, Schäffer, Schäning, Schöckel, Schönball, Schönbeck, Schönberg, Schönebeck, Schönenberger, Schönfeld, Schönherr, Schönlebe, Schötz, Schüler, Schüppel, Schütz, Schütze, Seeger, Seelig, Sehls, Seibold, Seidel, Seiders, Seigel, Seiler, Seitz, Semisch, Senkel, Sewald, Siebel, Siebert, Siegling, Sielemann, Siemon, Siener, Sievers, Siewert, Sihler, Sillah, Simon, Sinnhuber, Sischka, Skibicki, Sladek, Slotta, Smieja, Soboll, Sokolowski, Soller, Sollner, Sommer, Somssich, Sonn, Sonnabend, Spahn, Spank, Spelmeyer, Spiegelburg, Spielvogel, Spinner, Spitzmüller, Splinter, Sporrer, Sprenger, Spöttel, Stahl, Stang, Stanger, Stauss, Steding, Steffen, Steffny, Steidl, Steigauf, Stein, Steinecke, Steinert, Steinkamp, Steinmetz, Stelkens, Stengel, Stengl, Stenzel, Stepanov, Stephan, Stern, Steuk, Stief, Stifel, Stoll, Stolle, Stolz, Storl, Storp, Stoutjesdijk, Stratmann, Straub, Strausa, Streck, Streese, Strege, Streit, Streller, Strieder, Striezel, Strogies, Strohschank, Strunz, Strutz, Stube, Stöckert, Stöppler, Stöwer, Stürmer, Suffa, Sujew, Sussmann, Suthe, Sutschet, Swillims, Szendrei, Sören, Sürth, Tafelmeier, Tang, Tasche, Taufratshofer, Tegethof, Teichmann, Tepper, Terheiden, Terlecki, Teufel, Theele, Thieke, Thimm, Thiomas, Thomas, Thriene, Thränhardt, Thust, Thyssen, Thöne, Tidow, Tiedtke, Tietze, Tilgner, Tillack, Timmermann, Tischler, Tischmann, Tittman, Tivontschik, Tonat, Tonn, Trampeli, Trauth, Trautmann, Travan, Treff, Tremmel, Tress, Tsamonikian, Tschiers, Tschirch, Tuch, Tucholke, Tudow, Tuschmo, Tächl, Többen, Töpfer, Uhlemann, Uhlig, Uhrig, Uibel, Uliczka, Ullmann, Ullrich, Umbach, Umlauft, Umminger, Unger, Unterpaintner, Urban, Urbaniak, Urbansky, Urhig, Vahlensieck, Van, Vangermain, Vater, Venghaus, Verniest, Verzi, Vey, Viellehner, Vieweg, Voelkel, Vogel, Vogelgsang, Vogt, Voigt, Vokuhl, Volk, Volker, Volkmann, Von, Vona, Vontein, Wachenbrunner, Wachtel, Wagner, Waibel, Wakan, Waldmann, Wallner, Wallstab, Walter, Walther, Walton, Walz, Wanner, Wartenberg, Waschbüsch, Wassilew, Wassiluk, Weber, Wehrsen, Weidlich, Weidner, Weigel, Weight, Weiler, Weimer, Weis, Weiss, Weller, Welsch, Welz, Welzel, Weniger, Wenk, Werle, Werner, Werrmann, Wessel, Wessinghage, Weyel, Wezel, Wichmann, Wickert, Wiebe, Wiechmann, Wiegelmann, Wierig, Wiese, Wieser, Wilhelm, Wilky, Will, Willwacher, Wilts, Wimmer, Winkelmann, Winkler, Winter, Wischek, Wischer, Wissing, Wittich, Wittl, Wolf, Wolfarth, Wolff, Wollenberg, Wollmann, Woytkowska, Wujak, Wurm, Wyludda, Wölpert, Wöschler, Wühn, Wünsche, Zach, Zaczkiewicz, Zahn, Zaituc, Zandt, Zanner, Zapletal, Zauber, Zeidler, Zekl, Zender, Zeuch, Zeyen, Zeyhle, Ziegler, Zimanyi, Zimmer, Zimmermann, Zinser, Zintl, Zipp, Zipse, Zschunke, Zuber, Zwiener, Zümsande, Östringer, Überacker] + prefix: [Hr., Fr., Dr., Prof. Dr.] + nobility_title_prefix: [zu, von, vom, von der] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{nobility_title_prefix} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ['(0###) #########', '(0####) #######', '+49-###-#######', '+49-####-########'] + + cell_phone: + formats: ['+49-1##-#######', '+49-1###-########'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-AU.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-AU.yml new file mode 100644 index 0000000..cbd28ca --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-AU.yml @@ -0,0 +1,24 @@ +# Australia formatted data types +# Using Top 200 Australian baby names of 2010 +# 286 Surnames familiar to Australian population + +en-AU: + faker: + name: + first_name: [William, Jack, Oliver, Joshua, Thomas, Lachlan, Cooper, Noah, Ethan, Lucas, James, Samuel, Jacob, Liam, Alexander, Benjamin, Max, Isaac, Daniel, Riley, Ryan, Charlie, Tyler, Jake, Matthew, Xavier, Harry, Jayden, Nicholas, Harrison, Levi, Luke, Adam, Henry, Aiden, Dylan, Oscar, Michael, Jackson, Logan, Joseph, Blake, Nathan, Connor, Elijah, Nate, Archie, Bailey, Marcus, Cameron, Jordan, Zachary, Caleb, Hunter, Ashton, Toby, Aidan, Hayden, Mason, Hamish, Edward, Angus, Eli, Sebastian, Christian, Patrick, Andrew, Anthony, Luca, Kai, Beau, Alex, George, Callum, Finn, Zac, Mitchell, Jett, Jesse, Gabriel, Leo, Declan, Charles, Jasper, Jonathan, Aaron, Hugo, David, Christopher, Chase, Owen, Justin, Ali, Darcy, Lincoln, Cody, Phoenix, Sam, John, Joel, Isabella, Ruby, Chloe, Olivia, Charlotte, Mia, Lily, Emily, Ella, Sienna, Sophie, Amelia, Grace, Ava, Zoe, Emma, Sophia, Matilda, Hannah, Jessica, Lucy, Georgia, Sarah, Abigail, Zara, Eva, Scarlett, Jasmine, Chelsea, Lilly, Ivy, Isla, Evie, Isabelle, Maddison, Layla, Summer, Annabelle, Alexis, Elizabeth, Bella, Holly, Lara, Madison, Alyssa, Maya, Tahlia, Claire, Hayley, Imogen, Jade, Ellie, Sofia, Addison, Molly, Phoebe, Alice, Savannah, Gabriella, Kayla, Mikayla, Abbey, Eliza, Willow, Alexandra, Poppy, Samantha, Stella, Amy, Amelie, Anna, Piper, Gemma, Isabel, Victoria, Stephanie, Caitlin, Heidi, Paige, Rose, Amber, Audrey, Claudia, Taylor, Madeline, Angelina, Natalie, Charli, Lauren, Ashley, Violet, Mackenzie, Abby, Skye, Lillian, Alana, Lola, Leah, Eve, Kiara] + last_name: [Smith, Jones, Williams, Brown, Wilson, Taylor, Johnson, White, Martin, Anderson, Thompson, Nguyen, Thomas, Walker, Harris, Lee, Ryan, Robinson, Kelly, King, Davis, Wright, Evans, Roberts, Green, Hall, Wood, Jackson, Clarke, Patel, Khan, Lewis, James, Phillips, Mason, Mitchell, Rose, Davies, Rodriguez, Cox, Alexander, Garden, Campbell, Johnston, Moore, Smyth, O'neill, Doherty, Stewart, Quinn, Murphy, Graham, Mclaughlin, Hamilton, Murray, Hughes, Robertson, Thomson, Scott, Macdonald, Reid, Clark, Ross, Young, Watson, Paterson, Morrison, Morgan, Griffiths, Edwards, Rees, Jenkins, Owen, Price, Moss, Richards, Abbott, Adams, Armstrong, Bahringer, Bailey, Barrows, Bartell, Bartoletti, Barton, Bauch, Baumbach, Bayer, Beahan, Beatty, Becker, Beier, Berge, Bergstrom, Bode, Bogan, Borer, Bosco, Botsford, Boyer, Boyle, Braun, Bruen, Carroll, Carter, Cartwright, Casper, Cassin, Champlin, Christiansen, Cole, Collier, Collins, Connelly, Conroy, Corkery, Cormier, Corwin, Cronin, Crooks, Cruickshank, Cummings, D'amore, Daniel, Dare, Daugherty, Dickens, Dickinson, Dietrich, Donnelly, Dooley, Douglas, Doyle, Durgan, Ebert, Emard, Emmerich, Erdman, Ernser, Fadel, Fahey, Farrell, Fay, Feeney, Feil, Ferry, Fisher, Flatley, Gibson, Gleason, Glover, Goldner, Goodwin, Grady, Grant, Greenfelder, Greenholt, Grimes, Gutmann, Hackett, Hahn, Haley, Hammes, Hand, Hane, Hansen, Harber, Hartmann, Harvey, Hayes, Heaney, Heathcote, Heller, Hermann, Hermiston, Hessel, Hettinger, Hickle, Hill, Hills, Hoppe, Howe, Howell, Hudson, Huel, Hyatt, Jacobi, Jacobs, Jacobson, Jerde, Johns, Keeling, Kemmer, Kessler, Kiehn, Kirlin, Klein, Koch, Koelpin, Kohler, Koss, Kovacek, Kreiger, Kris, Kuhlman, Kuhn, Kulas, Kunde, Kutch, Lakin, Lang, Langworth, Larkin, Larson, Leannon, Leffler, Little, Lockman, Lowe, Lynch, Mann, Marks, Marvin, Mayer, Mccullough, Mcdermott, Mckenzie, Miller, Mills, Monahan, Morissette, Mueller, Muller, Nader, Nicolas, Nolan, O'connell, O'conner, O'hara, O'keefe, Olson, O'reilly, Parisian, Parker, Quigley, Reilly, Reynolds, Rice, Ritchie, Rohan, Rolfson, Rowe, Russel, Rutherford, Sanford, Sauer, Schmidt, Schmitt, Schneider, Schroeder, Schultz, Shields, Smitham, Spencer, Stanton, Stark, Stokes, Swift, Tillman, Towne, Tremblay, Tromp, Turcotte, Turner, Walsh, Walter, Ward, Waters, Weber, Welch, West, Wilderman, Wilkinson, Williamson, Windler, Wolf] + company: + suffix: [Pty Ltd, and Sons, Corp, Group, Brothers, Partners] + internet: + domain_suffix: [com.au, com, net.au, net, org.au, org] + address: + state_abbr: [NSW, QLD, NT, SA, WA, TAS, ACT, VIC] + state: [New South Wales, Queensland, Northern Territory, South Australia, Western Australia, Tasmania, Australian Capital Territory, Victoria] + postcode: ['0###', '2###', '3###', '4###', '5###', '6###', '7###'] + building_number: ['####', '###', '##'] + street_suffix: [Avenue, Boulevard, Circle, Circuit, Court, Crescent, Crest, Drive, Estate Dr, Grove, Hill, Island, Junction, Knoll, Lane, Loop, Mall, Manor, Meadow, Mews, Parade, Parkway, Pass, Place, Plaza, Ridge, Road, Run, Square, Station St, Street, Summit, Terrace, Track, Trail, View Rd, Way] + default_country: [Australia] + phone_number: + formats: ['0# #### ####', '+61 # #### ####', '04## ### ###', '+61 4## ### ###'] #iOS AUS phone formats + team: + sport: ['basketball', 'football', 'footy', 'netball', 'rugby'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-BORK.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-BORK.yml new file mode 100644 index 0000000..edc87a6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-BORK.yml @@ -0,0 +1,4 @@ +en-BORK: + faker: + lorem: + words: [Boot, I, Nu, Nur, Tu, Um, a, becoose-a, boot, bork, burn, chuuses, cumplete-a, cun, cunseqooences, curcoomstunces, dee, deeslikes, denuoonceeng, desures, du, eccuoont, ectooel, edfuntege-a, efueeds, egeeen, ell, ere-a, feend, foolt, frum, geefe-a, gesh, greet, heem, heppeeness, hes, hoo, hoomun, idea, ifer, in, incuoonter, injuy, itselff, ixcept, ixemple-a, ixerceese-a, ixpleeen, ixplurer, ixpuoond, ixtremely, knoo, lebureeuoos, lufes, meestekee, mester-booeelder, moost, mun, nu, nut, oobteeen, oocceseeunelly, ooccoor, ooff, oone-a, oor, peeen, peeenffool, physeecel, pleesoore-a, poorsooe-a, poorsooes, preeesing, prucoore-a, prudooces, reeght, reshunelly, resooltunt, sume-a, teecheengs, teke-a, thees, thet, thuse-a, treefiel, troot, tu, tueel, und, undertekes, unnuyeeng, uny, unyune-a, us, veell, veet, ves, vheech, vhu, yuoo, zee, zeere-a] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-CA.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-CA.yml new file mode 100644 index 0000000..7381cbe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-CA.yml @@ -0,0 +1,14 @@ +en-CA: + faker: + address: + postcode: /[A-CEJ-NPR-TVXY][0-9][A-CEJ-NPR-TV-Z] ?[0-9][A-CEJ-NPR-TV-Z][0-9]/ + state: [Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Northwest Territories, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan, Yukon] + state_abbr: ["AB", "BC", "MB", "NB", "NL", "NS", "NU", "NT", "ON", "PE", "QC", "SK", "YT"] + default_country: [Canada] + + internet: + free_email: [gmail.com, yahoo.ca, hotmail.com] + domain_suffix: [ca, com, biz, info, name, net, org] + + phone_number: + formats: ['###-###-####', '(###)###-####', '###.###.####', '1-###-###-####', '###-###-#### x###', '(###)###-#### x###', '1-###-###-#### x###', '###.###.#### x###', '###-###-#### x####', '(###)###-#### x####', '1-###-###-#### x####', '###.###.#### x####', '###-###-#### x#####', '(###)###-#### x#####', '1-###-###-#### x#####', '###.###.#### x#####'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-GB.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-GB.yml new file mode 100644 index 0000000..6e138b0 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-GB.yml @@ -0,0 +1,13 @@ +en-GB: + faker: + address: + postcode: /[A-PR-UWYZ][A-HK-Y]?[0-9][ABEHMNPRVWXY0-9]? [0-9][ABD-HJLN-UW-Z]{2}/ + county: [Avon, Bedfordshire, Berkshire, Borders, Buckinghamshire, Cambridgeshire, Central, Cheshire, Cleveland, Clwyd, Cornwall, County Antrim, County Armagh, County Down, County Fermanagh, County Londonderry, County Tyrone, Cumbria, Derbyshire, Devon, Dorset, Dumfries and Galloway, Durham, Dyfed, East Sussex, Essex, Fife, Gloucestershire, Grampian, Greater Manchester, Gwent, Gwynedd County, Hampshire, Herefordshire, Hertfordshire, Highlands and Islands, Humberside, Isle of Wight, Kent, Lancashire, Leicestershire, Lincolnshire, Lothian, Merseyside, Mid Glamorgan, Norfolk, North Yorkshire, Northamptonshire, Northumberland, Nottinghamshire, Oxfordshire, Powys, Rutland, Shropshire, Somerset, South Glamorgan, South Yorkshire, Staffordshire, Strathclyde, Suffolk, Surrey, Tayside, Tyne and Wear, Warwickshire, West Glamorgan, West Midlands, West Sussex, West Yorkshire, Wiltshire, Worcestershire] + uk_country: [England, Scotland, Wales, Northern Ireland] + default_country: [England, Scotland, Wales, Northern Ireland] + internet: + domain_suffix: [co.uk, com, biz, info, name] + phone_number: + formats: ['01#### #####', '01### ######', '01#1 ### ####', '011# ### ####', '02# #### ####', '03## ### ####', '055 #### ####', '056 #### ####', '0800 ### ####', '08## ### ####', '09## ### ####', '016977 ####', '01### #####', '0500 ######', '0800 ######'] + cell_phone: + formats: ['074## ######', '075## ######', '076## ######', '077## ######', '078## ######', '079## ######'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-IND.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-IND.yml new file mode 100644 index 0000000..4faeac5 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-IND.yml @@ -0,0 +1,20 @@ +# India formatted data types +# first_names and last_names courtesy http://www.indianhindunames.com + +en-IND: + faker: + name: + first_name: [Aadrika, Aanandinii, Aaratrika, Aarya, Arya, Aashritha, Aatmaja, Atmaja, Abhaya, Adwitiya, Agrata, Ahilya, Ahalya, Aishani, Akshainie, Akshata, Akshita, Akula, Ambar, Amodini, Amrita, Amritambu, Anala, Anamika, Ananda, Anandamayi, Ananta, Anila, Anjali, Anjushri, Anjushree, Annapurna, Anshula, Anuja, Anusuya, Anasuya, Anasooya, Anwesha, Apsara, Aruna, Asha, Aasa, Aasha, Aslesha, Atreyi, Atreyee, Avani, Abani, Avantika, Ayushmati, Baidehi, Vaidehi, Bala, Baala, Balamani, Basanti, Vasanti, Bela, Bhadra, Bhagirathi, Bhagwanti, Bhagwati, Bhamini, Bhanumati, Bhaanumati, Bhargavi, Bhavani, Bhilangana, Bilwa, Bilva, Buddhana, Chakrika, Chanda, Chandi, Chandni, Chandini, Chandani, Chandra, Chandira, Chandrabhaga, Chandrakala, Chandrakin, Chandramani, Chandrani, Chandraprabha, Chandraswaroopa, Chandravati, Chapala, Charumati, Charvi, Chatura, Chitrali, Chitramala, Chitrangada, Daksha, Dakshayani, Damayanti, Darshwana, Deepali, Dipali, Deeptimoyee, Deeptimayee, Devangana, Devani, Devasree, Devi, Daevi, Devika, Daevika, Dhaanyalakshmi, Dhanalakshmi, Dhana, Dhanadeepa, Dhara, Dharani, Dharitri, Dhatri, Diksha, Deeksha, Divya, Draupadi, Dulari, Durga, Durgeshwari, Ekaparnika, Elakshi, Enakshi, Esha, Eshana, Eshita, Gautami, Gayatri, Geeta, Geetanjali, Gitanjali, Gemine, Gemini, Girja, Girija, Gita, Hamsini, Harinakshi, Harita, Heema, Himadri, Himani, Hiranya, Indira, Jaimini, Jaya, Jyoti, Jyotsana, Kali, Kalinda, Kalpana, Kalyani, Kama, Kamala, Kamla, Kanchan, Kanishka, Kanti, Kashyapi, Kumari, Kumuda, Lakshmi, Laxmi, Lalita, Lavanya, Leela, Lila, Leela, Madhuri, Malti, Malati, Mandakini, Mandaakin, Mangala, Mangalya, Mani, Manisha, Manjusha, Meena, Mina, Meenakshi, Minakshi, Menka, Menaka, Mohana, Mohini, Nalini, Nikita, Ojaswini, Omana, Oormila, Urmila, Opalina, Opaline, Padma, Parvati, Poornima, Purnima, Pramila, Prasanna, Preity, Prema, Priya, Priyala, Pushti, Radha, Rageswari, Rageshwari, Rajinder, Ramaa, Rati, Rita, Rohana, Rukhmani, Rukmin, Rupinder, Sanya, Sarada, Sharda, Sarala, Sarla, Saraswati, Sarisha, Saroja, Shakti, Shakuntala, Shanti, Sharmila, Shashi, Shashikala, Sheela, Shivakari, Shobhana, Shresth, Shresthi, Shreya, Shreyashi, Shridevi, Shrishti, Shubha, Shubhaprada, Siddhi, Sitara, Sloka, Smita, Smriti, Soma, Subhashini, Subhasini, Sucheta, Sudeva, Sujata, Sukanya, Suma, Suma, Sumitra, Sunita, Suryakantam, Sushma, Swara, Swarnalata, Sweta, Shwet, Tanirika, Tanushree, Tanushri, Tanushri, Tanya, Tara, Trisha, Uma, Usha, Vaijayanti, Vaijayanthi, Baijayanti, Vaishvi, Vaishnavi, Vaishno, Varalakshmi, Vasudha, Vasundhara, Veda, Vedanshi, Vidya, Vimala, Vrinda, Vrund, Aadi, Aadidev, Aadinath, Aaditya, Aagam, Aagney, Aamod, Aanandaswarup, Anand Swarup, Aanjaneya, Anjaneya, Aaryan, Aryan, Aatmaj, Aatreya, Aayushmaan, Aayushman, Abhaidev, Abhaya, Abhirath, Abhisyanta, Acaryatanaya, Achalesvara, Acharyanandana, Acharyasuta, Achintya, Achyut, Adheesh, Adhiraj, Adhrit, Adikavi, Adinath, Aditeya, Aditya, Adityanandan, Adityanandana, Adripathi, Advaya, Agasti, Agastya, Agneya, Aagneya, Agnimitra, Agniprava, Agnivesh, Agrata, Ajit, Ajeet, Akroor, Akshaj, Akshat, Akshayakeerti, Alok, Aalok, Amaranaath, Amarnath, Amaresh, Ambar, Ameyatma, Amish, Amogh, Amrit, Anaadi, Anagh, Anal, Anand, Aanand, Anang, Anil, Anilaabh, Anilabh, Anish, Ankal, Anunay, Anurag, Anuraag, Archan, Arindam, Arjun, Arnesh, Arun, Ashlesh, Ashok, Atmanand, Atmananda, Avadhesh, Baalaaditya, Baladitya, Baalagopaal, Balgopal, Balagopal, Bahula, Bakula, Bala, Balaaditya, Balachandra, Balagovind, Bandhu, Bandhul, Bankim, Bankimchandra, Bhadrak, Bhadraksh, Bhadran, Bhagavaan, Bhagvan, Bharadwaj, Bhardwaj, Bharat, Bhargava, Bhasvan, Bhaasvan, Bhaswar, Bhaaswar, Bhaumik, Bhaves, Bheeshma, Bhisham, Bhishma, Bhima, Bhoj, Bhramar, Bhudev, Bhudeva, Bhupati, Bhoopati, Bhoopat, Bhupen, Bhushan, Bhooshan, Bhushit, Bhooshit, Bhuvanesh, Bhuvaneshwar, Bilva, Bodhan, Brahma, Brahmabrata, Brahmanandam, Brahmaanand, Brahmdev, Brajendra, Brajesh, Brijesh, Birjesh, Budhil, Chakor, Chakradhar, Chakravartee, Chakravarti, Chanakya, Chaanakya, Chandak, Chandan, Chandra, Chandraayan, Chandrabhan, Chandradev, Chandraketu, Chandramauli, Chandramohan, Chandran, Chandranath, Chapal, Charak, Charuchandra, Chaaruchandra, Charuvrat, Chatur, Chaturaanan, Chaturbhuj, Chetan, Chaten, Chaitan, Chetanaanand, Chidaakaash, Chidaatma, Chidambar, Chidambaram, Chidananda, Chinmayanand, Chinmayananda, Chiranjeev, Chiranjeeve, Chitraksh, Daiwik, Daksha, Damodara, Dandak, Dandapaani, Darshan, Datta, Dayaamay, Dayamayee, Dayaananda, Dayaanidhi, Kin, Deenabandhu, Deepan, Deepankar, Dipankar, Deependra, Dipendra, Deepesh, Dipesh, Deeptanshu, Deeptendu, Diptendu, Deeptiman, Deeptimoy, Deeptimay, Dev, Deb, Devadatt, Devagya, Devajyoti, Devak, Devdan, Deven, Devesh, Deveshwar, Devi, Devvrat, Dhananjay, Dhanapati, Dhanpati, Dhanesh, Dhanu, Dhanvin, Dharmaketu, Dhruv, Dhyanesh, Dhyaneshwar, Digambar, Digambara, Dinakar, Dinkar, Dinesh, Divaakar, Divakar, Deevakar, Divjot, Dron, Drona, Dwaipayan, Dwaipayana, Eekalabya, Ekalavya, Ekaksh, Ekaaksh, Ekaling, Ekdant, Ekadant, Gajaadhar, Gajadhar, Gajbaahu, Gajabahu, Ganak, Ganaka, Ganapati, Gandharv, Gandharva, Ganesh, Gangesh, Garud, Garuda, Gati, Gatik, Gaurang, Gauraang, Gauranga, Gouranga, Gautam, Gautama, Goutam, Ghanaanand, Ghanshyam, Ghanashyam, Giri, Girik, Girika, Girindra, Giriraaj, Giriraj, Girish, Gopal, Gopaal, Gopi, Gopee, Gorakhnath, Gorakhanatha, Goswamee, Goswami, Gotum, Gautam, Govinda, Gobinda, Gudakesha, Gudakesa, Gurdev, Guru, Hari, Harinarayan, Harit, Himadri, Hiranmay, Hiranmaya, Hiranya, Inder, Indra, Indra, Jagadish, Jagadisha, Jagathi, Jagdeep, Jagdish, Jagmeet, Jahnu, Jai, Javas, Jay, Jitendra, Jitender, Jyotis, Kailash, Kama, Kamalesh, Kamlesh, Kanak, Kanaka, Kannan, Kannen, Karan, Karthik, Kartik, Karunanidhi, Kashyap, Kiran, Kirti, Keerti, Krishna, Krishnadas, Krishnadasa, Kumar, Lai, Lakshman, Laxman, Lakshmidhar, Lakshminath, Lal, Laal, Mahendra, Mohinder, Mahesh, Maheswar, Mani, Manik, Manikya, Manoj, Marut, Mayoor, Meghnad, Meghnath, Mohan, Mukesh, Mukul, Nagabhushanam, Nanda, Narayan, Narendra, Narinder, Naveen, Navin, Nawal, Naval, Nimit, Niranjan, Nirbhay, Niro, Param, Paramartha, Pran, Pranay, Prasad, Prathamesh, Prayag, Prem, Puneet, Purushottam, Rahul, Raj, Rajan, Rajendra, Rajinder, Rajiv, Rakesh, Ramesh, Rameshwar, Ranjit, Ranjeet, Ravi, Ritesh, Rohan, Rohit, Rudra, Sachin, Sameer, Samir, Sanjay, Sanka, Sarvin, Satish, Satyen, Shankar, Shantanu, Shashi, Sher, Shiv, Siddarth, Siddhran, Som, Somu, Somnath, Subhash, Subodh, Suman, Suresh, Surya, Suryakant, Suryakanta, Sushil, Susheel, Swami, Swapnil, Tapan, Tara, Tarun, Tej, Tejas, Trilochan, Trilochana, Trilok, Trilokesh, Triloki, Triloki Nath, Trilokanath, Tushar, Udai, Udit, Ujjawal, Ujjwal, Umang, Upendra, Uttam, Vasudev, Vasudeva, Vedang, Vedanga, Vidhya, Vidur, Vidhur, Vijay, Vimal, Vinay, Vishnu, Bishnu, Vishwamitra, Vyas, Yogendra, Yoginder, Yogesh] + last_name: [Abbott, Achari, Acharya, Adiga, Agarwal, Ahluwalia, Ahuja, Arora, Asan, Bandopadhyay, Banerjee, Bharadwaj, Bhat, Butt, Bhattacharya, Bhattathiri, Chaturvedi, Chattopadhyay, Chopra, Desai, Deshpande, Devar, Dhawan, Dubashi, Dutta, Dwivedi, Embranthiri, Ganaka, Gandhi, Gill, Gowda, Guha, Guneta, Gupta, Iyer, Iyengar, Jain, Jha, Johar, Joshi, Kakkar, Kaniyar, Kapoor, Kaul, Kaur, Khan, Khanna, Khatri, Kocchar, Mahajan, Malik, Marar, Menon, Mehra,Mehrotra, Mishra, Mukhopadhyay, Nayar, Naik, Nair, Nambeesan, Namboothiri, Nehru, Pandey, Panicker, Patel, Patil, Pilla, Pillai, Pothuvaal, Prajapat, Rana, Reddy, Saini, Sethi, Shah, Sharma, Shukla, Singh, Sinha, Somayaji, Tagore, Talwar, Tandon, Trivedi, Varrier, Varma, Varman, Verma] + address: + postcode: ['?#? #?#'] + state: [Andra Pradesh, Arunachal Pradesh, Assam, Bihar, Chhattisgarh, Goa, Gujarat, Haryana, Himachal Pradesh, Jammu and Kashmir, Jharkhand, Karnataka, Kerala, Madya Pradesh, Maharashtra, Manipur, Meghalaya, Mizoram, Nagaland, Orissa, Punjab, Rajasthan, Sikkim, Tamil Nadu, Tripura, Uttaranchal, Uttar Pradesh, West Bengal, Andaman and Nicobar Islands, Chandigarh, Dadar and Nagar Haveli, Daman and Diu, Delhi, Lakshadweep, Pondicherry] + state_abbr: [AP, AR, AS, BR, CG, DL, GA, GJ, HR, HP, JK, JS, KA, KL, MP, MH, MN, ML, MZ, NL, OR, PB, RJ, SK, TN, TR, UK, UP, WB, AN, CH, DN, DD, LD, PY] + default_country: [India, Indian Republic, Bharat, Hindustan] + internet: + free_email: [gmail.com, yahoo.co.in, hotmail.com] + domain_suffix: [in, com, biz, info, name, net, org, co.in] + company: + suffix: [Pvt Ltd, Limited, Ltd, and Sons, Corp, Group, Brothers] + phone_number: + formats: ['+91###-###-####', '+91##########', '+91-###-#######'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-NEP.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-NEP.yml new file mode 100644 index 0000000..11a8fb8 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-NEP.yml @@ -0,0 +1,39 @@ +# Country => Nepal +# This file is formatted for Nepal. + +nep: + faker: + name: + first_name: [ + "Aarav", "Ajita", "Amit", "Amita", "Amrit", "Arijit", "Ashmi", "Asmita", "Bibek", "Bijay", "Bikash", "Bina", "Bishal", + "Bishnu", "Buddha", "Deepika", "Dipendra", "Gagan", "Ganesh", "Khem", "Krishna", "Laxmi", "Manisha", "Nabin", "Nikita", + "Niraj", "Nischal", "Padam", "Pooja", "Prabin", "Prakash", "Prashant", "Prem", "Purna", "Rajendra", "Rajina", "Raju", + "Rakesh", "Ranjan", "Ratna", "Sagar", "Sandeep", "Sanjay", "Santosh", "Sarita", "Shilpa", "Shirisha", "Shristi", + "Siddhartha", "Subash", "Sumeet", "Sunita", "Suraj", "Susan", "Sushant" + ] + last_name: [ + "Adhikari", "Aryal", "Baral", "Basnet", "Bastola", "Basynat", "Bhandari", "Bhattarai", "Chettri", "Devkota", "Dhakal", + "Dongol", "Ghale", "Gurung", "Gyawali", "Hamal", "Jung", "KC", "Kafle", "Karki", "Khadka", "Koirala", "Lama", "Limbu", + "Magar", "Maharjan", "Niroula", "Pandey", "Pradhan", "Rana", "Raut", "Sai", "Shai", "Shakya", "Sherpa", "Shrestha", + "Subedi", "Tamang", "Thapa" + ] + address: + postcode: [0000] + state: [ + "Baglung", "Banke", "Bara", "Bardiya", "Bhaktapur", "Bhojupu", "Chitwan", "Dailekh", "Dang", "Dhading", "Dhankuta", "Dhanusa", "Dolakha", + "Dolpha", "Gorkha", "Gulmi", "Humla", "Ilam", "Jajarkot", "Jhapa", "Jumla", "Kabhrepalanchok", "Kalikot", "Kapilvastu", "Kaski", "Kathmandu", + "Lalitpur", "Lamjung", "Manang", "Mohottari", "Morang", "Mugu", "Mustang", "Myagdi", "Nawalparasi", "Nuwakot", "Palpa", "Parbat", "Parsa", + "Ramechhap", "Rauswa", "Rautahat", "Rolpa", "Rupandehi", "Sankhuwasabha", "Sarlahi", "Sindhuli", "Sindhupalchok", "Sunsari", "Surket", + "Syangja", "Tanahu", "Terhathum" + ] + city: ["Bhaktapur", "Biratnagar", "Birendranagar", "Birgunj", "Butwal", "Damak", "Dharan", "Gaur", "Gorkha", "Hetauda", "Itahari", "Janakpur", "Kathmandu", "Lahan", "Nepalgunj", "Pokhara"] + default_country: ["Nepal"] + internet: + free_email: ['worldlink.com.np', 'gmail.com', 'yahoo.com', 'hotmail.com'] + domain_suffix: ['np', 'com', 'info', 'net', 'org'] + company: + suffix: ['Pvt Ltd', 'Group', 'Ltd', 'Limited'] + phone_number: + formats: ['##-#######', '+977-#-#######', '+977########'] + + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-UG.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-UG.yml new file mode 100644 index 0000000..d355f6f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-UG.yml @@ -0,0 +1,128 @@ +en-UG: + faker: + internet: + domain_suffix: [ug, com, org, co.ug, org.ug, net] + address: + default_country: [Uganda, The Republic of Uganda, UG] + # city names from http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Uganda + city_names: [ + Alebtong, Abim, Adjumani, Amolatar, Amuria, Amuru, Apac, Arua, + Bombo, Budaka, Bugembe, Bugiri, Bukedea, Bulisa, Buikwe, Bundibugyo, + Busembatya, Bushenyi, Busia, Busolwe, Butaleja,Buwenge, + Dokolo, + Entebbe, + Fort Portal, + Gulu, + Hima,Hoima, + Ibanda, Iganga, Isingiro, + Jinja, + Kaabong, Kabale, Kaberamaido, Kabwohe, Kagadi, Kakinga, Kakiri, Kalangala, Kaliro, + Kalisizo, Kalongo, Kalungu, Kampala, Kamuli, Kanoni, Kamwenge, Kanungu, Kapchorwa, + Kasese, Katakwi, Kayunga, Kibaale, Kiboga, Kihiihi, Kiira, Kiruhura, Kiryandongo, + Kisoro, Kitgum, Koboko, Kotido, Kumi, Kyenjojo, Kyotera, + Lira, Lugazi, Lukaya, Luwero, Lwakhakha, Lwengo, Lyantonde, + Malaba, Manafwa, Masaka, Masindi, Masindi Port, Matugga, Mayuge, Mbale,Mbarara, + Mitooma, Mityana, Mpigi, Mpondwe, Moroto, Moyo, Mubende, Mukono, Mutukula, + Nagongera, Nakaseke, Nakasongola, Nakapiripirit, Namutumba, Nansana, Nebbi, Ngora, + Njeru, Nkokonjeru, Ntungamo, + Oyam, + Pader, Paidha, Pakwach, Pallisa, + Rakai, Rukungiri, + Sembabule, Sironko, Soroti, + Tororo, + Wakiso, Wobulenzi, + Yumbe + ] + # district names from http://en.wikipedia.org/wiki/Category:Districts_of_Uganda + district_names: [ + Abim, Adjumani, Agago, Alebtong, Amolatar, Amudat, Amuria, Amuru, Apac, Arua, + Budaka, Bududa, Bugiri, Buhweju, Buikwe, Bukedea, Bukomansimbi, Bukwo, Bulambuli, + Buliisa, Bundibugyo, Bushenyi, Busia, Butaleja, Butambala, Buvuma, Buyende, + Dokolo, + Gomba, Gulu, + Hoima, + Ibanda, Iganga, Isingiro, + Jinja, + Kaabong, Kabale, Kabarole, Kaberamaido, Kalangala, Kaliro, Kalungu, Kampala, Kamuli, + Kamwenge, Kanungu, Kapchorwa, Kasese, Katakwi, Kayunga, Kibaale, Kiboga, Kibuku, + Kigezi, Kiruhura, Kiryandongo, Kisoro, Kitgum, Koboko, Kole, Kotido, Kumi, Kween, + Kyankwanzi, Kyegegwa, Kyenjojo, + Lamwo, Lira, Luuka, Luweero, Lwengo, Lyantonde, + Manafwa, Maracha, Maracha-Terego, Masaka, Masindi, Mayuge, Mbale, Mbarara, Mitooma, + Mityana, Moroto, Moyo, Mpigi, Mubende, Mukono, + Nakapiripirit, Nakaseke, Nakasongola, Namayingo, Namutumba, Napak, Nebbi, Ngora, + Ntoroko, Ntungamo, Nwoya, + Otuke, Oyam, + Pader, Pallisa, + Rakai, Rubirizi, Rukungiri, + Sembabule, Serere, Sheema, Sironko, Soroti, + Tororo, + Wakiso, + Yumbe, + Zombo + ] + regions: [Central, East, North, West] + city: + - "#{city_names}" + district: + - "#{district_names}" + region: + - "#{regions}" + phone_number: + formats: + # carrier mtn landline + - "256 39# ### ###" + - "+256 39# ### ###" + - "039# ### ###" + # carrier utl landline + - "256 41# ### ###" + - "+256 41# ### ###" + - "041# ### ###" + cell_phone: + formats: + # africell + - "+256 79# ### ###" + - "256 79# ### ###" + - "0 79# ### ###" + # airtel + - "+256 70# ### ###" + - "256 70# ### ###" + - "0 70# ### ###" + - "+256 75# ### ###" + - "256 75# ### ###" + - "0 75# ### ###" + # mtn + - "+256 77# ### ###" + - "256 77# ### ###" + - "0 77# ### ###" + - "+256 78# ### ###" + - "256 78# ### ###" + - "0 78# ### ###" + # smart + - "+256 74# ### ###" + - "256 74# ### ###" + - "0 74# ### ###" + # utl + - "+256 71# ### ###" + - "256 71# ### ###" + - "0 71# ### ###" + # vodafone + - "+256 72# ### ###" + - "256 72# ### ###" + - "0 72# ### ###" + name: + last_name: [ + Abayisenga, Agaba, Ahebwe, Aisu, Akankunda, Akankwasa, Akashaba, Akashabe, Ampumuza, Ankunda, Asasira, Asiimwe, Atuhe, Atuhire, Atukunda, Atukwase, Atwine, Aurishaba, + Badru, Baguma, Bakabulindi, Bamwiine, Barigye, Bbosa, Bisheko, Biyinzika, Bugala, Bukenya, Buyinza, Bwana, Byanyima, Byaruhanga, + Ddamulira, + Gamwera, + Ijaga, Isyagi, + Kaaya, Kabanda, Kabuubi, Kabuye, Kafeero, Kagambira, Kakooza, Kalumba, Kanshabe, Kansiime, Kanyesigye, Kareiga, Kasekende, Kasumba, Kateregga, Katusiime, Kawooya, Kawuki, Kayemba, Kazibwe, Kibirige, Kiconco, Kiganda, Kijjoba, Kirabira, Kirabo, Kirigwajjo, Kisitu, Kitovu, Kityamuwesi, Kivumbi, Kiwanuka, Kyambadde, + Lunyoro, + Mbabazi, Migisha, Mugisa, Mugisha, Muhwezi, Mukalazi, Mulalira, Munyagwa, Murungi, Mushabe, Musinguzi, Mutabuza, Muyambi, Mwesige, Mwesigye, + Nabasa, Nabimanya, Nankunda, Natukunda, Nayebare, Nimukunda, Ninsiima, Nkoojo, Nkurunungi, Nuwagaba, Nuwamanya, Nyeko, + Obol, Odeke, Okumu, Okumuringa, Opega, Orishaba, Osiki, Ouma, + Rubalema, Rusiimwa, Rwabyoma, + Tamale, Tendo, Tizikara, Tuhame, Tumusiime, Tumwebaze, Tumwesigye, Tumwiine, Turyasingura, Tusiime, Twasiima, Twesigomwe, + Wasswa, Wavamuno, Were + ] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-US.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-US.yml new file mode 100644 index 0000000..21f6dbe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-US.yml @@ -0,0 +1,83 @@ +en-US: + faker: + internet: + domain_suffix: [com, us, biz, info, name, net, org, io, co] + address: + default_country: [United States, United States of America, USA] + postcode_by_state: + AL: '350##' + AK: '995##' + AS: '967##' + AZ: '850##' + AR: '717##' + CA: '900##' + CO: '800##' + CT: '061##' + DC: '204##' + DE: '198##' + FL: '322##' + GA: '301##' + HI: '967##' + ID: '832##' + IL: '600##' + IN: '463##' + IA: '510##' + KS: '666##' + KY: '404##' + LA: '701##' + ME: '042##' + MD: '210##' + MA: '026##' + MI: '480##' + MN: '555##' + MS: '387##' + MO: '650##' + MT: '590##' + NE: '688##' + NV: '898##' + NH: '036##' + NJ: '076##' + NM: '880##' + NY: '122##' + NC: '288##' + ND: '586##' + OH: '444##' + OK: '730##' + OR: '979##' + PA: '186##' + RI: '029##' + SC: '299##' + SD: '577##' + TN: '383##' + TX: '798##' + UT: '847##' + VT: '050##' + VA: '222##' + WA: '990##' + WV: '247##' + WI: '549##' + WY: '831##' + phone_number: + area_code: ["201", "202", "203", "205", "206", "207", "208", "209", "210", "212", "213", "214", "215", "216", "217", "218", "219", "224", "225", "227", "228", "229", "231", "234", "239", "240", "248", "251", "252", "253", "254", "256", "260", "262", "267", "269", "270", "276", "281", "283", "301", "302", "303", "304", "305", "307", "308", "309", "310", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "323", "330", "331", "334", "336", "337", "339", "347", "351", "352", "360", "361", "386", "401", "402", "404", "405", "406", "407", "408", "409", "410", "412", "413", "414", "415", "417", "419", "423", "424", "425", "434", "435", "440", "443", "445", "464", "469", "470", "475", "478", "479", "480", "484", "501", "502", "503", "504", "505", "507", "508", "509", "510", "512", "513", "515", "516", "517", "518", "520", "530", "540", "541", "551", "557", "559", "561", "562", "563", "564", "567", "570", "571", "573", "574", "580", "585", "586", "601", "602", "603", "605", "606", "607", "608", "609", "610", "612", "614", "615", "616", "617", "618", "619", "620", "623", "626", "630", "631", "636", "641", "646", "650", "651", "660", "661", "662", "667", "678", "682", "701", "702", "703", "704", "706", "707", "708", "712", "713", "714", "715", "716", "717", "718", "719", "720", "724", "727", "731", "732", "734", "737", "740", "754", "757", "760", "763", "765", "770", "772", "773", "774", "775", "781", "785", "786", "801", "802", "803", "804", "805", "806", "808", "810", "812", "813", "814", "815", "816", "817", "818", "828", "830", "831", "832", "835", "843", "845", "847", "848", "850", "856", "857", "858", "859", "860", "862", "863", "864", "865", "870", "872", "878", "901", "903", "904", "906", "907", "908", "909", "910", "912", "913", "914", "915", "916", "917", "918", "919", "920", "925", "928", "931", "936", "937", "940", "941", "947", "949", "952", "954", "956", "959", "970", "971", "972", "973", "975", "978", "979", "980", "984", "985", "989"] + exchange_code: ["201", "202", "203", "205", "206", "207", "208", "209", "210", "212", "213", "214", "215", "216", "217", "218", "219", "224", "225", "227", "228", "229", "231", "234", "239", "240", "248", "251", "252", "253", "254", "256", "260", "262", "267", "269", "270", "276", "281", "283", "301", "302", "303", "304", "305", "307", "308", "309", "310", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "323", "330", "331", "334", "336", "337", "339", "347", "351", "352", "360", "361", "386", "401", "402", "404", "405", "406", "407", "408", "409", "410", "412", "413", "414", "415", "417", "419", "423", "424", "425", "434", "435", "440", "443", "445", "464", "469", "470", "475", "478", "479", "480", "484", "501", "502", "503", "504", "505", "507", "508", "509", "510", "512", "513", "515", "516", "517", "518", "520", "530", "540", "541", "551", "557", "559", "561", "562", "563", "564", "567", "570", "571", "573", "574", "580", "585", "586", "601", "602", "603", "605", "606", "607", "608", "609", "610", "612", "614", "615", "616", "617", "618", "619", "620", "623", "626", "630", "631", "636", "641", "646", "650", "651", "660", "661", "662", "667", "678", "682", "701", "702", "703", "704", "706", "707", "708", "712", "713", "714", "715", "716", "717", "718", "719", "720", "724", "727", "731", "732", "734", "737", "740", "754", "757", "760", "763", "765", "770", "772", "773", "774", "775", "781", "785", "786", "801", "802", "803", "804", "805", "806", "808", "810", "812", "813", "814", "815", "816", "817", "818", "828", "830", "831", "832", "835", "843", "845", "847", "848", "850", "856", "857", "858", "859", "860", "862", "863", "864", "865", "870", "872", "878", "901", "903", "904", "906", "907", "908", "909", "910", "912", "913", "914", "915", "916", "917", "918", "919", "920", "925", "928", "931", "936", "937", "940", "941", "947", "949", "952", "954", "956", "959", "970", "971", "972", "973", "975", "978", "979", "980", "984", "985", "989"] + formats: + - "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "1-#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}" + - "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "1-#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}" + - "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}" + - "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "1-#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "1-#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "1-#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" + - "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-au-ocker.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-au-ocker.yml new file mode 100644 index 0000000..4bb96a1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en-au-ocker.yml @@ -0,0 +1,31 @@ +# Australian Slang, and ocker names for a bit of fun, as well as +# Aussie specific terms and references +# Took the lead of previous contributors of en-au as a baseline +# regular names are top 50 names from 2013 + +en-au-ocker: + faker: + name: + first_name: [Charlotte, Ava, Chloe, Emily, Olivia, Zoe, Lily, Sophie, Amelia, Sofia, Ella, Isabella, Ruby, Sienna, Mia+3, Grace, Emma, Ivy, Layla, Abigail, Isla, Hannah, Zara, Lucy, Evie, Annabelle, Madison, Alice, Georgia, Maya, Madeline, Audrey, Scarlett, Isabelle, Chelsea, Mila, Holly, Indiana, Poppy, Harper, Sarah, Alyssa, Jasmine, Imogen, Hayley, Pheobe, Eva, Evelyn, Mackenzie, Ayla, Oliver, Jack, Jackson, William, Ethan, Charlie, Lucas, Cooper, Lachlan, Noah, Liam, Alexander, Max, Isaac, Thomas, Xavier, Oscar, Benjamin, Aiden, Mason, Samuel, James, Levi, Riley, Harrison, Ryan, Henry, Jacob, Joshua, Leo, Zach, Harry, Hunter, Flynn, Archie, Tyler, Elijah, Hayden, Jayden, Blake, Archer, Ashton, Sebastian, Zachery, Lincoln, Mitchell, Luca, Nathan, Kai, Connor, Tom, Nigel, Matt, Sean] + last_name: [Smith, Jones, Williams, Brown, Wilson, Taylor, Morton, White, Martin, Anderson, Thompson, Nguyen, Thomas, Walker, Harris, Lee, Ryan, Robinson, Kelly, King, Rausch, Ridge, Connolly, LeQuesne] + ocker_first_name: [Bazza, Bluey, Davo, Johno, Shano, Shazza] + company: + suffix: [Pty Ltd, and Sons, Corp, Group, Brothers, Partners] + internet: + domain_suffix: [com.au, com, net.au, net, org.au, org] + address: + street_root: [Ramsay Street, Bonnie Doon, Cavill Avenue, Queen Street] + street_name: + - "#{street_root}" + city_prefix: [Bondi, Burleigh Heads, Carlton, Fitzroy, Fremantle, Glenelg, Manly, Noosa, Stones Corner, St Kilda, Surry Hills, Yarra Valley] + city: + - "#{city_prefix}" + state_abbr: [NSW, QLD, NT, SA, WA, TAS, ACT, VIC] + region: [South East Queensland, Wide Bay Burnett, Margaret River, Port Pirie, Gippsland, Elizabeth, Barossa] + state: [New South Wales, Queensland, Northern Territory, South Australia, Western Australia, Tasmania, Australian Capital Territory, Victoria] + postcode: ['0###', '2###', '3###', '4###', '5###', '6###', '7###'] + building_number: ['####', '###', '##'] + street_suffix: [Avenue, Boulevard, Circle, Circuit, Court, Crescent, Crest, Drive, Estate Dr, Grove, Hill, Island, Junction, Knoll, Lane, Loop, Mall, Manor, Meadow, Mews, Parade, Parkway, Pass, Place, Plaza, Ridge, Road, Run, Square, Station St, Street, Summit, Terrace, Track, Trail, View Rd, Way] + default_country: [Australia] + phone_number: + formats: ['0# #### ####', '+61 # #### ####', '04## ### ###', '+61 4## ### ###'] #iOS AUS phone formats \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en.yml new file mode 100644 index 0000000..7a942bd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/en.yml @@ -0,0 +1,189 @@ +en: + faker: + separator: ' & ' + address: + city_prefix: [North, East, West, South, New, Lake, Port] + city_suffix: [town, ton, land, ville, berg, burgh, borough, bury, view, port, mouth, stad, furt, chester, mouth, fort, haven, side, shire] + country: [Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica (the territory South of 60 deg S), Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia and Herzegovina, Botswana, Bouvet Island (Bouvetoya), Brazil, British Indian Ocean Territory (Chagos Archipelago), Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Cayman Islands, Central African Republic, Chad, Chile, China, Christmas Island, Cocos (Keeling) Islands, Colombia, Comoros, Congo, Congo, Cook Islands, Costa Rica, Cote d'Ivoire, Croatia, Cuba, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Faroe Islands, Falkland Islands (Malvinas), Fiji, Finland, France, French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Holy See (Vatican City State), Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, Democratic People's Republic of Korea, Republic of Korea, Kuwait, Kyrgyz Republic, Lao People's Democratic Republic, Latvia, Lebanon, Lesotho, Liberia, Libyan Arab Jamahiriya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands Antilles, Netherlands, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, Northern Mariana Islands, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Pitcairn Islands, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania, Russian Federation, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia (Slovak Republic), Slovenia, Solomon Islands, Somalia, South Africa, South Georgia and the South Sandwich Islands, Spain, Sri Lanka, Sudan, Suriname, Svalbard & Jan Mayen Islands, Swaziland, Sweden, Switzerland, Syrian Arab Republic, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Turks and Caicos Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom, United States of America, United States Minor Outlying Islands, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, 'Virgin Islands, British', 'Virgin Islands, U.S.', Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe] + country_code: ["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"] + building_number: ['#####', '####', '###'] + street_suffix: [Alley, Avenue, Branch, Bridge, Brook, Brooks, Burg, Burgs, Bypass, Camp, Canyon, Cape, Causeway, Center, Centers, Circle, Circles, Cliff, Cliffs, Club, Common, Corner, Corners, Course, Court, Courts, Cove, Coves, Creek, Crescent, Crest, Crossing, Crossroad, Curve, Dale, Dam, Divide, Drive, Drive, Drives, Estate, Estates, Expressway, Extension, Extensions, Fall, Falls, Ferry, Field, Fields, Flat, Flats, Ford, Fords, Forest, Forge, Forges, Fork, Forks, Fort, Freeway, Garden, Gardens, Gateway, Glen, Glens, Green, Greens, Grove, Groves, Harbor, Harbors, Haven, Heights, Highway, Hill, Hills, Hollow, Inlet, Inlet, Island, Island, Islands, Islands, Isle, Isle, Junction, Junctions, Key, Keys, Knoll, Knolls, Lake, Lakes, Land, Landing, Lane, Light, Lights, Loaf, Lock, Locks, Locks, Lodge, Lodge, Loop, Mall, Manor, Manors, Meadow, Meadows, Mews, Mill, Mills, Mission, Mission, Motorway, Mount, Mountain, Mountain, Mountains, Mountains, Neck, Orchard, Oval, Overpass, Park, Parks, Parkway, Parkways, Pass, Passage, Path, Pike, Pine, Pines, Place, Plain, Plains, Plains, Plaza, Plaza, Point, Points, Port, Port, Ports, Ports, Prairie, Prairie, Radial, Ramp, Ranch, Rapid, Rapids, Rest, Ridge, Ridges, River, Road, Road, Roads, Roads, Route, Row, Rue, Run, Shoal, Shoals, Shore, Shores, Skyway, Spring, Springs, Springs, Spur, Spurs, Square, Square, Squares, Squares, Station, Station, Stravenue, Stravenue, Stream, Stream, Street, Street, Streets, Summit, Summit, Terrace, Throughway, Trace, Track, Trafficway, Trail, Trail, Tunnel, Tunnel, Turnpike, Turnpike, Underpass, Union, Unions, Valley, Valleys, Via, Viaduct, View, Views, Village, Village, Villages, Ville, Vista, Vista, Walk, Walks, Wall, Way, Ways, Well, Wells] + secondary_address: ['Apt. ###', 'Suite ###'] + # Though these are US-specific, they are here (in the default locale) for backwards compatibility + postcode: ['#####', '#####-####'] + postcode_by_state: ['#####', '#####-####'] + state: [Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin, Wyoming] + state_abbr: [AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY] + time_zone: [Pacific/Midway, Pacific/Pago_Pago, Pacific/Honolulu, America/Juneau, America/Los_Angeles, America/Tijuana, America/Denver, America/Phoenix, America/Chihuahua, America/Mazatlan, America/Chicago, America/Regina, America/Mexico_City, America/Mexico_City, America/Monterrey, America/Guatemala, America/New_York, America/Indiana/Indianapolis, America/Bogota, America/Lima, America/Lima, America/Halifax, America/Caracas, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Argentina/Buenos_Aires, America/Guyana, America/Godthab, Atlantic/South_Georgia, Atlantic/Azores, Atlantic/Cape_Verde, Europe/Dublin, Europe/London, Europe/Lisbon, Europe/London, Africa/Casablanca, Africa/Monrovia, Etc/UTC, Europe/Belgrade, Europe/Bratislava, Europe/Budapest, Europe/Ljubljana, Europe/Prague, Europe/Sarajevo, Europe/Skopje, Europe/Warsaw, Europe/Zagreb, Europe/Brussels, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Amsterdam, Europe/Berlin, Europe/Berlin, Europe/Rome, Europe/Stockholm, Europe/Vienna, Africa/Algiers, Europe/Bucharest, Africa/Cairo, Europe/Helsinki, Europe/Kiev, Europe/Riga, Europe/Sofia, Europe/Tallinn, Europe/Vilnius, Europe/Athens, Europe/Istanbul, Europe/Minsk, Asia/Jerusalem, Africa/Harare, Africa/Johannesburg, Europe/Moscow, Europe/Moscow, Europe/Moscow, Asia/Kuwait, Asia/Riyadh, Africa/Nairobi, Asia/Baghdad, Asia/Tehran, Asia/Muscat, Asia/Muscat, Asia/Baku, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Yekaterinburg, Asia/Karachi, Asia/Karachi, Asia/Tashkent, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kathmandu, Asia/Dhaka, Asia/Dhaka, Asia/Colombo, Asia/Almaty, Asia/Novosibirsk, Asia/Rangoon, Asia/Bangkok, Asia/Bangkok, Asia/Jakarta, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Chongqing, Asia/Hong_Kong, Asia/Urumqi, Asia/Kuala_Lumpur, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Irkutsk, Asia/Ulaanbaatar, Asia/Seoul, Asia/Tokyo, Asia/Tokyo, Asia/Tokyo, Asia/Yakutsk, Australia/Darwin, Australia/Adelaide, Australia/Melbourne, Australia/Melbourne, Australia/Sydney, Australia/Brisbane, Australia/Hobart, Asia/Vladivostok, Pacific/Guam, Pacific/Port_Moresby, Asia/Magadan, Asia/Magadan, Pacific/Noumea, Pacific/Fiji, Asia/Kamchatka, Pacific/Majuro, Pacific/Auckland, Pacific/Auckland, Pacific/Tongatapu, Pacific/Fakaofo, Pacific/Apia] + city: + - "#{city_prefix} #{Name.first_name}#{city_suffix}" + - "#{city_prefix} #{Name.first_name}" + - "#{Name.first_name}#{city_suffix}" + - "#{Name.last_name}#{city_suffix}" + street_name: + - "#{Name.first_name} #{street_suffix}" + - "#{Name.last_name} #{street_suffix}" + street_address: + - "#{building_number} #{street_name}" + default_country: [United States of America] + + credit_card: + visa: + - /4###########L/ + - /4###-####-####-###L/ + mastercard: + - /5[1-5]##-####-####-###L/ + - /6771-89##-####-###L/ + discover: + - /6011-####-####-###L/ + - /65##-####-####-###L/ + - /64[4-9]#-####-####-###L/ + - /6011-62##-####-####-###L/ + - /65##-62##-####-####-###L/ + - /64[4-9]#-62##-####-####-###L/ + american_express: + - /34##-######-####L/ + - /37##-######-####L/ + diners_club: + - /30[0-5]#-######-###L/ + - /368#-######-###L/ + jcb: + - /3528-####-####-###L/ + - /3529-####-####-###L/ + - /35[3-8]#-####-####-###L/ + switch: + - /6759-####-####-###L/ + - /6759-####-####-####-#L/ + - /6759-####-####-####-##L/ + solo: + - /6767-####-####-###L/ + - /6767-####-####-####-#L/ + - /6767-####-####-####-##L/ + dankort: /5019-####-####-###L/ + maestro: + - /50#{9,16}L/ + - /5[6-8]#{9,16}L/ + - /56##{9,16}L/ + forbrugsforeningen: /6007-22##-####-###L/ + laser: + - /6304###########L/ + - /6706###########L/ + - /6771###########L/ + - /6709###########L/ + - /6304#########{5,6}L/ + - /6706#########{5,6}L/ + - /6771#########{5,6}L/ + - /6709#########{5,6}L/ + + company: + suffix: [Inc, and Sons, LLC, Group] + # Buzzword wordlist from http://www.1728.com/buzzword.htm + buzzwords: + - ["Adaptive", "Advanced", "Ameliorated", "Assimilated", "Automated", "Balanced", "Business-focused", "Centralized", "Cloned", "Compatible", "Configurable", "Cross-group", "Cross-platform", "Customer-focused", "Customizable", "Decentralized", "De-engineered", "Devolved", "Digitized", "Distributed", "Diverse", "Down-sized", "Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded", "Extended", "Face to face", "Focused", "Front-line", "Fully-configurable", "Function-based", "Fundamental", "Future-proofed", "Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated", "Intuitive", "Inverse", "Managed", "Mandatory", "Monitored", "Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered", "Networked", "Object-based", "Open-architected", "Open-source", "Operative", "Optimized", "Optional", "Organic", "Organized", "Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive", "Proactive", "Profit-focused", "Profound", "Programmable", "Progressive", "Public-key", "Quality-focused", "Reactive", "Realigned", "Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered", "Right-sized", "Robust", "Seamless", "Secured", "Self-enabling", "Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised", "Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered", "Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly", "Versatile", "Virtual", "Visionary", "Vision-oriented"] + - ["24 hour", "24/7", "3rd generation", "4th generation", "5th generation", "6th generation", "actuating", "analyzing", "asymmetric", "asynchronous", "attitude-oriented", "background", "bandwidth-monitored", "bi-directional", "bifurcated", "bottom-line", "clear-thinking", "client-driven", "client-server", "coherent", "cohesive", "composite", "context-sensitive", "contextually-based", "content-based", "dedicated", "demand-driven", "didactic", "directional", "discrete", "disintermediate", "dynamic", "eco-centric", "empowering", "encompassing", "even-keeled", "executive", "explicit", "exuding", "fault-tolerant", "foreground", "fresh-thinking", "full-range", "global", "grid-enabled", "heuristic", "high-level", "holistic", "homogeneous", "human-resource", "hybrid", "impactful", "incremental", "intangible", "interactive", "intermediate", "leading edge", "local", "logistical", "maximized", "methodical", "mission-critical", "mobile", "modular", "motivating", "multimedia", "multi-state", "multi-tasking", "national", "needs-based", "neutral", "next generation", "non-volatile", "object-oriented", "optimal", "optimizing", "radical", "real-time", "reciprocal", "regional", "responsive", "scalable", "secondary", "solution-oriented", "stable", "static", "systematic", "systemic", "system-worthy", "tangible", "tertiary", "transitional", "uniform", "upward-trending", "user-facing", "value-added", "web-enabled", "well-modulated", "zero administration", "zero defect", "zero tolerance"] + - ["ability", "access", "adapter", "algorithm", "alliance", "analyzer", "application", "approach", "architecture", "archive", "artificial intelligence", "array", "attitude", "benchmark", "budgetary management", "capability", "capacity", "challenge", "circuit", "collaboration", "complexity", "concept", "conglomeration", "contingency", "core", "customer loyalty", "database", "data-warehouse", "definition", "emulation", "encoding", "encryption", "extranet", "firmware", "flexibility", "focus group", "forecast", "frame", "framework", "function", "functionalities", "Graphic Interface", "groupware", "Graphical User Interface", "hardware", "help-desk", "hierarchy", "hub", "implementation", "info-mediaries", "infrastructure", "initiative", "installation", "instruction set", "interface", "internet solution", "intranet", "knowledge user", "knowledge base", "local area network", "leverage", "matrices", "matrix", "methodology", "middleware", "migration", "model", "moderator", "monitoring", "moratorium", "neural-net", "open architecture", "open system", "orchestration", "paradigm", "parallelism", "policy", "portal", "pricing structure", "process improvement", "product", "productivity", "project", "projection", "protocol", "secured line", "service-desk", "software", "solution", "standardization", "strategy", "structure", "success", "superstructure", "support", "synergy", "system engine", "task-force", "throughput", "time-frame", "toolset", "utilisation", "website", "workforce"] + # BS wordlist from http://dack.com/web/bullshit.html + bs: + - ["implement", "utilize", "integrate", "streamline", "optimize", "evolve", "transform", "embrace", "enable", "orchestrate", "leverage", "reinvent", "aggregate", "architect", "enhance", "incentivize", "morph", "empower", "envisioneer", "monetize", "harness", "facilitate", "seize", "disintermediate", "synergize", "strategize", "deploy", "brand", "grow", "target", "syndicate", "synthesize", "deliver", "mesh", "incubate", "engage", "maximize", "benchmark", "expedite", "reintermediate", "whiteboard", "visualize", "repurpose", "innovate", "scale", "unleash", "drive", "extend", "engineer", "revolutionize", "generate", "exploit", "transition", "e-enable", "iterate", "cultivate", "matrix", "productize", "redefine", "recontextualize"] + - ["clicks-and-mortar", "value-added", "vertical", "proactive", "robust", "revolutionary", "scalable", "leading-edge", "innovative", "intuitive", "strategic", "e-business", "mission-critical", "sticky", "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular", "frictionless", "virtual", "viral", "dynamic", "24/365", "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled", "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient", "front-end", "distributed", "seamless", "extensible", "turn-key", "world-class", "open-source", "cross-platform", "cross-media", "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise", "integrated", "impactful", "wireless", "transparent", "next-generation", "cutting-edge", "user-centric", "visionary", "customized", "ubiquitous", "plug-and-play", "collaborative", "compelling", "holistic", "rich"] + - ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} and #{Name.last_name}" + + university: + prefix: [The, Northern, North, Western, West, Southern, South, Eastern, East] + suffix: [University, Institute, College, Academy] + name: + - "#{Name.last_name} #{University.suffix}" + - "#{University.prefix} #{Name.last_name} #{University.suffix}" + - "#{University.prefix} #{Name.last_name}" + - "#{University.prefix} #{Address.state} #{University.suffix}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, biz, info, name, net, org, io, co] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + supplemental: [abbas, abduco, abeo, abscido, absconditus, absens, absorbeo, absque, abstergo, absum, abundans, abutor, accedo, accendo, acceptus, accipio, accommodo, accusator, acer, acerbitas, acervus, acidus, acies, acquiro, acsi, adamo, adaugeo, addo, adduco, ademptio, adeo, adeptio, adfectus, adfero, adficio, adflicto, adhaero, adhuc, adicio, adimpleo, adinventitias, adipiscor, adiuvo, administratio, admiratio, admitto, admoneo, admoveo, adnuo, adopto, adsidue, adstringo, adsuesco, adsum, adulatio, adulescens, adultus, aduro, advenio, adversus, advoco, aedificium, aeger, aegre, aegrotatio, aegrus, aeneus, aequitas, aequus, aer, aestas, aestivus, aestus, aetas, aeternus, ager, aggero, aggredior, agnitio, agnosco, ago, ait, aiunt, alienus, alii, alioqui, aliqua, alius, allatus, alo, alter, altus, alveus, amaritudo, ambitus, ambulo, amicitia, amiculum, amissio, amita, amitto, amo, amor, amoveo, amplexus, amplitudo, amplus, ancilla, angelus, angulus, angustus, animadverto, animi, animus, annus, anser, ante, antea, antepono, antiquus, aperio, aperte, apostolus, apparatus, appello, appono, appositus, approbo, apto, aptus, apud, aqua, ara, aranea, arbitro, arbor, arbustum, arca, arceo, arcesso, arcus, argentum, argumentum, arguo, arma, armarium, armo, aro, ars, articulus, artificiose, arto, arx, ascisco, ascit, asper, aspicio, asporto, assentator, astrum, atavus, ater, atqui, atrocitas, atrox, attero, attollo, attonbitus, auctor, auctus, audacia, audax, audentia, audeo, audio, auditor, aufero, aureus, auris, aurum, aut, autem, autus, auxilium, avaritia, avarus, aveho, averto, avoco, baiulus, balbus, barba, bardus, basium, beatus, bellicus, bellum, bene, beneficium, benevolentia, benigne, bestia, bibo, bis, blandior, bonus, bos, brevis, cado, caecus, caelestis, caelum, calamitas, calcar, calco, calculus, callide, campana, candidus, canis, canonicus, canto, capillus, capio, capitulus, capto, caput, carbo, carcer, careo, caries, cariosus, caritas, carmen, carpo, carus, casso, caste, casus, catena, caterva, cattus, cauda, causa, caute, caveo, cavus, cedo, celebrer, celer, celo, cena, cenaculum, ceno, censura, centum, cerno, cernuus, certe, certo, certus, cervus, cetera, charisma, chirographum, cibo, cibus, cicuta, cilicium, cimentarius, ciminatio, cinis, circumvenio, cito, civis, civitas, clam, clamo, claro, clarus, claudeo, claustrum, clementia, clibanus, coadunatio, coaegresco, coepi, coerceo, cogito, cognatus, cognomen, cogo, cohaero, cohibeo, cohors, colligo, colloco, collum, colo, color, coma, combibo, comburo, comedo, comes, cometes, comis, comitatus, commemoro, comminor, commodo, communis, comparo, compello, complectus, compono, comprehendo, comptus, conatus, concedo, concido, conculco, condico, conduco, confero, confido, conforto, confugo, congregatio, conicio, coniecto, conitor, coniuratio, conor, conqueror, conscendo, conservo, considero, conspergo, constans, consuasor, contabesco, contego, contigo, contra, conturbo, conventus, convoco, copia, copiose, cornu, corona, corpus, correptius, corrigo, corroboro, corrumpo, coruscus, cotidie, crapula, cras, crastinus, creator, creber, crebro, credo, creo, creptio, crepusculum, cresco, creta, cribro, crinis, cruciamentum, crudelis, cruentus, crur, crustulum, crux, cubicularis, cubitum, cubo, cui, cuius, culpa, culpo, cultellus, cultura, cum, cunabula, cunae, cunctatio, cupiditas, cupio, cuppedia, cupressus, cur, cura, curatio, curia, curiositas, curis, curo, curriculum, currus, cursim, curso, cursus, curto, curtus, curvo, curvus, custodia, damnatio, damno, dapifer, debeo, debilito, decens, decerno, decet, decimus, decipio, decor, decretum, decumbo, dedecor, dedico, deduco, defaeco, defendo, defero, defessus, defetiscor, deficio, defigo, defleo, defluo, defungo, degenero, degero, degusto, deinde, delectatio, delego, deleo, delibero, delicate, delinquo, deludo, demens, demergo, demitto, demo, demonstro, demoror, demulceo, demum, denego, denique, dens, denuncio, denuo, deorsum, depereo, depono, depopulo, deporto, depraedor, deprecator, deprimo, depromo, depulso, deputo, derelinquo, derideo, deripio, desidero, desino, desipio, desolo, desparatus, despecto, despirmatio, infit, inflammatio, paens, patior, patria, patrocinor, patruus, pauci, paulatim, pauper, pax, peccatus, pecco, pecto, pectus, pecunia, pecus, peior, pel, ocer, socius, sodalitas, sol, soleo, solio, solitudo, solium, sollers, sollicito, solum, solus, solutio, solvo, somniculosus, somnus, sonitus, sono, sophismata, sopor, sordeo, sortitus, spargo, speciosus, spectaculum, speculum, sperno, spero, spes, spiculum, spiritus, spoliatio, sponte, stabilis, statim, statua, stella, stillicidium, stipes, stips, sto, strenuus, strues, studio, stultus, suadeo, suasoria, sub, subito, subiungo, sublime, subnecto, subseco, substantia, subvenio, succedo, succurro, sufficio, suffoco, suffragium, suggero, sui, sulum, sum, summa, summisse, summopere, sumo, sumptus, supellex, super, suppellex, supplanto, suppono, supra, surculus, surgo, sursum, suscipio, suspendo, sustineo, suus, synagoga, tabella, tabernus, tabesco, tabgo, tabula, taceo, tactus, taedium, talio, talis, talus, tam, tamdiu, tamen, tametsi, tamisium, tamquam, tandem, tantillus, tantum, tardus, tego, temeritas, temperantia, templum, temptatio, tempus, tenax, tendo, teneo, tener, tenuis, tenus, tepesco, tepidus, ter, terebro, teres, terga, tergeo, tergiversatio, tergo, tergum, termes, terminatio, tero, terra, terreo, territo, terror, tersus, tertius, testimonium, texo, textilis, textor, textus, thalassinus, theatrum, theca, thema, theologus, thermae, thesaurus, thesis, thorax, thymbra, thymum, tibi, timidus, timor, titulus, tolero, tollo, tondeo, tonsor, torqueo, torrens, tot, totidem, toties, totus, tracto, trado, traho, trans, tredecim, tremo, trepide, tres, tribuo, tricesimus, triduana, triginta, tripudio, tristis, triumphus, trucido, truculenter, tubineus, tui, tum, tumultus, tunc, turba, turbo, turpe, turpis, tutamen, tutis, tyrannus, uberrime, ubi, ulciscor, ullus, ulterius, ultio, ultra, umbra, umerus, umquam, una, unde, undique, universe, unus, urbanus, urbs, uredo, usitas, usque, ustilo, ustulo, usus, uter, uterque, utilis, utique, utor, utpote, utrimque, utroque, utrum, uxor, vaco, vacuus, vado, vae, valde, valens, valeo, valetudo, validus, vallum, vapulus, varietas, varius, vehemens, vel, velociter, velum, velut, venia, venio, ventito, ventosus, ventus, venustas, ver, verbera, verbum, vere, verecundia, vereor, vergo, veritas, vero, versus, verto, verumtamen, verus, vesco, vesica, vesper, vespillo, vester, vestigium, vestrum, vetus, via, vicinus, vicissitudo, victoria, victus, videlicet, video, viduata, viduo, vigilo, vigor, vilicus, vilis, vilitas, villa, vinco, vinculum, vindico, vinitor, vinum, vir, virga, virgo, viridis, viriliter, virtus, vis, viscus, vita, vitiosus, vitium, vito, vivo, vix, vobis, vociferor, voco, volaticus, volo, volubilis, voluntarius, volup, volutabrum, volva, vomer, vomica, vomito, vorago, vorax, voro, vos, votum, voveo, vox, vulariter, vulgaris, vulgivagus, vulgo, vulgus, vulnero, vulnus, vulpes, vulticulus, vultuosus, xiphias] + + name: + first_name: [Aaliyah, Aaron, Abagail, Abbey, Abbie, Abbigail, Abby, Abdiel, Abdul, Abdullah, Abe, Abel, Abelardo, Abigail, Abigale, Abigayle, Abner, Abraham, Ada, Adah, Adalberto, Adaline, Adam, Adan, Addie, Addison, Adela, Adelbert, Adele, Adelia, Adeline, Adell, Adella, Adelle, Aditya, Adolf, Adolfo, Adolph, Adolphus, Adonis, Adrain, Adrian, Adriana, Adrianna, Adriel, Adrien, Adrienne, Afton, Aglae, Agnes, Agustin, Agustina, Ahmad, Ahmed, Aida, Aidan, Aiden, Aileen, Aimee, Aisha, Aiyana, Akeem, Al, Alaina, Alan, Alana, Alanis, Alanna, Alayna, Alba, Albert, Alberta, Albertha, Alberto, Albin, Albina, Alda, Alden, Alec, Aleen, Alejandra, Alejandrin, Alek, Alena, Alene, Alessandra, Alessandro, Alessia, Aletha, Alex, Alexa, Alexander, Alexandra, Alexandre, Alexandrea, Alexandria, Alexandrine, Alexandro, Alexane, Alexanne, Alexie, Alexis, Alexys, Alexzander, Alf, Alfonso, Alfonzo, Alford, Alfred, Alfreda, Alfredo, Ali, Alia, Alice, Alicia, Alisa, Alisha, Alison, Alivia, Aliya, Aliyah, Aliza, Alize, Allan, Allen, Allene, Allie, Allison, Ally, Alphonso, Alta, Althea, Alva, Alvah, Alvena, Alvera, Alverta, Alvina, Alvis, Alyce, Alycia, Alysa, Alysha, Alyson, Alysson, Amalia, Amanda, Amani, Amara, Amari, Amaya, Amber, Ambrose, Amelia, Amelie, Amely, America, Americo, Amie, Amina, Amir, Amira, Amiya, Amos, Amparo, Amy, Amya, Ana, Anabel, Anabelle, Anahi, Anais, Anastacio, Anastasia, Anderson, Andre, Andreane, Andreanne, Andres, Andrew, Andy, Angel, Angela, Angelica, Angelina, Angeline, Angelita, Angelo, Angie, Angus, Anibal, Anika, Anissa, Anita, Aniya, Aniyah, Anjali, Anna, Annabel, Annabell, Annabelle, Annalise, Annamae, Annamarie, Anne, Annetta, Annette, Annie, Ansel, Ansley, Anthony, Antoinette, Antone, Antonetta, Antonette, Antonia, Antonietta, Antonina, Antonio, Antwan, Antwon, Anya, April, Ara, Araceli, Aracely, Arch, Archibald, Ardella, Arden, Ardith, Arely, Ari, Ariane, Arianna, Aric, Ariel, Arielle, Arjun, Arlene, Arlie, Arlo, Armand, Armando, Armani, Arnaldo, Arne, Arno, Arnold, Arnoldo, Arnulfo, Aron, Art, Arthur, Arturo, Arvel, Arvid, Arvilla, Aryanna, Asa, Asha, Ashlee, Ashleigh, Ashley, Ashly, Ashlynn, Ashton, Ashtyn, Asia, Assunta, Astrid, Athena, Aubree, Aubrey, Audie, Audra, Audreanne, Audrey, August, Augusta, Augustine, Augustus, Aurelia, Aurelie, Aurelio, Aurore, Austen, Austin, Austyn, Autumn, Ava, Avery, Avis, Axel, Ayana, Ayden, Ayla, Aylin, Baby, Bailee, Bailey, Barbara, Barney, Baron, Barrett, Barry, Bart, Bartholome, Barton, Baylee, Beatrice, Beau, Beaulah, Bell, Bella, Belle, Ben, Benedict, Benjamin, Bennett, Bennie, Benny, Benton, Berenice, Bernadette, Bernadine, Bernard, Bernardo, Berneice, Bernhard, Bernice, Bernie, Berniece, Bernita, Berry, Bert, Berta, Bertha, Bertram, Bertrand, Beryl, Bessie, Beth, Bethany, Bethel, Betsy, Bette, Bettie, Betty, Bettye, Beulah, Beverly, Bianka, Bill, Billie, Billy, Birdie, Blair, Blaise, Blake, Blanca, Blanche, Blaze, Bo, Bobbie, Bobby, Bonita, Bonnie, Boris, Boyd, Brad, Braden, Bradford, Bradley, Bradly, Brady, Braeden, Brain, Brandi, Brando, Brandon, Brandt, Brandy, Brandyn, Brannon, Branson, Brant, Braulio, Braxton, Brayan, Breana, Breanna, Breanne, Brenda, Brendan, Brenden, Brendon, Brenna, Brennan, Brennon, Brent, Bret, Brett, Bria, Brian, Briana, Brianne, Brice, Bridget, Bridgette, Bridie, Brielle, Brigitte, Brionna, Brisa, Britney, Brittany, Brock, Broderick, Brody, Brook, Brooke, Brooklyn, Brooks, Brown, Bruce, Bryana, Bryce, Brycen, Bryon, Buck, Bud, Buddy, Buford, Bulah, Burdette, Burley, Burnice, Buster, Cade, Caden, Caesar, Caitlyn, Cale, Caleb, Caleigh, Cali, Calista, Callie, Camden, Cameron, Camila, Camilla, Camille, Camren, Camron, Camryn, Camylle, Candace, Candelario, Candice, Candida, Candido, Cara, Carey, Carissa, Carlee, Carleton, Carley, Carli, Carlie, Carlo, Carlos, Carlotta, Carmel, Carmela, Carmella, Carmelo, Carmen, Carmine, Carol, Carolanne, Carole, Carolina, Caroline, Carolyn, Carolyne, Carrie, Carroll, Carson, Carter, Cary, Casandra, Casey, Casimer, Casimir, Casper, Cassandra, Cassandre, Cassidy, Cassie, Catalina, Caterina, Catharine, Catherine, Cathrine, Cathryn, Cathy, Cayla, Ceasar, Cecelia, Cecil, Cecile, Cecilia, Cedrick, Celestine, Celestino, Celia, Celine, Cesar, Chad, Chadd, Chadrick, Chaim, Chance, Chandler, Chanel, Chanelle, Charity, Charlene, Charles, Charley, Charlie, Charlotte, Chase, Chasity, Chauncey, Chaya, Chaz, Chelsea, Chelsey, Chelsie, Chesley, Chester, Chet, Cheyanne, Cheyenne, Chloe, Chris, Christ, Christa, Christelle, Christian, Christiana, Christina, Christine, Christop, Christophe, Christopher, Christy, Chyna, Ciara, Cicero, Cielo, Cierra, Cindy, Citlalli, Clair, Claire, Clara, Clarabelle, Clare, Clarissa, Clark, Claud, Claude, Claudia, Claudie, Claudine, Clay, Clemens, Clement, Clementina, Clementine, Clemmie, Cleo, Cleora, Cleta, Cletus, Cleve, Cleveland, Clifford, Clifton, Clint, Clinton, Clotilde, Clovis, Cloyd, Clyde, Coby, Cody, Colby, Cole, Coleman, Colin, Colleen, Collin, Colt, Colten, Colton, Columbus, Concepcion, Conner, Connie, Connor, Conor, Conrad, Constance, Constantin, Consuelo, Cooper, Cora, Coralie, Corbin, Cordelia, Cordell, Cordia, Cordie, Corene, Corine, Cornelius, Cornell, Corrine, Cortez, Cortney, Cory, Coty, Courtney, Coy, Craig, Crawford, Creola, Cristal, Cristian, Cristina, Cristobal, Cristopher, Cruz, Crystal, Crystel, Cullen, Curt, Curtis, Cydney, Cynthia, Cyril, Cyrus, Dagmar, Dahlia, Daija, Daisha, Daisy, Dakota, Dale, Dallas, Dallin, Dalton, Damaris, Dameon, Damian, Damien, Damion, Damon, Dan, Dana, Dandre, Dane, D'angelo, Dangelo, Danial, Daniela, Daniella, Danielle, Danika, Dannie, Danny, Dante, Danyka, Daphne, Daphnee, Daphney, Darby, Daren, Darian, Dariana, Darien, Dario, Darion, Darius, Darlene, Daron, Darrel, Darrell, Darren, Darrick, Darrin, Darrion, Darron, Darryl, Darwin, Daryl, Dashawn, Dasia, Dave, David, Davin, Davion, Davon, Davonte, Dawn, Dawson, Dax, Dayana, Dayna, Dayne, Dayton, Dean, Deangelo, Deanna, Deborah, Declan, Dedric, Dedrick, Dee, Deion, Deja, Dejah, Dejon, Dejuan, Delaney, Delbert, Delfina, Delia, Delilah, Dell, Della, Delmer, Delores, Delpha, Delphia, Delphine, Delta, Demarco, Demarcus, Demario, Demetris, Demetrius, Demond, Dena, Denis, Dennis, Deon, Deondre, Deontae, Deonte, Dereck, Derek, Derick, Deron, Derrick, Deshaun, Deshawn, Desiree, Desmond, Dessie, Destany, Destin, Destinee, Destiney, Destini, Destiny, Devan, Devante, Deven, Devin, Devon, Devonte, Devyn, Dewayne, Dewitt, Dexter, Diamond, Diana, Dianna, Diego, Dillan, Dillon, Dimitri, Dina, Dino, Dion, Dixie, Dock, Dolly, Dolores, Domenic, Domenica, Domenick, Domenico, Domingo, Dominic, Dominique, Don, Donald, Donato, Donavon, Donna, Donnell, Donnie, Donny, Dora, Dorcas, Dorian, Doris, Dorothea, Dorothy, Dorris, Dortha, Dorthy, Doug, Douglas, Dovie, Doyle, Drake, Drew, Duane, Dudley, Dulce, Duncan, Durward, Dustin, Dusty, Dwight, Dylan, Earl, Earlene, Earline, Earnest, Earnestine, Easter, Easton, Ebba, Ebony, Ed, Eda, Edd, Eddie, Eden, Edgar, Edgardo, Edison, Edmond, Edmund, Edna, Eduardo, Edward, Edwardo, Edwin, Edwina, Edyth, Edythe, Effie, Efrain, Efren, Eileen, Einar, Eino, Eladio, Elaina, Elbert, Elda, Eldon, Eldora, Eldred, Eldridge, Eleanora, Eleanore, Eleazar, Electa, Elena, Elenor, Elenora, Eleonore, Elfrieda, Eli, Elian, Eliane, Elias, Eliezer, Elijah, Elinor, Elinore, Elisa, Elisabeth, Elise, Eliseo, Elisha, Elissa, Eliza, Elizabeth, Ella, Ellen, Ellie, Elliot, Elliott, Ellis, Ellsworth, Elmer, Elmira, Elmo, Elmore, Elna, Elnora, Elody, Eloisa, Eloise, Elouise, Eloy, Elroy, Elsa, Else, Elsie, Elta, Elton, Elva, Elvera, Elvie, Elvis, Elwin, Elwyn, Elyse, Elyssa, Elza, Emanuel, Emelia, Emelie, Emely, Emerald, Emerson, Emery, Emie, Emil, Emile, Emilia, Emiliano, Emilie, Emilio, Emily, Emma, Emmalee, Emmanuel, Emmanuelle, Emmet, Emmett, Emmie, Emmitt, Emmy, Emory, Ena, Enid, Enoch, Enola, Enos, Enrico, Enrique, Ephraim, Era, Eriberto, Eric, Erica, Erich, Erick, Ericka, Erik, Erika, Erin, Erling, Erna, Ernest, Ernestina, Ernestine, Ernesto, Ernie, Ervin, Erwin, Eryn, Esmeralda, Esperanza, Esta, Esteban, Estefania, Estel, Estell, Estella, Estelle, Estevan, Esther, Estrella, Etha, Ethan, Ethel, Ethelyn, Ethyl, Ettie, Eudora, Eugene, Eugenia, Eula, Eulah, Eulalia, Euna, Eunice, Eusebio, Eva, Evalyn, Evan, Evangeline, Evans, Eve, Eveline, Evelyn, Everardo, Everett, Everette, Evert, Evie, Ewald, Ewell, Ezekiel, Ezequiel, Ezra, Fabian, Fabiola, Fae, Fannie, Fanny, Fatima, Faustino, Fausto, Favian, Fay, Faye, Federico, Felicia, Felicita, Felicity, Felipa, Felipe, Felix, Felton, Fermin, Fern, Fernando, Ferne, Fidel, Filiberto, Filomena, Finn, Fiona, Flavie, Flavio, Fleta, Fletcher, Flo, Florence, Florencio, Florian, Florida, Florine, Flossie, Floy, Floyd, Ford, Forest, Forrest, Foster, Frances, Francesca, Francesco, Francis, Francisca, Francisco, Franco, Frank, Frankie, Franz, Fred, Freda, Freddie, Freddy, Frederic, Frederick, Frederik, Frederique, Fredrick, Fredy, Freeda, Freeman, Freida, Frida, Frieda, Friedrich, Fritz, Furman, Gabe, Gabriel, Gabriella, Gabrielle, Gaetano, Gage, Gail, Gardner, Garett, Garfield, Garland, Garnet, Garnett, Garret, Garrett, Garrick, Garrison, Garry, Garth, Gaston, Gavin, Gay, Gayle, Gaylord, Gene, General, Genesis, Genevieve, Gennaro, Genoveva, Geo, Geoffrey, George, Georgette, Georgiana, Georgianna, Geovanni, Geovanny, Geovany, Gerald, Geraldine, Gerard, Gerardo, Gerda, Gerhard, Germaine, German, Gerry, Gerson, Gertrude, Gia, Gianni, Gideon, Gilbert, Gilberto, Gilda, Giles, Gillian, Gina, Gino, Giovani, Giovanna, Giovanni, Giovanny, Gisselle, Giuseppe, Gladyce, Gladys, Glen, Glenda, Glenna, Glennie, Gloria, Godfrey, Golda, Golden, Gonzalo, Gordon, Grace, Gracie, Graciela, Grady, Graham, Grant, Granville, Grayce, Grayson, Green, Greg, Gregg, Gregoria, Gregorio, Gregory, Greta, Gretchen, Greyson, Griffin, Grover, Guadalupe, Gudrun, Guido, Guillermo, Guiseppe, Gunnar, Gunner, Gus, Gussie, Gust, Gustave, Guy, Gwen, Gwendolyn, Hadley, Hailee, Hailey, Hailie, Hal, Haleigh, Haley, Halie, Halle, Hallie, Hank, Hanna, Hannah, Hans, Hardy, Harley, Harmon, Harmony, Harold, Harrison, Harry, Harvey, Haskell, Hassan, Hassie, Hattie, Haven, Hayden, Haylee, Hayley, Haylie, Hazel, Hazle, Heath, Heather, Heaven, Heber, Hector, Heidi, Helen, Helena, Helene, Helga, Hellen, Helmer, Heloise, Henderson, Henri, Henriette, Henry, Herbert, Herman, Hermann, Hermina, Herminia, Herminio, Hershel, Herta, Hertha, Hester, Hettie, Hilario, Hilbert, Hilda, Hildegard, Hillard, Hillary, Hilma, Hilton, Hipolito, Hiram, Hobart, Holden, Hollie, Hollis, Holly, Hope, Horace, Horacio, Hortense, Hosea, Houston, Howard, Howell, Hoyt, Hubert, Hudson, Hugh, Hulda, Humberto, Hunter, Hyman, Ian, Ibrahim, Icie, Ida, Idell, Idella, Ignacio, Ignatius, Ike, Ila, Ilene, Iliana, Ima, Imani, Imelda, Immanuel, Imogene, Ines, Irma, Irving, Irwin, Isaac, Isabel, Isabell, Isabella, Isabelle, Isac, Isadore, Isai, Isaiah, Isaias, Isidro, Ismael, Isobel, Isom, Israel, Issac, Itzel, Iva, Ivah, Ivory, Ivy, Izabella, Izaiah, Jabari, Jace, Jacey, Jacinthe, Jacinto, Jack, Jackeline, Jackie, Jacklyn, Jackson, Jacky, Jaclyn, Jacquelyn, Jacques, Jacynthe, Jada, Jade, Jaden, Jadon, Jadyn, Jaeden, Jaida, Jaiden, Jailyn, Jaime, Jairo, Jakayla, Jake, Jakob, Jaleel, Jalen, Jalon, Jalyn, Jamaal, Jamal, Jamar, Jamarcus, Jamel, Jameson, Jamey, Jamie, Jamil, Jamir, Jamison, Jammie, Jan, Jana, Janae, Jane, Janelle, Janessa, Janet, Janice, Janick, Janie, Janis, Janiya, Jannie, Jany, Jaquan, Jaquelin, Jaqueline, Jared, Jaren, Jarod, Jaron, Jarred, Jarrell, Jarret, Jarrett, Jarrod, Jarvis, Jasen, Jasmin, Jason, Jasper, Jaunita, Javier, Javon, Javonte, Jay, Jayce, Jaycee, Jayda, Jayde, Jayden, Jaydon, Jaylan, Jaylen, Jaylin, Jaylon, Jayme, Jayne, Jayson, Jazlyn, Jazmin, Jazmyn, Jazmyne, Jean, Jeanette, Jeanie, Jeanne, Jed, Jedediah, Jedidiah, Jeff, Jefferey, Jeffery, Jeffrey, Jeffry, Jena, Jenifer, Jennie, Jennifer, Jennings, Jennyfer, Jensen, Jerad, Jerald, Jeramie, Jeramy, Jerel, Jeremie, Jeremy, Jermain, Jermaine, Jermey, Jerod, Jerome, Jeromy, Jerrell, Jerrod, Jerrold, Jerry, Jess, Jesse, Jessica, Jessie, Jessika, Jessy, Jessyca, Jesus, Jett, Jettie, Jevon, Jewel, Jewell, Jillian, Jimmie, Jimmy, Jo, Joan, Joana, Joanie, Joanne, Joannie, Joanny, Joany, Joaquin, Jocelyn, Jodie, Jody, Joe, Joel, Joelle, Joesph, Joey, Johan, Johann, Johanna, Johathan, John, Johnathan, Johnathon, Johnnie, Johnny, Johnpaul, Johnson, Jolie, Jon, Jonas, Jonatan, Jonathan, Jonathon, Jordan, Jordane, Jordi, Jordon, Jordy, Jordyn, Jorge, Jose, Josefa, Josefina, Joseph, Josephine, Josh, Joshua, Joshuah, Josiah, Josiane, Josianne, Josie, Josue, Jovan, Jovani, Jovanny, Jovany, Joy, Joyce, Juana, Juanita, Judah, Judd, Jude, Judge, Judson, Judy, Jules, Julia, Julian, Juliana, Julianne, Julie, Julien, Juliet, Julio, Julius, June, Junior, Junius, Justen, Justice, Justina, Justine, Juston, Justus, Justyn, Juvenal, Juwan, Kacey, Kaci, Kacie, Kade, Kaden, Kadin, Kaela, Kaelyn, Kaia, Kailee, Kailey, Kailyn, Kaitlin, Kaitlyn, Kale, Kaleb, Kaleigh, Kaley, Kali, Kallie, Kameron, Kamille, Kamren, Kamron, Kamryn, Kane, Kara, Kareem, Karelle, Karen, Kari, Kariane, Karianne, Karina, Karine, Karl, Karlee, Karley, Karli, Karlie, Karolann, Karson, Kasandra, Kasey, Kassandra, Katarina, Katelin, Katelyn, Katelynn, Katharina, Katherine, Katheryn, Kathleen, Kathlyn, Kathryn, Kathryne, Katlyn, Katlynn, Katrina, Katrine, Kattie, Kavon, Kay, Kaya, Kaycee, Kayden, Kayla, Kaylah, Kaylee, Kayleigh, Kayley, Kayli, Kaylie, Kaylin, Keagan, Keanu, Keara, Keaton, Keegan, Keeley, Keely, Keenan, Keira, Keith, Kellen, Kelley, Kelli, Kellie, Kelly, Kelsi, Kelsie, Kelton, Kelvin, Ken, Kendall, Kendra, Kendrick, Kenna, Kennedi, Kennedy, Kenneth, Kennith, Kenny, Kenton, Kenya, Kenyatta, Kenyon, Keon, Keshaun, Keshawn, Keven, Kevin, Kevon, Keyon, Keyshawn, Khalid, Khalil, Kian, Kiana, Kianna, Kiara, Kiarra, Kiel, Kiera, Kieran, Kiley, Kim, Kimberly, King, Kip, Kira, Kirk, Kirsten, Kirstin, Kitty, Kobe, Koby, Kody, Kolby, Kole, Korbin, Korey, Kory, Kraig, Kris, Krista, Kristian, Kristin, Kristina, Kristofer, Kristoffer, Kristopher, Kristy, Krystal, Krystel, Krystina, Kurt, Kurtis, Kyla, Kyle, Kylee, Kyleigh, Kyler, Kylie, Kyra, Lacey, Lacy, Ladarius, Lafayette, Laila, Laisha, Lamar, Lambert, Lamont, Lance, Landen, Lane, Laney, Larissa, Laron, Larry, Larue, Laura, Laurel, Lauren, Laurence, Lauretta, Lauriane, Laurianne, Laurie, Laurine, Laury, Lauryn, Lavada, Lavern, Laverna, Laverne, Lavina, Lavinia, Lavon, Lavonne, Lawrence, Lawson, Layla, Layne, Lazaro, Lea, Leann, Leanna, Leanne, Leatha, Leda, Lee, Leif, Leila, Leilani, Lela, Lelah, Leland, Lelia, Lempi, Lemuel, Lenna, Lennie, Lenny, Lenora, Lenore, Leo, Leola, Leon, Leonard, Leonardo, Leone, Leonel, Leonie, Leonor, Leonora, Leopold, Leopoldo, Leora, Lera, Lesley, Leslie, Lesly, Lessie, Lester, Leta, Letha, Letitia, Levi, Lew, Lewis, Lexi, Lexie, Lexus, Lia, Liam, Liana, Libbie, Libby, Lila, Lilian, Liliana, Liliane, Lilla, Lillian, Lilliana, Lillie, Lilly, Lily, Lilyan, Lina, Lincoln, Linda, Lindsay, Lindsey, Linnea, Linnie, Linwood, Lionel, Lisa, Lisandro, Lisette, Litzy, Liza, Lizeth, Lizzie, Llewellyn, Lloyd, Logan, Lois, Lola, Lolita, Loma, Lon, London, Lonie, Lonnie, Lonny, Lonzo, Lora, Loraine, Loren, Lorena, Lorenz, Lorenza, Lorenzo, Lori, Lorine, Lorna, Lottie, Lou, Louie, Louisa, Lourdes, Louvenia, Lowell, Loy, Loyal, Loyce, Lucas, Luciano, Lucie, Lucienne, Lucile, Lucinda, Lucio, Lucious, Lucius, Lucy, Ludie, Ludwig, Lue, Luella, Luigi, Luis, Luisa, Lukas, Lula, Lulu, Luna, Lupe, Lura, Lurline, Luther, Luz, Lyda, Lydia, Lyla, Lynn, Lyric, Lysanne, Mabel, Mabelle, Mable, Mac, Macey, Maci, Macie, Mack, Mackenzie, Macy, Madaline, Madalyn, Maddison, Madeline, Madelyn, Madelynn, Madge, Madie, Madilyn, Madisen, Madison, Madisyn, Madonna, Madyson, Mae, Maegan, Maeve, Mafalda, Magali, Magdalen, Magdalena, Maggie, Magnolia, Magnus, Maia, Maida, Maiya, Major, Makayla, Makenna, Makenzie, Malachi, Malcolm, Malika, Malinda, Mallie, Mallory, Malvina, Mandy, Manley, Manuel, Manuela, Mara, Marc, Marcel, Marcelina, Marcelino, Marcella, Marcelle, Marcellus, Marcelo, Marcia, Marco, Marcos, Marcus, Margaret, Margarete, Margarett, Margaretta, Margarette, Margarita, Marge, Margie, Margot, Margret, Marguerite, Maria, Mariah, Mariam, Marian, Mariana, Mariane, Marianna, Marianne, Mariano, Maribel, Marie, Mariela, Marielle, Marietta, Marilie, Marilou, Marilyne, Marina, Mario, Marion, Marisa, Marisol, Maritza, Marjolaine, Marjorie, Marjory, Mark, Markus, Marlee, Marlen, Marlene, Marley, Marlin, Marlon, Marques, Marquis, Marquise, Marshall, Marta, Martin, Martina, Martine, Marty, Marvin, Mary, Maryam, Maryjane, Maryse, Mason, Mateo, Mathew, Mathias, Mathilde, Matilda, Matilde, Matt, Matteo, Mattie, Maud, Maude, Maudie, Maureen, Maurice, Mauricio, Maurine, Maverick, Mavis, Max, Maxie, Maxime, Maximilian, Maximillia, Maximillian, Maximo, Maximus, Maxine, Maxwell, May, Maya, Maybell, Maybelle, Maye, Maymie, Maynard, Mayra, Mazie, Mckayla, Mckenna, Mckenzie, Meagan, Meaghan, Meda, Megane, Meggie, Meghan, Mekhi, Melany, Melba, Melisa, Melissa, Mellie, Melody, Melvin, Melvina, Melyna, Melyssa, Mercedes, Meredith, Merl, Merle, Merlin, Merritt, Mertie, Mervin, Meta, Mia, Micaela, Micah, Michael, Michaela, Michale, Micheal, Michel, Michele, Michelle, Miguel, Mikayla, Mike, Mikel, Milan, Miles, Milford, Miller, Millie, Milo, Milton, Mina, Minerva, Minnie, Miracle, Mireille, Mireya, Misael, Missouri, Misty, Mitchel, Mitchell, Mittie, Modesta, Modesto, Mohamed, Mohammad, Mohammed, Moises, Mollie, Molly, Mona, Monica, Monique, Monroe, Monserrat, Monserrate, Montana, Monte, Monty, Morgan, Moriah, Morris, Mortimer, Morton, Mose, Moses, Moshe, Mossie, Mozell, Mozelle, Muhammad, Muriel, Murl, Murphy, Murray, Mustafa, Mya, Myah, Mylene, Myles, Myra, Myriam, Myrl, Myrna, Myron, Myrtice, Myrtie, Myrtis, Myrtle, Nadia, Nakia, Name, Nannie, Naomi, Naomie, Napoleon, Narciso, Nash, Nasir, Nat, Natalia, Natalie, Natasha, Nathan, Nathanael, Nathanial, Nathaniel, Nathen, Nayeli, Neal, Ned, Nedra, Neha, Neil, Nelda, Nella, Nelle, Nellie, Nels, Nelson, Neoma, Nestor, Nettie, Neva, Newell, Newton, Nia, Nicholas, Nicholaus, Nichole, Nick, Nicklaus, Nickolas, Nico, Nicola, Nicolas, Nicole, Nicolette, Nigel, Nikita, Nikki, Nikko, Niko, Nikolas, Nils, Nina, Noah, Noble, Noe, Noel, Noelia, Noemi, Noemie, Noemy, Nola, Nolan, Nona, Nora, Norbert, Norberto, Norene, Norma, Norris, Norval, Norwood, Nova, Novella, Nya, Nyah, Nyasia, Obie, Oceane, Ocie, Octavia, Oda, Odell, Odessa, Odie, Ofelia, Okey, Ola, Olaf, Ole, Olen, Oleta, Olga, Olin, Oliver, Ollie, Oma, Omari, Omer, Ona, Onie, Opal, Ophelia, Ora, Oral, Oran, Oren, Orie, Orin, Orion, Orland, Orlando, Orlo, Orpha, Orrin, Orval, Orville, Osbaldo, Osborne, Oscar, Osvaldo, Oswald, Oswaldo, Otha, Otho, Otilia, Otis, Ottilie, Ottis, Otto, Ova, Owen, Ozella, Ozzie, Pablo, Paige, Palma, Pamela, Pansy, Paolo, Paris, Parker, Pascale, Pasquale, Pat, Patience, Patricia, Patrick, Patsy, Pattie, Paul, Paula, Pauline, Paxton, Payton, Pearl, Pearlie, Pearline, Pedro, Peggie, Penelope, Percival, Percy, Perry, Pete, Peter, Petra, Peyton, Philip, Phoebe, Phyllis, Pierce, Pierre, Pietro, Pink, Pinkie, Piper, Polly, Porter, Precious, Presley, Preston, Price, Prince, Princess, Priscilla, Providenci, Prudence, Queen, Queenie, Quentin, Quincy, Quinn, Quinten, Quinton, Rachael, Rachel, Rachelle, Rae, Raegan, Rafael, Rafaela, Raheem, Rahsaan, Rahul, Raina, Raleigh, Ralph, Ramiro, Ramon, Ramona, Randal, Randall, Randi, Randy, Ransom, Raoul, Raphael, Raphaelle, Raquel, Rashad, Rashawn, Rasheed, Raul, Raven, Ray, Raymond, Raymundo, Reagan, Reanna, Reba, Rebeca, Rebecca, Rebeka, Rebekah, Reece, Reed, Reese, Regan, Reggie, Reginald, Reid, Reilly, Reina, Reinhold, Remington, Rene, Renee, Ressie, Reta, Retha, Retta, Reuben, Reva, Rex, Rey, Reyes, Reymundo, Reyna, Reynold, Rhea, Rhett, Rhianna, Rhiannon, Rhoda, Ricardo, Richard, Richie, Richmond, Rick, Rickey, Rickie, Ricky, Rico, Rigoberto, Riley, Rita, River, Robb, Robbie, Robert, Roberta, Roberto, Robin, Robyn, Rocio, Rocky, Rod, Roderick, Rodger, Rodolfo, Rodrick, Rodrigo, Roel, Rogelio, Roger, Rogers, Rolando, Rollin, Roma, Romaine, Roman, Ron, Ronaldo, Ronny, Roosevelt, Rory, Rosa, Rosalee, Rosalia, Rosalind, Rosalinda, Rosalyn, Rosamond, Rosanna, Rosario, Roscoe, Rose, Rosella, Roselyn, Rosemarie, Rosemary, Rosendo, Rosetta, Rosie, Rosina, Roslyn, Ross, Rossie, Rowan, Rowena, Rowland, Roxane, Roxanne, Roy, Royal, Royce, Rozella, Ruben, Rubie, Ruby, Rubye, Rudolph, Rudy, Rupert, Russ, Russel, Russell, Rusty, Ruth, Ruthe, Ruthie, Ryan, Ryann, Ryder, Rylan, Rylee, Ryleigh, Ryley, Sabina, Sabrina, Sabryna, Sadie, Sadye, Sage, Saige, Sallie, Sally, Salma, Salvador, Salvatore, Sam, Samanta, Samantha, Samara, Samir, Sammie, Sammy, Samson, Sandra, Sandrine, Sandy, Sanford, Santa, Santiago, Santina, Santino, Santos, Sarah, Sarai, Sarina, Sasha, Saul, Savanah, Savanna, Savannah, Savion, Scarlett, Schuyler, Scot, Scottie, Scotty, Seamus, Sean, Sebastian, Sedrick, Selena, Selina, Selmer, Serena, Serenity, Seth, Shad, Shaina, Shakira, Shana, Shane, Shanel, Shanelle, Shania, Shanie, Shaniya, Shanna, Shannon, Shanny, Shanon, Shany, Sharon, Shaun, Shawn, Shawna, Shaylee, Shayna, Shayne, Shea, Sheila, Sheldon, Shemar, Sheridan, Sherman, Sherwood, Shirley, Shyann, Shyanne, Sibyl, Sid, Sidney, Sienna, Sierra, Sigmund, Sigrid, Sigurd, Silas, Sim, Simeon, Simone, Sincere, Sister, Skye, Skyla, Skylar, Sofia, Soledad, Solon, Sonia, Sonny, Sonya, Sophia, Sophie, Spencer, Stacey, Stacy, Stan, Stanford, Stanley, Stanton, Stefan, Stefanie, Stella, Stephan, Stephania, Stephanie, Stephany, Stephen, Stephon, Sterling, Steve, Stevie, Stewart, Stone, Stuart, Summer, Sunny, Susan, Susana, Susanna, Susie, Suzanne, Sven, Syble, Sydnee, Sydney, Sydni, Sydnie, Sylvan, Sylvester, Sylvia, Tabitha, Tad, Talia, Talon, Tamara, Tamia, Tania, Tanner, Tanya, Tara, Taryn, Tate, Tatum, Tatyana, Taurean, Tavares, Taya, Taylor, Teagan, Ted, Telly, Terence, Teresa, Terrance, Terrell, Terrence, Terrill, Terry, Tess, Tessie, Tevin, Thad, Thaddeus, Thalia, Thea, Thelma, Theo, Theodora, Theodore, Theresa, Therese, Theresia, Theron, Thomas, Thora, Thurman, Tia, Tiana, Tianna, Tiara, Tierra, Tiffany, Tillman, Timmothy, Timmy, Timothy, Tina, Tito, Titus, Tobin, Toby, Tod, Tom, Tomas, Tomasa, Tommie, Toney, Toni, Tony, Torey, Torrance, Torrey, Toy, Trace, Tracey, Tracy, Travis, Travon, Tre, Tremaine, Tremayne, Trent, Trenton, Tressa, Tressie, Treva, Trever, Trevion, Trevor, Trey, Trinity, Trisha, Tristian, Tristin, Triston, Troy, Trudie, Trycia, Trystan, Turner, Twila, Tyler, Tyra, Tyree, Tyreek, Tyrel, Tyrell, Tyrese, Tyrique, Tyshawn, Tyson, Ubaldo, Ulices, Ulises, Una, Unique, Urban, Uriah, Uriel, Ursula, Vada, Valentin, Valentina, Valentine, Valerie, Vallie, Van, Vance, Vanessa, Vaughn, Veda, Velda, Vella, Velma, Velva, Vena, Verda, Verdie, Vergie, Verla, Verlie, Vern, Verna, Verner, Vernice, Vernie, Vernon, Verona, Veronica, Vesta, Vicenta, Vicente, Vickie, Vicky, Victor, Victoria, Vida, Vidal, Vilma, Vince, Vincent, Vincenza, Vincenzo, Vinnie, Viola, Violet, Violette, Virgie, Virgil, Virginia, Virginie, Vita, Vito, Viva, Vivian, Viviane, Vivianne, Vivien, Vivienne, Vladimir, Wade, Waino, Waldo, Walker, Wallace, Walter, Walton, Wanda, Ward, Warren, Watson, Wava, Waylon, Wayne, Webster, Weldon, Wellington, Wendell, Wendy, Werner, Westley, Weston, Whitney, Wilber, Wilbert, Wilburn, Wiley, Wilford, Wilfred, Wilfredo, Wilfrid, Wilhelm, Wilhelmine, Will, Willa, Willard, William, Willie, Willis, Willow, Willy, Wilma, Wilmer, Wilson, Wilton, Winfield, Winifred, Winnifred, Winona, Winston, Woodrow, Wyatt, Wyman, Xander, Xavier, Xzavier, Yadira, Yasmeen, Yasmin, Yasmine, Yazmin, Yesenia, Yessenia, Yolanda, Yoshiko, Yvette, Yvonne, Zachariah, Zachary, Zachery, Zack, Zackary, Zackery, Zakary, Zander, Zane, Zaria, Zechariah, Zelda, Zella, Zelma, Zena, Zetta, Zion, Zita, Zoe, Zoey, Zoie, Zoila, Zola, Zora, Zula] + last_name: [Abbott, Abernathy, Abshire, Adams, Altenwerth, Anderson, Ankunding, Armstrong, Auer, Aufderhar, Bahringer, Bailey, Balistreri, Barrows, Bartell, Bartoletti, Barton, Bashirian, Batz, Bauch, Baumbach, Bayer, Beahan, Beatty, Bechtelar, Becker, Bednar, Beer, Beier, Berge, Bergnaum, Bergstrom, Bernhard, Bernier, Bins, Blanda, Blick, Block, Bode, Boehm, Bogan, Bogisich, Borer, Bosco, Botsford, Boyer, Boyle, Bradtke, Brakus, Braun, Breitenberg, Brekke, Brown, Bruen, Buckridge, Carroll, Carter, Cartwright, Casper, Cassin, Champlin, Christiansen, Cole, Collier, Collins, Conn, Connelly, Conroy, Considine, Corkery, Cormier, Corwin, Cremin, Crist, Crona, Cronin, Crooks, Cruickshank, Cummerata, Cummings, Dach, D'Amore, Daniel, Dare, Daugherty, Davis, Deckow, Denesik, Dibbert, Dickens, Dicki, Dickinson, Dietrich, Donnelly, Dooley, Douglas, Doyle, DuBuque, Durgan, Ebert, Effertz, Eichmann, Emard, Emmerich, Erdman, Ernser, Fadel, Fahey, Farrell, Fay, Feeney, Feest, Feil, Ferry, Fisher, Flatley, Frami, Franecki, Friesen, Fritsch, Funk, Gaylord, Gerhold, Gerlach, Gibson, Gislason, Gleason, Gleichner, Glover, Goldner, Goodwin, Gorczany, Gottlieb, Goyette, Grady, Graham, Grant, Green, Greenfelder, Greenholt, Grimes, Gulgowski, Gusikowski, Gutkowski, Gutmann, Haag, Hackett, Hagenes, Hahn, Haley, Halvorson, Hamill, Hammes, Hand, Hane, Hansen, Harber, Harris, Hartmann, Harvey, Hauck, Hayes, Heaney, Heathcote, Hegmann, Heidenreich, Heller, Herman, Hermann, Hermiston, Herzog, Hessel, Hettinger, Hickle, Hilll, Hills, Hilpert, Hintz, Hirthe, Hodkiewicz, Hoeger, Homenick, Hoppe, Howe, Howell, Hudson, Huel, Huels, Hyatt, Jacobi, Jacobs, Jacobson, Jakubowski, Jaskolski, Jast, Jenkins, Jerde, Johns, Johnson, Johnston, Jones, Kassulke, Kautzer, Keebler, Keeling, Kemmer, Kerluke, Kertzmann, Kessler, Kiehn, Kihn, Kilback, King, Kirlin, Klein, Kling, Klocko, Koch, Koelpin, Koepp, Kohler, Konopelski, Koss, Kovacek, Kozey, Krajcik, Kreiger, Kris, Kshlerin, Kub, Kuhic, Kuhlman, Kuhn, Kulas, Kunde, Kunze, Kuphal, Kutch, Kuvalis, Labadie, Lakin, Lang, Langosh, Langworth, Larkin, Larson, Leannon, Lebsack, Ledner, Leffler, Legros, Lehner, Lemke, Lesch, Leuschke, Lind, Lindgren, Littel, Little, Lockman, Lowe, Lubowitz, Lueilwitz, Luettgen, Lynch, Macejkovic, MacGyver, Maggio, Mann, Mante, Marks, Marquardt, Marvin, Mayer, Mayert, McClure, McCullough, McDermott, McGlynn, McKenzie, McLaughlin, Medhurst, Mertz, Metz, Miller, Mills, Mitchell, Moen, Mohr, Monahan, Moore, Morar, Morissette, Mosciski, Mraz, Mueller, Muller, Murazik, Murphy, Murray, Nader, Nicolas, Nienow, Nikolaus, Nitzsche, Nolan, Oberbrunner, O'Connell, O'Conner, O'Hara, O'Keefe, O'Kon, Okuneva, Olson, Ondricka, O'Reilly, Orn, Ortiz, Osinski, Pacocha, Padberg, Pagac, Parisian, Parker, Paucek, Pfannerstill, Pfeffer, Pollich, Pouros, Powlowski, Predovic, Price, Prohaska, Prosacco, Purdy, Quigley, Quitzon, Rath, Ratke, Rau, Raynor, Reichel, Reichert, Reilly, Reinger, Rempel, Renner, Reynolds, Rice, Rippin, Ritchie, Robel, Roberts, Rodriguez, Rogahn, Rohan, Rolfson, Romaguera, Roob, Rosenbaum, Rowe, Ruecker, Runolfsdottir, Runolfsson, Runte, Russel, Rutherford, Ryan, Sanford, Satterfield, Sauer, Sawayn, Schaden, Schaefer, Schamberger, Schiller, Schimmel, Schinner, Schmeler, Schmidt, Schmitt, Schneider, Schoen, Schowalter, Schroeder, Schulist, Schultz, Schumm, Schuppe, Schuster, Senger, Shanahan, Shields, Simonis, Sipes, Skiles, Smith, Smitham, Spencer, Spinka, Sporer, Stamm, Stanton, Stark, Stehr, Steuber, Stiedemann, Stokes, Stoltenberg, Stracke, Streich, Stroman, Strosin, Swaniawski, Swift, Terry, Thiel, Thompson, Tillman, Torp, Torphy, Towne, Toy, Trantow, Tremblay, Treutel, Tromp, Turcotte, Turner, Ullrich, Upton, Vandervort, Veum, Volkman, Von, VonRueden, Waelchi, Walker, Walsh, Walter, Ward, Waters, Watsica, Weber, Wehner, Weimann, Weissnat, Welch, West, White, Wiegand, Wilderman, Wilkinson, Will, Williamson, Willms, Windler, Wintheiser, Wisoky, Wisozk, Witting, Wiza, Wolf, Wolff, Wuckert, Wunsch, Wyman, Yost, Yundt, Zboncak, Zemlak, Ziemann, Zieme, Zulauf] + prefix: [Mr., Mrs., Ms., Miss, Dr.] + suffix: [Jr., Sr., I, II, III, IV, V, MD, DDS, PhD, DVM] + title: + descriptor: [Lead, Senior, Direct, Corporate, Dynamic, Future, Product, National, Regional, District, Central, Global, Customer, Investor, Dynamic, International, Legacy, Forward, Internal, Human, Chief, Principal] + level: [Solutions, Program, Brand, Security, Research, Marketing, Directives, Implementation, Integration, Functionality, Response, Paradigm, Tactics, Identity, Markets, Group, Division, Applications, Optimization, Operations, Infrastructure, Intranet, Communications, Web, Branding, Quality, Assurance, Mobility, Accounts, Data, Creative, Configuration, Accountability, Interactions, Factors, Usability, Metrics] + job: [Supervisor, Associate, Executive, Liaison, Officer, Manager, Engineer, Specialist, Director, Coordinator, Administrator, Architect, Analyst, Designer, Planner, Orchestrator, Technician, Developer, Producer, Consultant, Assistant, Facilitator, Agent, Representative, Strategist] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name} #{suffix}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ['###-###-####', '(###) ###-####', '1-###-###-####', '###.###.####', '###-###-####', '(###) ###-####', '1-###-###-####', '###.###.####', '###-###-#### x###', '(###) ###-#### x###', '1-###-###-#### x###', '###.###.#### x###', '###-###-#### x####', '(###) ###-#### x####', '1-###-###-#### x####', '###.###.#### x####', '###-###-#### x#####', '(###) ###-#### x#####', '1-###-###-#### x#####', '###.###.#### x#####'] + cell_phone: + formats: ['###-###-####', '(###) ###-####', '1-###-###-####', '###.###.####'] + + business: + credit_card_numbers: ['1234-2121-1221-1211', '1212-1221-1121-1234', '1211-1221-1234-2201', '1228-1221-1221-1431'] + credit_card_expiry_dates: ['2011-10-12', '2012-11-12', '2015-11-11', '2013-9-12'] + credit_card_types: ['visa', 'mastercard', 'americanexpress', 'discover'] + + commerce: + color: [red, green, blue, yellow, purple, mint green, teal, white, black, orange, pink, grey, maroon, violet, turquoise, tan, sky blue, salmon, plum, orchid, olive, magenta, lime, ivory, indigo, gold, fuchsia, cyan, azure, lavender, silver] + department: ["Books", "Movies", "Music", "Games", "Electronics", "Computers", "Home", "Garden", "Tools", "Grocery", "Health", "Beauty", "Toys", "Kids", "Baby", "Clothing", "Shoes", "Jewelery", "Sports", "Outdoors", "Automotive", "Industrial"] + product_name: + adjective: [Small, Ergonomic, Rustic, Intelligent, Gorgeous, Incredible, Fantastic, Practical, Sleek, Awesome, Enormous, Mediocre, Synergistic, Heavy Duty, Lightweight, Aerodynamic, Durable] + material: [Steel, Wooden, Concrete, Plastic, Cotton, Granite, Rubber, Leather, Silk, Wool, Linen, Marble, Iron, Bronze, Copper, Aluminum, Paper] + product: [Chair, Car, Computer, Gloves, Pants, Shirt, Table, Shoes, Hat, Plate, Knife, Bottle, Coat, Lamp, Keyboard, Bag, Bench, Clock, Watch, Wallet] + + team: + creature: ['ants', 'bats', 'bears', 'bees', 'birds', 'buffalo', 'cats', 'chickens', 'cattle', 'dogs', 'dolphins', 'ducks', 'elephants', 'fishes', 'foxes', 'frogs', 'geese', 'goats', 'horses', 'kangaroos', 'lions', 'monkeys', 'owls', 'oxen', 'penguins', 'people', 'pigs', 'rabbits', 'sheep', 'tigers', 'whales', 'wolves', 'zebras', 'banshees', 'crows', 'black cats', 'chimeras', 'ghosts', 'conspirators', 'dragons', 'dwarves', 'elves', 'enchanters', 'exorcists', 'sons', 'foes', 'giants', 'gnomes', 'goblins', 'gooses', 'griffins', 'lycanthropes', 'nemesis', 'ogres', 'oracles', 'prophets', 'sorcerors', 'spiders', 'spirits', 'vampires', 'warlocks', 'vixens', 'werewolves', 'witches', 'worshipers', 'zombies', 'druids'] + name: + - "#{Address.state} #{creature}" + sport: ['baseball', 'basketball', 'football', 'hockey', 'rugby', 'lacrosse', 'soccer'] + + hacker: + abbreviation: [TCP,HTTP,SDD,RAM,GB,CSS,SSL,AGP,SQL,FTP,PCI,AI,ADP,RSS,XML,EXE,COM,HDD,THX,SMTP,SMS,USB,PNG,SAS,IB,SCSI,JSON,XSS,JBOD] + adjective: [auxiliary,primary,back-end,digital,open-source,virtual,cross-platform,redundant,online,haptic,multi-byte,bluetooth,wireless,1080p,neural, optical,solid state,mobile] + noun: [driver,protocol,bandwidth,panel,microchip,program,port,card,array,interface,system,sensor,firewall,hard drive,pixel,alarm,feed,monitor,application,transmitter,bus,circuit,capacitor,matrix] + verb: [back up,bypass,hack,override,compress,copy,navigate,index,connect,generate,quantify,calculate,synthesize,input,transmit,program,reboot,parse] + ingverb: [backing up,bypassing,hacking,overriding,compressing,copying,navigating,indexing,connecting,generating,quantifying,calculating, synthesizing,transmitting,programming,parsing] + + app: + name: ['Redhold', 'Treeflex', 'Trippledex', 'Kanlam', 'Bigtax', 'Daltfresh', 'Toughjoyfax', 'Mat Lam Tam', 'Otcom', 'Tres-Zap', 'Y-Solowarm', 'Tresom', 'Voltsillam', 'Biodex', 'Greenlam', 'Viva', 'Matsoft', 'Temp', 'Zoolab', 'Subin', 'Rank', 'Job', 'Stringtough', 'Tin', 'It', 'Home Ing', 'Zamit', 'Sonsing', 'Konklab', 'Alpha', 'Latlux', 'Voyatouch', 'Alphazap', 'Holdlamis', 'Zaam-Dox', 'Sub-Ex', 'Quo Lux', 'Bamity', 'Ventosanzap', 'Lotstring', 'Hatity', 'Tempsoft', 'Overhold', 'Fixflex', 'Konklux', 'Zontrax', 'Tampflex', 'Span', 'Namfix', 'Transcof', 'Stim', 'Fix San', 'Sonair', 'Stronghold', 'Fintone', 'Y-find', 'Opela', 'Lotlux', 'Ronstring', 'Zathin', 'Duobam', 'Keylex', 'Andalax', 'Solarbreeze', 'Cookley', 'Vagram', 'Aerified', 'Pannier', 'Asoka', 'Regrant', 'Wrapsafe', 'Prodder', 'Bytecard', 'Bitchip', 'Veribet', 'Gembucket', 'Cardguard', 'Bitwolf', 'Cardify', 'Domainer', 'Flowdesk', 'Flexidy'] + version: ['0.#.#', '0.##', '#.##', '#.#', '#.#.#'] + author: + - "#{Name.name}" + - "#{Company.name}" + + slack_emoji: + people: [':grinning:', ':grin:', ':joy:', ':smiley:', ':smile:', ':sweat_smile:', ':satisfied:', ':innocent:', ':smiling_imp:', ':imp:', ':wink:', ':blush:', ':relaxed:', ':yum:', ':relieved:', ':heart_eyes:', ':sunglasses:', ':smirk:', ':neutral_face:', ':expressionless:', ':unamused:', ':sweat:', ':pensive:', ':confused:', ':confounded:', ':kissing:', ':kissing_heart:', ':kissing_smiling_eyes:', ':kissing_closed_eyes:', ':stuck_out_tongue:', ':stuck_out_tongue_winking_eye:', ':stuck_out_tongue_closed_eyes:', ':disappointed:', ':worried:', ':angry:', ':rage:', ':cry:', ':persevere:', ':triumph:', ':disappointed_relieved:', ':frowning:', ':anguished:', ':fearful:', ':weary:', ':sleepy:', ':tired_face:', ':grimacing:', ':sob:', ':open_mouth:', ':hushed:', ':cold_sweat:', ':scream:', ':astonished:', ':flushed:', ':sleeping:', ':dizzy_face:', ':no_mouth:', ':mask:', ':smile_cat:', ':joy_cat:', ':smiley_cat:', ':heart_eyes_cat:', ':smirk_cat:', ':kissing_cat:', ':pouting_cat:', ':crying_cat_face:', ':scream_cat:', ':footprints:', ':bust_in_silhouette:', ':busts_in_silhouette:', ':baby:', ':boy:', ':girl:', ':man:', ':woman:', ':family:', ':couple:', ':two_men_holding_hands:', ':two_women_holding_hands:', ':dancers:', ':bride_with_veil:', ':person_with_blond_hair:', ':man_with_gua_pi_mao:', ':man_with_turban:', ':older_man:', ':older_woman:', ':cop:', ':construction_worker:', ':princess:', ':guardsman:', ':angel:', ':santa:', ':ghost:', ':japanese_ogre:', ':japanese_goblin:', ':shit:', ':skull:', ':alien:', ':space_invader:', ':bow:', ':information_desk_person:', ':no_good:', ':ok_woman:', ':raising_hand:', ':person_with_pouting_face:', ':person_frowning:', ':massage:', ':haircut:', ':couple_with_heart:', ':couplekiss:', ':raised_hands:', ':clap:', ':ear:', ':eyes:', ':nose:', ':lips:', ':kiss:', ':tongue:', ':nail_care:', ':wave:', ':thumbsup:', ':thumbsdown:', ':point_up:', ':point_up_2:', ':point_down:', ':point_left:', ':point_right:', ':ok_hand:', ':v:', ':punch:', ':fist:', ':raised_hand:', ':muscle:', ':open_hands:', ':pray:'] + nature: [':seedling:', ':evergreen_tree:', ':deciduous_tree:', ':palm_tree:', ':cactus:', ':tulip:', ':cherry_blossom:', ':rose:', ':hibiscus:', ':sunflower:', ':blossom:', ':bouquet:', ':ear_of_rice:', ':herb:', ':four_leaf_clover:', ':maple_leaf:', ':fallen_leaf:', ':leaves:', ':mushroom:', ':chestnut:', ':rat:', ':mouse2:', ':mouse:', ':hamster:', ':ox:', ':water_buffalo:', ':cow2:', ':cow:', ':tiger2:', ':leopard:', ':tiger:', ':rabbit2:', ':rabbit:', ':cat2:', ':cat:', ':racehorse:', ':horse:', ':ram:', ':sheep:', ':goat:', ':rooster:', ':chicken:', ':baby_chick:', ':hatching_chick:', ':hatched_chick:', ':bird:', ':penguin:', ':elephant:', ':dromedary_camel:', ':camel:', ':boar:', ':pig2:', ':pig:', ':pig_nose:', ':dog2:', ':poodle:', ':dog:', ':wolf:', ':bear:', ':koala:', ':panda_face:', ':monkey_face:', ':see_no_evil:', ':hear_no_evil:', ':speak_no_evil:', ':monkey:', ':dragon:', ':dragon_face:', ':crocodile:', ':snake:', ':turtle:', ':frog:', ':whale2:', ':whale:', ':flipper:', ':octopus:', ':fish:', ':tropical_fish:', ':blowfish:', ':shell:', ':snail:', ':bug:', ':ant:', ':honeybee:', ':beetle:', ':paw_prints:', ':zap:', ':fire:', ':crescent_moon:', ':sunny:', ':partly_sunny:', ':cloud:', ':droplet:', ':sweat_drops:', ':umbrella:', ':dash:', ':snowflake:', ':star2:', ':star:', ':stars:', ':sunrise_over_mountains:', ':sunrise:', ':rainbow:', ':ocean:', ':volcano:', ':milky_way:', ':mount_fuji:', ':japan:', ':globe_with_meridians:', ':earth_africa:', ':earth_americas:', ':earth_asia:', ':new_moon:', ':waxing_crescent_moon:', ':first_quarter_moon:', ':waxing_gibbous_moon:', ':full_moon:', ':waning_gibbous_moon:', ':last_quarter_moon:', ':waning_crescent_moon:', ':new_moon_with_face:', ':full_moon_with_face:', ':first_quarter_moon_with_face:', ':last_quarter_moon_with_face:', ':sun_with_face:'] + food_and_drink: [':tomato:', ':eggplant:', ':corn:', ':sweet_potato:', ':grapes:', ':melon:', ':watermelon:', ':tangerine:', ':lemon:', ':banana:', ':pineapple:', ':apple:', ':green_apple:', ':pear:', ':peach:', ':cherries:', ':strawberry:', ':hamburger:', ':pizza:', ':meat_on_bone:', ':poultry_leg:', ':rice_cracker:', ':rice_ball:', ':rice:', ':curry:', ':ramen:', ':spaghetti:', ':bread:', ':fries:', ':dango:', ':oden:', ':sushi:', ':fried_shrimp:', ':fish_cake:', ':icecream:', ':shaved_ice:', ':ice_cream:', ':doughnut:', ':cookie:', ':chocolate_bar:', ':candy:', ':lollipop:', ':custard:', ':honey_pot:', ':cake:', ':bento:', ':stew:', ':egg:', ':fork_and_knife:', ':tea:', ':coffee:', ':sake:', ':wine_glass:', ':cocktail:', ':tropical_drink:', ':beer:', ':beers:', ':baby_bottle:'] + celebration: [':ribbon:', ':gift:', ':birthday:', ':jack_o_lantern:', ':christmas_tree:', ':tanabata_tree:', ':bamboo:', ':rice_scene:', ':fireworks:', ':sparkler:', ':tada:', ':confetti_ball:', ':balloon:', ':dizzy:', ':sparkles:', ':collision:', ':mortar_board:', ':crown:', ':dolls:', ':flags:', ':wind_chime:', ':crossed_flags:', ':lantern:', ':ring:', ':heart:', ':broken_heart:', ':love_letter:', ':two_hearts:', ':revolving_hearts:', ':heartbeat:', ':heartpulse:', ':sparkling_heart:', ':cupid:', ':gift_heart:', ':heart_decoration:', ':purple_heart:', ':yellow_heart:', ':green_heart:', ':blue_heart:'] + activity: [':running:', ':walking:', ':dancer:', ':rowboat:', ':swimmer:', ':surfer:', ':bath:', ':snowboarder:', ':ski:', ':snowman:', ':bicyclist:', ':mountain_bicyclist:', ':horse_racing:', ':tent:', ':fishing_pole_and_fish:', ':soccer:', ':basketball:', ':football:', ':baseball:', ':tennis:', ':rugby_football:', ':golf:', ':trophy:', ':running_shirt_with_sash:', ':checkered_flag:', ':musical_keyboard:', ':guitar:', ':violin:', ':saxophone:', ':trumpet:', ':musical_note:', ':notes:', ':musical_score:', ':headphones:', ':microphone:', ':performing_arts:', ':ticket:', ':tophat:', ':circus_tent:', ':clapper:', ':art:', ':dart:', ':8ball:', ':bowling:', ':slot_machine:', ':game_die:', ':video_game:', ':flower_playing_cards:', ':black_joker:', ':mahjong:', ':carousel_horse:', ':ferris_wheel:', ':roller_coaster:'] + travel_and_places: [':train:', ':mountain_railway:', ':steam_locomotive:', ':monorail:', ':bullettrain_side:', ':bullettrain_front:', ':train2:', ':metro:', ':light_rail:', ':station:', ':tram:', ':bus:', ':oncoming_bus:', ':trolleybus:', ':minibus:', ':ambulance:', ':fire_engine:', ':police_car:', ':oncoming_police_car:', ':rotating_light:', ':taxi:', ':oncoming_taxi:', ':red_car:', ':oncoming_automobile:', ':blue_car:', ':truck:', ':articulated_lorry:', ':tractor:', ':bike:', ':busstop:', ':fuelpump:', ':construction:', ':vertical_traffic_light:', ':traffic_light:', ':rocket:', ':helicopter:', ':airplane:', ':seat:', ':anchor:', ':ship:', ':speedboat:', ':sailboat:', ':aerial_tramway:', ':mountain_cableway:', ':suspension_railway:', ':passport_control:', ':customs:', ':baggage_claim:', ':left_luggage:', ':yen:', ':euro:', ':pound:', ':dollar:', ':statue_of_liberty:', ':moyai:', ':foggy:', ':tokyo_tower:', ':fountain:', ':european_castle:', ':japanese_castle:', ':city_sunrise:', ':city_sunset:', ':night_with_stars:', ':bridge_at_night:', ':house:', ':house_with_garden:', ':office:', ':department_store:', ':factory:', ':post_office:', ':european_post_office:', ':hospital:', ':bank:', ':hotel:', ':love_hotel:', ':convenience_store:', ':school:', ':cn:', ':de:', ':es:', ':fr:', ':uk:', ':it:', ':jp:', ':kr:', ':ru:', ':us:'] + objects_and_symbols: [':watch:', ':iphone:', ':calling:', ':computer:', ':alarm_clock:', ':hourglass_flowing_sand:', ':hourglass:', ':camera:', ':video_camera:', ':movie_camera:', ':tv:', ':radio:', ':pager:', ':telephone_receiver:', ':telephone:', ':fax:', ':minidisc:', ':floppy_disk:', ':cd:', ':dvd:', ':vhs:', ':battery:', ':electric_plug:', ':bulb:', ':flashlight:', ':satellite:', ':credit_card:', ':money_with_wings:', ':moneybag:', ':gem:', ':closed_umbrella:', ':pouch:', ':purse:', ':handbag:', ':briefcase:', ':school_satchel:', ':lipstick:', ':eyeglasses:', ':womans_hat:', ':sandal:', ':high_heel:', ':boot:', ':shoe:', ':athletic_shoe:', ':bikini:', ':dress:', ':kimono:', ':womans_clothes:', ':tshirt:', ':necktie:', ':jeans:', ':door:', ':shower:', ':bathtub:', ':toilet:', ':barber:', ':syringe:', ':pill:', ':microscope:', ':telescope:', ':crystal_ball:', ':wrench:', ':hocho:', ':nut_and_bolt:', ':hammer:', ':bomb:', ':smoking:', ':gun:', ':bookmark:', ':newspaper:', ':key:', ':envelope:', ':envelope_with_arrow:', ':incoming_envelope:', ':e-mail:', ':inbox_tray:', ':outbox_tray:', ':package:', ':postal_horn:', ':postbox:', ':mailbox_closed:', ':mailbox:', ':mailbox_with_mail:', ':mailbox_with_no_mail:', ':page_facing_up:', ':page_with_curl:', ':bookmark_tabs:', ':chart_with_upwards_trend:', ':chart_with_downwards_trend:', ':bar_chart:', ':date:', ':calendar:', ':low_brightness:', ':high_brightness:', ':scroll:', ':clipboard:', ':open_book:', ':notebook:', ':notebook_with_decorative_cover:', ':ledger:', ':closed_book:', ':green_book:', ':blue_book:', ':orange_book:', ':books:', ':card_index:', ':link:', ':paperclip:', ':pushpin:', ':scissors:', ':triangular_ruler:', ':round_pushpin:', ':straight_ruler:', ':triangular_flag_on_post:', ':file_folder:', ':open_file_folder:', ':black_nib:', ':pencil2:', ':pencil:', ':lock_with_ink_pen:', ':closed_lock_with_key:', ':lock:', ':unlock:', ':mega:', ':loudspeaker:', ':sound:', ':speaker:', ':mute:', ':zzz:', ':bell:', ':no_bell:', ':thought_balloon:', ':speech_balloon:', ':children_crossing:', ':mag:', ':mag_right:', ':no_entry_sign:', ':no_entry:', ':name_badge:', ':no_pedestrians:', ':do_not_litter:', ':no_bicycles:', ':non-potable_water:', ':no_mobile_phones:', ':underage:', ':accept:', ':ideograph_advantage:', ':white_flower:', ':secret:', ':congratulations:', ':u5408:', ':u6e80:', ':u7981:', ':u6709:', ':u7121:', ':u7533:', ':u55b6:', ':u6708:', ':u5272:', ':u7a7a:', ':sa:', ':koko:', ':u6307:', ':chart:', ':sparkle:', ':eight_spoked_asterisk:', ':negative_squared_cross_mark:', ':white_check_mark:', ':eight_pointed_black_star:', ':vibration_mode:', ':mobile_phone_off:', ':vs:', ':a:', ':b:', ':ab:', ':cl:', ':o2:', ':sos:', ':id:', ':parking:', ':wc:', ':cool:', ':free:', ':new:', ':ng:', ':ok:', ':up:', ':atm:', ':aries:', ':taurus:', ':gemini:', ':cancer:', ':leo:', ':virgo:', ':libra:', ':scorpius:', ':sagittarius:', ':capricorn:', ':aquarius:', ':pisces:', ':restroom:', ':mens:', ':womens:', ':baby_symbol:', ':wheelchair:', ':potable_water:', ':no_smoking:', ':put_litter_in_its_place:', ':arrow_forward:', ':arrow_backward:', ':arrow_up_small:', ':arrow_down_small:', ':fast_forward:', ':rewind:', ':arrow_double_up:', ':arrow_double_down:', ':arrow_right:', ':arrow_left:', ':arrow_up:', ':arrow_down:', ':arrow_upper_right:', ':arrow_lower_right:', ':arrow_lower_left:', ':arrow_upper_left:', ':arrow_up_down:', ':left_right_arrow:', ':arrows_counterclockwise:', ':arrow_right_hook:', ':leftwards_arrow_with_hook:', ':arrow_heading_up:', ':arrow_heading_down:', ':twisted_rightwards_arrows:', ':repeat:', ':repeat_one:', ':zero:', ':one:', ':two:', ':three:', ':four:', ':five:', ':six:', ':seven:', ':eight:', ':nine:', ':keycap_ten:', ':1234:', ':abc:', ':abcd:', ':capital_abcd:', ':information_source:', ':signal_strength:', ':cinema:', ':symbols:', ':heavy_plus_sign:', ':heavy_minus_sign:', ':wavy_dash:', ':heavy_division_sign:', ':heavy_multiplication_x:', ':heavy_check_mark:', ':arrows_clockwise:', ':tm:', ':copyright:', ':registered:', ':currency_exchange:', ':heavy_dollar_sign:', ':curly_loop:', ':loop:', ':part_alternation_mark:', ':heavy_exclamation_mark:', ':question:', ':grey_exclamation:', ':grey_question:', ':interrobang:', ':x:', ':o:', ':100:', ':end:', ':back:', ':on:', ':top:', ':soon:', ':cyclone:', ':m:', ':ophiuchus:', ':six_pointed_star:', ':beginner:', ':trident:', ':warning:', ':hotsprings:', ':recycle:', ':anger:', ':diamond_shape_with_a_dot_inside:', ':spades:', ':clubs:', ':hearts:', ':diamonds:', ':ballot_box_with_check:', ':white_circle:', ':black_circle:', ':radio_button:', ':red_circle:', ':large_blue_circle:', ':small_red_triangle:', ':small_red_triangle_down:', ':small_orange_diamond:', ':small_blue_diamond:', ':large_orange_diamond:', ':large_blue_diamond:', ':black_small_square:', ':white_small_square:', ':black_large_square:', ':white_large_square:', ':black_medium_square:', ':white_medium_square:', ':black_medium_small_square:', ':white_medium_small_square:', ':black_square_button:', ':white_square_button:', ':clock1:', ':clock2:', ':clock3:', ':clock4:', ':clock5:', ':clock6:', ':clock7:', ':clock8:', ':clock9:', ':clock10:', ':clock11:', ':clock12:', ':clock130:', ':clock230:', ':clock330:', ':clock430:', ':clock530:', ':clock630:', ':clock730:', ':clock830:', ':clock930:', ':clock1030:', ':clock1130:', ':clock1230:'] + custom: [':beryl:', ':bowtie:', ':crab:', ':cubimal_chick:', ':dusty_stick:', ':feelsgood:', ':finnadie:', ':fu:', ':goberserk:', ':godmode:', ':hurtrealbad:', ':metal:', ':neckbeard:', ':octocat:', ':piggy:', ':pride:', ':rage1:', ':rage2:', ':rage3:', ':rage4:', ':rube:', ':simple_smile:', ':slack:', ':squirrel:', ':suspect:', ':taco:', ':trollface:'] + emoji: + - "#{people}" + - "#{nature}" + - "#{food_and_drink}" + - "#{celebration}" + - "#{activity}" + - "#{travel_and_places}" + - "#{objects_and_symbols}" + - "#{custom}" + + book: + title: ['A Year of Walking', 'Candy For Two', 'Walking and Running', 'The Frog Catchers Field Manual', 'Tomato in the Window', 'A Dozen Heros', 'Finding a New Sun', 'Stop Asking, Just Do', 'What Lives on Pluto', 'Fishing With Chips', 'No Lonely Stars', 'Free Parking', 'Next Day Previous Night', 'Burning Water', 'Slicker Than Rain', 'Future Discretions', 'Covered and Warm', 'The Odd Sister', 'Falling Flags', 'Keyboard For Hire', 'Ready, Set, Die', 'Same Way Through', 'The Zookeeper and Her Tiger'] + author: "#{Name.name}" + publisher: ['Parker Publishing', 'Page Crunch', 'Word Burner', 'Printed Works', 'Opus Reader', 'Booklet', 'Offprint', 'Bookfolio', 'Book Crunch', 'Page Feeder'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/es.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/es.yml new file mode 100644 index 0000000..d8a817d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/es.yml @@ -0,0 +1,62 @@ +# encoding: utf-8 +es: + faker: + address: + city_prefix: [Parla, Telde, Baracaldo, San Fernando, Torrevieja, Lugo, Santiago de Compostela, Gerona, Cáceres, Lorca, Coslada, Talavera de la Reina, El Puerto de Santa María, Cornellá de Llobregat, Avilés, Palencia, Gecho, Orihuela, Pontevedra, Pozuelo de Alarcón, Toledo, El Ejido, Guadalajara, Gandía, Ceuta, Ferrol, Chiclana de la Frontera, Manresa, Roquetas de Mar, Ciudad Real, Rubí, Benidorm, San Sebastían de los Reyes, Ponferrada, Zamora, Alcalá de Guadaira, Fuengirola, Mijas, Sanlúcar de Barrameda, La Línea de la Concepción, Majadahonda, Sagunto, El Prat de LLobregat, Viladecans, Linares, Alcoy, Irún, Estepona, Torremolinos, Rivas-Vaciamadrid, Molina de Segura, Paterna, Granollers, Santa Lucía de Tirajana, Motril, Cerdañola del Vallés, Arrecife, Segovia, Torrelavega, Elda, Mérida, Ávila, Valdemoro, Cuenta, Collado Villalba, Benalmádena, Mollet del Vallés, Puertollano, Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Murcia, Palma de Mallorca, Las Palmas de Gran Canaria, Bilbao, Córdoba, Alicante, Valladolid, Vigo, Gijón, Hospitalet de LLobregat, La Coruña, Granada, Vitoria, Elche, Santa Cruz de Tenerife, Oviedo, Badalona, Cartagena, Móstoles, Jerez de la Frontera, Tarrasa, Sabadell, Alcalá de Henares, Pamplona, Fuenlabrada, Almería, San Sebastián, Leganés, Santander, Burgos, Castellón de la Plana, Alcorcón, Albacete, Getafe, Salamanca, Huelva, Logroño, Badajoz, San Cristróbal de la Laguna, León, Tarragona, Cádiz, Lérida, Marbella, Mataró, Dos Hermanas, Santa Coloma de Gramanet, Jaén, Algeciras, Torrejón de Ardoz, Orense, Alcobendas, Reus, Calahorra, Inca] + country: [Afganistán, Albania, Argelia, Andorra, Angola, Argentina, Armenia, Aruba, Australia, Austria, Azerbayán, Bahamas, Barein, Bangladesh, Barbados, Bielorusia, Bélgica, Belice, Bermuda, Bután, Bolivia, Bosnia Herzegovina, Botswana, Brasil, Bulgaria, Burkina Faso, Burundi, Camboya, Camerún, Canada, Cabo Verde, Islas Caimán, Chad, Chile, China, Isla de Navidad, Colombia, Comodos, Congo, Costa Rica, Costa de Marfil, Croacia, Cuba, Chipre, República Checa, Dinamarca, Dominica, República Dominicana, Ecuador, Egipto, El Salvador, Guinea Ecuatorial, Eritrea, Estonia, Etiopía, Islas Faro, Fiji, Finlandia, Francia, Gabón, Gambia, Georgia, Alemania, Ghana, Grecia, Groenlandia, Granada, Guadalupe, Guam, Guatemala, Guinea, Guinea-Bisau, Guayana, Haiti, Honduras, Hong Kong, Hungria, Islandia, India, Indonesia, Iran, Irak, Irlanda, Italia, Jamaica, Japón, Jordania, Kazajistan, Kenia, Kiribati, Corea, Kuwait, Letonia, Líbano, Liberia, Liechtenstein, Lituania, Luxemburgo, Macao, Macedonia, Madagascar, Malawi, Malasia, Maldivas, Mali, Malta, Martinica, Mauritania, Méjico, Micronesia, Moldavia, Mónaco, Mongolia, Montenegro, Montserrat, Marruecos, Mozambique, Namibia, Nauru, Nepal, Holanda, Nueva Zelanda, Nicaragua, Niger, Nigeria, Noruega, Omán, Pakistan, Panamá, Papúa Nueva Guinea, Paraguay, Perú, Filipinas, Poland, Portugal, Puerto Rico, Rusia, Ruanda, Samoa, San Marino, Santo Tomé y Principe, Arabia Saudí, Senegal, Serbia, Seychelles, Sierra Leona, Singapur, Eslovaquia, Eslovenia, Somalia, España, Sri Lanka, Sudán, Suriname, Suecia, Suiza, Siria, Taiwan, Tajikistan, Tanzania, Tailandia, Timor-Leste, Togo, Tonga, Trinidad y Tobago, Tunez, Turquia, Uganda, Ucrania, Emiratos Árabes Unidos, Reino Unido, Estados Unidos de América, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Yemen, Zambia, Zimbabwe] + building_number: [' s/n.', ', #', ', ##', ' #', ' ##'] + street_suffix: [Aldea, Apartamento, Arrabal, Arroyo, Avenida, Bajada, Barranco, Barrio, Bloque, Calle, Calleja, Camino, Carretera, Caserio, Colegio, Colonia, Conjunto, Cuesta, Chalet, Edificio, Entrada, Escalinata, Explanada, Extramuros, Extrarradio, Ferrocarril, Glorieta, Gran Subida, Grupo, Huerta, Jardines, Lado, Lugar, Manzana, Masía, Mercado, Monte, Muelle, Municipio, Parcela, Parque, Partida, Pasaje, Paseo, Plaza, Poblado, Polígono, Prolongación, Puente, Puerta, Quinta, Ramal, Rambla, Rampa, Riera, Rincón, Ronda, Rua, Salida, Sector, Sección, Senda, Solar, Subida, Terrenos, Torrente, Travesía, Urbanización, Vía, Vía Pública] + secondary_address: ['Esc. ###', 'Puerta ###'] + # Though these are US-specific, they are here (in the default locale) for backwards compatibility + postcode: ['#####'] + province: [Álava, Albacete, Alicante, Almería, Asturias, Ávila, Badajoz, Barcelona, Burgos, Cantabria, Castellón, Ciudad Real, Cuenca, Cáceres, Cádiz, Córdoba, Gerona, Granada, Guadalajara, Guipúzcoa, Huelva, Huesca, Islas Baleares, Jaén, La Coruña, La Rioja, Las Palmas, León, Lugo, lérida, Madrid, Murcia, Málaga, Navarra, Orense, Palencia, Pontevedra, Salamanca, Santa Cruz de Tenerife, Segovia, Sevilla, Soria, Tarragona, Teruel, Toledo, Valencia, Valladolid, Vizcaya, Zamora, Zaragoza] + state: [Andalucía, Aragón, Principado de Asturias, Baleares, Canarias, Cantabria, Castilla-La Mancha, Castilla y León, Cataluña, Comunidad Valenciana, Extremadura, Galicia, La Rioja, Comunidad de Madrid, Navarra, País Vasco, Región de Murcia] + state_abbr: [And, Ara, Ast, Bal, Can, Cbr, Man, Leo, Cat, Com, Ext, Gal, Rio, Mad, Nav, Vas, Mur] + time_zone: [Pacífico/Midway, Pacífico/Pago_Pago, Pacífico/Honolulu, America/Juneau, America/Los_Angeles, America/Tijuana, America/Denver, America/Phoenix, America/Chihuahua, America/Mazatlan, America/Chicago, America/Regina, America/Mexico_City, America/Mexico_City, America/Monterrey, America/Guatemala, America/New_York, America/Indiana/Indianapolis, America/Bogota, America/Lima, America/Lima, America/Halifax, America/Caracas, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Argentina/Buenos_Aires, America/Guyana, America/Godthab, Atlantic/South_Georgia, Atlantic/Azores, Atlantic/Cape_Verde, Europa/Dublin, Europa/London, Europa/Lisbon, Europa/London, Africa/Casablanca, Africa/Monrovia, Etc/UTC, Europa/Belgrade, Europa/Bratislava, Europa/Budapest, Europa/Ljubljana, Europa/Prague, Europa/Sarajevo, Europa/Skopje, Europa/Warsaw, Europa/Zagreb, Europa/Brussels, Europa/Copenhagen, Europa/Madrid, Europa/Paris, Europa/Amsterdam, Europa/Berlin, Europa/Berlin, Europa/Rome, Europa/Stockholm, Europa/Vienna, Africa/Algiers, Europa/Bucharest, Africa/Cairo, Europa/Helsinki, Europa/Kiev, Europa/Riga, Europa/Sofia, Europa/Tallinn, Europa/Vilnius, Europa/Athens, Europa/Istanbul, Europa/Minsk, Asia/Jerusalen, Africa/Harare, Africa/Johannesburg, Europa/Moscú, Europa/Moscú, Europa/Moscú, Asia/Kuwait, Asia/Riyadh, Africa/Nairobi, Asia/Baghdad, Asia/Tehran, Asia/Muscat, Asia/Muscat, Asia/Baku, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Yekaterinburg, Asia/Karachi, Asia/Karachi, Asia/Tashkent, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kathmandu, Asia/Dhaka, Asia/Dhaka, Asia/Colombo, Asia/Almaty, Asia/Novosibirsk, Asia/Rangoon, Asia/Bangkok, Asia/Bangkok, Asia/Jakarta, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Chongqing, Asia/Hong_Kong, Asia/Urumqi, Asia/Kuala_Lumpur, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Irkutsk, Asia/Ulaanbaatar, Asia/Seoul, Asia/Tokyo, Asia/Tokyo, Asia/Tokyo, Asia/Yakutsk, Australia/Darwin, Australia/Adelaide, Australia/Melbourne, Australia/Melbourne, Australia/Sydney, Australia/Brisbane, Australia/Hobart, Asia/Vladivostok, Pacífico/Guam, Pacífico/Port_Moresby, Asia/Magadan, Asia/Magadan, Pacífico/Noumea, Pacífico/Fiji, Asia/Kamchatka, Pacífico/Majuro, Pacífico/Auckland, Pacífico/Auckland, Pacífico/Tongatapu, Pacífico/Fakaofo, Pacífico/Apia] + city: + - "#{city_prefix}" + street_name: + - "#{street_suffix} #{Name.first_name}" + - "#{street_suffix} #{Name.first_name} #{Name.last_name}" + street_address: + - "#{street_name}#{building_number}" + - "#{street_name}#{building_number} #{secondary_address}" + default_country: [España] + + company: + suffix: [S.L., e Hijos, S.A., Hermanos] + # Buzzword wordlist from http://www.1728.com/buzzword.htm + buzzwords: + - ["habilidad", "acceso", "adaptador", "algoritmo", "alianza", "analista", "aplicación", "enfoque", "arquitectura", "archivo", "inteligencia artificial", "array", "actitud", "medición", "gestión presupuestaria", "capacidad", "desafío", "circuito", "colaboración", "complejidad", "concepto", "conglomeración", "contingencia", "núcleo", "fidelidad", "base de datos", "data-warehouse", "definición", "emulación", "codificar", "encriptar", "extranet", "firmware", "flexibilidad", "focus group", "previsión", "base de trabajo", "función", "funcionalidad", "Interfaz Gráfica", "groupware", "Interfaz gráfico de usuario", "hardware", "Soporte", "jerarquía", "conjunto", "implementación", "infraestructura", "iniciativa", "instalación", "conjunto de instrucciones", "interfaz", "intranet", "base del conocimiento", "red de area local", "aprovechar", "matrices", "metodologías", "middleware", "migración", "modelo", "moderador", "monitorizar", "arquitectura abierta", "sistema abierto", "orquestar", "paradigma", "paralelismo", "política", "portal", "estructura de precios", "proceso de mejora", "producto", "productividad", "proyecto", "proyección", "protocolo", "línea segura", "software", "solución", "estandardización", "estrategia", "estructura", "éxito", "superestructura", "soporte", "sinergia", "mediante", "marco de tiempo", "caja de herramientas", "utilización", "website", "fuerza de trabajo"] + - ["24 horas", "24/7", "3rd generación", "4th generación", "5th generación", "6th generación", "analizada", "asimétrica", "asíncrona", "monitorizada por red", "bidireccional", "bifurcada", "generada por el cliente", "cliente servidor", "coherente", "cohesiva", "compuesto", "sensible al contexto", "basado en el contexto", "basado en contenido", "dedicada", "generado por la demanda", "didactica", "direccional", "discreta", "dinámica", "potenciada", "acompasada", "ejecutiva", "explícita", "tolerante a fallos", "innovadora", "amplio ábanico", "global", "heurística", "alto nivel", "holística", "homogénea", "hibrida", "incremental", "intangible", "interactiva", "intermedia", "local", "logística", "maximizada", "metódica", "misión crítica", "móbil", "modular", "motivadora", "multimedia", "multiestado", "multitarea", "nacional", "basado en necesidades", "neutral", "nueva generación", "no-volátil", "orientado a objetos", "óptima", "optimizada", "radical", "tiempo real", "recíproca", "regional", "escalable", "secundaria", "orientada a soluciones", "estable", "estatica", "sistemática", "sistémica", "tangible", "terciaria", "transicional", "uniforme", "valor añadido", "vía web", "defectos cero", "tolerancia cero"] + - ["Adaptativo", "Avanzado", "Asimilado", "Automatizado", "Equilibrado", "Centrado en el negocio", "Centralizado", "Clonado", "Compatible", "Configurable", "Multi grupo", "Multi plataforma", "Centrado en el usuario", "Configurable", "Descentralizado", "Digitalizado", "Distribuido", "Diverso", "Reducido", "Mejorado", "Para toda la empresa", "Ergonomico", "Exclusivo", "Expandido", "Extendido", "Cara a cara", "Enfocado", "Totalmente configurable", "Fundamental", "Orígenes", "Horizontal", "Implementado", "Innovador", "Integrado", "Intuitivo", "Inverso", "Gestionado", "Obligatorio", "Monitorizado", "Multi canal", "Multi lateral", "Multi capa", "En red", "Orientado a objetos", "Open-source", "Operativo", "Optimizado", "Opcional", "Organico", "Organizado", "Perseverando", "Persistente", "en fases", "Polarizado", "Pre-emptivo", "Proactivo", "Enfocado a benficios", "Profundo", "Programable", "Progresivo", "Public-key", "Enfocado en la calidad", "Reactivo", "Realineado", "Re-contextualizado", "Re-implementado", "Reducido", "Ingenieria inversa", "Robusto", "Fácil", "Seguro", "Auto proporciona", "Compartible", "Intercambiable", "Sincronizado", "Orientado a equipos", "Total", "Universal", "Mejorado", "Actualizable", "Centrado en el usuario", "Amigable", "Versatil", "Virtual", "Visionario"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name} y #{Name.last_name}" + - "#{Name.last_name} #{Name.last_name} #{suffix}" + - "#{Name.last_name}, #{Name.last_name} y #{Name.last_name} Asociados" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, es, info, com.es, org] + + name: + first_name: [Adán, Agustín, Alberto, Alejandro, Alfonso, Alfredo, Andrés, Antonio, Armando, Arturo, Benito, Benjamín, Bernardo, Carlos, César, Claudio, Clemente, Cristian, Cristobal, Daniel, David, Diego, Eduardo, Emilio, Enrique, Ernesto, Esteban, Federico, Felipe, Fernando, Francisco, Gabriel, Gerardo, Germán, Gilberto, Gonzalo, Gregorio, Guillermo, Gustavo, Hernán, Homero, Horacio, Hugo, Ignacio, Jacobo, Jaime, Javier, Jerónimo, Jesús, Joaquín, Jorge, Jorge Luis, José, José Eduardo, José Emilio, José Luis, José María, Juan, Juan Carlos, Julio, Julio César, Lorenzo, Lucas, Luis, Luis Miguel, Manuel, Marco Antonio, Marcos, Mariano, Mario, Martín, Mateo, Miguel, Miguel Ángel, Nicolás, Octavio, Óscar, Pablo, Patricio, Pedro, Rafael, Ramiro, Ramón, Raúl, Ricardo, Roberto, Rodrigo, Rubén, Salvador, Samuel, Sancho, Santiago, Sergio, Teodoro, Timoteo, Tomás, Vicente, Víctor, Adela, Adriana, Alejandra, Alicia, Amalia, Ana, Ana Luisa, Ana María, Andrea, Anita, Ángela, Antonia, Ariadna, Barbara, Beatriz, Berta, Blanca, Caridad, Carla, Carlota, Carmen, Carolina, Catalina, Cecilia, Clara, Claudia, Concepción, Conchita, Cristina, Daniela, Débora, Diana, Dolores, Lola, Dorotea, Elena, Elisa, Eloisa, Elsa, Elvira, Emilia, Esperanza, Estela, Ester, Eva, Florencia, Francisca, Gabriela, Gloria, Graciela, Guadalupe, Guillermina, Inés, Irene, Isabel, Isabela, Josefina, Juana, Julia, Laura, Leonor, Leticia, Lilia, Lorena, Lourdes, Lucia, Luisa, Luz, Magdalena, Manuela, Marcela, Margarita, María, María del Carmen, María Cristina, María Elena, María Eugenia, María José, María Luisa, María Soledad, María Teresa, Mariana, Maricarmen, Marilu, Marisol, Marta, Mayte, Mercedes, Micaela, Mónica, Natalia, Norma, Olivia, Patricia, Pilar, Ramona, Raquel, Rebeca, Reina, Rocio, Rosa, Rosalia, Rosario, Sara, Silvia, Sofia, Soledad, Sonia, Susana, Teresa, Verónica, Victoria, Virginia, Yolanda] + last_name: [ Abeyta, Abrego, Abreu, Acevedo, Acosta, Acuña, Adame, Adorno, Agosto, Aguayo, Águilar, Aguilera, Aguirre, Alanis, Alaniz, Alarcón, Alba, Alcala, Alcántar, Alcaraz, Alejandro, Alemán, Alfaro, Alicea, Almanza, Almaraz, Almonte, Alonso, Alonzo, Altamirano, Alva, Alvarado, Alvarez, Amador, Amaya, Anaya, Anguiano, Angulo, Aparicio, Apodaca, Aponte, Aragón, Araña, Aranda, Arce, Archuleta, Arellano, Arenas, Arevalo, Arguello, Arias, Armas, Armendáriz, Armenta, Armijo, Arredondo, Arreola, Arriaga, Arroyo, Arteaga, Atencio, Ávalos, Ávila, Avilés, Ayala, Baca, Badillo, Báez, Baeza, Bahena, Balderas, Ballesteros, Banda, Bañuelos, Barajas, Barela, Barragán, Barraza, Barrera, Barreto, Barrientos, Barrios, Batista, Becerra, Beltrán, Benavides, Benavídez, Benítez, Bermúdez, Bernal, Berríos, Bétancourt, Blanco, Bonilla, Borrego, Botello, Bravo, Briones, Briseño, Brito, Bueno, Burgos, Bustamante, Bustos, Caballero, Cabán, Cabrera, Cadena, Caldera, Calderón, Calvillo, Camacho, Camarillo, Campos, Canales, Candelaria, Cano, Cantú, Caraballo, Carbajal, Cardenas, Cardona, Carmona, Carranza, Carrasco, Carrasquillo, Carreón, Carrera, Carrero, Carrillo, Carrion, Carvajal, Casanova, Casares, Casárez, Casas, Casillas, Castañeda, Castellanos, Castillo, Castro, Cavazos, Cazares, Ceballos, Cedillo, Ceja, Centeno, Cepeda, Cerda, Cervantes, Cervántez, Chacón, Chapa, Chavarría, Chávez, Cintrón, Cisneros, Collado, Collazo, Colón, Colunga, Concepción, Contreras, Cordero, Córdova, Cornejo, Corona, Coronado, Corral, Corrales, Correa, Cortés, Cortez, Cotto, Covarrubias, Crespo, Cruz, Cuellar, Curiel, Dávila, de Anda, de Jesús, Delacrúz, Delafuente, Delagarza, Delao, Delapaz, Delarosa, Delatorre, Deleón, Delgadillo, Delgado, Delrío, Delvalle, Díaz, Domínguez, Domínquez, Duarte, Dueñas, Duran, Echevarría, Elizondo, Enríquez, Escalante, Escamilla, Escobar, Escobedo, Esparza, Espinal, Espino, Espinosa, Espinoza, Esquibel, Esquivel, Estévez, Estrada, Fajardo, Farías, Feliciano, Fernández, Ferrer, Fierro, Figueroa, Flores, Flórez, Fonseca, Franco, Frías, Fuentes, Gaitán, Galarza, Galindo, Gallardo, Gallegos, Galván, Gálvez, Gamboa, Gamez, Gaona, Garay, García, Garibay, Garica, Garrido, Garza, Gastélum, Gaytán, Gil, Girón, Godínez, Godoy, Gómez, Gonzales, González, Gollum, Gracia, Granado, Granados, Griego, Grijalva, Guajardo, Guardado, Guerra, Guerrero, Guevara, Guillen, Gurule, Gutiérrez, Guzmán, Haro, Henríquez, Heredia, Hernádez, Hernandes, Hernández, Herrera, Hidalgo, Hinojosa, Holguín, Huerta, Hurtado, Ibarra, Iglesias, Irizarry, Jaime, Jaimes, Jáquez, Jaramillo, Jasso, Jiménez, Jimínez, Juárez, Jurado, Laboy, Lara, Laureano, Leal, Lebrón, Ledesma, Leiva,Lemus, León, Lerma, Leyva, Limón, Linares, Lira, Llamas, Loera, Lomeli, Longoria, López, Lovato, Loya, Lozada, Lozano, Lucero, Lucio, Luevano, Lugo, Luna, Macías, Madera, Madrid, Madrigal, Maestas, Magaña, Malave, Maldonado, Manzanares, Mares, Marín, Márquez, Marrero, Marroquín, Martínez, Mascareñas, Mata, Mateo, Matías, Matos, Maya, Mayorga, Medina, Medrano, Mejía, Meléndez, Melgar, Mena, Menchaca, Méndez, Mendoza, Menéndez, Meraz, Mercado, Merino, Mesa, Meza, Miramontes, Miranda, Mireles, Mojica, Molina, Mondragón, Monroy, Montalvo, Montañez, Montaño, Montemayor, Montenegro, Montero, Montes, Montez, Montoya, Mora, Morales, Moreno, Mota, Moya, Munguía, Muñiz, Muñoz, Murillo, Muro, Nájera, Naranjo, Narváez, Nava, Navarrete, Navarro, Nazario, Negrete, Negrón, Nevárez, Nieto, Nieves, Niño, Noriega, Núñez, Ocampo, Ocasio, Ochoa, Ojeda, Olivares, Olivárez, Olivas, Olivera, Olivo, Olmos, Olvera, Ontiveros, Oquendo, Ordóñez, Orellana, Ornelas, Orosco, Orozco, Orta, Ortega, Ortiz, Osorio, Otero, Ozuna, Pabón, Pacheco, Padilla, Padrón, Páez, Pagan, Palacios, Palomino, Palomo, Pantoja, Paredes, Parra, Partida, Patiño, Paz, Pedraza, Pedroza, Pelayo, Peña, Perales, Peralta, Perea, Peres, Pérez, Pichardo, Piña, Pineda, Pizarro, Polanco, Ponce, Porras, Portillo, Posada, Prado, Preciado, Prieto, Puente, Puga, Pulido, Quesada, Quezada, Quiñones, Quiñónez, Quintana, Quintanilla, Quintero, Quiroz, Rael, Ramírez, Ramón, Ramos, Rangel, Rascón, Raya, Razo, Regalado, Rendón, Rentería, Reséndez, Reyes, Reyna, Reynoso, Rico, Rincón, Riojas, Ríos, Rivas, Rivera, Rivero, Robledo, Robles, Rocha, Rodarte, Rodrígez, Rodríguez, Rodríquez, Rojas, Rojo, Roldán, Rolón, Romero, Romo, Roque, Rosado, Rosales, Rosario, Rosas, Roybal, Rubio, Ruelas, Ruiz, Saavedra, Sáenz, Saiz, Salas, Salazar, Salcedo, Salcido, Saldaña, Saldivar, Salgado, Salinas, Samaniego, Sanabria, Sanches, Sánchez, Sandoval, Santacruz, Santana, Santiago, Santillán, Sarabia, Sauceda, Saucedo, Sedillo, Segovia, Segura, Sepúlveda, Serna, Serrano, Serrato, Sevilla, Sierra, Sisneros, Solano, Solís, Soliz, Solorio, Solorzano, Soria, Sosa, Sotelo, Soto, Suárez, Tafoya, Tamayo, Tamez, Tapia, Tejada, Tejeda, Téllez, Tello, Terán, Terrazas, Tijerina, Tirado, Toledo, Toro, Torres, Tórrez, Tovar, Trejo, Treviño, Trujillo, Ulibarri, Ulloa, Urbina, Ureña, Urías, Uribe, Urrutia, Vaca, Valadez, Valdés, Valdez, Valdivia, Valencia, Valentín, Valenzuela, Valladares, Valle, Vallejo, Valles, Valverde, Vanegas, Varela, Vargas, Vásquez, Vázquez, Vega, Vela, Velasco, Velásquez, Velázquez, Vélez, Véliz, Venegas, Vera, Verdugo, Verduzco, Vergara, Viera, Vigil, Villa, Villagómez, Villalobos, Villalpando, Villanueva, Villareal, Villarreal, Villaseñor, Villegas, Yáñez, Ybarra, Zambrano, Zamora, Zamudio, Zapata, Zaragoza, Zarate, Zavala, Zayas, Zelaya, Zepeda, Zúñiga] + prefix: [Sr., Sra., Sta.] + suffix: [Jr., Sr., I, II, III, IV, V, MD, DDS, PhD, DVM] + title: + descriptor: [Jefe, Senior, Directo, Corporativo, Dinánmico, Futuro, Producto, Nacional, Regional, Distrito, Central, Global, Cliente, Inversor, International, Heredado, Adelante, Interno, Humano, Gerente, Director] + level: [Soluciones, Programa, Marca, Seguridada, Investigación, Marketing, Normas, Implementación, Integración, Funcionalidad, Respuesta, Paradigma, Tácticas, Identidad, Mercados, Grupo, División, Aplicaciones, Optimización, Operaciones, Infraestructura, Intranet, Comunicaciones, Web, Calidad, Seguro, Mobilidad, Cuentas, Datos, Creativo, Configuración, Contabilidad, Interacciones, Factores, Usabilidad, Métricas] + job: [Supervisor, Asociado, Ejecutivo, Relacciones, Oficial, Gerente, Ingeniero, Especialista, Director, Coordinador, Administrador, Arquitecto, Analista, Diseñador, Planificador, Técnico, Funcionario, Desarrollador, Productor, Consultor, Asistente, Facilitador, Agente, Representante, Estratega] + name: + - "#{prefix} #{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + + phone_number: + formats: ['9##-###-###', '9##.###.###', '9## ### ###', '9########'] + cell_phone: + formats: ['6##-###-###', '6##.###.###', '6## ### ###', '6########'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fa.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fa.yml new file mode 100644 index 0000000..83286b9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fa.yml @@ -0,0 +1,6 @@ +fa: + faker: + name: + first_name: [آبان دخت, آبتین, آتوسا, آفر, آفره دخت, آذرنوش‌, آذین, آراه, آرزو, آرش, آرتین, آرتام, آرتمن, آرشام, آرمان, آرمین, آرمیتا, آریا فر, آریا, آریا مهر, آرین, آزاده, آزرم, آزرمدخت, آزیتا, آناهیتا, آونگ, آهو, آیدا, اتسز, اختر, ارد, ارد شیر, اردوان, ارژن, ارژنگ, ارسلان, ارغوان, ارمغان, ارنواز, اروانه, استر, اسفندیار, اشکان, اشکبوس, افسانه, افسون, افشین, امید, انوش (‌ آنوشا ), انوشروان, اورنگ, اوژن, اوستا, اهورا, ایاز, ایران, ایراندخت, ایرج, ایزدیار, بابک, باپوک, باربد, بارمان, بامداد, بامشاد, بانو, بختیار, برانوش, بردیا, برزو, برزویه, برزین, برمک, بزرگمهر, بنفشه, بوژان, بویان, بهار, بهارک, بهاره, بهتاش, بهداد, بهرام, بهدیس, بهرخ, بهرنگ, بهروز, بهزاد, بهشاد, بهمن, بهناز, بهنام, بهنود, بهنوش, بیتا, بیژن, پارسا, پاکان, پاکتن, پاکدخت, پانته آ, پدرام, پرتو, پرشنگ, پرتو, پرستو, پرویز, پردیس, پرهام, پژمان, پژوا, پرنیا, پشنگ, پروانه, پروین, پری, پریچهر, پریدخت, پریسا, پرناز, پریوش, پریا, پوپک, پوران, پوراندخت, پوریا, پولاد, پویا, پونه, پیام, پیروز, پیمان, تابان, تاباندخت, تاجی, تارا, تاویار, ترانه, تناز, توران, توراندخت, تورج, تورتک, توفان, توژال, تیر داد, تینا, تینو, جابان, جامین, جاوید, جریره, جمشید, جوان, جویا, جهان, جهانبخت, جهانبخش, جهاندار, جهانگیر, جهان بانو, جهاندخت, جهان ناز, جیران, چابک, چالاک, چاوش, چترا, چوبین, چهرزاد, خاوردخت, خداداد, خدایار, خرم, خرمدخت, خسرو, خشایار, خورشید, دادمهر, دارا, داراب, داریا, داریوش, دانوش, داور‌, دایان, دریا, دل آرا, دل آویز, دلارام, دل انگیز, دلبر, دلبند, دلربا, دلشاد, دلکش, دلناز, دلنواز, دورشاسب, دنیا, دیااکو, دیانوش, دیبا, دیبا دخت, رابو, رابین, رادبانو, رادمان, رازبان, راژانه, راسا, رامتین, رامش, رامشگر, رامونا, رامیار, رامیلا, رامین, راویار, رژینا, رخپاک, رخسار, رخشانه, رخشنده, رزمیار, رستم, رکسانا, روبینا, رودابه, روزبه, روشنک, روناک, رهام, رهی, ریبار, راسپینا, زادبخت, زاد به, زاد چهر, زاد فر, زال, زادماسب, زاوا, زردشت, زرنگار, زری, زرین, زرینه, زمانه, زونا, زیبا, زیبار, زیما, زینو, ژاله, ژالان, ژیار, ژینا, ژیوار, سارا, سارک, سارنگ, ساره, ساسان, ساغر, سام, سامان, سانا, ساناز, سانیار, ساویز, ساهی, ساینا, سایه, سپنتا, سپند, سپهر, سپهرداد, سپیدار, سپید بانو, سپیده, ستاره, ستی, سرافراز, سرور, سروش, سرور, سوبا, سوبار, سنبله, سودابه, سوری, سورن, سورنا, سوزان, سوزه, سوسن, سومار, سولان, سولماز, سوگند, سهراب, سهره, سهند, سیامک, سیاوش, سیبوبه ‌, سیما, سیمدخت, سینا, سیمین, سیمین دخت, شاپرک, شادی, شادمهر, شاران, شاهپور, شاهدخت, شاهرخ, شاهین, شاهیندخت, شایسته, شباهنگ, شب بو, شبدیز, شبنم, شراره, شرمین, شروین, شکوفه, شکفته, شمشاد, شمین, شوان, شمیلا, شورانگیز, شوری, شهاب, شهبار, شهباز, شهبال, شهپر, شهداد, شهرآرا, شهرام, شهربانو, شهرزاد, شهرناز, شهرنوش, شهره, شهریار, شهرزاد, شهلا, شهنواز, شهین, شیبا, شیدا, شیده, شیردل, شیرزاد, شیرنگ, شیرو, شیرین دخت, شیما, شینا, شیرین, شیوا, طوس, طوطی, طهماسب, طهمورث, غوغا, غنچه, فتانه, فدا, فراز, فرامرز, فرانک, فراهان, فربد, فربغ, فرجاد, فرخ, فرخ پی, فرخ داد, فرخ رو, فرخ زاد, فرخ لقا, فرخ مهر, فرداد, فردیس, فرین, فرزاد, فرزام, فرزان, فرزانه, فرزین, فرشاد, فرشته, فرشید, فرمان, فرناز, فرنگیس, فرنود, فرنوش, فرنیا, فروتن, فرود, فروز, فروزان, فروزش, فروزنده, فروغ, فرهاد, فرهنگ, فرهود, فربار, فریبا, فرید, فریدخت, فریدون, فریمان, فریناز, فرینوش, فریوش, فیروز, فیروزه, قابوس, قباد, قدسی, کابان, کابوک, کارا, کارو, کاراکو, کامبخت, کامبخش, کامبیز, کامجو, کامدین, کامران, کامراوا, کامک, کامنوش, کامیار, کانیار, کاووس, کاوه, کتایون, کرشمه, کسری, کلاله, کمبوجیه, کوشا, کهبد, کهرام, کهزاد, کیارش, کیان, کیانا, کیانچهر, کیاندخت, کیانوش, کیاوش, کیخسرو, کیقباد, کیکاووس, کیوان, کیوان دخت, کیومرث, کیهان, کیاندخت, کیهانه, گرد آفرید, گردان, گرشا, گرشاسب, گرشین, گرگین, گزل, گشتاسب, گشسب, گشسب بانو, گل, گل آذین, گل آرا‌, گلاره, گل افروز, گلاله, گل اندام, گلاویز, گلباد, گلبار, گلبام, گلبان, گلبانو, گلبرگ, گلبو, گلبهار, گلبیز, گلپاره, گلپر, گلپری, گلپوش, گل پونه, گلچین, گلدخت, گلدیس, گلربا, گلرخ, گلرنگ, گلرو, گلشن, گلریز, گلزاد, گلزار, گلسا, گلشید, گلنار, گلناز, گلنسا, گلنواز, گلنوش, گلی, گودرز, گوماتو, گهر چهر, گوهر ناز, گیتی, گیسو, گیلدا, گیو, لادن, لاله, لاله رخ, لاله دخت, لبخند, لقاء, لومانا, لهراسب, مارال, ماری, مازیار, ماکان, مامک, مانا, ماندانا, مانوش, مانی, مانیا, ماهان, ماهاندخت, ماه برزین, ماه جهان, ماهچهر, ماهدخت, ماهور, ماهرخ, ماهزاد, مردآویز, مرداس, مرزبان, مرمر, مزدک, مژده, مژگان, مستان, مستانه, مشکاندخت, مشکناز, مشکین دخت, منیژه, منوچهر, مهبانو, مهبد, مه داد, مهتاب, مهدیس, مه جبین, مه دخت, مهر آذر, مهر آرا, مهر آسا, مهر آفاق, مهر افرین, مهرآب, مهرداد, مهر افزون, مهرام, مهران, مهراندخت, مهراندیش, مهرانفر, مهرانگیز, مهرداد, مهر دخت, مهرزاده ‌, مهرناز, مهرنوش, مهرنکار, مهرنیا, مهروز, مهری, مهریار, مهسا, مهستی, مه سیما, مهشاد, مهشید, مهنام, مهناز, مهنوش, مهوش, مهیار, مهین, مهین دخت, میترا, میخک, مینا, مینا دخت, مینو, مینودخت, مینو فر, نادر, ناز آفرین, نازبانو, نازپرور, نازچهر, نازفر, نازلی, نازی, نازیدخت, نامور, ناهید, ندا, نرسی, نرگس, نرمک, نرمین, نریمان, نسترن, نسرین, نسرین دخت, نسرین نوش, نکیسا, نگار, نگاره, نگارین, نگین, نوا, نوش, نوش آذر, نوش آور, نوشا, نوش آفرین, نوشدخت, نوشروان, نوشفر, نوشناز, نوشین, نوید, نوین, نوین دخت, نیش ا, نیک بین, نیک پی, نیک چهر, نیک خواه, نیکداد, نیکدخت, نیکدل, نیکزاد, نیلوفر, نیما, وامق, ورجاوند, وریا, وشمگیر, وهرز, وهسودان, ویدا, ویس, ویشتاسب, ویگن, هژیر, هخامنش, هربد( هیربد ), هرمز, همایون, هما, همادخت, همدم, همراز, همراه, هنگامه, هوتن, هور, هورتاش, هورچهر, هورداد, هوردخت, هورزاد, هورمند, هوروش, هوشنگ, هوشیار, هومان, هومن, هونام, هویدا, هیتاسب, هیرمند, هیما, هیوا, یادگار, یاسمن ( یاسمین ), یاشار, یاور, یزدان, یگانه, یوشیتا] + last_name: [عارف, عاشوری, عالی, عبادی, عبدالکریمی, عبدالملکی, عراقی, عزیزی, عصار, عقیلی, علم, علم‌الهدی, علی عسگری, علی‌آبادی, علیا, علی‌پور, علی‌زمانی, عنایت, غضنفری, غنی, فارسی, فاطمی, فانی, فتاحی, فرامرزی, فرج, فرشیدورد, فرمانفرمائیان, فروتن, فرهنگ, فریاد, فنایی, فنی‌زاده, فولادوند, فهمیده, قاضی, قانعی, قانونی, قمیشی, قنبری, قهرمان, قهرمانی, قهرمانیان, قهستانی, کاشی, کاکاوند, کامکار, کاملی, کاویانی, کدیور, کردبچه, کرمانی, کریمی, کلباسی, کمالی, کوشکی, کهنمویی, کیان, کیانی (نام خانوادگی), کیمیایی, گل محمدی, گلپایگانی, گنجی, لاجوردی, لاچینی, لاهوتی, لنکرانی, لوکس, مجاهد, مجتبایی, مجتبوی, مجتهد شبستری, مجتهدی, مجرد, محجوب, محجوبی, محدثی, محمدرضایی, محمدی, مددی, مرادخانی, مرتضوی, مستوفی, مشا, مصاحب, مصباح, مصباح‌زاده, مطهری, مظفر, معارف, معروف, معین, مفتاح, مفتح, مقدم, ملایری, ملک, ملکیان, منوچهری, موحد, موسوی, موسویان, مهاجرانی, مهدی‌پور, میرباقری, میردامادی, میرزاده, میرسپاسی, میزبانی, ناظری, نامور, نجفی, ندوشن, نراقی, نعمت‌زاده, نقدی, نقیب‌زاده, نواب, نوبخت, نوبختی, نهاوندی, نیشابوری, نیلوفری, واثقی, واعظ, واعظ‌زاده, واعظی, وکیلی, هاشمی, هاشمی رفسنجانی, هاشمیان, هامون, هدایت, هراتی, هروی, همایون, همت, همدانی, هوشیار, هومن, یاحقی, یادگار, یثربی, یلدا] + prefix: [آقای, خانم, دکتر] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fr.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fr.yml new file mode 100644 index 0000000..10d407c --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/fr.yml @@ -0,0 +1,55 @@ +fr: + faker: + address: + building_number: ['####', '###', '##', '#'] + street_prefix: ["Allée, Voie", "Rue", "Avenue", "Boulevard", "Quai", "Passage", "Impasse", "Place"] + secondary_address: ['Apt. ###', '# étage'] + postcode: ['#####'] + state: ['Alsace', 'Aquitaine', 'Auvergne', 'Basse-Normandie', 'Bourgogne', 'Bretagne', 'Centre', 'Champagne-Ardenne', 'Corse', 'Franche-Comté', 'Haute-Normandie', 'Île-de-France', 'Languedoc-Roussillon', 'Limousin', 'Lorraine', 'Midi-Pyrénées', 'Nord-Pas-de-Calais', 'Pays de la Loire', 'Picardie', 'Poitou-Charentes', "Provence-Alpes-Côte d'Azur", 'Rhône-Alpes'] + city_name: ["Paris", "Marseille", "Lyon", "Toulouse", "Nice", "Nantes", "Strasbourg", "Montpellier", "Bordeaux", "Lille13", "Rennes", "Reims", "Le Havre", "Saint-Étienne", "Toulon", "Grenoble", "Dijon", "Angers", "Saint-Denis", "Villeurbanne", "Le Mans", "Aix-en-Provence", "Brest", "Nîmes", "Limoges", "Clermont-Ferrand", "Tours", "Amiens", "Metz", "Perpignan", "Besançon", "Orléans", "Boulogne-Billancourt", "Mulhouse", "Rouen", "Caen", "Nancy", "Saint-Denis", "Saint-Paul", "Montreuil", "Argenteuil", "Roubaix", "Dunkerque14", "Tourcoing", "Nanterre", "Avignon", "Créteil", "Poitiers", "Fort-de-France", "Courbevoie", "Versailles", "Vitry-sur-Seine", "Colombes", "Pau", "Aulnay-sous-Bois", "Asnières-sur-Seine", "Rueil-Malmaison", "Saint-Pierre", "Antibes", "Saint-Maur-des-Fossés", "Champigny-sur-Marne", "La Rochelle", "Aubervilliers", "Calais", "Cannes", "Le Tampon", "Béziers", "Colmar", "Bourges", "Drancy", "Mérignac", "Saint-Nazaire", "Valence", "Ajaccio", "Issy-les-Moulineaux", "Villeneuve-d'Ascq", "Levallois-Perret", "Noisy-le-Grand", "Quimper", "La Seyne-sur-Mer", "Antony", "Troyes", "Neuilly-sur-Seine", "Sarcelles", "Les Abymes", "Vénissieux", "Clichy", "Lorient", "Pessac", "Ivry-sur-Seine", "Cergy", "Cayenne", "Niort", "Chambéry", "Montauban", "Saint-Quentin", "Villejuif", "Hyères", "Beauvais", "Cholet"] + city: + - "#{city_name}" + street_suffix: ["de l'Abbaye", "Adolphe Mille", "d'Alésia", "d'Argenteuil", "d'Assas", "du Bac", "de Paris", "La Boétie", "Bonaparte", "de la Bûcherie", "de Caumartin", "Charlemagne", "du Chat-qui-Pêche", "de la Chaussée-d'Antin", "du Dahomey", "Dauphine", "Delesseux", "du Faubourg Saint-Honoré", "du Faubourg-Saint-Denis", "de la Ferronnerie", "des Francs-Bourgeois", "des Grands Augustins", "de la Harpe", "du Havre", "de la Huchette", "Joubert", "Laffitte", "Lepic", "des Lombards", "Marcadet", "Molière", "Monsieur-le-Prince", "de Montmorency", "Montorgueil", "Mouffetard", "de Nesle", "Oberkampf", "de l'Odéon", "d'Orsel", "de la Paix", "des Panoramas", "Pastourelle", "Pierre Charron", "de la Pompe", "de Presbourg", "de Provence", "de Richelieu", "de Rivoli", "des Rosiers", "Royale", "d'Abbeville", "Saint-Honoré", "Saint-Bernard", "Saint-Denis", "Saint-Dominique", "Saint-Jacques", "Saint-Séverin", "des Saussaies", "de Seine", "de Solférino", "Du Sommerard", "de Tilsitt", "Vaneau", "de Vaugirard", "de la Victoire", "Zadkine"] + street_name: + - "#{street_prefix} #{street_suffix}" + street_address: + - "#{building_number} #{street_name}" + default_country: [France] + + company: + suffix: [SARL, SA, EURL, SAS, SEM, SCOP, GIE, EI] + # Buzzword wordlist from http://www.1728.com/buzzword.htm + buzzwords: + - ["Adaptive", "Advanced", "Ameliorated", "Assimilated", "Automated", "Balanced", "Business-focused", "Centralized", "Cloned", "Compatible", "Configurable", "Cross-group", "Cross-platform", "Customer-focused", "Customizable", "Decentralized", "De-engineered", "Devolved", "Digitized", "Distributed", "Diverse", "Down-sized", "Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded", "Extended", "Face to face", "Focused", "Front-line", "Fully-configurable", "Function-based", "Fundamental", "Future-proofed", "Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated", "Intuitive", "Inverse", "Managed", "Mandatory", "Monitored", "Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered", "Networked", "Object-based", "Open-architected", "Open-source", "Operative", "Optimized", "Optional", "Organic", "Organized", "Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive", "Proactive", "Profit-focused", "Profound", "Programmable", "Progressive", "Public-key", "Quality-focused", "Reactive", "Realigned", "Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered", "Right-sized", "Robust", "Seamless", "Secured", "Self-enabling", "Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised", "Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered", "Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly", "Versatile", "Virtual", "Visionary", "Vision-oriented"] + - ["24 hour", "24/7", "3rd generation", "4th generation", "5th generation", "6th generation", "actuating", "analyzing", "asymmetric", "asynchronous", "attitude-oriented", "background", "bandwidth-monitored", "bi-directional", "bifurcated", "bottom-line", "clear-thinking", "client-driven", "client-server", "coherent", "cohesive", "composite", "context-sensitive", "contextually-based", "content-based", "dedicated", "demand-driven", "didactic", "directional", "discrete", "disintermediate", "dynamic", "eco-centric", "empowering", "encompassing", "even-keeled", "executive", "explicit", "exuding", "fault-tolerant", "foreground", "fresh-thinking", "full-range", "global", "grid-enabled", "heuristic", "high-level", "holistic", "homogeneous", "human-resource", "hybrid", "impactful", "incremental", "intangible", "interactive", "intermediate", "leading edge", "local", "logistical", "maximized", "methodical", "mission-critical", "mobile", "modular", "motivating", "multimedia", "multi-state", "multi-tasking", "national", "needs-based", "neutral", "next generation", "non-volatile", "object-oriented", "optimal", "optimizing", "radical", "real-time", "reciprocal", "regional", "responsive", "scalable", "secondary", "solution-oriented", "stable", "static", "systematic", "systemic", "system-worthy", "tangible", "tertiary", "transitional", "uniform", "upward-trending", "user-facing", "value-added", "web-enabled", "well-modulated", "zero administration", "zero defect", "zero tolerance"] + - ["ability", "access", "adapter", "algorithm", "alliance", "analyzer", "application", "approach", "architecture", "archive", "artificial intelligence", "array", "attitude", "benchmark", "budgetary management", "capability", "capacity", "challenge", "circuit", "collaboration", "complexity", "concept", "conglomeration", "contingency", "core", "customer loyalty", "database", "data-warehouse", "definition", "emulation", "encoding", "encryption", "extranet", "firmware", "flexibility", "focus group", "forecast", "frame", "framework", "function", "functionalities", "Graphic Interface", "groupware", "Graphical User Interface", "hardware", "help-desk", "hierarchy", "hub", "implementation", "info-mediaries", "infrastructure", "initiative", "installation", "instruction set", "interface", "internet solution", "intranet", "knowledge user", "knowledge base", "local area network", "leverage", "matrices", "matrix", "methodology", "middleware", "migration", "model", "moderator", "monitoring", "moratorium", "neural-net", "open architecture", "open system", "orchestration", "paradigm", "parallelism", "policy", "portal", "pricing structure", "process improvement", "product", "productivity", "project", "projection", "protocol", "secured line", "service-desk", "software", "solution", "standardization", "strategy", "structure", "success", "superstructure", "support", "synergy", "system engine", "task-force", "throughput", "time-frame", "toolset", "utilisation", "website", "workforce"] + # BS wordlist from http://dack.com/web/bullshit.html + bs: + - ["implement", "utilize", "integrate", "streamline", "optimize", "evolve", "transform", "embrace", "enable", "orchestrate", "leverage", "reinvent", "aggregate", "architect", "enhance", "incentivize", "morph", "empower", "envisioneer", "monetize", "harness", "facilitate", "seize", "disintermediate", "synergize", "strategize", "deploy", "brand", "grow", "target", "syndicate", "synthesize", "deliver", "mesh", "incubate", "engage", "maximize", "benchmark", "expedite", "reintermediate", "whiteboard", "visualize", "repurpose", "innovate", "scale", "unleash", "drive", "extend", "engineer", "revolutionize", "generate", "exploit", "transition", "e-enable", "iterate", "cultivate", "matrix", "productize", "redefine", "recontextualize"] + - ["clicks-and-mortar", "value-added", "vertical", "proactive", "robust", "revolutionary", "scalable", "leading-edge", "innovative", "intuitive", "strategic", "e-business", "mission-critical", "sticky", "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular", "frictionless", "virtual", "viral", "dynamic", "24/365", "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled", "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient", "front-end", "distributed", "seamless", "extensible", "turn-key", "world-class", "open-source", "cross-platform", "cross-media", "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise", "integrated", "impactful", "wireless", "transparent", "next-generation", "cutting-edge", "user-centric", "visionary", "customized", "ubiquitous", "plug-and-play", "collaborative", "compelling", "holistic", "rich"] + - ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name} et #{Name.last_name}" + + internet: + free_email: [gmail.com, yahoo.fr, hotmail.fr] + domain_suffix: [com, fr, eu, info, name, net, org] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + supplemental: [abbas, abduco, abeo, abscido, absconditus, absens, absorbeo, absque, abstergo, absum, abundans, abutor, accedo, accendo, acceptus, accipio, accommodo, accusator, acer, acerbitas, acervus, acidus, acies, acquiro, acsi, adamo, adaugeo, addo, adduco, ademptio, adeo, adeptio, adfectus, adfero, adficio, adflicto, adhaero, adhuc, adicio, adimpleo, adinventitias, adipiscor, adiuvo, administratio, admiratio, admitto, admoneo, admoveo, adnuo, adopto, adsidue, adstringo, adsuesco, adsum, adulatio, adulescens, adultus, aduro, advenio, adversus, advoco, aedificium, aeger, aegre, aegrotatio, aegrus, aeneus, aequitas, aequus, aer, aestas, aestivus, aestus, aetas, aeternus, ager, aggero, aggredior, agnitio, agnosco, ago, ait, aiunt, alienus, alii, alioqui, aliqua, alius, allatus, alo, alter, altus, alveus, amaritudo, ambitus, ambulo, amicitia, amiculum, amissio, amita, amitto, amo, amor, amoveo, amplexus, amplitudo, amplus, ancilla, angelus, angulus, angustus, animadverto, animi, animus, annus, anser, ante, antea, antepono, antiquus, aperio, aperte, apostolus, apparatus, appello, appono, appositus, approbo, apto, aptus, apud, aqua, ara, aranea, arbitro, arbor, arbustum, arca, arceo, arcesso, arcus, argentum, argumentum, arguo, arma, armarium, armo, aro, ars, articulus, artificiose, arto, arx, ascisco, ascit, asper, aspicio, asporto, assentator, astrum, atavus, ater, atqui, atrocitas, atrox, attero, attollo, attonbitus, auctor, auctus, audacia, audax, audentia, audeo, audio, auditor, aufero, aureus, auris, aurum, aut, autem, autus, auxilium, avaritia, avarus, aveho, averto, avoco, baiulus, balbus, barba, bardus, basium, beatus, bellicus, bellum, bene, beneficium, benevolentia, benigne, bestia, bibo, bis, blandior, bonus, bos, brevis, cado, caecus, caelestis, caelum, calamitas, calcar, calco, calculus, callide, campana, candidus, canis, canonicus, canto, capillus, capio, capitulus, capto, caput, carbo, carcer, careo, caries, cariosus, caritas, carmen, carpo, carus, casso, caste, casus, catena, caterva, cattus, cauda, causa, caute, caveo, cavus, cedo, celebrer, celer, celo, cena, cenaculum, ceno, censura, centum, cerno, cernuus, certe, certo, certus, cervus, cetera, charisma, chirographum, cibo, cibus, cicuta, cilicium, cimentarius, ciminatio, cinis, circumvenio, cito, civis, civitas, clam, clamo, claro, clarus, claudeo, claustrum, clementia, clibanus, coadunatio, coaegresco, coepi, coerceo, cogito, cognatus, cognomen, cogo, cohaero, cohibeo, cohors, colligo, colloco, collum, colo, color, coma, combibo, comburo, comedo, comes, cometes, comis, comitatus, commemoro, comminor, commodo, communis, comparo, compello, complectus, compono, comprehendo, comptus, conatus, concedo, concido, conculco, condico, conduco, confero, confido, conforto, confugo, congregatio, conicio, coniecto, conitor, coniuratio, conor, conqueror, conscendo, conservo, considero, conspergo, constans, consuasor, contabesco, contego, contigo, contra, conturbo, conventus, convoco, copia, copiose, cornu, corona, corpus, correptius, corrigo, corroboro, corrumpo, coruscus, cotidie, crapula, cras, crastinus, creator, creber, crebro, credo, creo, creptio, crepusculum, cresco, creta, cribro, crinis, cruciamentum, crudelis, cruentus, crur, crustulum, crux, cubicularis, cubitum, cubo, cui, cuius, culpa, culpo, cultellus, cultura, cum, cunabula, cunae, cunctatio, cupiditas, cupio, cuppedia, cupressus, cur, cura, curatio, curia, curiositas, curis, curo, curriculum, currus, cursim, curso, cursus, curto, curtus, curvo, curvus, custodia, damnatio, damno, dapifer, debeo, debilito, decens, decerno, decet, decimus, decipio, decor, decretum, decumbo, dedecor, dedico, deduco, defaeco, defendo, defero, defessus, defetiscor, deficio, defigo, defleo, defluo, defungo, degenero, degero, degusto, deinde, delectatio, delego, deleo, delibero, delicate, delinquo, deludo, demens, demergo, demitto, demo, demonstro, demoror, demulceo, demum, denego, denique, dens, denuncio, denuo, deorsum, depereo, depono, depopulo, deporto, depraedor, deprecator, deprimo, depromo, depulso, deputo, derelinquo, derideo, deripio, desidero, desino, desipio, desolo, desparatus, despecto, despirmatio, infit, inflammatio, paens, patior, patria, patrocinor, patruus, pauci, paulatim, pauper, pax, peccatus, pecco, pecto, pectus, pecunia, pecus, peior, pel, ocer, socius, sodalitas, sol, soleo, solio, solitudo, solium, sollers, sollicito, solum, solus, solutio, solvo, somniculosus, somnus, sonitus, sono, sophismata, sopor, sordeo, sortitus, spargo, speciosus, spectaculum, speculum, sperno, spero, spes, spiculum, spiritus, spoliatio, sponte, stabilis, statim, statua, stella, stillicidium, stipes, stips, sto, strenuus, strues, studio, stultus, suadeo, suasoria, sub, subito, subiungo, sublime, subnecto, subseco, substantia, subvenio, succedo, succurro, sufficio, suffoco, suffragium, suggero, sui, sulum, sum, summa, summisse, summopere, sumo, sumptus, supellex, super, suppellex, supplanto, suppono, supra, surculus, surgo, sursum, suscipio, suspendo, sustineo, suus, synagoga, tabella, tabernus, tabesco, tabgo, tabula, taceo, tactus, taedium, talio, talis, talus, tam, tamdiu, tamen, tametsi, tamisium, tamquam, tandem, tantillus, tantum, tardus, tego, temeritas, temperantia, templum, temptatio, tempus, tenax, tendo, teneo, tener, tenuis, tenus, tepesco, tepidus, ter, terebro, teres, terga, tergeo, tergiversatio, tergo, tergum, termes, terminatio, tero, terra, terreo, territo, terror, tersus, tertius, testimonium, texo, textilis, textor, textus, thalassinus, theatrum, theca, thema, theologus, thermae, thesaurus, thesis, thorax, thymbra, thymum, tibi, timidus, timor, titulus, tolero, tollo, tondeo, tonsor, torqueo, torrens, tot, totidem, toties, totus, tracto, trado, traho, trans, tredecim, tremo, trepide, tres, tribuo, tricesimus, triduana, triginta, tripudio, tristis, triumphus, trucido, truculenter, tubineus, tui, tum, tumultus, tunc, turba, turbo, turpe, turpis, tutamen, tutis, tyrannus, uberrime, ubi, ulciscor, ullus, ulterius, ultio, ultra, umbra, umerus, umquam, una, unde, undique, universe, unus, urbanus, urbs, uredo, usitas, usque, ustilo, ustulo, usus, uter, uterque, utilis, utique, utor, utpote, utrimque, utroque, utrum, uxor, vaco, vacuus, vado, vae, valde, valens, valeo, valetudo, validus, vallum, vapulus, varietas, varius, vehemens, vel, velociter, velum, velut, venia, venio, ventito, ventosus, ventus, venustas, ver, verbera, verbum, vere, verecundia, vereor, vergo, veritas, vero, versus, verto, verumtamen, verus, vesco, vesica, vesper, vespillo, vester, vestigium, vestrum, vetus, via, vicinus, vicissitudo, victoria, victus, videlicet, video, viduata, viduo, vigilo, vigor, vilicus, vilis, vilitas, villa, vinco, vinculum, vindico, vinitor, vinum, vir, virga, virgo, viridis, viriliter, virtus, vis, viscus, vita, vitiosus, vitium, vito, vivo, vix, vobis, vociferor, voco, volaticus, volo, volubilis, voluntarius, volup, volutabrum, volva, vomer, vomica, vomito, vorago, vorax, voro, vos, votum, voveo, vox, vulariter, vulgaris, vulgivagus, vulgo, vulgus, vulnero, vulnus, vulpes, vulticulus, vultuosus, xiphias] + + name: + first_name: [Enzo, Lucas, Mathis, Nathan, Thomas, Hugo, Théo, Tom, Louis, Raphaël, Clément, Léo, Mathéo, Maxime, Alexandre, Antoine, Yanis, Paul, Baptiste, Alexis, Gabriel, Arthur, Jules, Ethan, Noah, Quentin, Axel, Evan, Mattéo, Romain, Valentin, Maxence, Noa, Adam, Nicolas, Julien, Mael, Pierre, Rayan, Victor, Mohamed, Adrien, Kylian, Sacha, Benjamin, Léa, Clara, Manon, Chloé, Camille, Ines, Sarah, Jade, Lola, Anaïs, Lucie, Océane, Lilou, Marie, Eva, Romane, Lisa, Zoe, Julie, Mathilde, Louise, Juliette, Clémence, Célia, Laura, Lena, Maëlys, Charlotte, Ambre, Maeva, Pauline, Lina, Jeanne, Lou, Noémie, Justine, Louna, Elisa, Alice, Emilie, Carla, Maëlle, Alicia, Mélissa] + last_name: [Martin, Bernard, Dubois, Thomas, Robert, Richard, Petit, Durand, Leroy, Moreau, Simon, Laurent, Lefebvre, Michel, Garcia, David, Bertrand, Roux, Vincent, Fournier, Morel, Girard, Andre, Lefevre, Mercier, Dupont, Lambert, Bonnet, Francois, Martinez, Legrand, Garnier, Faure, Rousseau, Blanc, Guerin, Muller, Henry, Roussel, Nicolas, Perrin, Morin, Mathieu, Clement, Gauthier, Dumont, Lopez, Fontaine, Chevalier, Robin, Masson, Sanchez, Gerard, Nguyen, Boyer, Denis, Lemaire, Duval, Joly, Gautier, Roger, Roche, Roy, Noel, Meyer, Lucas, Meunier, Jean, Perez, Marchand, Dufour, Blanchard, Marie, Barbier, Brun, Dumas, Brunet, Schmitt, Leroux, Colin, Fernandez, Pierre, Renard, Arnaud, Rolland, Caron, Aubert, Giraud, Leclerc, Vidal, Bourgeois, Renaud, Lemoine, Picard, Gaillard, Philippe, Leclercq, Lacroix, Fabre, Dupuis, Olivier, Rodriguez, Da silva, Hubert, Louis, Charles, Guillot, Riviere, Le gall, Guillaume, Adam, Rey, Moulin, Gonzalez, Berger, Lecomte, Menard, Fleury, Deschamps, Carpentier, Julien, Benoit, Paris, Maillard, Marchal, Aubry, Vasseur, Le roux, Renault, Jacquet, Collet, Prevost, Poirier, Charpentier, Royer, Huet, Baron, Dupuy, Pons, Paul, Laine, Carre, Breton, Remy, Schneider, Perrot, Guyot, Barre, Marty, Cousin] + prefix: [M, Mme, Mlle, Dr, Prof] + title: + job: [Superviseur, Executif, Manager, Ingenieur, Specialiste, Directeur, Coordinateur, Administrateur, Architecte, Analyste, Designer, Technicien, Developpeur, Producteur, Consultant, Assistant, Agent, Stagiaire] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{last_name} #{first_name}" + + phone_number: + formats: ['01########', '02########', '03########', '04########', '05########', '06########', '07########', '+33 1########', '+33 2########', '+33 3########', '+33 4########', '+33 5########', '+33 6########', '+33 7########'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/it.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/it.yml new file mode 100644 index 0000000..cb9ea86 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/it.yml @@ -0,0 +1,59 @@ +it: + faker: + address: + city_prefix: [San, Borgo, Sesto, Quarto, Settimo] + city_suffix: [a mare, lido, ligure, del friuli, salentino, calabro, veneto, nell'emilia, umbro, laziale, terme, sardo] + country: [Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antartide (territori a sud del 60° parallelo), Antigua e Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Bielorussia, Belgio, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia e Herzegovina, Botswana, Bouvet Island (Bouvetoya), Brasile, Territorio dell'arcipelago indiano, Isole Vergini Britanniche, Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambogia, Cameroon, Canada, Capo Verde, Isole Cayman, Repubblica Centrale Africana, Chad, Cile, Cina, Isola di Pasqua, Isola di Cocos (Keeling), Colombia, Comoros, Congo, Isole Cook, Costa Rica, Costa d'Avorio, Croazia, Cuba, Cipro, Repubblica Ceca, Danimarca, Gibuti, Repubblica Dominicana, Equador, Egitto, El Salvador, Guinea Equatoriale, Eritrea, Estonia, Etiopia, Isole Faroe, Isole Falkland (Malvinas), Fiji, Finlandia, Francia, Guyana Francese, Polinesia Francese, Territori Francesi del sud, Gabon, Gambia, Georgia, Germania, Ghana, Gibilterra, Grecia, Groenlandia, Grenada, Guadalupa, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Città del Vaticano, Honduras, Hong Kong, Ungheria, Islanda, India, Indonesia, Iran, Iraq, Irlanda, Isola di Man, Israele, Italia, Giamaica, Giappone, Jersey, Giordania, Kazakhstan, Kenya, Kiribati, Korea, Kuwait, Republicca Kirgiza, Repubblica del Laos, Latvia, Libano, Lesotho, Liberia, Libyan Arab Jamahiriya, Liechtenstein, Lituania, Lussemburgo, Macao, Macedonia, Madagascar, Malawi, Malesia, Maldive, Mali, Malta, Isole Marshall, Martinica, Mauritania, Mauritius, Mayotte, Messico, Micronesia, Moldova, Principato di Monaco, Mongolia, Montenegro, Montserrat, Marocco, Mozambico, Myanmar, Namibia, Nauru, Nepal, Antille Olandesi, Olanda, Nuova Caledonia, Nuova Zelanda, Nicaragua, Niger, Nigeria, Niue, Isole Norfolk, Northern Mariana Islands, Norvegia, Oman, Pakistan, Palau, Palestina, Panama, Papua Nuova Guinea, Paraguay, Peru, Filippine, Pitcairn Islands, Polonia, Portogallo, Porto Rico, Qatar, Reunion, Romania, Russia, Rwanda, San Bartolomeo, Sant'Elena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Arabia Saudita, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovenia, Isole Solomon, Somalia, Sud Africa, Georgia del sud e South Sandwich Islands, Spagna, Sri Lanka, Sudan, Suriname, Svalbard & Jan Mayen Islands, Swaziland, Svezia, Svizzera, Siria, Taiwan, Tajikistan, Tanzania, Tailandia, Timor-Leste, Togo, Tokelau, Tonga, Trinidad e Tobago, Tunisia, Turchia, Turkmenistan, Isole di Turks and Caicos, Tuvalu, Uganda, Ucraina, Emirati Arabi Uniti, Regno Unito, Stati Uniti d'America, United States Minor Outlying Islands, Isole Vergini Statunitensi, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe] + building_number: ['###', '##', '#'] + street_suffix: [Piazza, Strada, Via, Borgo, Contrada, Rotonda, Incrocio] + secondary_address: ['Appartamento ##', 'Piano #'] + postcode: ['#####'] + state: [Agrigento, Alessandria, Ancona, Aosta, Arezzo, Ascoli Piceno, Asti, Avellino, Bari, Barletta-Andria-Trani, Belluno, Benevento, Bergamo, Biella, Bologna, Bolzano, Brescia, Brindisi, Cagliari, Caltanissetta, Campobasso, Carbonia-Iglesias, Caserta, Catania, Catanzaro, Chieti, Como, Cosenza, Cremona, Crotone, Cuneo, Enna, Fermo, Ferrara, Firenze, Foggia, Forlì-Cesena, Frosinone, Genova, Gorizia, Grosseto, Imperia, Isernia, La Spezia, L'Aquila, Latina, Lecce, Lecco, Livorno, Lodi, Lucca, Macerata, Mantova, Massa-Carrara, Matera, Messina, Milano, Modena, Monza e della Brianza, Napoli, Novara, Nuoro, Olbia-Tempio, Oristano, Padova, Palermo, Parma, Pavia, Perugia, Pesaro e Urbino, Pescara, Piacenza, Pisa, Pistoia, Pordenone, Potenza, Prato, Ragusa, Ravenna, Reggio Calabria, Reggio Emilia, Rieti, Rimini, Roma, Rovigo, Salerno, Medio Campidano, Sassari, Savona, Siena, Siracusa, Sondrio, Taranto, Teramo, Terni, Torino, Ogliastra, Trapani, Trento, Treviso, Trieste, Udine, Varese, Venezia, Verbano-Cusio-Ossola, Vercelli, Verona, Vibo Valentia, Vicenza, Viterbo] + state_abbr: [AG, AL, AN, AO, AR, AP, AT, AV, BA, BT, BL, BN, BG, BI, BO, BZ, BS, BR, CA, CL, CB, CI, CE, CT, CZ, CH, CO, CS, CR, KR, CN, EN, FM, FE, FI, FG, FC, FR, GE, GO, GR, IM, IS, SP, AQ, LT, LE, LC, LI, LO, LU, MC, MN, MS, MT, ME, MI, MO, MB, NA, NO, NU, OT, OR, PD, PA, PR, PV, PG, PU, PE, PC, PI, PT, PN, PZ, PO, RG, RA, RC, RE, RI, RN, RM, RO, SA, VS, SS, SV, SI, SR, SO, TA, TE, TR, TO, OG, TP, TN, TV, TS, UD, VA, VE, VB, VC, VR, VV, VI, VT] + city: + - "#{city_prefix} #{Name.first_name} #{city_suffix}" + - "#{city_prefix} #{Name.first_name}" + - "#{Name.first_name} #{city_suffix}" + - "#{Name.last_name} #{city_suffix}" + street_name: + - "#{street_suffix} #{Name.first_name}" + - "#{street_suffix} #{Name.last_name}" + street_address: + - "#{street_name} #{building_number}" + - "#{street_name} #{building_number}, #{secondary_address}" + default_country: [Italia] + + company: + suffix: [SPA, e figli, Group, s.r.l.] + buzzwords: + - ["Abilità", "Access", "Adattatore", "Algoritmo", "Alleanza", "Analizzatore", "Applicazione", "Approccio", "Architettura", "Archivio", "Intelligenza artificiale", "Array", "Attitudine", "Benchmark", "Capacità", "Sfida", "Circuito", "Collaborazione", "Complessità", "Concetto", "Conglomerato", "Contingenza", "Core", "Database", "Data-warehouse", "Definizione", "Emulazione", "Codifica", "Criptazione", "Firmware", "Flessibilità", "Previsione", "Frame", "framework", "Funzione", "Funzionalità", "Interfaccia grafica", "Hardware", "Help-desk", "Gerarchia", "Hub", "Implementazione", "Infrastruttura", "Iniziativa", "Installazione", "Set di istruzioni", "Interfaccia", "Soluzione internet", "Intranet", "Conoscenza base", "Matrici", "Matrice", "Metodologia", "Middleware", "Migrazione", "Modello", "Moderazione", "Monitoraggio", "Moratoria", "Rete", "Architettura aperta", "Sistema aperto", "Orchestrazione", "Paradigma", "Parallelismo", "Policy", "Portale", "Struttura di prezzo", "Prodotto", "Produttività", "Progetto", "Proiezione", "Protocollo", "Servizio clienti", "Software", "Soluzione", "Standardizzazione", "Strategia", "Struttura", "Successo", "Sovrastruttura", "Supporto", "Sinergia", "Task-force", "Finestra temporale", "Strumenti", "Utilizzazione", "Sito web", "Forza lavoro"] + - ["adattiva", "avanzata", "migliorata", "assimilata", "automatizzata", "bilanciata", "centralizzata", "compatibile", "configurabile", "cross-platform", "decentralizzata", "digitalizzata", "distribuita", "piccola", "ergonomica", "esclusiva", "espansa", "estesa", "configurabile", "fondamentale", "orizzontale", "implementata", "innovativa", "integrata", "intuitiva", "inversa", "gestita", "obbligatoria", "monitorata", "multi-canale", "multi-laterale", "open-source", "operativa", "ottimizzata", "organica", "persistente", "polarizzata", "proattiva", "programmabile", "progressiva", "reattiva", "riallineata", "ricontestualizzata", "ridotta", "robusta", "sicura", "condivisibile", "stand-alone", "switchabile", "sincronizzata", "sinergica", "totale", "universale", "user-friendly", "versatile", "virtuale", "visionaria"] + - ["24 ore", "24/7", "terza generazione", "quarta generazione", "quinta generazione", "sesta generazione", "asimmetrica", "asincrona", "background", "bi-direzionale", "biforcata", "bottom-line", "coerente", "coesiva", "composita", "sensibile al contesto", "basta sul contesto", "basata sul contenuto", "dedicata", "didattica", "direzionale", "discreta", "dinamica", "eco-centrica", "esecutiva", "esplicita", "full-range", "globale", "euristica", "alto livello", "olistica", "omogenea", "ibrida", "impattante", "incrementale", "intangibile", "interattiva", "intermediaria", "locale", "logistica", "massimizzata", "metodica", "mission-critical", "mobile", "modulare", "motivazionale", "multimedia", "multi-tasking", "nazionale", "neutrale", "nextgeneration", "non-volatile", "object-oriented", "ottima", "ottimizzante", "radicale", "real-time", "reciproca", "regionale", "responsiva", "scalabile", "secondaria", "stabile", "statica", "sistematica", "sistemica", "tangibile", "terziaria", "uniforme", "valore aggiunto"] + bs: + - ["partnerships", "comunità", "ROI", "soluzioni", "e-services", "nicchie", "tecnologie", "contenuti", "supply-chains", "convergenze", "relazioni", "architetture", "interfacce", "mercati", "e-commerce", "sistemi", "modelli", "schemi", "reti", "applicazioni", "metriche", "e-business", "funzionalità", "esperienze", "webservices", "metodologie"] + - ["implementate", "utilizzo", "integrate", "ottimali", "evolutive", "abilitate", "reinventate", "aggregate", "migliorate", "incentivate", "monetizzate", "sinergizzate", "strategiche", "deploy", "marchi", "accrescitive", "target", "sintetizzate", "spedizioni", "massimizzate", "innovazione", "guida", "estensioni", "generate", "exploit", "transizionali", "matrici", "ricontestualizzate"] + - ["valore aggiunto", "verticalizzate", "proattive", "forti", "rivoluzionari", "scalabili", "innovativi", "intuitivi", "strategici", "e-business", "mission-critical", "24/7", "globali", "B2B", "B2C", "granulari", "virtuali", "virali", "dinamiche", "magnetiche", "web", "interattive", "sexy", "back-end", "real-time", "efficienti", "front-end", "distributivi", "estensibili", "mondiali", "open-source", "cross-platform", "sinergiche", "out-of-the-box", "enterprise", "integrate", "di impatto", "wireless", "trasparenti", "next-generation", "cutting-edge", "visionari", "plug-and-play", "collaborative", "olistiche", "ricche"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name} #{suffix}" + - "#{Name.last_name}, #{Name.last_name} e #{Name.last_name} #{suffix}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com, email.it, libero.it, yahoo.it] + domain_suffix: [com, com, com, net, org, it, it, it] + + name: + first_name: [Aaron, Akira, Alberto, Alessandro, Alighieri, Amedeo, Amos, Anselmo, Antonino, Arcibaldo, Armando, Artes, Audenico, Ausonio, Bacchisio, Battista, Bernardo, Boris, Caio, Carlo, Cecco, Cirino, Cleros, Costantino, Damiano, Danny, Davide, Demian, Dimitri, Domingo, Dylan, Edilio, Egidio, Elio, Emanuel, Enrico, Ercole, Ermes, Ethan, Eusebio, Evangelista, Fabiano, Ferdinando, Fiorentino, Flavio, Fulvio, Gabriele, Gastone, Germano, Giacinto, Gianantonio, Gianleonardo, Gianmarco, Gianriccardo, Gioacchino, Giordano, Giuliano, Graziano, Guido, Harry, Iacopo, Ilario, Ione, Italo, Jack, Jari, Joey, Joseph, Kai, Kociss, Laerte, Lauro, Leonardo, Liborio, Lorenzo, Ludovico, Maggiore, Manuele, Mariano, Marvin, Matteo, Mauro, Michael, Mirco, Modesto, Muzio, Nabil, Nathan, Nick, Noah, Odino, Olo, Oreste, Osea, Pablo, Patrizio, Piererminio, Pierfrancesco, Piersilvio, Priamo, Quarto, Quirino, Radames, Raniero, Renato, Rocco, Romeo, Rosalino, Rudy, Sabatino, Samuel, Santo, Sebastian, Serse, Silvano, Sirio, Tancredi, Terzo, Timoteo, Tolomeo, Trevis, Ubaldo, Ulrico, Valdo, Neri, Vinicio, Walter, Xavier, Yago, Zaccaria, Abramo, Adriano, Alan, Albino, Alessio, Alighiero, Amerigo, Anastasio, Antimo, Antonio, Arduino, Aroldo, Arturo, Augusto, Avide, Baldassarre, Bettino, Bortolo, Caligola, Carmelo, Celeste, Ciro, Costanzo, Dante, Danthon, Davis, Demis, Dindo, Domiziano, Edipo, Egisto, Eliziario, Emidio, Enzo, Eriberto, Erminio, Ettore, Eustachio, Fabio, Fernando, Fiorenzo, Folco, Furio, Gaetano, Gavino, Gerlando, Giacobbe, Giancarlo, Gianmaria, Giobbe, Giorgio, Giulio, Gregorio, Hector, Ian, Ippolito, Ivano, Jacopo, Jarno, Joannes, Joshua, Karim, Kris, Lamberto, Lazzaro, Leone, Lino, Loris, Luigi, Manfredi, Marco, Marino, Marzio, Mattia, Max, Michele, Mirko, Moreno, Nadir, Nazzareno, Nestore, Nico, Noel, Odone, Omar, Orfeo, Osvaldo, Pacifico, Pericle, Pietro, Primo, Quasimodo, Radio, Raoul, Renzo, Rodolfo, Romolo, Rosolino, Rufo, Sabino, Sandro, Sasha, Secondo, Sesto, Silverio, Siro, Tazio, Teseo, Timothy, Tommaso, Tristano, Umberto, Ariel, Artemide, Assia, Azue, Benedetta, Bibiana, Brigitta, Carmela, Cassiopea, Cesidia, Cira, Clea, Cleopatra, Clodovea, Concetta, Cosetta, Cristyn, Damiana, Danuta, Deborah, Demi, Diamante, Diana, Donatella, Doriana, Edvige, Elda, Elga, Elsa, Emilia, Enrica, Erminia, Eufemia, Evita, Fatima, Felicia, Filomena, Flaviana, Fortunata, Gelsomina, Genziana, Giacinta, Gilda, Giovanna, Giulietta, Grazia, Guendalina, Helga, Ileana, Ingrid, Irene, Isabel, Isira, Ivonne, Jelena, Jole, Claudia, Kayla, Kristel, Laura, Lucia, Lia, Lidia, Lisa, Loredana, Loretta, Luce, Lucrezia, Luna, Maika, Marcella, Maria, Mariagiulia, Marianita, Mariapia, Marieva, Marina, Maristella, Maruska, Matilde, Mecren, Mercedes, Mietta, Miriana, Miriam, Monia, Morgana, Naomi, Nayade, Nicoletta, Ninfa, Noemi, Nunzia, Olimpia, Oretta, Ortensia, Penelope, Piccarda, Prisca, Rebecca, Rita, Rosalba, Rosaria, Rosita, Ruth, Samira, Sarita, Selvaggia, Shaira, Sibilla, Soriana, Thea, Tosca, Ursula, Vania, Vera, Vienna, Violante, Vitalba, Zelida] + last_name: [Amato, Barbieri, Barone, Basile, Battaglia, Bellini, Benedetti, Bernardi, Bianc, Bianchi, Bruno, Caputo, Carbon, Caruso, Cattaneo, Colombo, Cont, Conte, Coppola, Costa, Costantin, D'amico, D'angelo, Damico, De Angelis, De luca, De rosa, De Santis, Donati, Esposito, Fabbri, Farin, Ferrara, Ferrari, Ferraro, Ferretti, Ferri, Fior, Fontana, Galli, Gallo, Gatti, Gentile, Giordano, Giuliani, Grassi, Grasso, Greco, Guerra, Leone, Lombardi, Lombardo, Longo, Mancini, Marchetti, Marian, Marini, Marino, Martinelli, Martini, Martino, Mazza, Messina, Milani, Montanari, Monti, Morelli, Moretti, Negri, Neri, Orlando, Pagano, Palmieri, Palumbo, Parisi, Pellegrini, Pellegrino, Piras, Ricci, Rinaldi, Riva, Rizzi, Rizzo, Romano, Ross, Rossetti, Ruggiero, Russo, Sala, Sanna, Santoro, Sartori, Serr, Silvestri, Sorrentino, Testa, Valentini, Villa, Vitale, Vitali] + prefix: [Sig., Dott., Dr., Ing.] + suffix: [] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ['+## ### ## ## ####', '+## ## #######', '+## ## ########', '+## ### #######', '+## ### ########', '+## #### #######', '+## #### ########', '0## ### ####', '+39 0## ### ###', '3## ### ###', '+39 3## ### ###'] \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ja.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ja.yml new file mode 100644 index 0000000..e4c6f6f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ja.yml @@ -0,0 +1,25 @@ +ja: + faker: + address: + postcode: ["###-####"] + state: ["北海道", "青森県", "岩手県", "宮城県", "秋田県", "山形県", "福島県", "茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県", "新潟県", "富山県", "石川県", "福井県", "山梨県", "長野県", "岐阜県", "静岡県", "愛知県", "三重県", "滋賀県", "京都府", "大阪府", "兵庫県", "奈良県", "和歌山県", "鳥取県", "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県", "愛媛県", "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県", "宮崎県", "鹿児島県", "沖縄県"] + state_abbr: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47"] + city_prefix: ["北", "東", "西", "南", "新", "湖", "港"] + city_suffix: ["市", "区", "町", "村"] + city: + - "#{city_prefix}#{Name.first_name}#{city_suffix}" + - "#{Name.first_name}#{city_suffix}" + - "#{city_prefix}#{Name.last_name}#{city_suffix}" + - "#{Name.last_name}#{city_suffix}" + street_name: + - "#{Name.first_name}#{street_suffix}" + - "#{Name.last_name}#{street_suffix}" + phone_number: + formats: ['0####-#-####', '0###-##-####', '0##-###-####', '0#-####-####'] + cell_phone: + formats: ['090-####-####', '080-####-####', '070-####-####'] + name: + last_name: ["佐藤", "鈴木", "高橋", "田中", "渡辺", "伊藤", "山本", "中村", "小林", "加藤", "吉田", "山田", "佐々木", "山口", "斎藤", "松本", "井上", "木村", "林", "清水"] + first_name: ["大翔", "蓮", "颯太", "樹", "大和", "陽翔", "陸斗", "太一", "海翔", "蒼空", "翼", "陽菜", "結愛", "結衣", "杏", "莉子", "美羽", "結菜", "心愛", "愛菜", "美咲"] + name: + - "#{last_name} #{first_name}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ko.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ko.yml new file mode 100644 index 0000000..6e1d502 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ko.yml @@ -0,0 +1,37 @@ +ko: + faker: + address: + postcode: ["###-###"] + state: ["강원", "경기", "경남", "경북", "광주", "대구", "대전", "부산", "서울", "울산", "인천", "전남", "전북", "제주", "충남", "충북", "세종"] + state_abbr: ["강원", "경기", "경남", "경북", "광주", "대구", "대전", "부산", "서울", "울산", "인천", "전남", "전북", "제주", "충남", "충북", "세종"] + city_suffix: ["구", "시", "군"] + city_name: ["강릉", "양양", "인제", "광주", "구리", "부천", "밀양", "통영", "창원", "거창", "고성", "양산", "김천", "구미", "영주", "광산", "남", "북", "고창", "군산", "남원", "동작", "마포", "송파", "용산", "부평", "강화", "수성"] + city: + - "#{city_name}#{city_suffix}" + street_root: ["상계", "화곡", "신정", "목", "잠실", "면목", "주안", "안양", "중", "정왕", "구로", "신월", "연산", "부평", "창", "만수", "중계", "검단", "시흥", "상도", "방배", "장유", "상", "광명", "신길", "행신", "대명", "동탄"] + street_suffix: ["읍", "면", "동"] + street_name: + - "#{street_root}#{street_suffix}" + + phone_number: + formats: ['0#-#####-####', '0##-###-####', '0##-####-####'] + + company: + suffix: ["연구소", "게임즈", "그룹", "전자", "물산", "코리아"] + prefix: ["주식회사", "한국"] + name: + - "#{prefix} #{Name.first_name}" + - "#{Name.first_name} #{suffix}" + + internet: + free_email: [gmail.com, yahoo.co.kr, hanmail.net, naver.com] + domain_suffix: [co.kr, com, biz, info, ne.kr, net, or.kr, org] + + lorem: + words: ["국가는", "법률이", "정하는", "바에", "의하여", "재외국민을", "보호할", "의무를", "진다.", "모든", "국민은", "신체의", "자유를", "가진다.", "국가는", "전통문화의", "계승·발전과", "민족문화의", "창달에", "노력하여야", "한다.", "통신·방송의", "시설기준과", "신문의", "기능을", "보장하기", "위하여", "필요한", "사항은", "법률로", "정한다.", "헌법에", "의하여", "체결·공포된", "조약과", "일반적으로", "승인된", "국제법규는", "국내법과", "같은", "효력을", "가진다.", "다만,", "현행범인인", "경우와", "장기", "3년", "이상의", "형에", "해당하는", "죄를", "범하고", "도피", "또는", "증거인멸의", "염려가", "있을", "때에는", "사후에", "영장을", "청구할", "수", "있다.", "저작자·발명가·과학기술자와", "예술가의", "권리는", "법률로써", "보호한다.", "형사피고인은", "유죄의", "판결이", "확정될", "때까지는", "무죄로", "추정된다.", "모든", "국민은", "행위시의", "법률에", "의하여", "범죄를", "구성하지", "아니하는", "행위로", "소추되지", "아니하며,", "동일한", "범죄에", "대하여", "거듭", "처벌받지", "아니한다.", "국가는", "평생교육을", "진흥하여야", "한다.", "모든", "국민은", "사생활의", "비밀과", "자유를", "침해받지", "아니한다.", "의무교육은", "무상으로", "한다.", "저작자·발명가·과학기술자와", "예술가의", "권리는", "법률로써", "보호한다.", "국가는", "모성의", "보호를", "위하여", "노력하여야", "한다.", "헌법에", "의하여", "체결·공포된", "조약과", "일반적으로", "승인된", "국제법규는", "국내법과", "같은", "효력을", "가진다."] + + name: + last_name: ["김", "이", "박", "최", "정", "강", "조", "윤", "장", "임", "오", "한", "신", "서", "권", "황", "안", "송", "류", "홍"] + first_name: ["서연", "민서", "서현", "지우", "서윤", "지민", "수빈", "하은", "예은", "윤서", "민준", "지후", "지훈", "준서", "현우", "예준", "건우", "현준", "민재", "우진", "은주"] + name: + - "#{last_name} #{first_name}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nb-NO.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nb-NO.yml new file mode 100644 index 0000000..99966e0 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nb-NO.yml @@ -0,0 +1,52 @@ +# coding: utf-8 +nb-NO: + faker: + address: + city_root: ["Fet", "Gjes", "Høy", "Inn", "Fager", "Lille", "Lo", "Mal", "Nord", "Nær", "Sand", "Sme", "Stav", "Stor", "Tand", "Ut", "Vest"] + city_suffix: ["berg", "borg", "by", "bø", "dal", "eid", "fjell", "fjord", "foss", "grunn", "hamn", "havn", "helle", "mark", "nes", "odden", "sand", "sjøen", "stad", "strand", "strøm", "sund", "vik", "vær", "våg", "ø", "øy", "ås"] + street_prefix: ["Øvre", "Nedre", "Søndre", "Gamle", "Østre", "Vestre"] + street_root: ["Eike", "Bjørke", "Gran", "Vass", "Furu", "Litj", "Lille", "Høy", "Fosse", "Elve", "Ku", "Konvall", "Soldugg", "Hestemyr", "Granitt", "Hegge", "Rogne", "Fiol", "Sol", "Ting", "Malm", "Klokker", "Preste", "Dam", "Geiterygg", "Bekke", "Berg", "Kirke", "Kors", "Bru", "Blåveis", "Torg", "Sjø"] + street_suffix: ["alléen", "bakken", "berget", "bråten", "eggen", "engen", "ekra", "faret", "flata", "gata", "gjerdet", "grenda", "gropa", "hagen", "haugen", "havna", "holtet", "høgda", "jordet", "kollen", "kroken", "lia", "lunden", "lyngen", "løkka", "marka", "moen", "myra", "plassen", "ringen", "roa", "røa", "skogen", "skrenten", "spranget", "stien", "stranda", "stubben", "stykket", "svingen", "tjernet", "toppen", "tunet", "vollen", "vika", "åsen"] + common_street_suffix: ["sgate", "svei", "s Gate", "s Vei", "gata", "veien"] + building_number: ["#", "##"] + secondary_address: ['Leil. ###', 'Oppgang A', 'Oppgang B'] + postcode: ["####", "####", "####", "0###"] + state: [Østfold, Akershus, Oslo, Hedmark, Oppland, Buskerud, Vestfold, Telemark, Aust-Agder, Vest-Agder, Rogaland, Hordaland, Sogn og Fjordane, Møre og Romsdal, Sør-Trøndelag, Nord-Trøndelag, Nordland, Troms, Finnmark, Svalbard] + city: + - "#{city_root}#{city_suffix}" + street_name: + - "#{street_root}#{street_suffix}" + - "#{street_prefix} #{street_root}#{street_suffix}" + - "#{Name.first_name}#{common_street_suffix}" + - "#{Name.last_name}#{common_street_suffix}" + street_address: + - "#{street_name} #{building_number}" + default_country: [Norge] + + company: + suffix: ["Gruppen", "AS", "ASA", "BA", "RFH", "og Sønner"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} og #{Name.last_name}" + + internet: + domain_suffix: ["no", "com", "net", "org"] + + name: + first_name: ["Emma", "Sara", "Thea", "Ida", "Julie", "Nora", "Emilie", "Ingrid", "Hanna", "Maria", "Sofie", "Anna", "Malin", "Amalie", "Vilde", "Frida", "Andrea", "Tuva", "Victoria", "Mia", "Karoline", "Mathilde", "Martine", "Linnea", "Marte", "Hedda", "Marie", "Helene", "Silje", "Leah", "Maja", "Elise", "Oda", "Kristine", "Aurora", "Kaja", "Camilla", "Mari", "Maren", "Mina", "Selma", "Jenny", "Celine", "Eline", "Sunniva", "Natalie", "Tiril", "Synne", "Sandra", "Madeleine", "Markus", "Mathias", "Kristian", "Jonas", "Andreas", "Alexander", "Martin", "Sander", "Daniel", "Magnus", "Henrik", "Tobias", "Kristoffer", "Emil", "Adrian", "Sebastian", "Marius", "Elias", "Fredrik", "Thomas", "Sondre", "Benjamin", "Jakob", "Oliver", "Lucas", "Oskar", "Nikolai", "Filip", "Mats", "William", "Erik", "Simen", "Ole", "Eirik", "Isak", "Kasper", "Noah", "Lars", "Joakim", "Johannes", "Håkon", "Sindre", "Jørgen", "Herman", "Anders", "Jonathan", "Even", "Theodor", "Mikkel", "Aksel"] # duplication, unfortunately + feminine_name: ["Emma", "Sara", "Thea", "Ida", "Julie", "Nora", "Emilie", "Ingrid", "Hanna", "Maria", "Sofie", "Anna", "Malin", "Amalie", "Vilde", "Frida", "Andrea", "Tuva", "Victoria", "Mia", "Karoline", "Mathilde", "Martine", "Linnea", "Marte", "Hedda", "Marie", "Helene", "Silje", "Leah", "Maja", "Elise", "Oda", "Kristine", "Aurora", "Kaja", "Camilla", "Mari", "Maren", "Mina", "Selma", "Jenny", "Celine", "Eline", "Sunniva", "Natalie", "Tiril", "Synne", "Sandra", "Madeleine"] + masculine_name: ["Markus", "Mathias", "Kristian", "Jonas", "Andreas", "Alexander", "Martin", "Sander", "Daniel", "Magnus", "Henrik", "Tobias", "Kristoffer", "Emil", "Adrian", "Sebastian", "Marius", "Elias", "Fredrik", "Thomas", "Sondre", "Benjamin", "Jakob", "Oliver", "Lucas", "Oskar", "Nikolai", "Filip", "Mats", "William", "Erik", "Simen", "Ole", "Eirik", "Isak", "Kasper", "Noah", "Lars", "Joakim", "Johannes", "Håkon", "Sindre", "Jørgen", "Herman", "Anders", "Jonathan", "Even", "Theodor", "Mikkel", "Aksel"] + last_name: ["Johansen", "Hansen", "Andersen", "Kristiansen", "Larsen", "Olsen", "Solberg", "Andresen", "Pedersen", "Nilsen", "Berg", "Halvorsen", "Karlsen", "Svendsen", "Jensen", "Haugen", "Martinsen", "Eriksen", "Sørensen", "Johnsen", "Myhrer", "Johannessen", "Nielsen", "Hagen", "Pettersen", "Bakke", "Skuterud", "Løken", "Gundersen", "Strand", "Jørgensen", "Kvarme", "Røed", "Sæther", "Stensrud", "Moe", "Kristoffersen", "Jakobsen", "Holm", "Aas", "Lie", "Moen", "Andreassen", "Vedvik", "Nguyen", "Jacobsen", "Torgersen", "Ruud", "Krogh", "Christiansen", "Bjerke", "Aalerud", "Borge", "Sørlie", "Berge", "Østli", "Ødegård", "Torp", "Henriksen", "Haukelidsæter", "Fjeld", "Danielsen", "Aasen", "Fredriksen", "Dahl", "Berntsen", "Arnesen", "Wold", "Thoresen", "Solheim", "Skoglund", "Bakken", "Amundsen", "Solli", "Smogeli", "Kristensen", "Glosli", "Fossum", "Evensen", "Eide", "Carlsen", "Østby", "Vegge", "Tangen", "Smedsrud", "Olstad", "Lunde", "Kleven", "Huseby", "Bjørnstad", "Ryan", "Rasmussen", "Nygård", "Nordskaug", "Nordby", "Mathisen", "Hopland", "Gran", "Finstad", "Edvardsen"] + prefix: [Dr., Prof.] + suffix: [Jr., Sr., I, II, III, IV, V] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name} #{suffix}" + - "#{feminine_name} #{feminine_name} #{last_name}" + - "#{masculine_name} #{masculine_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ["########", "## ## ## ##", "### ## ###", "+47 ## ## ## ##"] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nl.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nl.yml new file mode 100644 index 0000000..1a57021 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/nl.yml @@ -0,0 +1,77 @@ +nl: + faker: + address: + city_prefix: [Noord, Oost, West, Zuid, Nieuw, Oud] + city_suffix: ["dam", "berg", " aan de Rijn", " aan de IJssel", "swaerd", "endrecht", "recht", "ambacht", "enmaes", "wijk", "sland", "stroom", "sluus", "dijk", "dorp", "burg", "veld", "sluis", "koop", "lek", "hout", "geest", "kerk", "woude", "hoven", "hoten", "ingen", "plas", "meer"] + city: + - "#{Name.first_name}#{city_suffix}" + - "#{Name.last_name}#{city_suffix}" + - "#{city_prefix} #{Name.first_name}#{city_suffix}" + - "#{city_prefix} #{Name.last_name}#{city_suffix}" + country: [ "Afghanistan", "Akrotiri", "Albanië", "Algerije", "Amerikaanse Maagdeneilanden", "Amerikaans-Samoa", "Andorra", "Angola", "Anguilla", + "Antarctica", "Antigua en Barbuda", "Noordelijke IJszee", "Argentinië", "Armenië", "Aruba", "Ashmore- en Cartiereilanden", "Atlantische Oceaan", + "Australië", "Azerbeidzjan", "Bahama's", "Bahrein", "Bangladesh", "Barbados", "Belarus", "België", "Belize", "Benin", "Bermuda", "Bhutan", + "Bolivië", "Bosnië-Herzegovina", "Botswana", "Bouveteiland", "Brazilië", "Brits Indische Oceaanterritorium", "Britse Maagdeneilanden", + "Brunei", "Bulgarije", "Burkina Faso", "Burundi", "Cambodja", "Canada", "Caymaneilanden", "Centraal-Afrikaanse Republiek", "Chili", "China", + "Christmaseiland", "Clipperton", "Cocoseilanden", "Colombia", "Comoren (Unie)", "Congo (Democratische Republiek)", + "Congo (Volksrepubliek)", "Cook", "Coral Sea Islands", "Costa Rica", "Cuba", "Cyprus", "Denemarken", "Dhekelia", "Djibouti", "Dominica", + "Dominicaanse Republiek", "Duitsland", "Ecuador", "Egypte", "El Salvador", "Equatoriaal-Guinea", "Eritrea", "Estland", "Ethiopië", + "Europese Unie", "Falkland", "Faeröer", "Fiji", "Filipijnen", "Finland", "Frankrijk", "Frans-Polynesië", + "Franse Zuidelijke en Antarctische Gebieden", "Gabon", "Gambia", "Gaza Strip", "Georgië", "Ghana", "Gibraltar", "Grenada", "Griekenland", + "Groenland", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinee-Bissau", "Guyana", "Haïti", "Heard en McDonaldeilanden", "Heilige Stoel", + "Honduras", "Hongarije", "Hongkong", "Ierland", "IJsland", "India", "Indian Ocean", "Indonesië", "Irak", "Iran", "Isle of Man", "Israël", + "Italië", "Ivoorkust", "Jamaica", "Jan Mayen", "Japan", "Jemen", "Jersey", "Jordanië", "Kaapverdië", "Kameroen", "Kazachstan", "Kenia", + "Kirgizstan", "Kiribati", "Koeweit", "Kroatië", "Laos", "Lesotho", "Letland", "Libanon", "Liberia", "Libië", "Liechtenstein", "Litouwen", + "Luxemburg", "Macao", "Macedonië", "Madagaskar", "Malawi", "Maldiven", "Maleisië", "Mali", "Malta", "Marokko", "Marshalleilanden", "Mauritanië", + "Mauritius", "Mayotte", "Mexico", "Micronesia, Federale Staten van", "Moldavië", "Monaco", "Mongolië", "Montenegro", "Montserrat", "Mozambique", + "Myanmar", "Namibië", "Nauru", "Navassa", "Nederland", "Nederlandse Antillen", "Nepal", "Ngwane", "Nicaragua", "Nieuw-Caledonië", + "Nieuw-Zeeland", "Niger", "Nigeria", "Niue", "Noordelijke Marianen", "Noord-Korea", "Noorwegen", "Norfolk (eiland)", "Oekraïne", "Oezbekistan", + "Oman", "Oostenrijk", "Grote Oceaan", "Pakistan", "Palau", "Panama", "Papoea-Nieuw-Guinea", "Paracel Islands", "Paraguay", "Peru", "Pitcairn", + "Polen", "Portugal", "Puerto Rico", "Qatar", "Roemenië", "Rusland", "Rwanda", "Saint Helena", "Saint Lucia", "Saint Vincent en de Grenadines", + "Saint-Pierre en Miquelon", "Salomon", "Samoa", "San Marino", "São Tomé en Principe", "Saudi-Arabië", "Senegal", "Servië", "Seychellen", + "Sierra Leone", "Singapore", "Sint-Kitts en Nevis", "Slovenië", "Slowakije", "Soedan", "Somalië", "South Georgia and the South Sandwich Islands", + "Zuidelijke Oceaan", "Spanje", "Spratly Islands", "Sri Lanka", "Suriname", "Svalbard", "Syrië", "Tadzjikistan", "Taiwan", "Tanzania", "Thailand", + "Timor Leste", "Togo", "Tokelau", "Tonga", "Trinidad en Tobago", "Tsjaad", "Tsjechië", "Tunesië", "Turkije", "Turkmenistan", + "Turks-en Caicoseilanden", "Tuvalu", "Uganda", "Uruguay", "Vanuatu", "Venezuela", "Verenigd Koninkrijk", "Verenigde Arabische Emiraten", + "Verenigde Staten van Amerika", "Vietnam", "Wake (eiland)", "Wallis en Futuna", "Wereld", "Westelijke Jordaanoever", "Westelijke Sahara", "Zambia", + "Zimbabwe", "Zuid-Afrika", "Zuid-Korea", "Zweden", "Zwitserland"] + building_number: ["#", "##", "###", "###a", "###b", "###c", "### I", "### II", "### III"] + street_suffix: ["straat", "laan", "weg", "plantsoen", "park"] + secondary_address: ["1 hoog", "2 hoog", "3 hoog"] + street_name: + - "#{Name.first_name}#{street_suffix}" + - "#{Name.last_name}#{street_suffix}" + + street_address: + - "#{street_name} #{building_number}" + postcode: ["#### ??"] + state: ["Noord-Holland", "Zuid-Holland", "Utrecht", "Zeeland", "Overijssel", "Gelderland", "Drenthe", "Friesland", "Groningen", "Noord-Braband", "Limburg"] + default_country: [Nederland] + + company: + suffix: [BV, V.O.F., Group, en Zonen] + + internet: + free_email: [gmail.com, yahoo.com, hotmail.nl, live.nl] + domain_suffix: [nl, com, net, org] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + supplemental: [abbas, abduco, abeo, abscido, absconditus, absens, absorbeo, absque, abstergo, absum, abundans, abutor, accedo, accendo, acceptus, accipio, accommodo, accusator, acer, acerbitas, acervus, acidus, acies, acquiro, acsi, adamo, adaugeo, addo, adduco, ademptio, adeo, adeptio, adfectus, adfero, adficio, adflicto, adhaero, adhuc, adicio, adimpleo, adinventitias, adipiscor, adiuvo, administratio, admiratio, admitto, admoneo, admoveo, adnuo, adopto, adsidue, adstringo, adsuesco, adsum, adulatio, adulescens, adultus, aduro, advenio, adversus, advoco, aedificium, aeger, aegre, aegrotatio, aegrus, aeneus, aequitas, aequus, aer, aestas, aestivus, aestus, aetas, aeternus, ager, aggero, aggredior, agnitio, agnosco, ago, ait, aiunt, alienus, alii, alioqui, aliqua, alius, allatus, alo, alter, altus, alveus, amaritudo, ambitus, ambulo, amicitia, amiculum, amissio, amita, amitto, amo, amor, amoveo, amplexus, amplitudo, amplus, ancilla, angelus, angulus, angustus, animadverto, animi, animus, annus, anser, ante, antea, antepono, antiquus, aperio, aperte, apostolus, apparatus, appello, appono, appositus, approbo, apto, aptus, apud, aqua, ara, aranea, arbitro, arbor, arbustum, arca, arceo, arcesso, arcus, argentum, argumentum, arguo, arma, armarium, armo, aro, ars, articulus, artificiose, arto, arx, ascisco, ascit, asper, aspicio, asporto, assentator, astrum, atavus, ater, atqui, atrocitas, atrox, attero, attollo, attonbitus, auctor, auctus, audacia, audax, audentia, audeo, audio, auditor, aufero, aureus, auris, aurum, aut, autem, autus, auxilium, avaritia, avarus, aveho, averto, avoco, baiulus, balbus, barba, bardus, basium, beatus, bellicus, bellum, bene, beneficium, benevolentia, benigne, bestia, bibo, bis, blandior, bonus, bos, brevis, cado, caecus, caelestis, caelum, calamitas, calcar, calco, calculus, callide, campana, candidus, canis, canonicus, canto, capillus, capio, capitulus, capto, caput, carbo, carcer, careo, caries, cariosus, caritas, carmen, carpo, carus, casso, caste, casus, catena, caterva, cattus, cauda, causa, caute, caveo, cavus, cedo, celebrer, celer, celo, cena, cenaculum, ceno, censura, centum, cerno, cernuus, certe, certo, certus, cervus, cetera, charisma, chirographum, cibo, cibus, cicuta, cilicium, cimentarius, ciminatio, cinis, circumvenio, cito, civis, civitas, clam, clamo, claro, clarus, claudeo, claustrum, clementia, clibanus, coadunatio, coaegresco, coepi, coerceo, cogito, cognatus, cognomen, cogo, cohaero, cohibeo, cohors, colligo, colloco, collum, colo, color, coma, combibo, comburo, comedo, comes, cometes, comis, comitatus, commemoro, comminor, commodo, communis, comparo, compello, complectus, compono, comprehendo, comptus, conatus, concedo, concido, conculco, condico, conduco, confero, confido, conforto, confugo, congregatio, conicio, coniecto, conitor, coniuratio, conor, conqueror, conscendo, conservo, considero, conspergo, constans, consuasor, contabesco, contego, contigo, contra, conturbo, conventus, convoco, copia, copiose, cornu, corona, corpus, correptius, corrigo, corroboro, corrumpo, coruscus, cotidie, crapula, cras, crastinus, creator, creber, crebro, credo, creo, creptio, crepusculum, cresco, creta, cribro, crinis, cruciamentum, crudelis, cruentus, crur, crustulum, crux, cubicularis, cubitum, cubo, cui, cuius, culpa, culpo, cultellus, cultura, cum, cunabula, cunae, cunctatio, cupiditas, cupio, cuppedia, cupressus, cur, cura, curatio, curia, curiositas, curis, curo, curriculum, currus, cursim, curso, cursus, curto, curtus, curvo, curvus, custodia, damnatio, damno, dapifer, debeo, debilito, decens, decerno, decet, decimus, decipio, decor, decretum, decumbo, dedecor, dedico, deduco, defaeco, defendo, defero, defessus, defetiscor, deficio, defigo, defleo, defluo, defungo, degenero, degero, degusto, deinde, delectatio, delego, deleo, delibero, delicate, delinquo, deludo, demens, demergo, demitto, demo, demonstro, demoror, demulceo, demum, denego, denique, dens, denuncio, denuo, deorsum, depereo, depono, depopulo, deporto, depraedor, deprecator, deprimo, depromo, depulso, deputo, derelinquo, derideo, deripio, desidero, desino, desipio, desolo, desparatus, despecto, despirmatio, infit, inflammatio, paens, patior, patria, patrocinor, patruus, pauci, paulatim, pauper, pax, peccatus, pecco, pecto, pectus, pecunia, pecus, peior, pel, ocer, socius, sodalitas, sol, soleo, solio, solitudo, solium, sollers, sollicito, solum, solus, solutio, solvo, somniculosus, somnus, sonitus, sono, sophismata, sopor, sordeo, sortitus, spargo, speciosus, spectaculum, speculum, sperno, spero, spes, spiculum, spiritus, spoliatio, sponte, stabilis, statim, statua, stella, stillicidium, stipes, stips, sto, strenuus, strues, studio, stultus, suadeo, suasoria, sub, subito, subiungo, sublime, subnecto, subseco, substantia, subvenio, succedo, succurro, sufficio, suffoco, suffragium, suggero, sui, sulum, sum, summa, summisse, summopere, sumo, sumptus, supellex, super, suppellex, supplanto, suppono, supra, surculus, surgo, sursum, suscipio, suspendo, sustineo, suus, synagoga, tabella, tabernus, tabesco, tabgo, tabula, taceo, tactus, taedium, talio, talis, talus, tam, tamdiu, tamen, tametsi, tamisium, tamquam, tandem, tantillus, tantum, tardus, tego, temeritas, temperantia, templum, temptatio, tempus, tenax, tendo, teneo, tener, tenuis, tenus, tepesco, tepidus, ter, terebro, teres, terga, tergeo, tergiversatio, tergo, tergum, termes, terminatio, tero, terra, terreo, territo, terror, tersus, tertius, testimonium, texo, textilis, textor, textus, thalassinus, theatrum, theca, thema, theologus, thermae, thesaurus, thesis, thorax, thymbra, thymum, tibi, timidus, timor, titulus, tolero, tollo, tondeo, tonsor, torqueo, torrens, tot, totidem, toties, totus, tracto, trado, traho, trans, tredecim, tremo, trepide, tres, tribuo, tricesimus, triduana, triginta, tripudio, tristis, triumphus, trucido, truculenter, tubineus, tui, tum, tumultus, tunc, turba, turbo, turpe, turpis, tutamen, tutis, tyrannus, uberrime, ubi, ulciscor, ullus, ulterius, ultio, ultra, umbra, umerus, umquam, una, unde, undique, universe, unus, urbanus, urbs, uredo, usitas, usque, ustilo, ustulo, usus, uter, uterque, utilis, utique, utor, utpote, utrimque, utroque, utrum, uxor, vaco, vacuus, vado, vae, valde, valens, valeo, valetudo, validus, vallum, vapulus, varietas, varius, vehemens, vel, velociter, velum, velut, venia, venio, ventito, ventosus, ventus, venustas, ver, verbera, verbum, vere, verecundia, vereor, vergo, veritas, vero, versus, verto, verumtamen, verus, vesco, vesica, vesper, vespillo, vester, vestigium, vestrum, vetus, via, vicinus, vicissitudo, victoria, victus, videlicet, video, viduata, viduo, vigilo, vigor, vilicus, vilis, vilitas, villa, vinco, vinculum, vindico, vinitor, vinum, vir, virga, virgo, viridis, viriliter, virtus, vis, viscus, vita, vitiosus, vitium, vito, vivo, vix, vobis, vociferor, voco, volaticus, volo, volubilis, voluntarius, volup, volutabrum, volva, vomer, vomica, vomito, vorago, vorax, voro, vos, votum, voveo, vox, vulariter, vulgaris, vulgivagus, vulgo, vulgus, vulnero, vulnus, vulpes, vulticulus, vultuosus, xiphias] + + name: + first_name: ["Amber", "Anna", "Anne", "Anouk", "Arie", "Bard", "Bas", "Bram", "Britt", "Daan", "Dick", "Emma", "Eva", "Femke", "Finn", "Fleur", "Henk", "Iris", "Isa", "Jan", "Jasper", "Jayden", "Jens", "Jesse", "Johannes", "Julia", "Julian", "Kevin", "Lars", "Lieke", "Lisa", "Lotte", "Lucas", "Luuk", "Maud", "Max", "Mike", "Milan", "Nick", "Niels", "Noa", "Pascal", "Rick", "Roos", "Ruben", "Sander", "Sanne", "Sem", "Sophie", "Stijn", "Sven", "Tessa", "Thijs", "Thijs", "Thomas", "Tim", "Tom"] + tussenvoegsel: ["van", "van de", "van den", "van 't", "van het", "de", "den"] + last_name: ["Bakker", "Beek", "Berg", "Boer", "Bos", "Bosch", "Brink", "Broek", "Brouwer", "Bruin", "Dam", "Dekker", "Dijk", "Dijkstra", "Graaf", "Groot", "Haan", "Hendriks", "Heuvel", "Hoek", "Jacobs", "Jansen", "Janssen", "Jong", "Klein", "Kok", "Koning", "Koster", "Leeuwen", "Linden", "Maas", "Meer", "Meijer", "Mulder", "Peters", "Ruiter", "Schouten", "Smit", "Smits", "Stichting", "Veen", "Ven", "Vermeulen", "Visser", "Vliet", "Vos", "Vries", "Wal", "Willems", "Wit"] + prefix: [Dhr., Mevr. Dr., Bsc, Msc, Prof.] + suffix: [Jr., Sr., I, II, III, IV, V] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name} #{suffix}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{tussenvoegsel} #{last_name}" + - "#{first_name} #{tussenvoegsel} #{last_name}" + + phone_number: + formats: ["(####) ######", "##########", "06########", "06 #### ####"] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pl.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pl.yml new file mode 100644 index 0000000..eb094dd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pl.yml @@ -0,0 +1,66 @@ +pl: + faker: + name: + address: + country: [Afganistan, Albania, Algieria, Andora, Angola, Antigua i Barbuda, Arabia Saudyjska, Argentyna, Armenia, Australia, Austria, Azerbejdżan, Bahamy, Bahrajn, Bangladesz, Barbados, Belgia, Belize, Benin, Bhutan, Białoruś, Birma, Boliwia, Sucre, Bośnia i Hercegowina, Botswana, Brazylia, Brunei, Bułgaria, Burkina Faso, Burundi, Chile, Chiny, Chorwacja, Cypr, Czad, Czarnogóra, Czechy, Dania, Demokratyczna Republika Konga, Dominika, Dominikana, Dżibuti, Egipt, Ekwador, Erytrea, Estonia, Etiopia, Fidżi, Filipiny, Finlandia, Francja, Gabon, Gambia, Ghana, Grecja, Grenada, Gruzja, Gujana, Gwatemala, Gwinea, Gwinea Bissau, Gwinea Równikowa, Haiti, Hiszpania, Holandia, Haga, Honduras, Indie, Indonezja, Irak, Iran, Irlandia, Islandia, Izrael, Jamajka, Japonia, Jemen, Jordania, Kambodża, Kamerun, Kanada, Katar, Kazachstan, Kenia, Kirgistan, Kiribati, Kolumbia, Komory, Kongo, Korea Południowa, Korea Północna, Kostaryka, Kuba, Kuwejt, Laos, Lesotho, Liban, Liberia, Libia, Liechtenstein, Litwa, Luksemburg, Łotwa, Macedonia, Madagaskar, Malawi, Malediwy, Malezja, Mali, Malta, Maroko, Mauretania, Mauritius, Meksyk, Mikronezja, Mołdawia, Monako, Mongolia, Mozambik, Namibia, Nauru, Nepal, Niemcy, Niger, Nigeria, Nikaragua, Norwegia, Nowa Zelandia, Oman, Pakistan, Palau, Panama, Papua-Nowa Gwinea, Paragwaj, Peru, Polska, Portugalia, Republika Południowej Afryki, Republika Środkowoafrykańska, Republika Zielonego Przylądka, Rosja, Rumunia, Rwanda, Saint Kitts i Nevis, Saint Lucia, Saint Vincent i Grenadyny, Salwador, Samoa, San Marino, Senegal, Serbia, Seszele, Sierra Leone, Singapur, Słowacja, Słowenia, Somalia, Sri Lanka, Stany Zjednoczone, Suazi, Sudan, Sudan Południowy, Surinam, Syria, Szwajcaria, Szwecja, Tadżykistan, Tajlandia, Tanzania, Timor Wschodni, Togo, Tonga, Trynidad i Tobago, Tunezja, Turcja, Turkmenistan, Tuvalu, Funafuti, Uganda, Ukraina, Urugwaj, Uzbekistan, Vanuatu, Watykan, Wenezuela, Węgry, Wielka Brytania, Wietnam, Włochy, Wybrzeże Kości Słoniowej, Wyspy Marshalla, Wyspy Salomona, Wyspy Świętego Tomasza i Książęca, Zambia, Zimbabwe, Zjednoczone Emiraty Arabskie] + building_number: ['#####', '####', '###'] + street_prefix: ['ul.', 'al.'] + secondary_address: ['Apt. ###', 'Suite ###'] + + postcode: ['##-###'] + state: [Dolnośląskie, Kujawsko-pomorskie, Lubelskie, Lubuskie, Łódzkie, Małopolskie, Mazowieckie, Opolskie, Podkarpackie, Podlaskie, Pomorskie, Śląskie, Świętokrzyskie, Warmińsko-mazurskie, Wielkopolskie, Zachodniopomorskie] + state_abbr: [DŚ, KP, LB, LS, ŁD, MP, MZ, OP, PK, PL, PM, ŚL, ŚK, WM, WP, ZP] + city_name: [Aleksandrów Kujawski, Aleksandrów Łódzki, Alwernia, Andrychów, Annopol, Augustów, Babimost, Baborów, Baranów Sandomierski, Barcin, Barczewo, Bardo, Barlinek, Bartoszyce, Barwice, Bełchatów, Bełżyce, Będzin, Biała, Biała Piska, Biała Podlaska, Biała Rawska, Białobrzegi, Białogard, Biały Bór, Białystok, Biecz, Bielawa, Bielsk Podlaski, Bielsko-Biała, Bieruń, Bierutów, Bieżuń, Biłgoraj, Biskupiec, Bisztynek, Blachownia, Błaszki, Błażowa, Błonie, Bobolice, Bobowa, Bochnia, Bodzentyn, Bogatynia, Boguchwała, Boguszów-Gorce, Bojanowo, Bolesławiec, Bolków, Borek Wielkopolski, Borne Sulinowo, Braniewo, Brańsk, Brodnica, Brok, Brusy, Brwinów, Brzeg, Brzeg Dolny, Brzesko, Brzeszcze, Brześć Kujawski, Brzeziny, Brzostek, Brzozów, Buk, Bukowno, Busko-Zdrój, Bychawa, Byczyna, Bydgoszcz, Bystrzyca Kłodzka, Bytom, Bytom Odrzański, Bytów, Cedynia, Chełm, Chełmek, Chełmno, Chełmża, Chęciny, Chmielnik, Chocianów, Chociwel, Chodecz, Chodzież, Chojna, Chojnice, Chojnów, Choroszcz, Chorzele, Chorzów, Choszczno, Chrzanów, Ciechanowiec, Ciechanów, Ciechocinek, Cieszanów, Cieszyn, Ciężkowice, Cybinka, Czaplinek, Czarna Białostocka, Czarna Woda, Czarne, Czarnków, Czchów, Czechowice-Dziedzice, Czeladź, Czempiń, Czerniejewo, Czersk, Czerwieńsk, Czerwionka-Leszczyny, Częstochowa, Człopa, Człuchów, Czyżew, Ćmielów, Daleszyce, Darłowo, Dąbie, Dąbrowa Białostocka, Dąbrowa Górnicza, Dąbrowa Tarnowska, Debrzno, Dębica, Dęblin, Dębno, Dobczyce, Dobiegniew, Dobra (powiat łobeski), Dobra (powiat turecki), Dobre Miasto, Dobrodzień, Dobrzany, Dobrzyń nad Wisłą, Dolsk, Drawno, Drawsko Pomorskie, Drezdenko, Drobin, Drohiczyn, Drzewica, Dukla, Duszniki-Zdrój, Dynów, Działdowo, Działoszyce, Działoszyn, Dzierzgoń, Dzierżoniów, Dziwnów, Elbląg, Ełk, Frampol, Frombork, Garwolin, Gąbin, Gdańsk, Gdynia, Giżycko, Glinojeck, Gliwice, Głogów, Głogów Małopolski, Głogówek, Głowno, Głubczyce, Głuchołazy, Głuszyca, Gniew, Gniewkowo, Gniezno, Gogolin, Golczewo, Goleniów, Golina, Golub-Dobrzyń, Gołańcz, Gołdap, Goniądz, Gorlice, Gorzów Śląski, Gorzów Wielkopolski, Gostynin, Gostyń, Gościno, Gozdnica, Góra, Góra Kalwaria, Górowo Iławeckie, Górzno, Grabów nad Prosną, Grajewo, Grodków, Grodzisk Mazowiecki, Grodzisk Wielkopolski, Grójec, Grudziądz, Grybów, Gryfice, Gryfino, Gryfów Śląski, Gubin, Hajnówka, Halinów, Hel, Hrubieszów, Iława, Iłowa, Iłża, Imielin, Inowrocław, Ińsko, Iwonicz-Zdrój, Izbica Kujawska, Jabłonowo Pomorskie, Janikowo, Janowiec Wielkopolski, Janów Lubelski, Jarocin, Jarosław, Jasień, Jasło, Jastarnia, Jastrowie, Jastrzębie-Zdrój, Jawor, Jaworzno, Jaworzyna Śląska, Jedlicze, Jedlina-Zdrój, Jedwabne, Jelcz-Laskowice, Jelenia Góra, Jeziorany, Jędrzejów, Jordanów, Józefów (powiat biłgorajski), Józefów (powiat otwocki), Jutrosin, Kalety, Kalisz, Kalisz Pomorski, Kalwaria Zebrzydowska, Kałuszyn, Kamienna Góra, Kamień Krajeński, Kamień Pomorski, Kamieńsk, Kańczuga, Karczew, Kargowa, Karlino, Karpacz, Kartuzy, Katowice, Kazimierz Dolny, Kazimierza Wielka, Kąty Wrocławskie, Kcynia, Kędzierzyn-Koźle, Kępice, Kępno, Kętrzyn, Kęty, Kielce, Kietrz, Kisielice, Kleczew, Kleszczele, Kluczbork, Kłecko, Kłobuck, Kłodawa, Kłodzko, Knurów, Knyszyn, Kobylin, Kobyłka, Kock, Kolbuszowa, Kolno, Kolonowskie, Koluszki, Kołaczyce, Koło, Kołobrzeg, Koniecpol, Konin, Konstancin-Jeziorna, Konstantynów Łódzki, Końskie, Koprzywnica, Korfantów, Koronowo, Korsze, Kosów Lacki, Kostrzyn, Kostrzyn nad Odrą, Koszalin, Kościan, Kościerzyna, Kowal, Kowalewo Pomorskie, Kowary, Koziegłowy, Kozienice, Koźmin Wielkopolski, Kożuchów, Kórnik, Krajenka, Kraków, Krapkowice, Krasnobród, Krasnystaw, Kraśnik, Krobia, Krosno, Krosno Odrzańskie, Krośniewice, Krotoszyn, Kruszwica, Krynica Morska, Krynica-Zdrój, Krynki, Krzanowice, Krzepice, Krzeszowice, Krzywiń, Krzyż Wielkopolski, Książ Wielkopolski, Kudowa-Zdrój, Kunów, Kutno, Kuźnia Raciborska, Kwidzyn, Lądek-Zdrój, Legionowo, Legnica, Lesko, Leszno, Leśna, Leśnica, Lewin Brzeski, Leżajsk, Lębork, Lędziny, Libiąż, Lidzbark, Lidzbark Warmiński, Limanowa, Lipiany, Lipno, Lipsk, Lipsko, Lubaczów, Lubań, Lubartów, Lubawa, Lubawka, Lubień Kujawski, Lubin, Lublin, Lubliniec, Lubniewice, Lubomierz, Luboń, Lubraniec, Lubsko, Lwówek, Lwówek Śląski, Łabiszyn, Łańcut, Łapy, Łasin, Łask, Łaskarzew, Łaszczów, Łaziska Górne, Łazy, Łeba, Łęczna, Łęczyca, Łęknica, Łobez, Łobżenica, Łochów, Łomianki, Łomża, Łosice, Łowicz, Łódź, Łuków, Maków Mazowiecki, Maków Podhalański, Malbork, Małogoszcz, Małomice, Margonin, Marki, Maszewo, Miasteczko Śląskie, Miastko, Michałowo, Miechów, Miejska Górka, Mielec, Mieroszów, Mieszkowice, Międzybórz, Międzychód, Międzylesie, Międzyrzec Podlaski, Międzyrzecz, Międzyzdroje, Mikołajki, Mikołów, Mikstat, Milanówek, Milicz, Miłakowo, Miłomłyn, Miłosław, Mińsk Mazowiecki, Mirosławiec, Mirsk, Mława, Młynary, Mogielnica, Mogilno, Mońki, Morąg, Mordy, Moryń, Mosina, Mrągowo, Mrocza, Mszana Dolna, Mszczonów, Murowana Goślina, Muszyna, Mysłowice, Myszków, Myszyniec, Myślenice, Myślibórz, Nakło nad Notecią, Nałęczów, Namysłów, Narol, Nasielsk, Nekla, Nidzica, Niemcza, Niemodlin, Niepołomice, Nieszawa, Nisko, Nowa Dęba, Nowa Ruda, Nowa Sarzyna, Nowa Sól, Nowe, Nowe Brzesko, Nowe Miasteczko, Nowe Miasto Lubawskie, Nowe Miasto nad Pilicą, Nowe Skalmierzyce, Nowe Warpno, Nowogard, Nowogrodziec, Nowogród, Nowogród Bobrzański, Nowy Dwór Gdański, Nowy Dwór Mazowiecki, Nowy Sącz, Nowy Staw, Nowy Targ, Nowy Tomyśl, Nowy Wiśnicz, Nysa, Oborniki, Oborniki Śląskie, Obrzycko, Odolanów, Ogrodzieniec, Okonek, Olecko, Olesno, Oleszyce, Oleśnica, Olkusz, Olsztyn, Olsztynek, Olszyna, Oława, Opalenica, Opatów, Opoczno, Opole, Opole Lubelskie, Orneta, Orzesze, Orzysz, Osieczna, Osiek, Ostrołęka, Ostroróg, Ostrowiec Świętokrzyski, Ostróda, Ostrów Lubelski, Ostrów Mazowiecka, Ostrów Wielkopolski, Ostrzeszów, Ośno Lubuskie, Oświęcim, Otmuchów, Otwock, Ozimek, Ozorków, Ożarów, Ożarów Mazowiecki, Pabianice, Paczków, Pajęczno, Pakość, Parczew, Pasłęk, Pasym, Pelplin, Pełczyce, Piaseczno, Piaski, Piastów, Piechowice, Piekary Śląskie, Pieniężno, Pieńsk, Pieszyce, Pilawa, Pilica, Pilzno, Piła, Piława Górna, Pińczów, Pionki, Piotrków Kujawski, Piotrków Trybunalski, Pisz, Piwniczna-Zdrój, Pleszew, Płock, Płońsk, Płoty, Pniewy, Pobiedziska, Poddębice, Podkowa Leśna, Pogorzela, Polanica-Zdrój, Polanów, Police, Polkowice, Połaniec, Połczyn-Zdrój, Poniatowa, Poniec, Poręba, Poznań, Prabuty, Praszka, Prochowice, Proszowice, Prószków, Pruchnik, Prudnik, Prusice, Pruszcz Gdański, Pruszków, Przasnysz, Przecław, Przedbórz, Przedecz, Przemków, Przemyśl, Przeworsk, Przysucha, Pszczyna, Pszów, Puck, Puławy, Pułtusk, Puszczykowo, Pyrzyce, Pyskowice, Pyzdry, Rabka-Zdrój, Raciąż, Racibórz, Radków, Radlin, Radłów, Radom, Radomsko, Radomyśl Wielki, Radymno, Radziejów, Radzionków, Radzymin, Radzyń Chełmiński, Radzyń Podlaski, Rajgród, Rakoniewice, Raszków, Rawa Mazowiecka, Rawicz, Recz, Reda, Rejowiec Fabryczny, Resko, Reszel, Rogoźno, Ropczyce, Różan, Ruciane-Nida, Ruda Śląska, Rudnik nad Sanem, Rumia, Rybnik, Rychwał, Rydułtowy, Rydzyna, Ryglice, Ryki, Rymanów, Ryn, Rypin, Rzepin, Rzeszów, Rzgów, Sandomierz, Sanok, Sejny, Serock, Sędziszów, Sędziszów Małopolski, Sępopol, Sępólno Krajeńskie, Sianów, Siechnice, Siedlce, Siemianowice Śląskie, Siemiatycze, Sieniawa, Sieradz, Sieraków, Sierpc, Siewierz, Skalbmierz, Skała, Skarszewy, Skaryszew, Skarżysko-Kamienna, Skawina, Skępe, Skierniewice, Skoczów, Skoki, Skórcz, Skwierzyna, Sława, Sławków, Sławno, Słomniki, Słubice, Słupca, Słupsk, Sobótka, Sochaczew, Sokołów Małopolski, Sokołów Podlaski, Sokółka, Solec Kujawski, Sompolno, Sopot, Sosnowiec, Sośnicowice, Stalowa Wola, Starachowice, Stargard Szczeciński, Starogard Gdański, Stary Sącz, Staszów, Stawiski, Stawiszyn, Stąporków, Stęszew, Stoczek Łukowski, Stronie Śląskie, Strumień, Stryków, Strzegom, Strzelce Krajeńskie, Strzelce Opolskie, Strzelin, Strzelno, Strzyżów, Sucha Beskidzka, Suchań, Suchedniów, Suchowola, Sulechów, Sulejów, Sulejówek, Sulęcin, Sulmierzyce, Sułkowice, Supraśl, Suraż, Susz, Suwałki, Swarzędz, Syców, Szadek, Szamocin, Szamotuły, Szczawnica, Szczawno-Zdrój, Szczebrzeszyn, Szczecin, Szczecinek, Szczekociny, Szczucin, Szczuczyn, Szczyrk, Szczytna, Szczytno, Szepietowo, Szklarska Poręba, Szlichtyngowa, Szprotawa, Sztum, Szubin, Szydłowiec, Ścinawa, Ślesin, Śmigiel, Śrem, Środa Śląska, Środa Wielkopolska, Świątniki Górne, Świdnica, Świdnik, Świdwin, Świebodzice, Świebodzin, Świecie, Świeradów-Zdrój, Świerzawa, Świętochłowice, Świnoujście, Tarczyn, Tarnobrzeg, Tarnogród, Tarnowskie Góry, Tarnów, Tczew, Terespol, Tłuszcz, Tolkmicko, Tomaszów Lubelski, Tomaszów Mazowiecki, Toruń, Torzym, Toszek, Trzcianka, Trzciel, Trzcińsko-Zdrój, Trzebiatów, Trzebinia, Trzebnica, Trzemeszno, Tuchola, Tuchów, Tuczno, Tuliszków, Turek, Tuszyn, Twardogóra, Tychowo, Tychy, Tyczyn, Tykocin, Tyszowce, Ujazd, Ujście, Ulanów, Uniejów, Ustka, Ustroń, Ustrzyki Dolne, Wadowice, Wałbrzych, Wałcz, Warka, Warszawa, Warta, Wasilków, Wąbrzeźno, Wąchock, Wągrowiec, Wąsosz, Wejherowo, Węgliniec, Węgorzewo, Węgorzyno, Węgrów, Wiązów, Wieleń, Wielichowo, Wieliczka, Wieluń, Wieruszów, Więcbork, Wilamowice, Wisła, Witkowo, Witnica, Wleń, Władysławowo, Włocławek, Włodawa, Włoszczowa, Wodzisław Śląski, Wojcieszów, Wojkowice, Wojnicz, Wolbórz, Wolbrom, Wolin, Wolsztyn, Wołczyn, Wołomin, Wołów, Woźniki, Wrocław, Wronki, Września, Wschowa, Wyrzysk, Wysoka, Wysokie Mazowieckie, Wyszków, Wyszogród, Wyśmierzyce, Zabłudów, Zabrze, Zagórów, Zagórz, Zakliczyn, Zakopane, Zakroczym, Zalewo, Zambrów, Zamość, Zator, Zawadzkie, Zawichost, Zawidów, Zawiercie, Ząbki, Ząbkowice Śląskie, Zbąszynek, Zbąszyń, Zduny, Zduńska Wola, Zdzieszowice, Zelów, Zgierz, Zgorzelec, Zielona Góra, Zielonka, Ziębice, Złocieniec, Złoczew, Złotoryja, Złotów, Złoty Stok, Zwierzyniec, Zwoleń, Żabno, Żagań, Żarki, Żarów, Żary, Żelechów, Żerków, Żmigród, Żnin, Żory, Żukowo, Żuromin, Żychlin, Żyrardów, Żywiec] + city: + - "#{city_name}" + street_name: + - "#{street_prefix} #{Name.last_name}" + street_address: + - "#{street_name} #{building_number}" + default_country: [Polska] + + company: + suffix: [Inc, and Sons, LLC, Group] + # Buzzword wordlist from http://www.1728.com/buzzword.htm + buzzwords: + - ["Adaptive", "Advanced", "Ameliorated", "Assimilated", "Automated", "Balanced", "Business-focused", "Centralized", "Cloned", "Compatible", "Configurable", "Cross-group", "Cross-platform", "Customer-focused", "Customizable", "Decentralized", "De-engineered", "Devolved", "Digitized", "Distributed", "Diverse", "Down-sized", "Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded", "Extended", "Face to face", "Focused", "Front-line", "Fully-configurable", "Function-based", "Fundamental", "Future-proofed", "Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated", "Intuitive", "Inverse", "Managed", "Mandatory", "Monitored", "Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered", "Networked", "Object-based", "Open-architected", "Open-source", "Operative", "Optimized", "Optional", "Organic", "Organized", "Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive", "Proactive", "Profit-focused", "Profound", "Programmable", "Progressive", "Public-key", "Quality-focused", "Reactive", "Realigned", "Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered", "Right-sized", "Robust", "Seamless", "Secured", "Self-enabling", "Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised", "Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered", "Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly", "Versatile", "Virtual", "Visionary", "Vision-oriented"] + - ["24 hour", "24/7", "3rd generation", "4th generation", "5th generation", "6th generation", "actuating", "analyzing", "asymmetric", "asynchronous", "attitude-oriented", "background", "bandwidth-monitored", "bi-directional", "bifurcated", "bottom-line", "clear-thinking", "client-driven", "client-server", "coherent", "cohesive", "composite", "context-sensitive", "contextually-based", "content-based", "dedicated", "demand-driven", "didactic", "directional", "discrete", "disintermediate", "dynamic", "eco-centric", "empowering", "encompassing", "even-keeled", "executive", "explicit", "exuding", "fault-tolerant", "foreground", "fresh-thinking", "full-range", "global", "grid-enabled", "heuristic", "high-level", "holistic", "homogeneous", "human-resource", "hybrid", "impactful", "incremental", "intangible", "interactive", "intermediate", "leading edge", "local", "logistical", "maximized", "methodical", "mission-critical", "mobile", "modular", "motivating", "multimedia", "multi-state", "multi-tasking", "national", "needs-based", "neutral", "next generation", "non-volatile", "object-oriented", "optimal", "optimizing", "radical", "real-time", "reciprocal", "regional", "responsive", "scalable", "secondary", "solution-oriented", "stable", "static", "systematic", "systemic", "system-worthy", "tangible", "tertiary", "transitional", "uniform", "upward-trending", "user-facing", "value-added", "web-enabled", "well-modulated", "zero administration", "zero defect", "zero tolerance"] + - ["ability", "access", "adapter", "algorithm", "alliance", "analyzer", "application", "approach", "architecture", "archive", "artificial intelligence", "array", "attitude", "benchmark", "budgetary management", "capability", "capacity", "challenge", "circuit", "collaboration", "complexity", "concept", "conglomeration", "contingency", "core", "customer loyalty", "database", "data-warehouse", "definition", "emulation", "encoding", "encryption", "extranet", "firmware", "flexibility", "focus group", "forecast", "frame", "framework", "function", "functionalities", "Graphic Interface", "groupware", "Graphical User Interface", "hardware", "help-desk", "hierarchy", "hub", "implementation", "info-mediaries", "infrastructure", "initiative", "installation", "instruction set", "interface", "internet solution", "intranet", "knowledge user", "knowledge base", "local area network", "leverage", "matrices", "matrix", "methodology", "middleware", "migration", "model", "moderator", "monitoring", "moratorium", "neural-net", "open architecture", "open system", "orchestration", "paradigm", "parallelism", "policy", "portal", "pricing structure", "process improvement", "product", "productivity", "project", "projection", "protocol", "secured line", "service-desk", "software", "solution", "standardization", "strategy", "structure", "success", "superstructure", "support", "synergy", "system engine", "task-force", "throughput", "time-frame", "toolset", "utilisation", "website", "workforce"] + # BS wordlist from http://dack.com/web/bullshit.html + bs: + - ["implement", "utilize", "integrate", "streamline", "optimize", "evolve", "transform", "embrace", "enable", "orchestrate", "leverage", "reinvent", "aggregate", "architect", "enhance", "incentivize", "morph", "empower", "envisioneer", "monetize", "harness", "facilitate", "seize", "disintermediate", "synergize", "strategize", "deploy", "brand", "grow", "target", "syndicate", "synthesize", "deliver", "mesh", "incubate", "engage", "maximize", "benchmark", "expedite", "reintermediate", "whiteboard", "visualize", "repurpose", "innovate", "scale", "unleash", "drive", "extend", "engineer", "revolutionize", "generate", "exploit", "transition", "e-enable", "iterate", "cultivate", "matrix", "productize", "redefine", "recontextualize"] + - ["clicks-and-mortar", "value-added", "vertical", "proactive", "robust", "revolutionary", "scalable", "leading-edge", "innovative", "intuitive", "strategic", "e-business", "mission-critical", "sticky", "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular", "frictionless", "virtual", "viral", "dynamic", "24/365", "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled", "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient", "front-end", "distributed", "seamless", "extensible", "turn-key", "world-class", "open-source", "cross-platform", "cross-media", "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise", "integrated", "impactful", "wireless", "transparent", "next-generation", "cutting-edge", "user-centric", "visionary", "customized", "ubiquitous", "plug-and-play", "collaborative", "compelling", "holistic", "rich"] + - ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} and #{Name.last_name}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, pl, com.pl, net, org] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + supplemental: [abbas, abduco, abeo, abscido, absconditus, absens, absorbeo, absque, abstergo, absum, abundans, abutor, accedo, accendo, acceptus, accipio, accommodo, accusator, acer, acerbitas, acervus, acidus, acies, acquiro, acsi, adamo, adaugeo, addo, adduco, ademptio, adeo, adeptio, adfectus, adfero, adficio, adflicto, adhaero, adhuc, adicio, adimpleo, adinventitias, adipiscor, adiuvo, administratio, admiratio, admitto, admoneo, admoveo, adnuo, adopto, adsidue, adstringo, adsuesco, adsum, adulatio, adulescens, adultus, aduro, advenio, adversus, advoco, aedificium, aeger, aegre, aegrotatio, aegrus, aeneus, aequitas, aequus, aer, aestas, aestivus, aestus, aetas, aeternus, ager, aggero, aggredior, agnitio, agnosco, ago, ait, aiunt, alienus, alii, alioqui, aliqua, alius, allatus, alo, alter, altus, alveus, amaritudo, ambitus, ambulo, amicitia, amiculum, amissio, amita, amitto, amo, amor, amoveo, amplexus, amplitudo, amplus, ancilla, angelus, angulus, angustus, animadverto, animi, animus, annus, anser, ante, antea, antepono, antiquus, aperio, aperte, apostolus, apparatus, appello, appono, appositus, approbo, apto, aptus, apud, aqua, ara, aranea, arbitro, arbor, arbustum, arca, arceo, arcesso, arcus, argentum, argumentum, arguo, arma, armarium, armo, aro, ars, articulus, artificiose, arto, arx, ascisco, ascit, asper, aspicio, asporto, assentator, astrum, atavus, ater, atqui, atrocitas, atrox, attero, attollo, attonbitus, auctor, auctus, audacia, audax, audentia, audeo, audio, auditor, aufero, aureus, auris, aurum, aut, autem, autus, auxilium, avaritia, avarus, aveho, averto, avoco, baiulus, balbus, barba, bardus, basium, beatus, bellicus, bellum, bene, beneficium, benevolentia, benigne, bestia, bibo, bis, blandior, bonus, bos, brevis, cado, caecus, caelestis, caelum, calamitas, calcar, calco, calculus, callide, campana, candidus, canis, canonicus, canto, capillus, capio, capitulus, capto, caput, carbo, carcer, careo, caries, cariosus, caritas, carmen, carpo, carus, casso, caste, casus, catena, caterva, cattus, cauda, causa, caute, caveo, cavus, cedo, celebrer, celer, celo, cena, cenaculum, ceno, censura, centum, cerno, cernuus, certe, certo, certus, cervus, cetera, charisma, chirographum, cibo, cibus, cicuta, cilicium, cimentarius, ciminatio, cinis, circumvenio, cito, civis, civitas, clam, clamo, claro, clarus, claudeo, claustrum, clementia, clibanus, coadunatio, coaegresco, coepi, coerceo, cogito, cognatus, cognomen, cogo, cohaero, cohibeo, cohors, colligo, colloco, collum, colo, color, coma, combibo, comburo, comedo, comes, cometes, comis, comitatus, commemoro, comminor, commodo, communis, comparo, compello, complectus, compono, comprehendo, comptus, conatus, concedo, concido, conculco, condico, conduco, confero, confido, conforto, confugo, congregatio, conicio, coniecto, conitor, coniuratio, conor, conqueror, conscendo, conservo, considero, conspergo, constans, consuasor, contabesco, contego, contigo, contra, conturbo, conventus, convoco, copia, copiose, cornu, corona, corpus, correptius, corrigo, corroboro, corrumpo, coruscus, cotidie, crapula, cras, crastinus, creator, creber, crebro, credo, creo, creptio, crepusculum, cresco, creta, cribro, crinis, cruciamentum, crudelis, cruentus, crur, crustulum, crux, cubicularis, cubitum, cubo, cui, cuius, culpa, culpo, cultellus, cultura, cum, cunabula, cunae, cunctatio, cupiditas, cupio, cuppedia, cupressus, cur, cura, curatio, curia, curiositas, curis, curo, curriculum, currus, cursim, curso, cursus, curto, curtus, curvo, curvus, custodia, damnatio, damno, dapifer, debeo, debilito, decens, decerno, decet, decimus, decipio, decor, decretum, decumbo, dedecor, dedico, deduco, defaeco, defendo, defero, defessus, defetiscor, deficio, defigo, defleo, defluo, defungo, degenero, degero, degusto, deinde, delectatio, delego, deleo, delibero, delicate, delinquo, deludo, demens, demergo, demitto, demo, demonstro, demoror, demulceo, demum, denego, denique, dens, denuncio, denuo, deorsum, depereo, depono, depopulo, deporto, depraedor, deprecator, deprimo, depromo, depulso, deputo, derelinquo, derideo, deripio, desidero, desino, desipio, desolo, desparatus, despecto, despirmatio, infit, inflammatio, paens, patior, patria, patrocinor, patruus, pauci, paulatim, pauper, pax, peccatus, pecco, pecto, pectus, pecunia, pecus, peior, pel, ocer, socius, sodalitas, sol, soleo, solio, solitudo, solium, sollers, sollicito, solum, solus, solutio, solvo, somniculosus, somnus, sonitus, sono, sophismata, sopor, sordeo, sortitus, spargo, speciosus, spectaculum, speculum, sperno, spero, spes, spiculum, spiritus, spoliatio, sponte, stabilis, statim, statua, stella, stillicidium, stipes, stips, sto, strenuus, strues, studio, stultus, suadeo, suasoria, sub, subito, subiungo, sublime, subnecto, subseco, substantia, subvenio, succedo, succurro, sufficio, suffoco, suffragium, suggero, sui, sulum, sum, summa, summisse, summopere, sumo, sumptus, supellex, super, suppellex, supplanto, suppono, supra, surculus, surgo, sursum, suscipio, suspendo, sustineo, suus, synagoga, tabella, tabernus, tabesco, tabgo, tabula, taceo, tactus, taedium, talio, talis, talus, tam, tamdiu, tamen, tametsi, tamisium, tamquam, tandem, tantillus, tantum, tardus, tego, temeritas, temperantia, templum, temptatio, tempus, tenax, tendo, teneo, tener, tenuis, tenus, tepesco, tepidus, ter, terebro, teres, terga, tergeo, tergiversatio, tergo, tergum, termes, terminatio, tero, terra, terreo, territo, terror, tersus, tertius, testimonium, texo, textilis, textor, textus, thalassinus, theatrum, theca, thema, theologus, thermae, thesaurus, thesis, thorax, thymbra, thymum, tibi, timidus, timor, titulus, tolero, tollo, tondeo, tonsor, torqueo, torrens, tot, totidem, toties, totus, tracto, trado, traho, trans, tredecim, tremo, trepide, tres, tribuo, tricesimus, triduana, triginta, tripudio, tristis, triumphus, trucido, truculenter, tubineus, tui, tum, tumultus, tunc, turba, turbo, turpe, turpis, tutamen, tutis, tyrannus, uberrime, ubi, ulciscor, ullus, ulterius, ultio, ultra, umbra, umerus, umquam, una, unde, undique, universe, unus, urbanus, urbs, uredo, usitas, usque, ustilo, ustulo, usus, uter, uterque, utilis, utique, utor, utpote, utrimque, utroque, utrum, uxor, vaco, vacuus, vado, vae, valde, valens, valeo, valetudo, validus, vallum, vapulus, varietas, varius, vehemens, vel, velociter, velum, velut, venia, venio, ventito, ventosus, ventus, venustas, ver, verbera, verbum, vere, verecundia, vereor, vergo, veritas, vero, versus, verto, verumtamen, verus, vesco, vesica, vesper, vespillo, vester, vestigium, vestrum, vetus, via, vicinus, vicissitudo, victoria, victus, videlicet, video, viduata, viduo, vigilo, vigor, vilicus, vilis, vilitas, villa, vinco, vinculum, vindico, vinitor, vinum, vir, virga, virgo, viridis, viriliter, virtus, vis, viscus, vita, vitiosus, vitium, vito, vivo, vix, vobis, vociferor, voco, volaticus, volo, volubilis, voluntarius, volup, volutabrum, volva, vomer, vomica, vomito, vorago, vorax, voro, vos, votum, voveo, vox, vulariter, vulgaris, vulgivagus, vulgo, vulgus, vulnero, vulnus, vulpes, vulticulus, vultuosus, xiphias] + + name: + first_name: [Aaron, Abraham, Adam, Adrian, Atanazy, Agaton, Alan, Albert, Aleksander, Aleksy, Alfred, Alwar, Ambroży, Anatol, Andrzej, Antoni, Apollinary, Apollo, Arkady, Arkadiusz, Archibald, Arystarch, Arnold, Arseniusz, Artur, August, Baldwin, Bazyli, Benedykt, Beniamin, Bernard, Bertrand, Bertram, Borys, Brajan, Bruno, Cezary, Cecyliusz, Karol, Krystian, Krzysztof, Klarencjusz, Klaudiusz, Klemens, Konrad, Konstanty, Konstantyn, Kornel, Korneliusz, Korneli, Cyryl, Cyrus, Damian, Daniel, Dariusz, Dawid, Dionizy, Demetriusz, Dominik, Donald, Dorian, Edgar, Edmund, Edward, Edwin, Efrem, Efraim, Eliasz, Eleazar, Emil, Emanuel, Erast, Ernest, Eugeniusz, Eustracjusz, Fabian, Feliks, Florian, Franciszek, Fryderyk, Gabriel, Gedeon, Galfryd, Jerzy, Gerald, Gerazym, Gilbert, Gonsalwy, Grzegorz, Gwido, Harald, Henryk, Herbert, Herman, Hilary, Horacy, Hubert, Hugo, Ignacy, Igor, Hilarion, Innocenty, Hipolit, Ireneusz, Erwin, Izaak, Izajasz, Izydor, Jakub, Jeremi, Jeremiasz, Hieronim, Gerald, Joachim, Jan, Janusz, Jonatan, Józef, Jozue, Julian, Juliusz, Justyn, Kalistrat, Kazimierz, Wawrzyniec, Laurenty, Laurencjusz, Łazarz, Leon, Leonard, Leonid, Leon, Ludwik, Łukasz, Lucjan, Magnus, Makary, Marceli, Marek, Marcin, Mateusz, Maurycy, Maksym, Maksymilian, Michał, Miron, Modest, Mojżesz, Natan, Natanael, Nazariusz, Nazary, Nestor, Mikołaj, Nikodem, Olaf, Oleg, Oliwier, Onufry, Orestes, Oskar, Ansgary, Osmund, Pankracy, Pantaleon, Patryk, Patrycjusz, Patrycy, Paweł, Piotr, Filemon, Filip, Platon, Polikarp, Porfiry, Porfiriusz, Prokles, Prokul, Prokop, Kwintyn, Randolf, Rafał, Rajmund, Reginald, Rajnold, Ryszard, Robert, Roderyk, Roger, Roland, Roman, Romeo, Reginald, Rudolf, Samson, Samuel, Salwator, Sebastian, Serafin, Sergiusz, Seweryn, Zygmunt, Sylwester, Szymon, Salomon, Spirydion, Stanisław, Szczepan, Stefan, Terencjusz, Teodor, Tomasz, Tymoteusz, Tobiasz, Walenty, Walentyn, Walerian, Walery, Wiktor, Wincenty, Witalis, Włodzimierz, Władysław, Błażej, Walter, Walgierz, Wacław, Wilfryd, Wilhelm, Ksawery, Ksenofont, Jerzy, Zachariasz, Zachary, Ada, Adelajda, Agata, Agnieszka, Agrypina, Aida, Aleksandra, Alicja, Alina, Amanda, Anastazja, Angela, Andżelika, Angelina, Anna, Hanna, —, Antonina, Ariadna, Aurora, Barbara, Beatrycze, Berta, Brygida, Kamila, Karolina, Karolina, Kornelia, Katarzyna, Cecylia, Karolina, Chloe, Krystyna, Klara, Klaudia, Klementyna, Konstancja, Koralia, Daria, Diana, Dina, Dorota, Edyta, Eleonora, Eliza, Elżbieta, Izabela, Elwira, Emilia, Estera, Eudoksja, Eudokia, Eugenia, Ewa, Ewelina, Ferdynanda, Florencja, Franciszka, Gabriela, Gertruda, Gloria, Gracja, Jadwiga, Helena, Henryka, Nadzieja, Ida, Ilona, Helena, Irena, Irma, Izabela, Izolda, Jakubina, Joanna, Janina, Żaneta, Joanna, Ginewra, Józefina, Judyta, Julia, Julia, Julita, Justyna, Kira, Cyra, Kleopatra, Larysa, Laura, Laurencja, Laurentyna, Lea, Leila, Eleonora, Liliana, Lilianna, Lilia, Lilla, Liza, Eliza, Laura, Ludwika, Luiza, Łucja, Lucja, Lidia, Amabela, Magdalena, Malwina, Małgorzata, Greta, Marianna, Maryna, Marta, Martyna, Maria, Matylda, Maja, Maja, Melania, Michalina, Monika, Nadzieja, Noemi, Natalia, Nikola, Nina, Olga, Olimpia, Oliwia, Ofelia, Patrycja, Paula, Pelagia, Penelopa, Filipa, Paulina, Rachela, Rebeka, Regina, Renata, Rozalia, Róża, Roksana, Rufina, Ruta, Sabina, Sara, Serafina, Sybilla, Sylwia, Zofia, Stella, Stefania, Zuzanna, Tamara, Tacjana, Tekla, Teodora, Teresa, Walentyna, Waleria, Wanesa, Wiara, Weronika, Wiktoria, Wirginia, Bibiana, Bibianna, Wanda, Wilhelmina, Ksawera, Ksenia, Zoe] + last_name: [Adamczak, Adamczyk, Adamek, Adamiak, Adamiec, Adamowicz, Adamski, Adamus, Aleksandrowicz, Andrzejczak, Andrzejewski, Antczak, Augustyn, Augustyniak, Bagiński, Balcerzak, Banach, Banasiak, Banasik, Banaś, Baran, Baranowski, Barański, Bartczak, Bartkowiak, Bartnik, Bartosik, Bednarczyk, Bednarek, Bednarski, Bednarz, Białas, Białek, Białkowski, Bielak, Bielawski, Bielecki, Bielski, Bieniek, Biernacki, Biernat, Bieńkowski, Bilski, Bober, Bochenek, Bogucki, Bogusz, Borek, Borkowski, Borowiec, Borowski, Bożek, Broda, Brzeziński, Brzozowski, Buczek, Buczkowski, Buczyński, Budziński, Budzyński, Bujak, Bukowski, Burzyński, Bąk, Bąkowski, Błaszczak, Błaszczyk, Cebula, Chmiel, Chmielewski, Chmura, Chojnacki, Chojnowski, Cholewa, Chrzanowski, Chudzik, Cichocki, Cichoń, Cichy, Ciesielski, Cieśla, Cieślak, Cieślik, Ciszewski, Cybulski, Cygan, Czaja, Czajka, Czajkowski, Czapla, Czarnecki, Czech, Czechowski, Czekaj, Czerniak, Czerwiński, Czyż, Czyżewski, Dec, Dobosz, Dobrowolski, Dobrzyński, Domagała, Domański, Dominiak, Drabik, Drozd, Drozdowski, Drzewiecki, Dróżdż, Dubiel, Duda, Dudek, Dudziak, Dudzik, Dudziński, Duszyński, Dziedzic, Dziuba, Dąbek, Dąbkowski, Dąbrowski, Dębowski, Dębski, Długosz, Falkowski, Fijałkowski, Filipek, Filipiak, Filipowicz, Flak, Flis, Florczak, Florek, Frankowski, Frąckowiak, Frączek, Frątczak, Furman, Gadomski, Gajda, Gajewski, Gaweł, Gawlik, Gawron, Gawroński, Gałka, Gałązka, Gil, Godlewski, Golec, Gołąb, Gołębiewski, Gołębiowski, Grabowski, Graczyk, Grochowski, Grudzień, Gruszczyński, Gruszka, Grzegorczyk, Grzelak, Grzesiak, Grzesik, Grześkowiak, Grzyb, Grzybowski, Grzywacz, Gutowski, Guzik, Gwóźdź, Góra, Góral, Górecki, Górka, Górniak, Górny, Górski, Gąsior, Gąsiorowski, Głogowski, Głowacki, Głąb, Hajduk, Herman, Iwański, Izdebski, Jabłoński, Jackowski, Jagielski, Jagiełło, Jagodziński, Jakubiak, Jakubowski, Janas, Janiak, Janicki, Janik, Janiszewski, Jankowiak, Jankowski, Janowski, Janus, Janusz, Januszewski, Jaros, Jarosz, Jarząbek, Jasiński, Jastrzębski, Jaworski, Jaśkiewicz, Jezierski, Jurek, Jurkiewicz, Jurkowski, Juszczak, Jóźwiak, Jóźwik, Jędrzejczak, Jędrzejczyk, Jędrzejewski, Kacprzak, Kaczmarczyk, Kaczmarek, Kaczmarski, Kaczor, Kaczorowski, Kaczyński, Kaleta, Kalinowski, Kalisz, Kamiński, Kania, Kaniewski, Kapusta, Karaś, Karczewski, Karpiński, Karwowski, Kasperek, Kasprzak, Kasprzyk, Kaszuba, Kawa, Kawecki, Kałuża, Kaźmierczak, Kiełbasa, Kisiel, Kita, Klimczak, Klimek, Kmiecik, Kmieć, Knapik, Kobus, Kogut, Kolasa, Komorowski, Konieczna, Konieczny, Konopka, Kopczyński, Koper, Kopeć, Korzeniowski, Kos, Kosiński, Kosowski, Kostecki, Kostrzewa, Kot, Kotowski, Kowal, Kowalczuk, Kowalczyk, Kowalewski, Kowalik, Kowalski, Koza, Kozak, Kozieł, Kozioł, Kozłowski, Kołakowski, Kołodziej, Kołodziejczyk, Kołodziejski, Krajewski, Krakowiak, Krawczyk, Krawiec, Kruk, Krukowski, Krupa, Krupiński, Kruszewski, Krysiak, Krzemiński, Krzyżanowski, Król, Królikowski, Książek, Kubacki, Kubiak, Kubica, Kubicki, Kubik, Kuc, Kucharczyk, Kucharski, Kuchta, Kuciński, Kuczyński, Kujawa, Kujawski, Kula, Kulesza, Kulig, Kulik, Kuliński, Kurek, Kurowski, Kuś, Kwaśniewski, Kwiatkowski, Kwiecień, Kwieciński, Kędzierski, Kędziora, Kępa, Kłos, Kłosowski, Lach, Laskowski, Lasota, Lech, Lenart, Lesiak, Leszczyński, Lewandowski, Lewicki, Leśniak, Leśniewski, Lipiński, Lipka, Lipski, Lis, Lisiecki, Lisowski, Maciejewski, Maciąg, Mackiewicz, Madej, Maj, Majcher, Majchrzak, Majewski, Majka, Makowski, Malec, Malicki, Malinowski, Maliszewski, Marchewka, Marciniak, Marcinkowski, Marczak, Marek, Markiewicz, Markowski, Marszałek, Marzec, Masłowski, Matusiak, Matuszak, Matuszewski, Matysiak, Mazur, Mazurek, Mazurkiewicz, Maćkowiak, Małecki, Małek, Maślanka, Michalak, Michalczyk, Michalik, Michalski, Michałek, Michałowski, Mielczarek, Mierzejewski, Mika, Mikołajczak, Mikołajczyk, Mikulski, Milczarek, Milewski, Miller, Misiak, Misztal, Miśkiewicz, Modzelewski, Molenda, Morawski, Motyka, Mroczek, Mroczkowski, Mrozek, Mróz, Mucha, Murawski, Musiał, Muszyński, Młynarczyk, Napierała, Nawrocki, Nawrot, Niedziela, Niedzielski, Niedźwiecki, Niemczyk, Niemiec, Niewiadomski, Noga, Nowacki, Nowaczyk, Nowak, Nowakowski, Nowicki, Nowiński, Olczak, Olejniczak, Olejnik, Olszewski, Orzechowski, Orłowski, Osiński, Ossowski, Ostrowski, Owczarek, Paczkowski, Pająk, Pakuła, Paluch, Panek, Partyka, Pasternak, Paszkowski, Pawelec, Pawlak, Pawlicki, Pawlik, Pawlikowski, Pawłowski, Pałka, Piasecki, Piechota, Piekarski, Pietras, Pietruszka, Pietrzak, Pietrzyk, Pilarski, Pilch, Piotrowicz, Piotrowski, Piwowarczyk, Piórkowski, Piątek, Piątkowski, Piłat, Pluta, Podgórski, Polak, Popławski, Porębski, Prokop, Prus, Przybylski, Przybysz, Przybył, Przybyła, Ptak, Puchalski, Pytel, Płonka, Raczyński, Radecki, Radomski, Rak, Rakowski, Ratajczak, Robak, Rogala, Rogalski, Rogowski, Rojek, Romanowski, Rosa, Rosiak, Rosiński, Ruciński, Rudnicki, Rudziński, Rudzki, Rusin, Rutkowski, Rybak, Rybarczyk, Rybicki, Rzepka, Różański, Różycki, Sadowski, Sawicki, Serafin, Siedlecki, Sienkiewicz, Sieradzki, Sikora, Sikorski, Sitek, Siwek, Skalski, Skiba, Skibiński, Skoczylas, Skowron, Skowronek, Skowroński, Skrzypczak, Skrzypek, Skóra, Smoliński, Sobczak, Sobczyk, Sobieraj, Sobolewski, Socha, Sochacki, Sokołowski, Sokół, Sosnowski, Sowa, Sowiński, Sołtys, Sołtysiak, Sroka, Stachowiak, Stachowicz, Stachura, Stachurski, Stanek, Staniszewski, Stanisławski, Stankiewicz, Stasiak, Staszewski, Stawicki, Stec, Stefaniak, Stefański, Stelmach, Stolarczyk, Stolarski, Strzelczyk, Strzelecki, Stępień, Stępniak, Surma, Suski, Szafrański, Szatkowski, Szczepaniak, Szczepanik, Szczepański, Szczerba, Szcześniak, Szczygieł, Szczęsna, Szczęsny, Szeląg, Szewczyk, Szostak, Szulc, Szwarc, Szwed, Szydłowski, Szymański, Szymczak, Szymczyk, Szymkowiak, Szyszka, Sławiński, Słowik, Słowiński, Tarnowski, Tkaczyk, Tokarski, Tomala, Tomaszewski, Tomczak, Tomczyk, Tracz, Trojanowski, Trzciński, Trzeciak, Turek, Twardowski, Urban, Urbanek, Urbaniak, Urbanowicz, Urbańczyk, Urbański, Walczak, Walkowiak, Warchoł, Wasiak, Wasilewski, Wawrzyniak, Wesołowski, Wieczorek, Wierzbicki, Wilczek, Wilczyński, Wilk, Winiarski, Witczak, Witek, Witkowski, Wiącek, Więcek, Więckowski, Wiśniewski, Wnuk, Wojciechowski, Wojtas, Wojtasik, Wojtczak, Wojtkowiak, Wolak, Woliński, Wolny, Wolski, Woś, Woźniak, Wrona, Wroński, Wróbel, Wróblewski, Wypych, Wysocki, Wyszyński, Wójcicki, Wójcik, Wójtowicz, Wąsik, Węgrzyn, Włodarczyk, Włodarski, Zaborowski, Zabłocki, Zagórski, Zając, Zajączkowski, Zakrzewski, Zalewski, Zaremba, Zarzycki, Zaręba, Zawada, Zawadzki, Zdunek, Zieliński, Zielonka, Ziółkowski, Zięba, Ziętek, Zwoliński, Zych, Zygmunt, Łapiński, Łuczak, Łukasiewicz, Łukasik, Łukaszewski, Śliwa, Śliwiński, Ślusarczyk, Świderski, Świerczyński, Świątek, Żak, Żebrowski, Żmuda, Żuk, Żukowski, Żurawski, Żurek, Żyła] + prefix: [Pan, Pani] + title: + descriptor: [Lead, Senior, Direct, Corporate, Dynamic, Future, Product, National, Regional, District, Central, Global, Customer, Investor, Dynamic, International, Legacy, Forward, Internal, Human, Chief, Principal] + level: [Solutions, Program, Brand, Security, Research, Marketing, Directives, Implementation, Integration, Functionality, Response, Paradigm, Tactics, Identity, Markets, Group, Division, Applications, Optimization, Operations, Infrastructure, Intranet, Communications, Web, Branding, Quality, Assurance, Mobility, Accounts, Data, Creative, Configuration, Accountability, Interactions, Factors, Usability, Metrics] + job: [Supervisor, Associate, Executive, Liaison, Officer, Manager, Engineer, Specialist, Director, Coordinator, Administrator, Architect, Analyst, Designer, Planner, Orchestrator, Technician, Developer, Producer, Consultant, Assistant, Facilitator, Agent, Representative, Strategist] + name: + - "#{prefix} #{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name}" + + phone_number: + formats: ['12-###-##-##', '13-###-##-##', '14-###-##-##', '15-###-##-##', '16-###-##-##', '17-###-##-##', '18-###-##-##', '22-###-##-##', '23-###-##-##', '24-###-##-##', '25-###-##-##', '29-###-##-##', '32-###-##-##', '33-###-##-##', '34-###-##-##', '41-###-##-##', '42-###-##-##', '43-###-##-##', '44-###-##-##', '46-###-##-##', '48-###-##-##', '52-###-##-##', '54-###-##-##', '55-###-##-##', '56-###-##-##', '58-###-##-##', '59-###-##-##', '61-###-##-##', '62-###-##-##', '63-###-##-##', '65-###-##-##', '67-###-##-##', '68-###-##-##', '71-###-##-##', '74-###-##-##', '75-###-##-##', '76-###-##-##', '77-###-##-##', '81-###-##-##', '82-###-##-##', '83-###-##-##', '84-###-##-##', '85-###-##-##', '86-###-##-##', '87-###-##-##', '89-###-##-##', '91-###-##-##', '94-###-##-##', '95-###-##-##'] + cell_phone: + formats: ['50-###-##-##', '51-###-##-##', '53-###-##-##', '57-###-##-##', '60-###-##-##', '66-###-##-##', '69-###-##-##', '72-###-##-##', '73-###-##-##', '78-###-##-##', '79-###-##-##', '88-###-##-##'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pt-BR.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pt-BR.yml new file mode 100644 index 0000000..7ec8ad9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/pt-BR.yml @@ -0,0 +1,57 @@ +pt-BR: + faker: + address: + city_prefix: [Nova, Velha, Grande, Vila, Município de] + city_suffix: [do Descoberto, de Nossa Senhora, do Norte, do Sul] + country: [ "Afeganistão", "Albânia", "Algéria", "Samoa", "Andorra", "Angola", "Anguilla", "Antigua and Barbada", "Argentina", "Armênia", "Aruba", "Austrália", + "Áustria", "Alzerbajão", "Bahamas", "Barém", "Bangladesh", "Barbado", "Belgrado", "Bélgica", "Belize", "Benin", "Bermuda", "Bhutan", "Bolívia", + "Bôsnia", "Botuasuna", "Bouvetoia", "Brasil", "Arquipélago de Chagos", "Ilhas Virgens", "Brunei", "Bulgária", "Burkina Faso", "Burundi", "Cambójia", + "Camarões", "Canadá", "Cabo Verde", "Ilhas Caiman", "República da África Central", "Chad", "Chile", "China", "Ilhas Natal", "Ilhas Cocos", "Colômbia", + "Comoros", "Congo", "Ilhas Cook", "Costa Rica", "Costa do Marfim", "Croácia", "Cuba", "Cyprus", "República Tcheca", "Dinamarca", "Djibouti", "Dominica", + "República Dominicana", "Equador", "Egito", "El Salvador", "Guiné Equatorial", "Eritrea", "Estônia", "Etiópia", "Ilhas Faroe", "Malvinas", "Fiji", + "Finlândia", "França", "Guiné Francesa", "Polinésia Francesa", "Gabão", "Gâmbia", "Georgia", "Alemanha", "Gana", "Gibraltar", "Grécia", "Groelândia", + "Granada", "Guadalupe", "Guano", "Guatemala", "Guernsey", "Guiné", "Guiné-Bissau", "Guiana", "Haiti", "Heard Island and McDonald Islands", "Vaticano", + "Honduras", "Hong Kong", "Hungria", "Iceland", "Índia", "Indonésia", "Irã", "Iraque", "Irlanda", "Ilha de Man", "Israel", "Itália", "Jamaica", "Japão", + "Jersey", "Jordânia", "Cazaquistão", "Quênia", "Kiribati", "Coreia do Norte", "Coreia do Sul", "Kuwait", "Kyrgyz Republic", "República Democrática de Lao People", + "Latvia", "Líbano", "Lesotho", "Libéria", "Libyan Arab Jamahiriya", "Liechtenstein", "Lituânia", "Luxemburgo", "Macao", "Macedônia", "Madagascar", "Malawi", + "Malásia", "Maldives", "Mali", "Malta", "Ilhas Marshall", "Martinica", "Mauritânia", "Mauritius", "Mayotte", "México", "Micronésia", "Moldova", "Mônaco", + "Mongólia", "Montenegro", "Montserrat", "Marrocos", "Moçambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Antilhas Holandesas", "Holanda", "Nova Caledonia", + "Nova Zelândia", "Nicarágua", "Nigéria", "Niue", "Ilha Norfolk", "Northern Mariana Islands", "Noruega", "Oman", "Paquistão", "Palau", "Território da Palestina", + "Panamá", "Nova Guiné Papua", "Paraguai", "Peru", "Filipinas", "Polônia", "Portugal", "Puerto Rico", "Qatar", "Romênia", "Rússia", "Ruanda", "São Bartolomeu", + "Santa Helena", "Santa Lúcia", "Saint Martin", "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tomé e Príncipe", + "Arábia Saudita", "Senegal", "Sérvia", "Seychelles", "Serra Leoa", "Singapura", "Eslováquia", "Eslovênia", "Ilhas Salomão", "Somália", + "África do Sul", "South Georgia and the South Sandwich Islands", "Spanha", "Sri Lanka", "Sudão", "Suriname", "Svalbard & Jan Mayen Islands", "Swaziland", + "Suécia", "Suíça", "Síria", "Taiwan", "Tajiquistão", "Tanzânia", "Tailândia", "Timor-Leste", "Togo", "Tokelau", "Tonga", "Trinidá e Tobago", "Tunísia", + "Turquia", "Turcomenistão", "Turks and Caicos Islands", "Tuvalu", "Uganda", "Ucrânia", "Emirados Árabes Unidos", "Reino Unido", "Estados Unidos da América", + "Estados Unidos das Ilhas Virgens", "Uruguai", "Uzbequistão", "Vanuatu", "Venezuela", "Vietnã", "Wallis and Futuna", "Sahara", "Yemen", "Zâmbia", "Zimbábue"] + building_number: ["#####", "####", "###"] + street_suffix: ["Rua", "Avenida", "Travessa", "Ponte", "Alameda", "Marginal", "Viela", "Rodovia"] + secondary_address: ["Apto. ###", "Sobrado ##", "Casa #", "Lote ##", "Quadra ##"] + # Though these are US-specific, they are here (in the default locale) for backwards compatibility + postcode: ["#####", "#####-###"] + state: ["Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal", "Espírito Santo", "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Pará", "Paraíba", "Paraná", "Pernambuco", "Piauí", "Rio de Janeiro", "Rio Grande do Norte", "Rio Grande do Sul", "Rondônia", "Roraima", "Santa Catarina", "São Paulo", "Sergipe", "Tocantins"] + state_abbr: [AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP] + default_country: [Brasil] + + company: + suffix: ["S.A.", "LTDA", "e Associados", "Comércio"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} e #{Name.last_name}" + + internet: + free_email: [gmail.com, yahoo.com, hotmail.com, live.com, bol.com.br] + domain_suffix: [br, com, biz, info, name, net, org] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + + name: + first_name: ["Alessandro", "Alessandra", "Alexandre", "Aline", "Antônio", "Breno", "Bruna", "Carlos", "Carla", "Célia", "Cecília", "César", "Danilo", "Dalila", "Deneval", "Eduardo", "Eduarda", "Esther", "Elísio", "Fábio", "Fabrício", "Fabrícia", "Félix", "Felícia", "Feliciano", "Frederico", "Fabiano", "Gustavo", "Guilherme", "Gúbio", "Heitor", "Hélio", "Hugo", "Isabel", "Isabela", "Ígor", "João", "Joana", "Júlio César", "Júlio", "Júlia", "Janaína", "Karla", "Kléber", "Lucas", "Lorena", "Lorraine", "Larissa", "Ladislau", "Marcos", "Meire", "Marcelo", "Marcela", "Margarida", "Mércia", "Márcia", "Marli", "Morgana", "Maria", "Norberto", "Natália", "Nataniel", "Núbia", "Ofélia", "Paulo", "Paula", "Pablo", "Pedro", "Raul", "Rafael", "Rafaela", "Ricardo", "Roberto", "Roberta", "Sílvia", "Sílvia", "Silas", "Suélen", "Sara", "Salvador", "Sirineu", "Talita", "Tertuliano", "Vicente", "Víctor", "Vitória", "Yango", "Yago", "Yuri", "Washington", "Warley"] + last_name: ["Silva", "Souza", "Carvalho", "Santos", "Reis", "Xavier", "Franco", "Braga", "Macedo", "Batista", "Barros", "Moraes", "Costa", "Pereira", "Carvalho", "Melo", "Saraiva", "Nogueira", "Oliveira", "Martins", "Moreira", "Albuquerque"] + prefix: ["Sr.", "Sra.", "Srta.", "Dr."] + suffix: ["Jr.", "Neto", "Filho"] + + phone_number: + formats: ["(##) ####-####", "+55 (##) ####-####", "(##) #####-####"] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ru.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ru.yml new file mode 100644 index 0000000..0f04e68 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/ru.yml @@ -0,0 +1,65 @@ +ru: + faker: + separator: " и " + address: + country: [Австралия, Австрия, Азербайджан, Албания, Алжир, Американское Самоа (не признана), Ангилья, Ангола, Андорра, Антарктика (не признана), Антигуа и Барбуда, Антильские Острова (не признана), Аомынь (не признана), Аргентина, Армения, Афганистан, Багамские Острова, Бангладеш, Барбадос, Бахрейн, Беларусь, Белиз, Бельгия, Бенин, Болгария, Боливия, Босния и Герцеговина, Ботсвана, Бразилия, Бруней, Буркина-Фасо, Бурунди, Бутан, Вануату, Ватикан, Великобритания, Венгрия, Венесуэла, Восточный Тимор, Вьетнам, Габон, Гаити, Гайана, Гамбия, Гана, Гваделупа (не признана), Гватемала, Гвиана (не признана), Гвинея, Гвинея-Бисау, Германия, Гондурас, Гренада, Греция, Грузия, Дания, Джибути, Доминика, Доминиканская Республика, Египет, Замбия, Зимбабве, Израиль, Индия, Индонезия, Иордания, Ирак, Иран, Ирландия, Исландия, Испания, Италия, Йемен, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кения, Кипр, Кирибати, Китай, Колумбия, Коморские Острова, Конго, Демократическая Республика, Корея (Северная), Корея (Южная), Косово, Коста-Рика, Кот-д'Ивуар, Куба, Кувейт, Кука острова, Кыргызстан, Лаос, Латвия, Лесото, Либерия, Ливан, Ливия, Литва, Лихтенштейн, Люксембург, Маврикий, Мавритания, Мадагаскар, Македония, Малави, Малайзия, Мали, Мальдивы, Мальта, Маршалловы Острова, Мексика, Микронезия, Мозамбик, Молдова, Монако, Монголия, Марокко, Мьянма, Намибия, Науру, Непал, Нигер, Нигерия, Нидерланды, Никарагуа, Новая Зеландия, Норвегия, Объединенные Арабские Эмираты, Оман, Пакистан, Палау, Панама, Папуа — Новая Гвинея, Парагвай, Перу, Польша, Португалия, Республика Конго, Россия, Руанда, Румыния, Сальвадор, Самоа, Сан-Марино, Сан-Томе и Принсипи, Саудовская Аравия, Свазиленд, Сейшельские острова, Сенегал, Сент-Винсент и Гренадины, Сент-Киттс и Невис, Сент-Люсия, Сербия, Сингапур, Сирия, Словакия, Словения, Соединенные Штаты Америки, Соломоновы Острова, Сомали, Судан, Суринам, Сьерра-Леоне, Таджикистан, Таиланд, Тайвань (не признана), Тамил-Илам (не признана), Танзания, Тёркс и Кайкос (не признана), Того, Токелау (не признана), Тонга, Тринидад и Тобаго, Тувалу, Тунис, Турецкая Республика Северного Кипра (не признана), Туркменистан, Турция, Уганда, Узбекистан, Украина, Уругвай, Фарерские Острова (не признана), Фиджи, Филиппины, Финляндия, Франция, Французская Полинезия (не признана), Хорватия, Центральноафриканская Республика, Чад, Черногория, Чехия, Чили, Швейцария, Швеция, Шри-Ланка, Эквадор, Экваториальная Гвинея, Эритрея, Эстония, Эфиопия, Южно-Африканская Республика, Ямайка, Япония] + building_number: ['###'] + street_suffix: ['ул.', 'улица', 'проспект', 'пр.', 'площадь', 'пл.'] + secondary_address: ['кв. ###'] + postcode: ['######'] + state: [Республика Адыгея, Республика Башкортостан, Республика Бурятия, Республика Алтай Республика Дагестан, Республика Ингушетия, Кабардино-Балкарская Республика, Республика Калмыкия, Республика Карачаево-Черкессия, Республика Карелия, Республика Коми, Республика Марий Эл, Республика Мордовия, Республика Саха (Якутия), Республика Северная Осетия-Алания, Республика Татарстан, Республика Тыва, Удмуртская Республика, Республика Хакасия, Чувашская Республика, Алтайский край, Краснодарский край, Красноярский край, Приморский край, Ставропольский край, Хабаровский край, Амурская область, Архангельская область, Астраханская область, Белгородская область, Брянская область, Владимирская область, Волгоградская область, Вологодская область, Воронежская область, Ивановская область, Иркутская область, Калиниградская область, Калужская область, Камчатская область, Кемеровская область, Кировская область, Костромская область, Курганская область, Курская область, Ленинградская область, Липецкая область, Магаданская область, Московская область, Мурманская область, Нижегородская область, Новгородская область, Новосибирская область, Омская область, Оренбургская область, Орловская область, Пензенская область, Пермская область, Псковская область, Ростовская область, Рязанская область, Самарская область, Саратовская область, Сахалинская область, Свердловская область, Смоленская область, Тамбовская область, Тверская область, Томская область, Тульская область, Тюменская область, Ульяновская область, Челябинская область, Читинская область, Ярославская область, Еврейская автономная область, Агинский Бурятский авт. округ, Коми-Пермяцкий автономный округ, Корякский автономный округ, Ненецкий автономный округ, Таймырский (Долгано-Ненецкий) автономный округ, Усть-Ордынский Бурятский автономный округ, Ханты-Мансийский автономный округ, Чукотский автономный округ, Эвенкийский автономный округ, Ямало-Ненецкий автономный округ, Чеченская Республика] + street_title: [Советская, Молодежная, Центральная, Школьная, Новая, Садовая, Лесная, Набережная, Ленина, Мира, Октябрьская, Зеленая, Комсомольская, Заречная, Первомайская, Гагарина, Полевая, Луговая, Пионерская, Кирова, Юбилейная, Северная, Пролетарская, Степная, Пушкина, Калинина, Южная, Колхозная, Рабочая, Солнечная, Железнодорожная, Восточная, Заводская, Чапаева, Нагорная, Строителей, Береговая, Победы, Горького, Кооперативная, Красноармейская, Совхозная, Речная, Школьный , Спортивная, Озерная, Строительная, Парковая, Чкалова, Мичурина, речень улиц, Подгорная, Дружбы, Почтовая, Партизанская, Вокзальная, Лермонтова, Свободы, Дорожная, Дачная, Маяковского, Западная, Фрунзе, Дзержинского, Московская, Свердлова, Некрасова, Гоголя, Красная, Трудовая, Шоссейная, Чехова, Коммунистическая, Труда, Комарова, Матросова, Островского, Сосновая, Клубная, Куйбышева, Крупской, Березовая, Карла Маркса, 8 Марта, Больничная, Садовый , Интернациональная, Суворова, Цветочная, Трактовая, Ломоносова, Горная, Космонавтов, Энергетиков, Шевченко, Весенняя, Механизаторов, Коммунальная, Лесной , 40 лет Победы, Майская] + city_name: [Москва, Владимир, Санкт-Петербург, Новосибирск, Екатеринбург, Нижний Новгород, Самара, Казань, Омск, Челябинск, Ростов-на-Дону, Уфа, Волгоград, Пермь, Красноярск, Воронеж, Саратов, Краснодар, Тольятти, Ижевск, Барнаул, Ульяновск, Тюмень, Иркутск, Владивосток, Ярославль, Хабаровск, Махачкала, Оренбург, Новокузнецк, Томск, Кемерово, Рязань, Астрахань, Пенза, Липецк, Тула, Киров, Чебоксары, Курск, Брянск, Магнитогорск, Иваново, Тверь, Ставрополь, Белгород, Сочи] + city: + - "#{Address.city_name}" + street_name: + - "#{street_suffix} #{Address.street_title}" + - "#{Address.street_title} #{street_suffix}" + street_address: + - "#{street_name}, #{building_number}" + default_country: [Россия] + + internet: + free_email: [yandex.ru, ya.ru, mail.ru, gmail.com, yahoo.com, hotmail.com] + domain_suffix: [com, ru, info, рф, net, org] + + name: + male_first_name: [Александр, Алексей, Альберт, Анатолий, Андрей, Антон, Аркадий, Арсений, Артём, Борис, Вадим, Валентин, Валерий, Василий, Виктор, Виталий, Владимир, Владислав, Вячеслав, Геннадий, Георгий, Герман, Григорий, Даниил, Денис, Дмитрий, Евгений, Егор, Иван, Игнатий, Игорь, Илья, Константин, Лаврентий, Леонид, Лука, Макар, Максим, Матвей, Михаил, Никита, Николай, Олег, Роман, Семён, Сергей, Станислав, Степан, Фёдор, Эдуард, Юрий, Ярослав] + male_middle_name: [Александрович, Алексеевич, Альбертович, Анатольевич, Андреевич, Антонович, Аркадьевич, Арсеньевич, Артёмович, Борисович, Вадимович, Валентинович, Валерьевич, Васильевич, Викторович, Витальевич, Владимирович, Владиславович, Вячеславович, Геннадьевич, Георгиевич, Германович, Григорьевич, Даниилович, Денисович, Дмитриевич, Евгеньевич, Егорович, Иванович, Игнатьевич, Игоревич, Ильич, Константинович, Лаврентьевич, Леонидович, Лукич, Макарович, Максимович, Матвеевич, Михайлович, Никитич, Николаевич, Олегович, Романович, Семёнович, Сергеевич, Станиславович, Степанович, Фёдорович, Эдуардович, Юрьевич, Ярославович] + male_last_name: [Смирнов, Иванов, Кузнецов, Попов, Соколов, Лебедев, Козлов, Новиков, Морозов, Петров, Волков, Соловьев, Васильев, Зайцев, Павлов, Семенов, Голубев, Виноградов, Богданов, Воробьев, Федоров, Михайлов, Беляев, Тарасов, Белов, Комаров, Орлов, Киселев, Макаров, Андреев, Ковалев, Ильин, Гусев, Титов, Кузьмин, Кудрявцев, Баранов, Куликов, Алексеев, Степанов, Яковлев, Сорокин, Сергеев, Романов, Захаров, Борисов, Королев, Герасимов, Пономарев, Григорьев, Лазарев, Медведев, Ершов, Никитин, Соболев, Рябов, Поляков, Цветков, Данилов, Жуков, Фролов, Журавлев, Николаев, Крылов, Максимов, Сидоров, Осипов, Белоусов, Федотов, Дорофеев, Егоров, Матвеев, Бобров, Дмитриев, Калинин, Анисимов, Петухов, Антонов, Тимофеев, Никифоров, Веселов, Филиппов, Марков, Большаков, Суханов, Миронов, Ширяев, Александров, Коновалов, Шестаков, Казаков, Ефимов, Денисов, Громов, Фомин, Давыдов, Мельников, Щербаков, Блинов, Колесников, Карпов, Афанасьев, Власов, Маслов, Исаков, Тихонов, Аксенов, Гаврилов, Родионов, Котов, Горбунов, Кудряшов, Быков, Зуев, Третьяков, Савельев, Панов, Рыбаков, Суворов, Абрамов, Воронов, Мухин, Архипов, Трофимов, Мартынов, Емельянов, Горшков, Чернов, Овчинников, Селезнев, Панфилов, Копылов, Михеев, Галкин, Назаров, Лобанов, Лукин, Беляков, Потапов, Некрасов, Хохлов, Жданов, Наумов, Шилов, Воронцов, Ермаков, Дроздов, Игнатьев, Савин, Логинов, Сафонов, Капустин, Кириллов, Моисеев, Елисеев, Кошелев, Костин, Горбачев, Орехов, Ефремов, Исаев, Евдокимов, Калашников, Кабанов, Носков, Юдин, Кулагин, Лапин, Прохоров, Нестеров, Харитонов, Агафонов, Муравьев, Ларионов, Федосеев, Зимин, Пахомов, Шубин, Игнатов, Филатов, Крюков, Рогов, Кулаков, Терентьев, Молчанов, Владимиров, Артемьев, Гурьев, Зиновьев, Гришин, Кононов, Дементьев, Ситников, Симонов, Мишин, Фадеев, Комиссаров, Мамонтов, Носов, Гуляев, Шаров, Устинов, Вишняков, Евсеев, Лаврентьев, Брагин, Константинов, Корнилов, Авдеев, Зыков, Бирюков, Шарапов, Никонов, Щукин, Дьячков, Одинцов, Сазонов, Якушев, Красильников, Гордеев, Самойлов, Князев, Беспалов, Уваров, Шашков, Бобылев, Доронин, Белозеров, Рожков, Самсонов, Мясников, Лихачев, Буров, Сысоев, Фомичев, Русаков, Стрелков, Гущин, Тетерин, Колобов, Субботин, Фокин, Блохин, Селиверстов, Пестов, Кондратьев, Силин, Меркушев, Лыткин, Туров] + female_first_name: [Анна, Алёна, Алевтина, Александра, Алина, Алла, Анастасия, Ангелина, Анжела, Анжелика, Антонида, Антонина, Анфиса, Арина, Валентина, Валерия, Варвара, Василиса, Вера, Вероника, Виктория, Галина, Дарья, Евгения, Екатерина, Елена, Елизавета, Жанна, Зинаида, Зоя, Ирина, Кира, Клавдия, Ксения, Лариса, Лидия, Любовь, Людмила, Маргарита, Марина, Мария, Надежда, Наталья, Нина, Оксана, Ольга, Раиса, Регина, Римма, Светлана, София, Таисия, Тамара, Татьяна, Ульяна, Юлия] + female_middle_name: [Александровна, Алексеевна, Альбертовна, Анатольевна, Андреевна, Антоновна, Аркадьевна, Арсеньевна, Артёмовна, Борисовна, Вадимовна, Валентиновна, Валерьевна, Васильевна, Викторовна, Витальевна, Владимировна, Владиславовна, Вячеславовна, Геннадьевна, Георгиевна, Германовна, Григорьевна, Данииловна, Денисовна, Дмитриевна, Евгеньевна, Егоровна, Ивановна, Игнатьевна, Игоревна, Ильинична, Константиновна, Лаврентьевна, Леонидовна, Макаровна, Максимовна, Матвеевна, Михайловна, Никитична, Николаевна, Олеговна, Романовна, Семёновна, Сергеевна, Станиславовна, Степановна, Фёдоровна, Эдуардовна, Юрьевна, Ярославовна] + female_last_name: [Смирнова, Иванова, Кузнецова, Попова, Соколова, Лебедева, Козлова, Новикова, Морозова, Петрова, Волкова, Соловьева, Васильева, Зайцева, Павлова, Семенова, Голубева, Виноградова, Богданова, Воробьева, Федорова, Михайлова, Беляева, Тарасова, Белова, Комарова, Орлова, Киселева, Макарова, Андреева, Ковалева, Ильина, Гусева, Титова, Кузьмина, Кудрявцева, Баранова, Куликова, Алексеева, Степанова, Яковлева, Сорокина, Сергеева, Романова, Захарова, Борисова, Королева, Герасимова, Пономарева, Григорьева, Лазарева, Медведева, Ершова, Никитина, Соболева, Рябова, Полякова, Цветкова, Данилова, Жукова, Фролова, Журавлева, Николаева, Крылова, Максимова, Сидорова, Осипова, Белоусова, Федотова, Дорофеева, Егорова, Матвеева, Боброва, Дмитриева, Калинина, Анисимова, Петухова, Антонова, Тимофеева, Никифорова, Веселова, Филиппова, Маркова, Большакова, Суханова, Миронова, Ширяева, Александрова, Коновалова, Шестакова, Казакова, Ефимова, Денисова, Громова, Фомина, Давыдова, Мельникова, Щербакова, Блинова, Колесникова, Карпова, Афанасьева, Власова, Маслова, Исакова, Тихонова, Аксенова, Гаврилова, Родионова, Котова, Горбунова, Кудряшова, Быкова, Зуева, Третьякова, Савельева, Панова, Рыбакова, Суворова, Абрамова, Воронова, Мухина, Архипова, Трофимова, Мартынова, Емельянова, Горшкова, Чернова, Овчинникова, Селезнева, Панфилова, Копылова, Михеева, Галкина, Назарова, Лобанова, Лукина, Белякова, Потапова, Некрасова, Хохлова, Жданова, Наумова, Шилова, Воронцова, Ермакова, Дроздова, Игнатьева, Савина, Логинова, Сафонова, Капустина, Кириллова, Моисеева, Елисеева, Кошелева, Костина, Горбачева, Орехова, Ефремова, Исаева, Евдокимова, Калашникова, Кабанова, Носкова, Юдина, Кулагина, Лапина, Прохорова, Нестерова, Харитонова, Агафонова, Муравьева, Ларионова, Федосеева, Зимина, Пахомова, Шубина, Игнатова, Филатова, Крюкова, Рогова, Кулакова, Терентьева, Молчанова, Владимирова, Артемьева, Гурьева, Зиновьева, Гришина, Кононова, Дементьева, Ситникова, Симонова, Мишина, Фадеева, Комиссарова, Мамонтова, Носова, Гуляева, Шарова, Устинова, Вишнякова, Евсеева, Лаврентьева, Брагина, Константинова, Корнилова, Авдеева, Зыкова, Бирюкова, Шарапова, Никонова, Щукина, Дьячкова, Одинцова, Сазонова, Якушева, Красильникова, Гордеева, Самойлова, Князева, Беспалова, Уварова, Шашкова, Бобылева, Доронина, Белозерова, Рожкова, Самсонова, Мясникова, Лихачева, Бурова, Сысоева, Фомичева, Русакова, Стрелкова, Гущина, Тетерина, Колобова, Субботина, Фокина, Блохина, Селиверстова, Пестова, Кондратьева, Силина, Меркушева, Лыткина, Турова] + name: + - "#{male_first_name} #{male_last_name}" + - "#{male_last_name} #{male_first_name}" + - "#{male_first_name} #{male_middle_name} #{male_last_name}" + - "#{male_last_name} #{male_first_name} #{male_middle_name}" + - "#{female_first_name} #{female_last_name}" + - "#{female_last_name} #{female_first_name}" + - "#{female_first_name} #{female_middle_name} #{female_last_name}" + - "#{female_last_name} #{female_first_name} #{female_middle_name}" + + phone_number: + formats: ['(9##)###-##-##'] + + commerce: + color: [красный, зеленый, синий, желтый, багровый, мятный, зеленовато-голубой, белый, черный, оранжевый, розовый, серый, красно-коричневый, фиолетовый, бирюзовый, желто-коричневый, небесно голубой, оранжево-розовый, темно-фиолетовый, орхидный, оливковый, пурпурный, лимонный, кремовый, сине-фиолетовый, золотой, красно-пурпурный, голубой, лазурный, лиловый, серебряный] + department: ["Книги", "Фильмы", "музыка", "игры", "Электроника", "компьютеры", "Дом", "садинструмент", "Бакалея", "здоровье", "красота", "Игрушки", "детское", "для малышей", "Одежда", "обувь", "украшения", "Спорт", "туризм", "Автомобильное", "промышленное"] + product_name: + adjective: [Маленький, Эргономичный, Грубый, Интеллектуальный, Великолепный, Невероятный, Фантастический, Практчиный, Лоснящийся, Потрясающий, Огромный, Удовлетворительно, Синергетический, тяжелый, Легкий, Аэродинамический, Прочный] + material: [Стальной, Деревянный, Бетонный, Пластиковый, Хлопковый, Гранитный, Резиновый, Кожа, Шелковый, Шерсть, Белье, Мраморный, Утюг, Бронзовый, Медь, Алюминий, Бумага] + product: [Стул, Автомобиль, Компьютер, Берет, Кулон, Стол, Свитер, Ремень, Ботинок, Тарелка, Нож, Бутылка, Пальто, Лампа, Клавиатура, Сумка, Скамья, Часы, Смотрите, Бумажник] + + company: + prefix: [ИП, ООО, ЗАО, ОАО, НКО, ТСЖ, ОП] + suffix: [Снаб, Торг, Пром, Трейд, Сбыт] + name: + - "#{prefix} #{Name.female_first_name}" + - "#{prefix} #{Name.male_first_name}" + - "#{prefix} #{Name.male_last_name}" + - "#{prefix} #{suffix}#{suffix}" + - "#{prefix} #{suffix}#{suffix}#{suffix}" + - "#{prefix} #{Address.city_name}#{suffix}" + - "#{prefix} #{Address.city_name}#{suffix}#{suffix}" + - "#{prefix} #{Address.city_name}#{suffix}#{suffix}#{suffix}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sk.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sk.yml new file mode 100644 index 0000000..70b110d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sk.yml @@ -0,0 +1,72 @@ +sk: + faker: + address: + city_prefix: [North, East, West, South, New, Lake, Port] + city_suffix: [town, ton, land, ville, berg, burgh, borough, bury, view, port, mouth, stad, furt, chester, mouth, fort, haven, side, shire] + country: [Afganistan, Afgánsky islamský štát, Albánsko, Albánska republika, Alžírsko, Alžírska demokratická ľudová republika, Andorra, Andorrské kniežatsvo, Angola, Angolská republika, Antigua a Barbuda, Antigua a Barbuda, Argentína, Argentínska republika, Arménsko, Arménska republika, Austrália, Austrálsky zväz, Azerbajdžan, Azerbajdžanská republika, Bahamy, Bahamské spoločenstvo, Bahrajn, Bahrajnské kráľovstvo, Bangladéš, Bangladéšska ľudová republika, Barbados, Barbados, Belgicko , Belgické kráľovstvo, Belize, Belize, Benin, Beninská republika, Bhután, Bhutánske kráľovstvo, Bielorusko, Bieloruská republika, Bolívia, Bolívijská republika, Bosna a Hercegovina, Republika Bosny a Hercegoviny, Botswana, Botswanská republika, Brazília, Brazílska federatívna republika, Brunej, Brunejský sultanát, Bulharsko , Bulharská republika, Burkina Faso, Burkina Faso, Burundi, Burundská republika, Cyprus , Cyperská republika, Čad, Republika Čad, Česko , Česká republika, Čína, Čínska ľudová republika, Dánsko , Dánsko kráľovstvo, Dominika, Spoločenstvo Dominika, Dominikánska republika, Dominikánska republika, Džibutsko, Džibutská republika, Egypt, Egyptská arabská republika, Ekvádor, Ekvádorská republika, Eritrea, Eritrejský štát, Estónsko , Estónska republika, Etiópia, Etiópska federatívna demokratická republika, Fidži, Republika ostrovy Fidži, Filipíny, Filipínska republika, Fínsko , Fínska republika, Francúzsko , Francúzska republika, Gabon, Gabonská republika, Gambia, Gambijská republika, Ghana, Ghanská republika, Grécko , Helénska republika, Grenada, Grenada, Gruzínsko, Gruzínsko, Guatemala, Guatemalská republika, Guinea, Guinejská republika, Guinea-Bissau, Republika Guinea-Bissau, Guayana, Guayanská republika, Haiti, Republika Haiti, Holandsko , Holandské kráľovstvo, Honduras, Honduraská republika, Chile, Čílska republika, Chorvátsko , Chorvátska republika, India, Indická republika, Indonézia, Indonézska republika, Irak, Iracká republika, Irán, Iránska islamská republika, Island, Islandská republika, Izrael, Štát Izrael, Írsko , Írska republika, Jamajka, Jamajka, Japonsko, Japonsko, Jemen, Jemenská republika, Jordánsko, Jordánske hášimovské kráľovstvo, Južná Afrika, Juhoafrická republika, Kambodža, Kambodžské kráľovstvo, Kamerun, Kamerunská republika, Kanada, Kanada, Kapverdy, Kapverdská republika, Katar, Štát Katar, Kazachstan, Kazašská republika, Keňa, Kenská republika, Kirgizsko, Kirgizská republika, Kiribati, Kiribatská republika, Kolumbia, Kolumbijská republika, Komory, Komorská únia, Kongo, Konžská demokratická republika, Kongo ("Brazzaville"), Konžská republika, Kórea ("Južná"), Kórejská republika, Kórea ("Severná"), Kórejská ľudovodemokratická republika, Kostarika, Kostarická republika, Kuba, Kubánska republika, Kuvajt, Kuvajtský štát, Laos, Laoská ľudovodemokratická republika, Lesotho, Lesothské kráľovstvo, Libanon, Libanonská republika, Libéria, Libérijská republika, Líbya, Líbyjská arabská ľudová socialistická džamáhírija, Lichtenštajnsko, Lichtenštajnské kniežatstvo, Litva , Litovská republika, Lotyšsko , Lotyšská republika, Luxembursko , Luxemburské veľkovojvodstvo, Macedónsko, Macedónska republika, Madagaskar, Madagaskarská republika, Maďarsko , Maďarská republika, Malajzia, Malajzia, Malawi, Malawijská republika, Maldivy, Maldivská republika, Mali, Malijská republika, Malta , Malta, Maroko, Marocké kráľovstvo, Marshallove ostrovy, Republika Marshallových ostrovy, Mauritánia, Mauritánska islamská republika, Maurícius, Maurícijská republika, Mexiko, Spojené štáty mexické, Mikronézia, Mikronézske federatívne štáty, Mjanmarsko, Mjanmarský zväz, Moldavsko, Moldavská republika, Monako, Monacké kniežatstvo, Mongolsko, Mongolsko, Mozambik, Mozambická republika, Namíbia, Namíbijská republika, Nauru, Naurská republika, Nemecko , Nemecká spolková republika, Nepál, Nepálske kráľovstvo, Niger, Nigerská republika, Nigéria, Nigérijská federatívna republika, Nikaragua, Nikaragujská republika, Nový Zéland, Nový Zéland, Nórsko, Nórske kráľovstvo, Omán, Ománsky sultanát, Pakistan, Pakistanská islamská republika, Palau, Palauská republika, Panama, Panamská republika, Papua-Nová Guinea, Nezávislý štát Papua-Nová Guinea, Paraguaj, Paraguajská republika, Peru, Peruánska republika, Pobrežie Slonoviny, Republika Pobrežie Slonoviny, Poľsko , Poľská republika, Portugalsko , Portugalská republika, Rakúsko , Rakúska republika, Rovníková Guinea, Republika Rovníková Guinea, Rumunsko , Rumunsko, Rusko, Ruská federácia, Rwanda, Rwandská republika, Salvádor, Salvádorská republika, Samoa, Nezávislý štát Samoa, San Maríno, Sanmarínska republika, Saudská Arábia, Kráľovstvo Saudskej Arábie, Senegal, Senegalská republika, Seychely, Seychelská republika, Sierra Leone, Republika Sierra Leone, Singapur, Singapurska republika, Slovensko , Slovenská republika, Slovinsko , Slovinská republika, Somálsko, Somálska demokratická republika, Spojené arabské emiráty, Spojené arabské emiráty, Spojené štáty americké, Spojené štáty americké, Srbsko a Čierna Hora, Srbsko a Čierna Hora, Srí Lanka, Demokratická socialistická republika Srí Lanka, Stredoafrická republika, Stredoafrická republika, Sudán, Sudánska republika, Surinam, Surinamská republika, Svazijsko, Svazijské kráľovstvo, Svätá Lucia, Svätá Lucia, Svätý Krištof a Nevis, Federácia Svätý Krištof a Nevis, Sv. Tomáš a Princov Ostrov, Demokratická republika Svätý Tomáš a Princov Ostrov, Sv. Vincent a Grenadíny, Svätý Vincent a Grenadíny, Sýria, Sýrska arabská republika, Šalamúnove ostrovy, Šalamúnove ostrovy, Španielsko , Španielske kráľovstvo, Švajčiarsko, Švajčiarska konfederácia, Švédsko , Švédske kráľovstvo, Tadžikistan, Tadžická republika, Taliansko , Talianska republika, Tanzánia, Tanzánijská zjednotená republika, Thajsko, Thajské kráľovstvo, Togo, Tožská republika, Tonga, Tonžské kráľovstvo, Trinidad a Tobago, Republika Trinidad a Tobago, Tunisko, Tuniská republika, Turecko , Turecká republika, Turkménsko, Turkménsko, Tuvalu, Tuvalu, Uganda, Ugandská republika, Ukrajina, Uruguaj, Uruguajská východná republika, Uzbekistan, Vanuatu, Vanuatská republika, Vatikán, Svätá Stolica, Veľká Británia , Spojené kráľovstvo Veľkej Británie a Severného Írska, Venezuela, Venezuelská bolívarovská republika, Vietnam, Vietnamská socialistická republika, Východný Timor, Demokratická republika Východný Timor, Zambia, Zambijská republika, Zimbabwe, Zimbabwianska republika] + building_number: ['#', '##', '###'] + secondary_address: ['Apt. ###', 'Suite ###'] + postcode: ['#####', '### ##', '## ###'] + state: [] + state_abbr: [] + time_zone: [Pacific/Midway, Pacific/Pago_Pago, Pacific/Honolulu, America/Juneau, America/Los_Angeles, America/Tijuana, America/Denver, America/Phoenix, America/Chihuahua, America/Mazatlan, America/Chicago, America/Regina, America/Mexico_City, America/Mexico_City, America/Monterrey, America/Guatemala, America/New_York, America/Indiana/Indianapolis, America/Bogota, America/Lima, America/Lima, America/Halifax, America/Caracas, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Argentina/Buenos_Aires, America/Guyana, America/Godthab, Atlantic/South_Georgia, Atlantic/Azores, Atlantic/Cape_Verde, Europe/Dublin, Europe/London, Europe/Lisbon, Europe/London, Africa/Casablanca, Africa/Monrovia, Etc/UTC, Europe/Belgrade, Europe/Bratislava, Europe/Budapest, Europe/Ljubljana, Europe/Prague, Europe/Sarajevo, Europe/Skopje, Europe/Warsaw, Europe/Zagreb, Europe/Brussels, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Amsterdam, Europe/Berlin, Europe/Berlin, Europe/Rome, Europe/Stockholm, Europe/Vienna, Africa/Algiers, Europe/Bucharest, Africa/Cairo, Europe/Helsinki, Europe/Kiev, Europe/Riga, Europe/Sofia, Europe/Tallinn, Europe/Vilnius, Europe/Athens, Europe/Istanbul, Europe/Minsk, Asia/Jerusalem, Africa/Harare, Africa/Johannesburg, Europe/Moscow, Europe/Moscow, Europe/Moscow, Asia/Kuwait, Asia/Riyadh, Africa/Nairobi, Asia/Baghdad, Asia/Tehran, Asia/Muscat, Asia/Muscat, Asia/Baku, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Yekaterinburg, Asia/Karachi, Asia/Karachi, Asia/Tashkent, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kolkata, Asia/Kathmandu, Asia/Dhaka, Asia/Dhaka, Asia/Colombo, Asia/Almaty, Asia/Novosibirsk, Asia/Rangoon, Asia/Bangkok, Asia/Bangkok, Asia/Jakarta, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Chongqing, Asia/Hong_Kong, Asia/Urumqi, Asia/Kuala_Lumpur, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Irkutsk, Asia/Ulaanbaatar, Asia/Seoul, Asia/Tokyo, Asia/Tokyo, Asia/Tokyo, Asia/Yakutsk, Australia/Darwin, Australia/Adelaide, Australia/Melbourne, Australia/Melbourne, Australia/Sydney, Australia/Brisbane, Australia/Hobart, Asia/Vladivostok, Pacific/Guam, Pacific/Port_Moresby, Asia/Magadan, Asia/Magadan, Pacific/Noumea, Pacific/Fiji, Asia/Kamchatka, Pacific/Majuro, Pacific/Auckland, Pacific/Auckland, Pacific/Tongatapu, Pacific/Fakaofo, Pacific/Apia] + city_name: [Bánovce nad Bebravou, Banská Bystrica, Banská Štiavnica, Bardejov, Bratislava I, Bratislava II, Bratislava III, Bratislava IV, Bratislava V, Brezno, Bytča, Čadca, Detva, Dolný Kubín, Dunajská Streda, Galanta, Gelnica, Hlohovec, Humenné, Ilava, Kežmarok, Komárno, Košice I, Košice II, Košice III, Košice IV, Košice-okolie, Krupina, Kysucké Nové Mesto, Levice, Levoča, Liptovský Mikuláš, Lučenec, Malacky, Martin, Medzilaborce, Michalovce, Myjava, Námestovo, Nitra, Nové Mesto n.Váhom, Nové Zámky, Partizánske, Pezinok, Piešťany, Poltár, Poprad, Považská Bystrica, Prešov, Prievidza, Púchov, Revúca, Rimavská Sobota, Rožňava, Ružomberok, Sabinov, Šaľa, Senec, Senica, Skalica, Snina, Sobrance, Spišská Nová Ves, Stará Ľubovňa, Stropkov, Svidník, Topoľčany, Trebišov, Trenčín, Trnava, Turčianske Teplice, Tvrdošín, Veľký Krtíš, Vranov nad Topľou, Žarnovica, Žiar nad Hronom, Žilina, Zlaté Moravce, Zvolen] + city: + - "#{city_name}" + street: [Adámiho, Ahoj, Albína Brunovského, Albrechtova, Alejová, Alešova, Alibernetová, Alžbetínska, Alžbety Gwerkovej, Ambroseho, Ambrušova, Americká, Americké námestie, Americké námestie, Andreja Mráza, Andreja Plávku, Andrusovova, Anenská, Anenská, Antolská, Astronomická, Astrová, Azalková, Azovská, Babuškova, Bachova, Bajkalská, Bajkalská, Bajkalská, Bajkalská, Bajkalská, Bajkalská, Bajzova, Bancíkovej, Banícka, Baníkova, Banskobystrická, Banšelova, Bardejovská, Bartókova, Bartoňova, Bartoškova, Baštová, Bazová, Bažantia, Beblavého, Beckovská, Bedľová, Belániková, Belehradská, Belinského, Belopotockého, Beňadická, Bencúrova, Benediktiho, Beniakova, Bernolákova, Beskydská, Betliarska, Bezručova, Biela, Bielkova, Björnsonova, Blagoevova, Blatnická, Blumentálska, Blyskáčová, Bočná, Bohrova, Bohúňova, Bojnická, Borodáčova, Borská, Bosákova, Botanická, Bottova, Boženy Němcovej, Bôrik, Bradáčova, Bradlianska, Brančská, Bratská, Brestová, Brezovská, Briežky, Brnianska, Brodná, Brodská, Broskyňová, Břeclavská, Budatínska, Budatínska, Budatínska, Búdkova cesta, Budovateľská, Budyšínska, Budyšínska, Buková, Bukureštská, Bulharská, Bulíkova, Bystrého, Bzovícka, Cablkova, Cesta na Červený most, Cesta na Červený most, Cesta na Senec, Cikkerova, Cintorínska, Cintulova, Cukrová, Cyrilova, Čajakova, Čajkovského, Čaklovská, Čalovská, Čapajevova, Čapkova, Čárskeho, Čavojského, Čečinová, Čelakovského, Čerešňová, Černyševského, Červeňova, Česká, Československých par, Čipkárska, Čmelíkova, Čmeľovec, Čulenova, Daliborovo námestie, Dankovského, Dargovská, Ďatelinová, Daxnerovo námestie, Devínska cesta, Dlhé diely I., Dlhé diely II., Dlhé diely III., Dobrovičova, Dobrovičova, Dobrovského, Dobšinského, Dohnalova, Dohnányho, Doležalova, Dolná, Dolnozemská cesta, Domkárska, Domové role, Donnerova, Donovalova, Dostojevského rad, Dr. Vladimíra Clemen, Drevená, Drieňová, Drieňová, Drieňová, Drotárska cesta, Drotárska cesta, Drotárska cesta, Družicová, Družstevná, Dubnická, Dubová, Dúbravská cesta, Dudova, Dulovo námestie, Dulovo námestie, Dunajská, Dvořákovo nábrežie, Edisonova, Einsteinova, Elektrárenská, Exnárova, F. Kostku, Fadruszova, Fajnorovo nábrežie, Fándlyho, Farebná, Farská, Farského, Fazuľová, Fedinova, Ferienčíkova, Fialkové údolie, Fibichova, Filiálne nádražie, Flöglova, Floriánske námestie, Fraňa Kráľa, Francisciho, Francúzskych partizá, Františkánska, Františkánske námest, Furdekova, Furdekova, Gabčíkova, Gagarinova, Gagarinova, Gagarinova, Gajova, Galaktická, Galandova, Gallova, Galvaniho, Gašparíkova, Gaštanová, Gavlovičova, Gemerská, Gercenova, Gessayova, Gettingová, Godrova, Gogoľova, Goláňova, Gondova, Goralská, Gorazdova, Gorkého, Gregorovej, Grösslingova, Gruzínska, Gunduličova, Gusevova, Haanova, Haburská, Halašova, Hálkova, Hálova, Hamuliakova, Hanácka, Handlovská, Hany Meličkovej, Harmanecká, Hasičská, Hattalova, Havlíčkova, Havrania, Haydnova, Herlianska, Herlianska, Heydukova, Hlaváčikova, Hlavatého, Hlavné námestie, Hlboká cesta, Hlboká cesta, Hlivová, Hlučínska, Hodálova, Hodžovo námestie, Holekova, Holíčska, Hollého, Holubyho, Hontianska, Horárska, Horné Židiny, Horská, Horská, Hrad, Hradné údolie, Hrachová, Hraničná, Hrebendova, Hríbová, Hriňovská, Hrobákova, Hrobárska, Hroboňova, Hudecova, Humenské námestie, Hummelova, Hurbanovo námestie, Hurbanovo námestie, Hviezdoslavovo námes, Hýrošova, Chalupkova, Chemická, Chlumeckého, Chorvátska, Chorvátska, Iľjušinova, Ilkovičova, Inovecká, Inovecká, Iskerníková, Ivana Horvátha, Ivánska cesta, J.C.Hronského, Jabloňová, Jadrová, Jakabova, Jakubovo námestie, Jamnického, Jána Stanislava, Janáčkova, Jančova, Janíkove role, Jankolova, Jánošíkova, Jánoškova, Janotova, Jánska, Jantárová cesta, Jarabinková, Jarná, Jaroslavova, Jarošova, Jaseňová, Jasná, Jasovská, Jastrabia, Jašíkova, Javorinská, Javorová, Jazdecká, Jedlíkova, Jégého, Jelačičova, Jelenia, Jesenná, Jesenského, Jiráskova, Jiskrova, Jozefská, Junácka, Jungmannova, Jurigovo námestie, Jurovského, Jurská, Justičná, K lomu, K Železnej studienke, Kalinčiakova, Kamenárska, Kamenné námestie, Kapicova, Kapitulská, Kapitulský dvor, Kapucínska, Kapušianska, Karadžičova, Karadžičova, Karadžičova, Karadžičova, Karloveská, Karloveské rameno, Karpatská, Kašmírska, Kaštielska, Kaukazská, Kempelenova, Kežmarské námestie, Kladnianska, Klariská, Kláštorská, Klatovská, Klatovská, Klemensova, Klincová, Klobučnícka, Klokočova, Kľukatá, Kmeťovo námestie, Koceľova, Kočánkova, Kohútova, Kolárska, Kolískova, Kollárovo námestie, Kollárovo námestie, Kolmá, Komárňanská, Komárnická, Komárnická, Komenského námestie, Kominárska, Komonicová, Konopná, Konvalinková, Konventná, Kopanice, Kopčianska, Koperníkova, Korabinského, Koreničova, Kostlivého, Kostolná, Košická, Košická, Košická, Kováčska, Kovorobotnícka, Kozia, Koziarka, Kozmonautická, Krajná, Krakovská, Kráľovské údolie, Krasinského, Kraskova, Krásna, Krásnohorská, Krasovského, Krátka, Krčméryho, Kremnická, Kresánkova, Krivá, Križkova, Krížna, Krížna, Krížna, Krížna, Krmanova, Krompašská, Krupinská, Krupkova, Kubániho, Kubínska, Kuklovská, Kukučínova, Kukuričná, Kulíškova, Kultúrna, Kupeckého, Kúpeľná, Kutlíkova, Kutuzovova, Kuzmányho, Kvačalova, Kvetná, Kýčerského, Kyjevská, Kysucká, Laborecká, Lackova, Ladislava Sáru, Ľadová, Lachova, Ľaliová, Lamačská cesta, Lamačská cesta, Lamanského, Landererova, Langsfeldova, Ľanová, Laskomerského, Laučekova, Laurinská, Lazaretská, Lazaretská, Legerského, Legionárska, Legionárska, Lehockého, Lehockého, Lenardova, Lermontovova, Lesná, Leškova, Letecká, Letisko M.R.Štefánik, Letná, Levárska, Levická, Levočská, Lidická, Lietavská, Lichardova, Lipová, Lipovinová, Liptovská, Listová, Líščie nivy, Líščie údolie, Litovská, Lodná, Lombardiniho, Lomonosovova, Lopenícka, Lovinského, Ľubietovská, Ľubinská, Ľubľanská, Ľubochnianska, Ľubovnianska, Lúčna, Ľudové námestie, Ľudovíta Fullu, Luhačovická, Lužická, Lužná, Lýcejná, Lykovcová, M. Hella, Magnetová, Macharova, Majakovského, Majerníkova, Májkova, Májová, Makovického, Malá, Malé pálenisko, Malinová, Malý Draždiak, Malý trh, Mamateyova, Mamateyova, Mánesovo námestie, Mariánska, Marie Curie-Sklodows, Márie Medveďovej, Markova, Marótyho, Martákovej, Martinčekova, Martinčekova, Martinengova, Martinská, Mateja Bela, Matejkova, Matičná, Matúšova, Medená, Medzierka, Medzilaborecká, Merlotová, Mesačná, Mestská, Meteorová, Metodova, Mickiewiczova, Mierová, Michalská, Mikovíniho, Mikulášska, Miletičova, Miletičova, Mišíkova, Mišíkova, Mišíkova, Mliekárenská, Mlynarovičova, Mlynská dolina, Mlynská dolina, Mlynská dolina, Mlynské luhy, Mlynské nivy, Mlynské nivy, Mlynské nivy, Mlynské nivy, Mlynské nivy, Mlyny, Modranská, Mojmírova, Mokráň záhon, Mokrohájska cesta, Moldavská, Molecova, Moravská, Moskovská, Most SNP, Mostová, Mošovského, Motýlia, Moyzesova, Mozartova, Mraziarenská, Mudroňova, Mudroňova, Mudroňova, Muchovo námestie, Murgašova, Muškátová, Muštová, Múzejná, Myjavská, Mýtna, Mýtna, Na Baránku, Na Brezinách, Na Hrebienku, Na Kalvárii, Na Kampárke, Na kopci, Na križovatkách, Na lánoch, Na paši, Na piesku, Na Riviére, Na Sitine, Na Slavíne, Na stráni, Na Štyridsiatku, Na úvrati, Na vŕšku, Na výslní, Nábělkova, Nábrežie arm. gen. L, Nábrežná, Nad Dunajom, Nad lomom, Nad lúčkami, Nad lúčkami, Nad ostrovom, Nad Sihoťou, Námestie 1. mája, Námestie Alexandra D, Námestie Biely kríž, Námestie Hraničiarov, Námestie Jána Pavla, Námestie Ľudovíta Št, Námestie Martina Ben, Nám. M.R.Štefánika, Námestie slobody, Námestie slobody, Námestie SNP, Námestie SNP, Námestie sv. Františ, Narcisová, Nedbalova, Nekrasovova, Neronetová, Nerudova, Nevädzová, Nezábudková, Niťová, Nitrianska, Nížinná, Nobelova, Nobelovo námestie, Nová, Nová Rožňavská , Novackého, Nové pálenisko, Nové záhrady I, Nové záhrady II, Nové záhrady III, Nové záhrady IV, Nové záhrady V, Nové záhrady VI, Nové záhrady VII, Novinárska, Novobanská, Novohradská, Novosvetská, Novosvetská, Novosvetská, Obežná, Obchodná, Očovská, Odbojárov, Odborárska, Odborárske námestie, Odborárske námestie, Ohnicová, Okánikova, Okružná, Olbrachtova, Olejkárska, Ondavská, Ondrejovova, Oravská, Orechová cesta, Orechový rad, Oriešková, Ormisova, Osadná, Ostravská, Ostredková, Osuského, Osvetová, Otonelská, Ovručská, Ovsištské námestie, Pajštúnska, Palackého, Palárikova, Palárikova, Pálavská, Palisády, Palisády, Palisády, Palkovičova, Panenská, Pankúchova, Panónska cesta, Panská, Papánkovo námestie, Papraďová, Páričkova, Parková, Partizánska, Pasienky, Paulínyho, Pavlovičova, Pavlovova, Pavlovská, Pažického, Pažítková, Pečnianska, Pernecká, Pestovateľská, Peterská, Petzvalova, Pezinská, Piesočná, Piešťanská, Pifflova, Pilárikova, Pionierska, Pivoňková, Planckova, Planét, Plátenícka, Pluhová, Plynárenská, Plzenská, Pobrežná, Pod Bôrikom, Pod Kalváriou, Pod lesom, Pod Rovnicami, Pod vinicami, Podhorského, Podjavorinskej, Podlučinského, Podniková, Podtatranského, Pohronská, Polárna, Poloreckého, Poľná, Poľská, Poludníková, Porubského, Poštová, Považská, Povraznícka, Povraznícka, Pražská, Predstaničné námesti, Prepoštská, Prešernova, Prešovská, Prešovská, Prešovská, Pri Bielom kríži, Pri dvore, Pri Dynamitke, Pri Habánskom mlyne, Pri hradnej studni, Pri seči, Pri Starej Prachárni, Pri Starom háji, Pri Starom Mýte, Pri strelnici, Pri Suchom mlyne, Pri zvonici, Pribinova, Pribinova, Pribinova, Pribišova, Pribylinská, Priečna, Priekopy, Priemyselná, Priemyselná, Prievozská, Prievozská, Prievozská, Príkopova, Primaciálne námestie, Prístav, Prístavná, Prokofievova, Prokopa Veľkého, Prokopova, Prúdová, Prvosienková, Púpavová, Pustá, Puškinova, Račianska, Račianska, Račianske mýto, Radarová, Rádiová, Radlinského, Radničná, Radničné námestie, Radvanská, Rajská, Raketová, Rákosová, Rastislavova, Rázusovo nábrežie, Repná, Rešetkova, Revolučná, Révová, Revúcka, Rezedová, Riazanská, Riazanská, Ribayová, Riečna, Rigeleho, Rízlingová, Riznerova, Robotnícka, Romanova, Röntgenova, Rosná, Rovná, Rovniankova, Rovníková, Rozmarínová, Rožňavská, Rožňavská, Rožňavská, Rubinsteinova, Rudnayovo námestie, Rumančeková, Rusovská cesta, Ružičková, Ružinovská, Ružinovská, Ružinovská, Ružomberská, Ružová dolina, Ružová dolina, Rybárska brána, Rybné námestie, Rýdziková, Sabinovská, Sabinovská, Sad Janka Kráľa, Sadová, Sartorisova, Sasinkova, Seberíniho, Sečovská, Sedlárska, Sedmokrásková, Segnerova, Sekulská, Semianova, Senická, Senná, Schillerova, Schody pri starej vo, Sibírska, Sienkiewiczova, Silvánska, Sinokvetná, Skalická cesta, Skalná, Sklenárova, Sklenárska, Sládkovičova, Sladová, Slávičie údolie, Slavín, Slepá, Sliačska, Sliezska, Slivková, Slnečná, Slovanská, Slovinská, Slovnaftská, Slowackého, Smetanova, Smikova, Smolenická, Smolnícka, Smrečianska, Soferove schody, Socháňova, Sokolská, Solivarská, Sološnická, Somolického, Somolického, Sosnová, Spišská, Spojná, Spoločenská, Sputniková, Sreznevského, Srnčia, Stachanovská, Stálicová, Staničná, Stará Černicová, Stará Ivánska cesta, Stará Prievozská, Stará Vajnorská, Stará vinárska, Staré Grunty, Staré ihrisko, Staré záhrady, Starhradská, Starohájska, Staromestská, Staroturský chodník, Staviteľská, Stodolova, Stoklasová, Strakova, Strážnická, Strážny dom, Strečnianska, Stredná, Strelecká, Strmá cesta, Strojnícka, Stropkovská, Struková, Studená, Stuhová, Súbežná, Súhvezdná, Suché mýto, Suchohradská, Súkennícka, Súľovská, Sumbalova, Súmračná, Súťažná, Svätého Vincenta, Svätoplukova, Svätoplukova, Svätovojtešská, Svetlá, Svíbová, Svidnícka, Svoradova, Svrčia, Syslia, Šafárikovo námestie, Šafárikovo námestie, Šafránová, Šagátova, Šalviová, Šancová, Šancová, Šancová, Šancová, Šándorova, Šarišská, Šášovská, Šaštínska, Ševčenkova, Šintavská, Šípková, Škarniclova, Školská, Škovránčia, Škultétyho, Šoltésovej, Špieszova, Špitálska, Športová, Šrobárovo námestie, Šťastná, Štedrá, Štefánikova, Štefánikova, Štefánikova, Štefanovičova, Štefunkova, Štetinova, Štiavnická, Štúrova, Štyndlova, Šulekova, Šulekova, Šulekova, Šumavská, Šuňavcova, Šustekova, Švabinského, Tabaková, Tablicova, Táborská, Tajovského, Tallerova, Tehelná, Technická, Tekovská, Telocvičná, Tematínska, Teplická, Terchovská, Teslova, Tetmayerova, Thurzova, Tichá, Tilgnerova, Timravina, Tobrucká, Tokajícka, Tolstého, Tománkova, Tomášikova, Tomášikova, Tomášikova, Tomášikova, Tomášikova, Topoľčianska, Topoľová, Továrenská, Trebišovská, Trebišovská, Trebišovská, Trenčianska, Treskoňova, Trnavská cesta, Trnavská cesta, Trnavská cesta, Trnavská cesta, Trnavská cesta, Trnavské mýto, Tŕňová, Trojdomy, Tučkova, Tupolevova, Turbínova, Turčianska, Turnianska, Tvarožkova, Tylova, Tyršovo nábrežie, Údernícka, Údolná, Uhorková, Ukrajinská, Ulica 29. augusta, Ulica 29. augusta, Ulica 29. augusta, Ulica 29. augusta, Ulica Imricha Karvaš, Ulica Jozefa Krónera, Ulica Viktora Tegelh, Úprkova, Úradnícka, Uránová, Urbánkova, Ursínyho, Uršulínska, Úzka, V záhradách, Vajanského nábrežie, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Vajnorská, Valašská, Valchárska, Vansovej, Vápenná, Varínska, Varšavská, Varšavská, Vavilovova, Vavrínova, Vazovova, Včelárska, Velehradská, Veltlínska, Ventúrska, Veterná, Veternicová, Vetvová, Viedenská cesta, Viedenská cesta, Vietnamská, Vígľašská, Vihorlatská, Viktorínova, Vilová, Vincenta Hložníka, Vínna, Vlastenecké námestie, Vlčkova, Vlčkova, Vlčkova, Vodný vrch, Votrubova, Vrábeľská, Vrakunská cesta, Vranovská, Vretenová, Vrchná, Vrútocká, Vyhliadka, Vyhnianska cesta, Vysoká, Vyšehradská, Vyšná, Wattova, Wilsonova, Wolkrova, Za Kasárňou, Za sokolovňou, Za Stanicou, Za tehelňou, Záborského, Zadunajská cesta, Záhorácka, Záhradnícka, Záhradnícka, Záhradnícka, Záhradnícka, Záhrebská, Záhrebská, Zálužická, Zámocká, Zámocké schody, Zámočnícka, Západná, Západný rad, Záporožská, Zátišie, Závodníkova, Zelená, Zelinárska, Zimná, Zlaté piesky, Zlaté schody, Znievska, Zohorská, Zochova, Zrinského, Zvolenská, Žabí majer, Žabotova, Žehrianska, Železná, Železničiarska, Žellova, Žiarska, Židovská, Žilinská, Žilinská, Živnostenská, Žižkova, Župné námestie] + street_name: + - "#{street}" + street_address: + - "#{street_name} #{building_number}" + default_country: [Slovensko] + + company: + suffix: [s.r.o., a.s., v.o.s.] + # Buzzword wordlist from http://www.1728.com/buzzword.htm + buzzwords: + - ["Adaptive", "Advanced", "Ameliorated", "Assimilated", "Automated", "Balanced", "Business-focused", "Centralized", "Cloned", "Compatible", "Configurable", "Cross-group", "Cross-platform", "Customer-focused", "Customizable", "Decentralized", "De-engineered", "Devolved", "Digitized", "Distributed", "Diverse", "Down-sized", "Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded", "Extended", "Face to face", "Focused", "Front-line", "Fully-configurable", "Function-based", "Fundamental", "Future-proofed", "Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated", "Intuitive", "Inverse", "Managed", "Mandatory", "Monitored", "Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered", "Networked", "Object-based", "Open-architected", "Open-source", "Operative", "Optimized", "Optional", "Organic", "Organized", "Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive", "Proactive", "Profit-focused", "Profound", "Programmable", "Progressive", "Public-key", "Quality-focused", "Reactive", "Realigned", "Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered", "Right-sized", "Robust", "Seamless", "Secured", "Self-enabling", "Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised", "Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered", "Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly", "Versatile", "Virtual", "Visionary", "Vision-oriented"] + - ["24 hour", "24/7", "3rd generation", "4th generation", "5th generation", "6th generation", "actuating", "analyzing", "asymmetric", "asynchronous", "attitude-oriented", "background", "bandwidth-monitored", "bi-directional", "bifurcated", "bottom-line", "clear-thinking", "client-driven", "client-server", "coherent", "cohesive", "composite", "context-sensitive", "contextually-based", "content-based", "dedicated", "demand-driven", "didactic", "directional", "discrete", "disintermediate", "dynamic", "eco-centric", "empowering", "encompassing", "even-keeled", "executive", "explicit", "exuding", "fault-tolerant", "foreground", "fresh-thinking", "full-range", "global", "grid-enabled", "heuristic", "high-level", "holistic", "homogeneous", "human-resource", "hybrid", "impactful", "incremental", "intangible", "interactive", "intermediate", "leading edge", "local", "logistical", "maximized", "methodical", "mission-critical", "mobile", "modular", "motivating", "multimedia", "multi-state", "multi-tasking", "national", "needs-based", "neutral", "next generation", "non-volatile", "object-oriented", "optimal", "optimizing", "radical", "real-time", "reciprocal", "regional", "responsive", "scalable", "secondary", "solution-oriented", "stable", "static", "systematic", "systemic", "system-worthy", "tangible", "tertiary", "transitional", "uniform", "upward-trending", "user-facing", "value-added", "web-enabled", "well-modulated", "zero administration", "zero defect", "zero tolerance"] + - ["ability", "access", "adapter", "algorithm", "alliance", "analyzer", "application", "approach", "architecture", "archive", "artificial intelligence", "array", "attitude", "benchmark", "budgetary management", "capability", "capacity", "challenge", "circuit", "collaboration", "complexity", "concept", "conglomeration", "contingency", "core", "customer loyalty", "database", "data-warehouse", "definition", "emulation", "encoding", "encryption", "extranet", "firmware", "flexibility", "focus group", "forecast", "frame", "framework", "function", "functionalities", "Graphic Interface", "groupware", "Graphical User Interface", "hardware", "help-desk", "hierarchy", "hub", "implementation", "info-mediaries", "infrastructure", "initiative", "installation", "instruction set", "interface", "internet solution", "intranet", "knowledge user", "knowledge base", "local area network", "leverage", "matrices", "matrix", "methodology", "middleware", "migration", "model", "moderator", "monitoring", "moratorium", "neural-net", "open architecture", "open system", "orchestration", "paradigm", "parallelism", "policy", "portal", "pricing structure", "process improvement", "product", "productivity", "project", "projection", "protocol", "secured line", "service-desk", "software", "solution", "standardization", "strategy", "structure", "success", "superstructure", "support", "synergy", "system engine", "task-force", "throughput", "time-frame", "toolset", "utilisation", "website", "workforce"] + # BS wordlist from http://dack.com/web/bullshit.html + bs: + - ["implement", "utilize", "integrate", "streamline", "optimize", "evolve", "transform", "embrace", "enable", "orchestrate", "leverage", "reinvent", "aggregate", "architect", "enhance", "incentivize", "morph", "empower", "envisioneer", "monetize", "harness", "facilitate", "seize", "disintermediate", "synergize", "strategize", "deploy", "brand", "grow", "target", "syndicate", "synthesize", "deliver", "mesh", "incubate", "engage", "maximize", "benchmark", "expedite", "reintermediate", "whiteboard", "visualize", "repurpose", "innovate", "scale", "unleash", "drive", "extend", "engineer", "revolutionize", "generate", "exploit", "transition", "e-enable", "iterate", "cultivate", "matrix", "productize", "redefine", "recontextualize"] + - ["clicks-and-mortar", "value-added", "vertical", "proactive", "robust", "revolutionary", "scalable", "leading-edge", "innovative", "intuitive", "strategic", "e-business", "mission-critical", "sticky", "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular", "frictionless", "virtual", "viral", "dynamic", "24/365", "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled", "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient", "front-end", "distributed", "seamless", "extensible", "turn-key", "world-class", "open-source", "cross-platform", "cross-media", "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise", "integrated", "impactful", "wireless", "transparent", "next-generation", "cutting-edge", "user-centric", "visionary", "customized", "ubiquitous", "plug-and-play", "collaborative", "compelling", "holistic", "rich"] + - ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name} #{suffix}" + - "#{Name.man_last_name} a #{Name.man_last_name} #{suffix}" + + internet: + free_email: [gmail.com, zoznam.sk, azet.sk] + domain_suffix: [sk, com, net, eu, org] + + lorem: + words: [alias, consequatur, aut, perferendis, sit, voluptatem, accusantium, doloremque, aperiam, eaque, ipsa, quae, ab, illo, inventore, veritatis, et, quasi, architecto, beatae, vitae, dicta, sunt, explicabo, aspernatur, aut, odit, aut, fugit, sed, quia, consequuntur, magni, dolores, eos, qui, ratione, voluptatem, sequi, nesciunt, neque, dolorem, ipsum, quia, dolor, sit, amet, consectetur, adipisci, velit, sed, quia, non, numquam, eius, modi, tempora, incidunt, ut, labore, et, dolore, magnam, aliquam, quaerat, voluptatem, ut, enim, ad, minima, veniam, quis, nostrum, exercitationem, ullam, corporis, nemo, enim, ipsam, voluptatem, quia, voluptas, sit, suscipit, laboriosam, nisi, ut, aliquid, ex, ea, commodi, consequatur, quis, autem, vel, eum, iure, reprehenderit, qui, in, ea, voluptate, velit, esse, quam, nihil, molestiae, et, iusto, odio, dignissimos, ducimus, qui, blanditiis, praesentium, laudantium, totam, rem, voluptatum, deleniti, atque, corrupti, quos, dolores, et, quas, molestias, excepturi, sint, occaecati, cupiditate, non, provident, sed, ut, perspiciatis, unde, omnis, iste, natus, error, similique, sunt, in, culpa, qui, officia, deserunt, mollitia, animi, id, est, laborum, et, dolorum, fuga, et, harum, quidem, rerum, facilis, est, et, expedita, distinctio, nam, libero, tempore, cum, soluta, nobis, est, eligendi, optio, cumque, nihil, impedit, quo, porro, quisquam, est, qui, minus, id, quod, maxime, placeat, facere, possimus, omnis, voluptas, assumenda, est, omnis, dolor, repellendus, temporibus, autem, quibusdam, et, aut, consequatur, vel, illum, qui, dolorem, eum, fugiat, quo, voluptas, nulla, pariatur, at, vero, eos, et, accusamus, officiis, debitis, aut, rerum, necessitatibus, saepe, eveniet, ut, et, voluptates, repudiandae, sint, et, molestiae, non, recusandae, itaque, earum, rerum, hic, tenetur, a, sapiente, delectus, ut, aut, reiciendis, voluptatibus, maiores, doloribus, asperiores, repellat] + supplemental: [abbas, abduco, abeo, abscido, absconditus, absens, absorbeo, absque, abstergo, absum, abundans, abutor, accedo, accendo, acceptus, accipio, accommodo, accusator, acer, acerbitas, acervus, acidus, acies, acquiro, acsi, adamo, adaugeo, addo, adduco, ademptio, adeo, adeptio, adfectus, adfero, adficio, adflicto, adhaero, adhuc, adicio, adimpleo, adinventitias, adipiscor, adiuvo, administratio, admiratio, admitto, admoneo, admoveo, adnuo, adopto, adsidue, adstringo, adsuesco, adsum, adulatio, adulescens, adultus, aduro, advenio, adversus, advoco, aedificium, aeger, aegre, aegrotatio, aegrus, aeneus, aequitas, aequus, aer, aestas, aestivus, aestus, aetas, aeternus, ager, aggero, aggredior, agnitio, agnosco, ago, ait, aiunt, alienus, alii, alioqui, aliqua, alius, allatus, alo, alter, altus, alveus, amaritudo, ambitus, ambulo, amicitia, amiculum, amissio, amita, amitto, amo, amor, amoveo, amplexus, amplitudo, amplus, ancilla, angelus, angulus, angustus, animadverto, animi, animus, annus, anser, ante, antea, antepono, antiquus, aperio, aperte, apostolus, apparatus, appello, appono, appositus, approbo, apto, aptus, apud, aqua, ara, aranea, arbitro, arbor, arbustum, arca, arceo, arcesso, arcus, argentum, argumentum, arguo, arma, armarium, armo, aro, ars, articulus, artificiose, arto, arx, ascisco, ascit, asper, aspicio, asporto, assentator, astrum, atavus, ater, atqui, atrocitas, atrox, attero, attollo, attonbitus, auctor, auctus, audacia, audax, audentia, audeo, audio, auditor, aufero, aureus, auris, aurum, aut, autem, autus, auxilium, avaritia, avarus, aveho, averto, avoco, baiulus, balbus, barba, bardus, basium, beatus, bellicus, bellum, bene, beneficium, benevolentia, benigne, bestia, bibo, bis, blandior, bonus, bos, brevis, cado, caecus, caelestis, caelum, calamitas, calcar, calco, calculus, callide, campana, candidus, canis, canonicus, canto, capillus, capio, capitulus, capto, caput, carbo, carcer, careo, caries, cariosus, caritas, carmen, carpo, carus, casso, caste, casus, catena, caterva, cattus, cauda, causa, caute, caveo, cavus, cedo, celebrer, celer, celo, cena, cenaculum, ceno, censura, centum, cerno, cernuus, certe, certo, certus, cervus, cetera, charisma, chirographum, cibo, cibus, cicuta, cilicium, cimentarius, ciminatio, cinis, circumvenio, cito, civis, civitas, clam, clamo, claro, clarus, claudeo, claustrum, clementia, clibanus, coadunatio, coaegresco, coepi, coerceo, cogito, cognatus, cognomen, cogo, cohaero, cohibeo, cohors, colligo, colloco, collum, colo, color, coma, combibo, comburo, comedo, comes, cometes, comis, comitatus, commemoro, comminor, commodo, communis, comparo, compello, complectus, compono, comprehendo, comptus, conatus, concedo, concido, conculco, condico, conduco, confero, confido, conforto, confugo, congregatio, conicio, coniecto, conitor, coniuratio, conor, conqueror, conscendo, conservo, considero, conspergo, constans, consuasor, contabesco, contego, contigo, contra, conturbo, conventus, convoco, copia, copiose, cornu, corona, corpus, correptius, corrigo, corroboro, corrumpo, coruscus, cotidie, crapula, cras, crastinus, creator, creber, crebro, credo, creo, creptio, crepusculum, cresco, creta, cribro, crinis, cruciamentum, crudelis, cruentus, crur, crustulum, crux, cubicularis, cubitum, cubo, cui, cuius, culpa, culpo, cultellus, cultura, cum, cunabula, cunae, cunctatio, cupiditas, cupio, cuppedia, cupressus, cur, cura, curatio, curia, curiositas, curis, curo, curriculum, currus, cursim, curso, cursus, curto, curtus, curvo, curvus, custodia, damnatio, damno, dapifer, debeo, debilito, decens, decerno, decet, decimus, decipio, decor, decretum, decumbo, dedecor, dedico, deduco, defaeco, defendo, defero, defessus, defetiscor, deficio, defigo, defleo, defluo, defungo, degenero, degero, degusto, deinde, delectatio, delego, deleo, delibero, delicate, delinquo, deludo, demens, demergo, demitto, demo, demonstro, demoror, demulceo, demum, denego, denique, dens, denuncio, denuo, deorsum, depereo, depono, depopulo, deporto, depraedor, deprecator, deprimo, depromo, depulso, deputo, derelinquo, derideo, deripio, desidero, desino, desipio, desolo, desparatus, despecto, despirmatio, infit, inflammatio, paens, patior, patria, patrocinor, patruus, pauci, paulatim, pauper, pax, peccatus, pecco, pecto, pectus, pecunia, pecus, peior, pel, ocer, socius, sodalitas, sol, soleo, solio, solitudo, solium, sollers, sollicito, solum, solus, solutio, solvo, somniculosus, somnus, sonitus, sono, sophismata, sopor, sordeo, sortitus, spargo, speciosus, spectaculum, speculum, sperno, spero, spes, spiculum, spiritus, spoliatio, sponte, stabilis, statim, statua, stella, stillicidium, stipes, stips, sto, strenuus, strues, studio, stultus, suadeo, suasoria, sub, subito, subiungo, sublime, subnecto, subseco, substantia, subvenio, succedo, succurro, sufficio, suffoco, suffragium, suggero, sui, sulum, sum, summa, summisse, summopere, sumo, sumptus, supellex, super, suppellex, supplanto, suppono, supra, surculus, surgo, sursum, suscipio, suspendo, sustineo, suus, synagoga, tabella, tabernus, tabesco, tabgo, tabula, taceo, tactus, taedium, talio, talis, talus, tam, tamdiu, tamen, tametsi, tamisium, tamquam, tandem, tantillus, tantum, tardus, tego, temeritas, temperantia, templum, temptatio, tempus, tenax, tendo, teneo, tener, tenuis, tenus, tepesco, tepidus, ter, terebro, teres, terga, tergeo, tergiversatio, tergo, tergum, termes, terminatio, tero, terra, terreo, territo, terror, tersus, tertius, testimonium, texo, textilis, textor, textus, thalassinus, theatrum, theca, thema, theologus, thermae, thesaurus, thesis, thorax, thymbra, thymum, tibi, timidus, timor, titulus, tolero, tollo, tondeo, tonsor, torqueo, torrens, tot, totidem, toties, totus, tracto, trado, traho, trans, tredecim, tremo, trepide, tres, tribuo, tricesimus, triduana, triginta, tripudio, tristis, triumphus, trucido, truculenter, tubineus, tui, tum, tumultus, tunc, turba, turbo, turpe, turpis, tutamen, tutis, tyrannus, uberrime, ubi, ulciscor, ullus, ulterius, ultio, ultra, umbra, umerus, umquam, una, unde, undique, universe, unus, urbanus, urbs, uredo, usitas, usque, ustilo, ustulo, usus, uter, uterque, utilis, utique, utor, utpote, utrimque, utroque, utrum, uxor, vaco, vacuus, vado, vae, valde, valens, valeo, valetudo, validus, vallum, vapulus, varietas, varius, vehemens, vel, velociter, velum, velut, venia, venio, ventito, ventosus, ventus, venustas, ver, verbera, verbum, vere, verecundia, vereor, vergo, veritas, vero, versus, verto, verumtamen, verus, vesco, vesica, vesper, vespillo, vester, vestigium, vestrum, vetus, via, vicinus, vicissitudo, victoria, victus, videlicet, video, viduata, viduo, vigilo, vigor, vilicus, vilis, vilitas, villa, vinco, vinculum, vindico, vinitor, vinum, vir, virga, virgo, viridis, viriliter, virtus, vis, viscus, vita, vitiosus, vitium, vito, vivo, vix, vobis, vociferor, voco, volaticus, volo, volubilis, voluntarius, volup, volutabrum, volva, vomer, vomica, vomito, vorago, vorax, voro, vos, votum, voveo, vox, vulariter, vulgaris, vulgivagus, vulgo, vulgus, vulnero, vulnus, vulpes, vulticulus, vultuosus, xiphias] + + name: + man_first_name: [Drahoslav, Severín, Alexej, Ernest, Rastislav, Radovan, Dobroslav, Dalibor, Vincent, Miloš, Timotej, Gejza, Bohuš, Alfonz, Gašpar, Emil, Erik, Blažej, Zdenko, Dezider, Arpád, Valentín, Pravoslav, Jaromír, Roman, Matej, Frederik, Viktor, Alexander, Radomír, Albín, Bohumil, Kazimír, Fridrich, Radoslav, Tomáš, Alan, Branislav, Bruno, Gregor, Vlastimil, Boleslav, Eduard, Jozef, Víťazoslav, Blahoslav, Beňadik, Adrián, Gabriel, Marián, Emanuel, Miroslav, Benjamín, Hugo, Richard, Izidor, Zoltán, Albert, Igor, Július, Aleš, Fedor, Rudolf, Valér, Marcel, Ervín, Slavomír, Vojtech, Juraj, Marek, Jaroslav, Žigmund, Florián, Roland, Pankrác, Servác, Bonifác, Svetozár, Bernard, Júlia, Urban, Dušan, Viliam, Ferdinand, Norbert, Róbert, Medard, Zlatko, Anton, Vasil, Vít, Adolf, Vratislav, Alfréd, Alojz, Ján, Tadeáš, Ladislav, Peter, Pavol, Miloslav, Prokop, Cyril, Metod, Patrik, Oliver, Ivan, Kamil, Henrich, Drahomír, Bohuslav, Iľja, Daniel, Vladimír, Jakub, Krištof, Ignác, Gustáv, Jerguš, Dominik, Oskar, Vavrinec, Ľubomír, Mojmír, Leonard, Tichomír, Filip, Bartolomej, Ľudovít, Samuel, Augustín, Belo, Oleg, Bystrík, Ctibor, Ľudomil, Konštantín, Ľuboslav, Matúš, Móric, Ľuboš, Ľubor, Vladislav, Cyprián, Václav, Michal, Jarolím, Arnold, Levoslav, František, Dionýz, Maximilián, Koloman, Boris, Lukáš, Kristián, Vendelín, Sergej, Aurel, Demeter, Denis, Hubert, Karol, Imrich, René, Bohumír, Teodor, Tibor, Maroš, Martin, Svätopluk, Stanislav, Leopold, Eugen, Félix, Klement, Kornel, Milan, Vratko, Ondrej, Andrej, Edmund, Oldrich, Oto, Mikuláš, Ambróz, Radúz, Bohdan, Adam, Štefan, Dávid, Silvester] + woman_first_name: [Alexandra, Karina, Daniela, Andrea, Antónia, Bohuslava, Dáša, Malvína, Kristína, Nataša, Bohdana, Drahomíra, Sára, Zora, Tamara, Ema, Tatiana, Erika, Veronika, Agáta, Dorota, Vanda, Zoja, Gabriela, Perla, Ida, Liana, Miloslava, Vlasta, Lívia, Eleonóra, Etela, Romana, Zlatica, Anežka, Bohumila, Františka, Angela, Matilda, Svetlana, Ľubica, Alena, Soňa, Vieroslava, Zita, Miroslava, Irena, Milena, Estera, Justína, Dana, Danica, Jela, Jaroslava, Jarmila, Lea, Anastázia, Galina, Lesana, Hermína, Monika, Ingrida, Viktória, Blažena, Žofia, Sofia, Gizela, Viola, Gertrúda, Zina, Júlia, Juliana, Želmíra, Ela, Vanesa, Iveta, Vilma, Petronela, Žaneta, Xénia, Karolína, Lenka, Laura, Stanislava, Margaréta, Dobroslava, Blanka, Valéria, Paulína, Sidónia, Adriána, Beáta, Petra, Melánia, Diana, Berta, Patrícia, Lujza, Amália, Milota, Nina, Margita, Kamila, Dušana, Magdaléna, Oľga, Anna, Hana, Božena, Marta, Libuša, Božidara, Dominika, Hortenzia, Jozefína, Štefánia, Ľubomíra, Zuzana, Darina, Marcela, Milica, Elena, Helena, Lýdia, Anabela, Jana, Silvia, Nikola, Ružena, Nora, Drahoslava, Linda, Melinda, Rebeka, Rozália, Regína, Alica, Marianna, Miriama, Martina, Mária, Jolana, Ľudomila, Ľudmila, Olympia, Eugénia, Ľuboslava, Zdenka, Edita, Michaela, Stela, Viera, Natália, Eliška, Brigita, Valentína, Terézia, Vladimíra, Hedviga, Uršuľa, Alojza, Kvetoslava, Sabína, Dobromila, Klára, Simona, Aurélia, Denisa, Renáta, Irma, Agnesa, Klaudia, Alžbeta, Elvíra, Cecília, Emília, Katarína, Henrieta, Bibiána, Barbora, Marína, Izabela, Hilda, Otília, Lucia, Branislava, Bronislava, Ivica, Albína, Kornélia, Sláva, Slávka, Judita, Dagmara, Adela, Nadežda, Eva, Filoména, Ivana, Milada] + man_last_name: [Antal, Babka, Bahna, Bahno, Baláž, Baran, Baranka, Bartovič, Bartoš, Bača, Bernolák, Beňo, Bicek, Bielik, Blaho, Bondra, Bosák, Boška, Brezina, Bukovský, Chalupka, Chudík, Cibula, Cibulka, Cibuľa, Cyprich, Cíger, Danko, Daňko, Daňo, Debnár, Dej, Dekýš, Doležal, Dočolomanský, Droppa, Dubovský, Dudek, Dula, Dulla, Dusík, Dvonč, Dzurjanin, Dávid, Fabian, Fabián, Fajnor, Farkašovský, Fico, Filc, Filip, Finka, Ftorek, Gašpar, Gašparovič, Gocník, Gregor, Greguš, Grznár, Hablák, Habšuda, Halda, Haluška, Halák, Hanko, Hanzal, Haščák, Heretik, Hečko, Hlaváček, Hlinka, Holub, Holuby, Hossa, Hoza, Hraško, Hric, Hrmo, Hrušovský, Huba, Ihnačák, Janeček, Janoška, Jantošovič, Janík, Janček, Jedľovský, Jendek, Jonata, Jurina, Jurkovič, Jurík, Jánošík, Kafenda, Kaliský, Karul, Keníž, Klapka, Kmeť, Kolesár, Kollár, Kolnik, Kolník, Kolár, Korec, Kostka, Kostrec, Kováč, Kováčik, Koza, Kočiš, Krajíček, Krajči, Krajčo, Krajčovič, Krajčír, Králik, Krúpa, Kubík, Kyseľ, Kállay, Labuda, Lepšík, Lipták, Lisický, Lubina, Lukáč, Lupták, Líška, Madej, Majeský, Malachovský, Malíšek, Mamojka, Marcinko, Marián, Masaryk, Maslo, Matiaško, Medveď, Melcer, Mečiar, Michalík, Mihalik, Mihál, Mihálik, Mikloško, Mikulík, Mikuš, Mikúš, Milota, Mináč, Mišík, Mojžiš, Mokroš, Mora, Moravčík, Mydlo, Nemec, Nitra, Novák, Obšut, Ondruš, Otčenáš, Pauko, Pavlikovský, Pavúk, Pašek, Paška, Paško, Pelikán, Petrovický, Petruška, Peško, Plch, Plekanec, Podhradský, Podkonický, Poliak, Pupák, Rak, Repiský, Romančík, Rus, Ružička, Rybníček, Rybár, Rybárik, Samson, Sedliak, Senko, Sklenka, Skokan, Skutecký, Slašťan, Sloboda, Slobodník, Slota, Slovák, Smrek, Stodola, Straka, Strnisko, Svrbík, Sámel, Sýkora, Tatar, Tatarka, Tatár, Tatárka, Thomka, Tomeček, Tomka, Tomko, Truben, Turčok, Uram, Urblík, Vajcík, Vajda, Valach, Valachovič, Valent, Valuška, Vanek, Vesel, Vicen, Višňovský, Vlach, Vojtek, Vydarený, Zajac, Zima, Zimka, Záborský, Zúbrik, Čapkovič, Čaplovič, Čarnogurský, Čierny, Čobrda, Ďaďo, Ďurica, Ďuriš, Šidlo, Šimonovič, Škriniar, Škultéty, Šmajda, Šoltés, Šoltýs, Štefan, Štefanka, Šulc, Šurka, Švehla, Šťastný] + woman_last_name: [Antalová, Babková, Bahnová, Balážová, Baranová, Baranková, Bartovičová, Bartošová, Bačová, Bernoláková, Beňová, Biceková, Bieliková, Blahová, Bondrová, Bosáková, Bošková, Brezinová, Bukovská, Chalupková, Chudíková, Cibulová, Cibulková, Cyprichová, Cígerová, Danková, Daňková, Daňová, Debnárová, Dejová, Dekýšová, Doležalová, Dočolomanská, Droppová, Dubovská, Dudeková, Dulová, Dullová, Dusíková, Dvončová, Dzurjaninová, Dávidová, Fabianová, Fabiánová, Fajnorová, Farkašovská, Ficová, Filcová, Filipová, Finková, Ftoreková, Gašparová, Gašparovičová, Gocníková, Gregorová, Gregušová, Grznárová, Habláková, Habšudová, Haldová, Halušková, Haláková, Hanková, Hanzalová, Haščáková, Heretiková, Hečková, Hlaváčeková, Hlinková, Holubová, Holubyová, Hossová, Hozová, Hrašková, Hricová, Hrmová, Hrušovská, Hubová, Ihnačáková, Janečeková, Janošková, Jantošovičová, Janíková, Jančeková, Jedľovská, Jendeková, Jonatová, Jurinová, Jurkovičová, Juríková, Jánošíková, Kafendová, Kaliská, Karulová, Kenížová, Klapková, Kmeťová, Kolesárová, Kollárová, Kolniková, Kolníková, Kolárová, Korecová, Kostkaová, Kostrecová, Kováčová, Kováčiková, Kozová, Kočišová, Krajíčeková, Krajčová, Krajčovičová, Krajčírová, Králiková, Krúpová, Kubíková, Kyseľová, Kállayová, Labudová, Lepšíková, Liptáková, Lisická, Lubinová, Lukáčová, Luptáková, Líšková, Madejová, Majeská, Malachovská, Malíšeková, Mamojková, Marcinková, Mariánová, Masaryková, Maslová, Matiašková, Medveďová, Melcerová, Mečiarová, Michalíková, Mihaliková, Mihálová, Miháliková, Miklošková, Mikulíková, Mikušová, Mikúšová, Milotová, Mináčová, Mišíková, Mojžišová, Mokrošová, Morová, Moravčíková, Mydlová, Nemcová, Nováková, Obšutová, Ondrušová, Otčenášová, Pauková, Pavlikovská, Pavúková, Pašeková, Pašková, Pelikánová, Petrovická, Petrušková, Pešková, Plchová, Plekanecová, Podhradská, Podkonická, Poliaková, Pupáková, Raková, Repiská, Romančíková, Rusová, Ružičková, Rybníčeková, Rybárová, Rybáriková, Samsonová, Sedliaková, Senková, Sklenková, Skokanová, Skutecká, Slašťanová, Slobodová, Slobodníková, Slotová, Slováková, Smreková, Stodolová, Straková, Strnisková, Svrbíková, Sámelová, Sýkorová, Tatarová, Tatarková, Tatárová, Tatárkaová, Thomková, Tomečeková, Tomková, Trubenová, Turčoková, Uramová, Urblíková, Vajcíková, Vajdová, Valachová, Valachovičová, Valentová, Valušková, Vaneková, Veselová, Vicenová, Višňovská, Vlachová, Vojteková, Vydarená, Zajacová, Zimová, Zimková, Záborská, Zúbriková, Čapkovičová, Čaplovičová, Čarnogurská, Čierná, Čobrdová, Ďaďová, Ďuricová, Ďurišová, Šidlová, Šimonovičová, Škriniarová, Škultétyová, Šmajdová, Šoltésová, Šoltýsová, Štefanová, Štefanková, Šulcová, Šurková, Švehlová, Šťastná] + prefix: [Ing., Mgr., JUDr., MUDr.] + suffix: [Phd.] + title: + descriptor: [Lead, Senior, Direct, Corporate, Dynamic, Future, Product, National, Regional, District, Central, Global, Customer, Investor, Dynamic, International, Legacy, Forward, Internal, Human, Chief, Principal] + level: [Solutions, Program, Brand, Security, Research, Marketing, Directives, Implementation, Integration, Functionality, Response, Paradigm, Tactics, Identity, Markets, Group, Division, Applications, Optimization, Operations, Infrastructure, Intranet, Communications, Web, Branding, Quality, Assurance, Mobility, Accounts, Data, Creative, Configuration, Accountability, Interactions, Factors, Usability, Metrics] + job: [Supervisor, Associate, Executive, Liaison, Officer, Manager, Engineer, Specialist, Director, Coordinator, Administrator, Architect, Analyst, Designer, Planner, Orchestrator, Technician, Developer, Producer, Consultant, Assistant, Facilitator, Agent, Representative, Strategist] + name: + - "#{prefix} #{man_first_name} #{man_last_name}" + - "#{prefix} #{woman_first_name} #{woman_last_name}" + - "#{man_first_name} #{man_last_name} #{suffix}" + - "#{woman_first_name} #{woman_last_name} #{suffix}" + - "#{man_first_name} #{man_last_name}" + - "#{man_first_name} #{man_last_name}" + - "#{man_first_name} #{man_last_name}" + - "#{woman_first_name} #{woman_last_name}" + - "#{woman_first_name} #{woman_last_name}" + - "#{woman_first_name} #{woman_last_name}" + + phone_number: + formats: ['09## ### ###', '0## #### ####', '0# #### ####', '+421 ### ### ###'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sv.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sv.yml new file mode 100644 index 0000000..2fa926a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/sv.yml @@ -0,0 +1,76 @@ + +sv: + faker: + address: + city_prefix: [Söder, Norr, Väst, Öster, Aling, Ar, Av, Bo, Br, Bå, Ek, En, Esk, Fal, Gäv, Göte, Ha, Helsing, Karl, Krist, Kram, Kung, Kö, Lyck, Ny] + city_suffix: [stad, land, sås, ås, holm, tuna, sta, berg, löv, borg, mora, hamn, fors, köping, by, hult, torp, fred, vik] + country: [Ryssland, Kanada, Kina, USA, Brasilien, Australien, Indien, Argentina, Kazakstan, Algeriet, DR Kongo, Danmark, Färöarna, Grönland, Saudiarabien, Mexiko, Indonesien, Sudan, Libyen, Iran, Mongoliet, Peru, Tchad, Niger, Angola, Mali, Sydafrika, Colombia, Etiopien, Bolivia, Mauretanien, Egypten, Tanzania, Nigeria, Venezuela, Namibia, Pakistan, Moçambique, Turkiet, Chile, Zambia, Marocko, Västsahara, Burma, Afghanistan, Somalia, Centralafrikanska republiken, Sydsudan, Ukraina, Botswana, Madagaskar, Kenya, Frankrike, Franska Guyana, Jemen, Thailand, Spanien, Turkmenistan, Kamerun, Papua Nya Guinea, Sverige, Uzbekistan, Irak, Paraguay, Zimbabwe, Japan, Tyskland, Kongo, Finland, Malaysia, Vietnam, Norge, Svalbard, Jan Mayen, Elfenbenskusten, Polen, Italien, Filippinerna, Ecuador, Burkina Faso, Nya Zeeland, Gabon, Guinea, Storbritannien, Ghana, Rumänien, Laos, Uganda, Guyana, Oman, Vitryssland, Kirgizistan, Senegal, Syrien, Kambodja, Uruguay, Tunisien, Surinam, Nepal, Bangladesh, Tadzjikistan, Grekland, Nicaragua, Eritrea, Nordkorea, Malawi, Benin, Honduras, Liberia, Bulgarien, Kuba, Guatemala, Island, Sydkorea, Ungern, Portugal, Jordanien, Serbien, Azerbajdzjan, Österrike, Förenade Arabemiraten, Tjeckien, Panama, Sierra Leone, Irland, Georgien, Sri Lanka, Litauen, Lettland, Togo, Kroatien, Bosnien och Hercegovina, Costa Rica, Slovakien, Dominikanska republiken, Bhutan, Estland, Danmark, Färöarna, Grönland, Nederländerna, Schweiz, Guinea-Bissau, Taiwan, Moldavien, Belgien, Lesotho, Armenien, Albanien, Salomonöarna, Ekvatorialguinea, Burundi, Haiti, Rwanda, Makedonien, Djibouti, Belize, Israel, El Salvador, Slovenien, Fiji, Kuwait, Swaziland, Timor-Leste, Montenegro, Bahamas, Vanuatu, Qatar, Gambia, Jamaica, Kosovo, Libanon, Cypern, Brunei, Trinidad och Tobago, Kap Verde, Samoa, Luxemburg, Komorerna, Mauritius, São Tomé och Príncipe, Kiribati, Dominica, Tonga, Mikronesiens federerade stater, Singapore, Bahrain, Saint Lucia, Andorra, Palau, Seychellerna, Antigua och Barbuda, Barbados, Saint Vincent och Grenadinerna, Grenada, Malta, Maldiverna, Saint Kitts och Nevis, Marshallöarna, Liechtenstein, San Marino, Tuvalu, Nauru, Monaco, Vatikanstaten] + + common_street_suffix: ["s Väg", "s Gata"] + street_prefix: [Västra, Östra, Norra, Södra, Övre, Undre] + street_root: [Björk, Järnvägs, Ring, Skol, Skogs, Ny, Gran, Idrotts, Stor, Kyrk, Industri, Park, Strand, Skol, Trädgård, Ängs, Kyrko, Villa, Ek, Kvarn, Stations, Back, Furu, Gen, Fabriks, Åker, Bäck, Asp] + street_suffix: [vägen, gatan, gränden, gärdet, allén] + state: [Blekinge, Dalarna, Gotland, Gävleborg, Göteborg, Halland, Jämtland, Jönköping, Kalmar, Kronoberg, Norrbotten, Skaraborg, Skåne, Stockholm, Södermanland, Uppsala, Värmland, Västerbotten, Västernorrland, Västmanland, Älvsborg, Örebro, Östergötland] + + city: + - "#{city_prefix}#{city_suffix}" + street_name: + - "#{street_root}#{street_suffix}" + - "#{street_prefix} #{street_root}#{street_suffix}" + - "#{Name.first_name}#{common_street_suffix}" + - "#{Name.last_name}#{common_street_suffix}" + postcode: ['#####'] + building_number: ['###', '##', '#'] + secondary_address: ['Lgh. ###', 'Hus ###'] + street_address: + - "#{street_name} #{building_number}" + default_country: [Sverige] + + company: + suffix: ["Gruppen", "AB", "HB", "Group", "Investment", "Kommanditbolag", "Aktiebolag"] + name: + - "#{Name.last_name} #{suffix}" + - "#{Name.last_name}-#{Name.last_name}" + - "#{Name.last_name}, #{Name.last_name} #{suffix}" + + internet: + domain_suffix: [se, nu, info, com, org] + + name: + first_name_women: [Maria, Anna, Margareta, Elisabeth, Eva, Birgitta, Kristina, Karin, Elisabet, Marie] + first_name_men: [Erik, Lars, Karl, Anders, Per, Johan, Nils, Lennart, Emil, Hans ] + last_name: [Johansson, Andersson, Karlsson, Nilsson, Eriksson, Larsson, Olsson, Persson, Svensson, Gustafsson] + prefix: [Dr., Prof., PhD.] + + title: + descriptor: [Lead, Senior, Direct, Corporate, Dynamic, Future, Product, National, Regional, District, Central, Global, Customer, Investor, Dynamic, International, Legacy, Forward, Internal, Human, Chief, Principal] + level: [Solutions, Program, Brand, Security, Research, Marketing, Directives, Implementation, Integration, Functionality, Response, Paradigm, Tactics, Identity, Markets, Group, Division, Applications, Optimization, Operations, Infrastructure, Intranet, Communications, Web, Branding, Quality, Assurance, Mobility, Accounts, Data, Creative, Configuration, Accountability, Interactions, Factors, Usability, Metrics] + job: [Supervisor, Associate, Executive, Liaison, Officer, Manager, Engineer, Specialist, Director, Coordinator, Administrator, Architect, Analyst, Designer, Planner, Orchestrator, Technician, Developer, Producer, Consultant, Assistant, Facilitator, Agent, Representative, Strategist] + name: + - "#{first_name_women} #{last_name}" + - "#{first_name_men} #{last_name}" + - "#{first_name_women} #{last_name}" + - "#{first_name_men} #{last_name}" + - "#{first_name_women} #{last_name}" + - "#{first_name_men} #{last_name}" + - "#{prefix} #{first_name_men} #{last_name}" + - "#{prefix} #{first_name_women} #{last_name}" + + phone_number: + formats: ['####-#####', '####-######'] + cell_phone: + common_cell_prefix: [070, 076, 073] + formats: ['#{common_cell_prefix}-###-####'] + + commerce: + color: [vit, silver, grå, svart, röd, grön, blå, gul, lila, indigo, guld, brun, rosa, purpur, korall] + department: ["Böcker", "Filmer", "Musik", "Spel", "Elektronik", "Datorer", "Hem", "Trädgård", "Verktyg", "Livsmedel", "Hälsa", "Skönhet", "Leksaker", "Klädsel", "Skor", "Smycken", "Sport"] + product_name: + adjective: [Liten, Ergonomisk, Robust, Intelligent, Söt, Otrolig, Fatastisk, Praktisk, Slimmad, Grym, Enorm, Mediokra, Synergistic, Tung, Lätt, Aerodynamisk, Tålig] + material: [Stål, Metall, Trä, Betong, Plast, Bomul, Grnit, Gummi, Latex, Läder , Silke, Ull, Linne, Marmor, Järn, Brons, Koppar, Aluminium, Papper] + product: [Stol, Bil, Dator, Handskar, Pants, Shirt, Table, Shoes, Hat, Plate, Kniv, Flaska, Coat, Lampa. Tangentbord, Bag, Bänk, Klocka, Titta, Plånbok] + + team: + suffix: [IF, FF, BK, HK, AIF, SK, FC, SK, BoIS, FK, BIS, FIF, IK] + name: + - "#{Address.city} #{suffix}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/uk.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/uk.yml new file mode 100644 index 0000000..71a9084 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/uk.yml @@ -0,0 +1,75 @@ +uk: + faker: + separator: " та " + address: + country: [Австралія, Австрія, Азербайджан, Албанія, Алжир, Ангола, Андорра, Антигуа і Барбуда, Аргентина, Афганістан, Багамські Острови, Бангладеш, Барбадос, Бахрейн, Беліз, Бельгія, Бенін, Білорусь, Болгарія, Болівія, Боснія і Герцеговина, Ботсвана, Бразилія, Бруней, Буркіна-Фасо, Бурунді, Бутан, В’єтнам, Вануату, Ватикан, Велика Британія, Венесуела, Вірменія, Габон, Гаїті, Гайана, Гамбія, Гана, Гватемала, Гвінея, Гвінея-Бісау, Гондурас, Гренада, Греція, Грузія, Данія, Демократична Республіка Конго, Джибуті, Домініка, Домініканська Республіка, Еквадор, Екваторіальна Гвінея, Еритрея, Естонія, Ефіопія, Єгипет, Ємен, Замбія, Зімбабве, Ізраїль, Індія, Індонезія, Ірак, Іран, Ірландія, Ісландія, Іспанія, Італія, Йорданія, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Киргизстан, Китай, Кіпр, Кірибаті, Колумбія, Коморські Острови, Конго, Коста-Рика, "Кот-д’Івуар", Куба, Кувейт, Лаос, Латвія, Лесото, Литва, Ліберія, Ліван, Лівія, Ліхтенштейн, Люксембург, Маврикій, Мавританія, Мадаґаскар, Македонія, Малаві, Малайзія, Малі, Мальдіви, Мальта, Марокко, Маршаллові Острови, Мексика, Мозамбік, Молдова, Монако, Монголія, Намібія, Науру, Непал, Нігер, Нігерія, Нідерланди, Нікарагуа, Німеччина, Нова Зеландія, Норвегія, "Об’єднані Арабські Емірати", Оман, Пакистан, Палау, Панама, Папуа-Нова Гвінея, Парагвай, Перу, Південна Корея, Південний Судан, Південно-Африканська Республіка, Північна Корея, Польща, Португалія, Російська Федерація, Руанда, Румунія, Сальвадор, Самоа, Сан-Марино, Сан-Томе і Принсіпі, Саудівська Аравія, Свазіленд, Сейшельські Острови, Сенеґал, Сент-Вінсент і Гренадини, Сент-Кітс і Невіс, Сент-Люсія, Сербія, Сирія, Сінгапур, Словаччина, Словенія, Соломонові Острови, Сомалі, Судан, Суринам, Східний Тимор, США, Сьєрра-Леоне, Таджикистан, Таїланд, Танзанія, Того, Тонга, Тринідад і Тобаго, Тувалу, Туніс, Туреччина, Туркменістан, Уганда, Угорщина, Узбекистан, Україна, Уругвай, Федеративні Штати Мікронезії, Фіджі, Філіппіни, Фінляндія, Франція, Хорватія, Центральноафриканська Республіка, Чад, Чехія, Чилі, Чорногорія, Швейцарія, Швеція, Шрі-Ланка, Ямайка, Японія] + building_number: ['#', '##', '1##'] + masculine_street_prefix: ['пр.', 'проспект', 'пров.', 'провулок'] + feminine_street_prefix: ['вул.', 'вулиця', 'пл.', 'площа'] + street_prefix: ['вул.', 'вулиця', 'пр.', 'проспект', 'пл.', 'площа', 'пров.', 'провулок'] + street_suffix: "" + secondary_address: ['кв. #', 'кв. ##', 'кв. ###'] + postcode: ['#####'] + state: [АР Крим, Вінницька область, Волинська область, Дніпропетровська область, Донецька область, Житомирська область, Закарпатська область, Запорізька область, Івано-Франківська область, Київська область, Кіровоградська область, Луганська область, Львівська область, Миколаївська область, Одеська область, Полтавська область, Рівненська область, Сумська область, Тернопільська область, Харківська область, Херсонська область, Хмельницька область, Черкаська область, Чернівецька область, Чернігівська область, Київ, Севастополь] + state_abbr: "" + street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Нижанківського, Староміська, Ліста, Вічева, Брюховичів, Винників, Рудного, Коліївщини] + masculine_street_title: [Нижанківського, Ліста, Вічева, Рудного] + feminine_street_title: [Зелена, Молодіжна, Городоцька, Стрийська, Вузька, Староміська] + city_name: [Алчевськ, Артемівськ, Бердичів, Бердянськ, Біла Церква, Бровари, Вінниця, Горлівка, Дніпродзержинськ, Дніпропетровськ, Донецьк, Євпаторія, Єнакієве, Житомир, Запоріжжя, Івано-Франківськ, Ізмаїл, Кам’янець-Подільський, Керч, Київ, Кіровоград, Конотоп, Краматорськ, Красний Луч, Кременчук, Кривий Ріг, Лисичанськ, Луганськ, Луцьк, Львів, Макіївка, Маріуполь, Мелітополь, Миколаїв, Мукачеве, Нікополь, Одеса, Олександрія, Павлоград, Полтава, Рівне, Севастополь, Сєвєродонецьк, Сімферополь, Слов’янськ, Суми, Тернопіль, Ужгород, Умань, Харків, Херсон, Хмельницький, Черкаси, Чернівці, Чернігів, Шостка, Ялта] + city_prefix: "" + city_suffix: "" + city: + - "#{city_name}" + street_name: + - "#{feminine_street_prefix} #{feminine_street_title}" + - "#{masculine_street_prefix} #{masculine_street_title}" + street_address: + - "#{street_name}, #{building_number}" + default_country: [Україна] + + internet: + free_email: [ukr.net, ex.ua, e-mail.ua, i.ua, meta.ua, yandex.ua, gmail.com] + domain_suffix: [cherkassy.ua, cherkasy.ua, ck.ua, cn.ua, com.ua, crimea.ua, cv.ua, dn.ua, dnepropetrovsk.ua, dnipropetrovsk.ua, donetsk.ua, dp.ua, if.ua, in.ua, ivano-frankivsk.ua, kh.ua, kharkiv.ua, kharkov.ua, kherson.ua, khmelnitskiy.ua, kiev.ua, kirovograd.ua, km.ua, kr.ua, ks.ua, lg.ua, lt.ua, lugansk.ua, lutsk.ua, lutsk.net, lviv.ua, mk.ua, net.ua, nikolaev.ua, od.ua, odessa.ua, org.ua, pl.ua, pl.ua, poltava.ua, rovno.ua, rv.ua, sebastopol.ua, sm.ua, sumy.ua, te.ua, ternopil.ua, ua, uz.ua, uzhgorod.ua, vinnica.ua, vn.ua, volyn.net, volyn.ua, yalta.ua, zaporizhzhe.ua, zhitomir.ua, zp.ua, zt.ua, укр] + + name: + male_first_name: &male_first_name [Августин, Аврелій, Адам, Адріян, Азарій, Алевтин, Альберт, Анастас, Анастасій, Анатолій, Андрій, Антін, Антон, Антоній, Аркадій, Арсен, Арсеній, Артем, Архип, Аскольд, Афанасій, Біломир, Білослав, Богдан, Божемир, Божен, Болеслав, Боримир, Боримисл, Борис, Борислав, Братимир, Братислав, Братомил, Братослав, Брячислав, Будимир, Буйтур, Буревіст, В’ячеслав, Вадим, Валентин, Валерій, Василь, Велемир, Віктор, Віталій, Влад, Владислав, Володимир, Володислав, Всевлад, Всеволод, Всеслав, Гаврило, Гарнослав, Геннадій, Георгій, Герасим, Гліб, Гнат, Гордій, Горимир, Горислав, Градимир, Григорій, Далемир, Данило, Дарій, Даромир, Денис, Дмитро, Добромир, Добромисл, Доброслав, Євген, Єремій, Захар, Захарій, Зборислав, Звенигор, Звенимир, Звенислав, Земислав, Зеновій, Зиновій, Злат, Златомир, Зоремир, Зореслав, Зорян, Іван, Ігор, Ізяслав, Ілля, Кий, Корнелій, Корнилій, Корнило, Корній, Костянтин, Кузьма, Лаврентій, Лаврін, Лад, Ладислав, Ладо, Ладомир, Левко, Листвич, Лук’ян, Любодар, Любозар, Любомир, Макар, Максим, Мар’ян, Маркіян, Марко, Матвій, Мечислав, Микита, Микола, Мирон, Мирослав, Михайло, Мстислав, Мусій, Назар, Назарій, Натан, Немир, Нестор, Олег, Олександр, Олексій, Олелько, Олесь, Омелян, Орест, Орхип, Остап, Охрім, Павло, Панас, Пантелеймон, Петро, Пилип, Подолян, Потап, Радим, Радимир, Ратибор, Ратимир, Родіон, Родослав, Роксолан, Роман, Ростислав, Руслан, Святополк, Святослав, Семибор, Сергій, Синьоок, Славолюб, Славомир, Славута, Сніжан, Сологуб, Станіслав, Степан, Стефаній, Стожар, Тарас, Тиміш, Тимофій, Тихон, Тур, Устим, Хвалимир, Хорив, Чорнота, Щастислав, Щек, Юліан, Юрій, Юхим, Ян, Ярема, Яровид, Яромил, Яромир, Ярополк, Ярослав] + male_middle_name: [Адамович, Азарович, Алевтинович, Альбертович, Анастасович, Анатолійович, Андрійович, Антонович, Аркадійович, Арсенійович, Арсенович, Артемович, Архипович, Аскольдович, Афанасійович, Білославович, Богданович, Божемирович, Боженович, Болеславович, Боримирович, Борисович, Бориславович, Братиславович, В’ячеславович, Вадимович, Валентинович, Валерійович, Васильович, Вікторович, Віталійович, Владиславович, Володимирович, Всеволодович, Всеславович, Гаврилович, Герасимович, Георгійович, Гнатович, Гордійович, Григорійович, Данилович, Даромирович, Денисович, Дмитрович, Добромирович, Доброславович, Євгенович, Захарович, Захарійович, Збориславович, Звенимирович, Звениславович, Зеновійович, Зиновійович, Златомирович, Зореславович, Іванович, Ігорович, Ізяславович, Корнелійович, Корнилович, Корнійович, Костянтинович, Лаврентійович, Любомирович, Макарович, Максимович, Маркович, Маркіянович, Матвійович, Мечиславович, Микитович, Миколайович, Миронович, Мирославович, Михайлович, Мстиславович, Назарович, Назарійович, Натанович, Немирович, Несторович, Олегович, Олександрович, Олексійович, Олелькович, Омелянович, Орестович, Орхипович, Остапович, Охрімович, Павлович, Панасович, Пантелеймонович, Петрович, Пилипович, Радимирович, Радимович, Родіонович, Романович, Ростиславович, Русланович, Святославович, Сергійович, Славутович, Станіславович, Степанович, Стефанович, Тарасович, Тимофійович, Тихонович, Устимович, Юрійович, Юхимович, Ярославович] + male_last_name: &male_last_name [Андрухович, Бабух, Балабан, Балабух, Балакун, Балицький, Бамбула, Бандера, Барановський, Бачей, Башук, Бердник, Білич, Бондаренко, Борецький, Боровський, Борочко, Боярчук, Брицький, Бурмило, Бутько, Василин, Василишин, Васильківський, Вергун, Вередун, Верещук, Витребенько, Вітряк, Волощук, Гайдук, Гайовий, Гайчук, Галаєнко, Галатей, Галаціон, Гаман, Гамула, Ганич, Гарай, Гарун, Гладківський, Гладух, Глинський, Гнатишин, Гойко, Головець, Горбач, Гордійчук, Горовий, Городоцький, Гречко, Григоришин, Гриневецький, Гриневський, Гришко, Громико, Данилишин, Данилко, Демків, Демчишин, Дзюб’як, Дзюба, Дідух, Дмитришин, Дмитрук, Довгалевський, Дурдинець, Євенко, Євпак, Ємець, Єрмак, Забіла, Зварич, Зінкевич, Зленко, Іванишин, Іванів, Іванців, Калач, Кандиба, Карпух, Каськів, Кивач, Коваленко, Ковальський, Коломієць, Коман, Компанієць, Кононець, Кордун, Корецький, Корнїйчук, Коров’як, Коцюбинський, Кулинич, Кульчицький, Лагойда, Лазірко, Лановий, Латаний, Латанський, Лахман, Левадовський, Ликович, Линдик, Ліхно, Лобачевський, Ломовий, Луговий, Луцький, Луцьків, Лученко, Лучко, Лютий, Лящук, Магера, Мазайло, Мазило, Мазун, Майборода, Майстренко, Маковецький, Малкович, Мамій, Маринич, Марієвський, Марків, Махно, Миклашевський, Миклухо, Милославський, Михайлюк, Міняйло, Могилевський, Москаль, Москалюк, Мотрієнко, Негода, Ногачевський, Опенько, Осадко, Павленко, Павлишин, Павлів, Пагутяк, Паламарчук, Палій, Паращук, Пасічник, Пендик, Петик, Петлюра, Петренко, Петрин, Петришин, Петрів, Плаксій, Погиба, Поліщук, Пономарів, Поривай, Поривайло, Потебенько, Потоцький, Пригода, Приймак, Притула, Прядун, Розпутній, Романишин, Романів, Ромей, Роменець, Ромочко, Савицький, Саєнко, Свидригайло, Семеночко, Семещук, Сердюк, Силецький, Сідлецький, Сідляк, Сірко, Скиба, Скоропадський, Слободян, Сосюра, Сплюх, Спотикач, Стахів, Степанець, Стецьків, Стигайло, Сторожук, Сторчак, Стоян, Сучак, Сушко, Тарасюк, Тиндарей, Ткаченко, Третяк, Троян, Трублаєвський, Трясило, Трясун, Уманець, Унич, Усич, Федоришин, Хитрово, Цимбалістий, Цушко, Червоній, Шамрило, Шевченко, Шестак, Шиндарей, Шиян, Шкараба, Шудрик, Шумило, Шупик, Шухевич, Щербак, Юрчишин, Юхно, Ющик, Ющук, Яворівський, Яловий, Ялюк, Янюк, Ярмак, Яцишин, Яцьків, Ящук] + female_first_name: [Аврелія, Аврора, Агапія, Агата, Агафія, Агнеса, Агнія, Агрипина, Ада, Аделаїда, Аделіна, Адріана, Азалія, Алевтина, Аліна, Алла, Альбіна, Альвіна, Анастасія, Анастасія, Анатолія, Ангеліна, Анжела, Анна, Антонида, Антоніна, Антонія, Анфіса, Аполлінарія, Аполлонія, Аркадія, Артемія, Афанасія, Білослава, Біляна, Благовіста, Богдана, Богуслава, Божена, Болеслава, Борислава, Броніслава, В’ячеслава, Валентина, Валерія, Варвара, Василина, Вікторія, Вілена, Віленіна, Віліна, Віола, Віолетта, Віра, Віргінія, Віта, Віталіна, Влада, Владислава, Власта, Всеслава, Галина, Ганна, Гелена, Далеслава, Дана, Дарина, Дарислава, Діана, Діяна, Добринка, Добромила, Добромира, Добромисла, Доброслава, Долеслава, Доляна, Жанна, Жозефіна, Забава, Звенислава, Зінаїда, Злата, Зореслава, Зорина, Зоряна, Зоя, Іванна, Ілона, Інна, Іннеса, Ірина, Ірма, Калина, Каріна, Катерина, Квітка, Квітослава, Клавдія, Крентта, Ксенія, Купава, Лада, Лариса, Леся, Ликера, Лідія, Лілія, Любава, Любислава, Любов, Любомила, Любомира, Люборада, Любослава, Людмила, Людомила, Майя, Мальва, Мар’яна, Марина, Марічка, Марія, Марта, Меланія, Мечислава, Милодара, Милослава, Мирослава, Мілана, Мокрина, Мотря, Мстислава, Надія, Наталія, Неля, Немира, Ніна, Огняна, Оксана, Олександра, Олена, Олеся, Ольга, Ореста, Орина, Орислава, Орися, Оріяна, Павліна, Палажка, Пелагея, Пелагія, Поліна, Поляна, Потішана, Радміла, Радослава, Раїна, Раїса, Роксолана, Ромена, Ростислава, Руслана, Світлана, Святослава, Слава, Сміяна, Сніжана, Соломія, Соня, Софія, Станислава, Сюзана, Таїсія, Тамара, Тетяна, Устина, Фаїна, Февронія, Федора, Феодосія, Харитина, Христина, Христя, Юліанна, Юлія, Юстина, Юхима, Юхимія, Яна, Ярина, Ярослава] + female_middle_name: [Адамівна, Азарівна, Алевтинівна, Альбертівна, Анастасівна, Анатоліївна, Андріївна, Антонівна, Аркадіївна, Арсенівна, Арсеніївна, Артемівна, Архипівна, Аскольдівна, Афанасіївна, Білославівна, Богданівна, Божемирівна, Боженівна, Болеславівна, Боримирівна, Борисівна, Бориславівна, Братиславівна, В’ячеславівна, Вадимівна, Валентинівна, Валеріївна, Василівна, Вікторівна, Віталіївна, Владиславівна, Володимирівна, Всеволодівна, Всеславівна, Гаврилівна, Гарасимівна, Георгіївна, Гнатівна, Гордіївна, Григоріївна, Данилівна, Даромирівна, Денисівна, Дмитрівна, Добромирівна, Доброславівна, Євгенівна, Захарівна, Захаріївна, Збориславівна, Звенимирівна, Звениславівна, Зеновіївна, Зиновіївна, Златомирівна, Зореславівна, Іванівна, Ігорівна, Ізяславівна, Корнеліївна, Корнилівна, Корніївна, Костянтинівна, Лаврентіївна, Любомирівна, Макарівна, Максимівна, Марківна, Маркіянівна, Матвіївна, Мечиславівна, Микитівна, Миколаївна, Миронівна, Мирославівна, Михайлівна, Мстиславівна, Назарівна, Назаріївна, Натанівна, Немирівна, Несторівна, Олегівна, Олександрівна, Олексіївна, Олельківна, Омелянівна, Орестівна, Орхипівна, Остапівна, Охрімівна, Павлівна, Панасівна, Пантелеймонівна, Петрівна, Пилипівна, Радимирівна, Радимівна, Родіонівна, Романівна, Ростиславівна, Русланівна, Святославівна, Сергіївна, Славутівна, Станіславівна, Степанівна, Стефаніївна, Тарасівна, Тимофіївна, Тихонівна, Устимівна, Юріївна, Юхимівна, Ярославівна] + female_last_name: [Андрухович, Бабух, Балабан, Балабуха, Балакун, Балицька, Бамбула, Бандера, Барановська, Бачей, Башук, Бердник, Білич, Бондаренко, Борецька, Боровська, Борочко, Боярчук, Брицька, Бурмило, Бутько, Василишина, Васильківська, Вергун, Вередун, Верещук, Витребенько, Вітряк, Волощук, Гайдук, Гайова, Гайчук, Галаєнко, Галатей, Галаціон, Гаман, Гамула, Ганич, Гарай, Гарун, Гладківська, Гладух, Глинська, Гнатишина, Гойко, Головець, Горбач, Гордійчук, Горова, Городоцька, Гречко, Григоришина, Гриневецька, Гриневська, Гришко, Громико, Данилишина, Данилко, Демків, Демчишина, Дзюб’як, Дзюба, Дідух, Дмитришина, Дмитрук, Довгалевська, Дурдинець, Євенко, Євпак, Ємець, Єрмак, Забіла, Зварич, Зінкевич, Зленко, Іванишина, Калач, Кандиба, Карпух, Кивач, Коваленко, Ковальська, Коломієць, Коман, Компанієць, Кононець, Кордун, Корецька, Корнїйчук, Коров’як, Коцюбинська, Кулинич, Кульчицька, Лагойда, Лазірко, Ланова, Латан, Латанська, Лахман, Левадовська, Ликович, Линдик, Ліхно, Лобачевська, Ломова, Лугова, Луцька, Луцьків, Лученко, Лучко, Люта, Лящук, Магера, Мазайло, Мазило, Мазун, Майборода, Майстренко, Маковецька, Малкович, Мамій, Маринич, Марієвська, Марків, Махно, Миклашевська, Миклухо, Милославська, Михайлюк, Міняйло, Могилевська, Москаль, Москалюк, Мотрієнко, Негода, Ногачевська, Опенько, Осадко, Павленко, Павлишина, Павлів, Пагутяк, Паламарчук, Палій, Паращук, Пасічник, Пендик, Петик, Петлюра, Петренко, Петрина, Петришина, Петрів, Плаксій, Погиба, Поліщук, Пономарів, Поривай, Поривайло, Потебенько, Потоцька, Пригода, Приймак, Притула, Прядун, Розпутня, Романишина, Ромей, Роменець, Ромочко, Савицька, Саєнко, Свидригайло, Семеночко, Семещук, Сердюк, Силецька, Сідлецька, Сідляк, Сірко, Скиба, Скоропадська, Слободян, Сосюра, Сплюха, Спотикач, Степанець, Стигайло, Сторожук, Сторчак, Стоян, Сучак, Сушко, Тарасюк, Тиндарей, Ткаченко, Третяк, Троян, Трублаєвська, Трясило, Трясун, Уманець, Унич, Усич, Федоришина, Цушко, Червоній, Шамрило, Шевченко, Шестак, Шиндарей, Шиян, Шкараба, Шудрик, Шумило, Шупик, Шухевич, Щербак, Юрчишина, Юхно, Ющик, Ющук, Яворівська, Ялова, Ялюк, Янюк, Ярмак, Яцишина, Яцьків, Ящук] + first_name: *male_first_name + last_name: *male_last_name + name: + - "#{male_first_name} #{male_last_name}" + - "#{male_last_name} #{male_first_name}" + - "#{male_first_name} #{male_middle_name} #{male_last_name}" + - "#{male_last_name} #{male_first_name} #{male_middle_name}" + - "#{female_first_name} #{female_last_name}" + - "#{female_last_name} #{female_first_name}" + - "#{female_first_name} #{female_middle_name} #{female_last_name}" + - "#{female_last_name} #{female_first_name} #{female_middle_name}" + + phone_number: + formats: ['(044) ###-##-##', '(050) ###-##-##', '(063) ###-##-##', '(066) ###-##-##', '(073) ###-##-##', '(091) ###-##-##', '(092) ###-##-##', '(093) ###-##-##', '(094) ###-##-##', '(095) ###-##-##', '(096) ###-##-##', '(097) ###-##-##', '(098) ###-##-##', '(099) ###-##-##'] + cell_phone: + formats: ['(044) ###-##-##', '(050) ###-##-##', '(063) ###-##-##', '(066) ###-##-##', '(073) ###-##-##', '(091) ###-##-##', '(092) ###-##-##', '(093) ###-##-##', '(094) ###-##-##', '(095) ###-##-##', '(096) ###-##-##', '(097) ###-##-##', '(098) ###-##-##', '(099) ###-##-##'] + + commerce: + color: [абрикосовий, аквамариновий, амарантовий, аметистовий, багряний, багряний, баклажановий, барвінковий, бежевий, блаватний, блакитний, блакитно-зелений, блакитно-фіолетовий, блідо-брунатний, блідо-волошковий, блідо-карміновий, блідо-каштановий, блідо-пурпурний, блідо-пісочний, блідо-рожевий, болотний, бронзовий, брунатний, брунатно-малиновий, бузковий, бурий, бурштиновий, білий, бірюзовий, бірюзовий, волошковий, гарбузовий, голубий, гірчичний, джинсовий, жовтий, жовто-зелений, жовто-коричневий, жовто-персиковий, зелений, зеленувато-блакитний, золотаво-березовий, золотий, золотисто-каштановий, каштановий, кобальтовий, кораловий, кремовий, кукурудзяний, лазуровий, лазурово-синій, латунний, лимонний, лимонно-кремовий, ліловий, малахітовий, малиновий, морквяний, мідний, м’ятний, небесно-блакитний, нефритовий, ніжно-блакитний, ніжно-рожевий, оливковий, опівнічно-синій, оранжево-рожевий, пастельно-зелений, пастельно-рожевий, персиковий, помаранчевий, помаранчево-персиковий, пурпурний, пшеничний, рожевий, рожево-ліловий, салатовий, сапфіровий, світло-синій, сиваво-зелений, синьо-фіолетовий, синій, сливовий, смарагдовий, срібний, сірий, темно-брунатний, темно-бірюзовий, темно-зелений, темно-золотий, темно-карміновий, темно-каштановий, темно-кораловий, темно-лососевий, темно-мандариновий, темно-оливковий, темно-персиковий, темно-рожевий, темно-синій, темно-фіолетовий, фіолетовий, червоний, червоно-коричневий, червоно-пурпурний, чорний, шафрановий, шоколадний, яскраво-бурштиновий, яскраво-бірюзовий, яскраво-зелений, яскраво-рожевий, яскраво-фіолетовий, ясно-брунатний, ясно-вишневий] + department: ["Книги", "Фільми", "Музика", "Ігри", "Електроніка", "Комп’ютери", "Дім", "Садові інструменти", "Бакалія", "Здоров’я", "Краса", "Іграшки", "Для дітей", "Для немовлят", "Одяг", "Взуття", "Прикраси", "Спорт", "Туризм", "Для автомобілів", "Промислові інструменти"] + product_name: + adjective: [маленький, ергономічний, грубий, інтелектуальний, прекрасний, неймовірний, фантастичний, практичний, блискучий, вражаючий, величезний, важкий, легкий, аеродинамічний, міцний] + material: [стальний, дерев’яний, бетонний, пластиковий, бавовняний, гранітний, гумовий, шкіряний, шовковий, шерстяний, мармуровий, бронзовий, мідний, алюмінієвий, паперовий] + product: [стілець, автомобіль, комп’ютер, берет, кулон, стіл, светр, ремінь, ніж, піджак, годинник, гаманець, планшет, телефон, телевізор, стіл, холодильник, радіатор, молоток, унітаз, диван] + + company: + prefix: [ТОВ, ПАТ, ПрАТ, ТДВ, КТ, ПТ, ДП, ФОП] + suffix: [постач, торг, пром, трейд, збут] + product: [вапняк, камінь, цемент, бурштин, пісок, метал, мазут, бітум, цегла, скло, дерево] + name: + - "#{prefix} #{Name.female_first_name}" + - "#{prefix} #{Name.male_first_name}" + - "#{prefix} #{Name.male_last_name}" + - "#{prefix} #{Address.city_name}#{product}#{suffix}" + - "#{prefix} #{Address.city_name}#{suffix}" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/vi.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/vi.yml new file mode 100644 index 0000000..f4a2ca7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/vi.yml @@ -0,0 +1,63 @@ +# encoding: UTF-8 +vi: + faker: + address: + city_root: ["Bắc Giang", "Bắc Kạn", "Bắc Ninh", "Cao Bằng", "Điện Biên", "Hà Giang", "Hà Nam", "Hà Tây", + "Hải Dương", "TP Hải Phòng", "Hòa Bình", "Hưng Yên", "Lai Châu", "Lào Cai", "Lạng Sơn", "Nam Định", + "Ninh Bình", "Phú Thọ", "Quảng Ninh", "Sơn La", "Thái Bình", "Thái Nguyên", "Tuyên Quang", "Vĩnh Phúc", + "Yên Bái", "TP Đà Nẵng", "Bình Định", "Đắk Lắk", "Đắk Nông", "Gia Lai", "Hà Tĩnh", "Khánh Hòa", "Kon Tum", + "Nghệ An", "Phú Yên", "Quảng Bình", "Quảng Nam", "Quảng Ngãi", "Quảng Trị", "Thanh Hóa", "Thừa Thiên Huế", + "TP TP. Hồ Chí Minh", "An Giang", "Bà Rịa Vũng Tàu", "Bạc Liêu", "Bến Tre", "Bình Dương", "Bình Phước", + "Bình Thuận", "Cà Mau", "TP Cần Thơ", "Đồng Nai", "Đồng Tháp", "Hậu Giang", "Kiên Giang", "Lâm Đồng", + "Long An", "Ninh Thuận", "Sóc Trăng", "Tây Ninh", "Tiền Giang", "Trà Vinh", "Vĩnh Long"] + city: + - "#{city_root}" + postcode: /[A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}/ + county: ["Avon", "Bedfordshire", "Berkshire", "Borders", "Buckinghamshire", "Cambridgeshire", "Central", + "Cheshire", "Cleveland", "Clwyd", "Cornwall", "County Antrim", "County Armagh", "County Down", + "County Fermanagh", "County Londonderry", "County Tyrone", "Cumbria", "Derbyshire", "Devon", + "Dorset", "Dumfries and Galloway", "Durham", "Dyfed", "East Sussex", "Essex", "Fife", "Gloucestershire", + "Grampian", "Greater Manchester", "Gwent", "Gwynedd County", "Hampshire", "Herefordshire", "Hertfordshire", + "Highlands and Islands", "Humberside", "Isle of Wight", "Kent", "Lancashire", "Leicestershire", "Lincolnshire", + "Lothian", "Merseyside", "Mid Glamorgan", "Norfolk", "North Yorkshire", "Northamptonshire", "Northumberland", + "Nottinghamshire", "Oxfordshire", "Powys", "Rutland", "Shropshire", "Somerset", "South Glamorgan", "South Yorkshire", + "Staffordshire", "Strathclyde", "Suffolk", "Surrey", "Tayside", "Tyne and Wear", "Việt Nam", "Warwickshire", + "West Glamorgan", "West Midlands", "West Sussex", "West Yorkshire", "Wiltshire", "Worcestershire"] + default_country: ["Việt Nam"] + internet: + domain_suffix: [com, net, info, vn, com.vn] + phone_number: + formats: ['01#### #####', '01### ######', '01#1 ### ####', '011# ### ####', '02# #### ####', '03## ### ####', '055 #### ####', '056 #### ####', '0800 ### ####', '08## ### ####', '09## ### ####', '016977 ####', '01### #####', '0500 ######', '0800 ######'] + cell_phone: + formats: ['074## ######', '075## ######', '076## ######', '077## ######', '078## ######', '079## ######'] + name: + first_name: ["Phạm", "Nguyễn", "Trần", "Lê", "Lý", "Hoàng", "Phan", "Vũ", "Tăng", + "Đặng", "Bùi", "Đỗ", "Hồ", "Ngô", "Dương", "Đào", "Đoàn", "Vương", + "Trịnh", "Đinh", "Lâm", "Phùng", "Mai", "Tô", "Trương", "Hà"] + last_name: ["Nam", "Trung", "Thanh", "Thị", "Văn", "Dương", "Tăng", "Quốc", "Như", + "Phạm", "Nguyễn", "Trần", "Lê", "Lý", "Hoàng", "Phan", "Vũ", "Tăng", + "Đặng", "Bùi", "Đỗ", "Hồ", "Ngô", "Dương", "Đào", "Đoàn", "Vương", + "Trịnh", "Đinh", "Lâm", "Phùng", "Mai", "Tô", "Trương", "Hà", + "Vinh", "Nhung", "Hòa", "Tiến", "Tâm", "Bửu", "Loan", "Hiền", "Hải", + "Vân", "Kha", "Minh", "Nhân", "Triệu", "Tuân", "Hữu", "Đức", "Phú", "Khoa", + "Thắgn", "Sơn", "Dung", "Tú", "Trinh", "Thảo", "Sa", "Kim", "Long", "Thi", + "Cường", "Ngọc", "Sinh", "Khang", "Phong", "Thắm", "Thu", "Thủy", "Nhàn"] + name: + - "#{first_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name}" + - "#{first_name} #{last_name} #{last_name} #{last_name}" + company: + prefix: ["Công ty", "Cty TNHH", "Cty", "Cửa hàng", "Trung tâm", "Chi nhánh"] + name: + - "#{prefix} #{Name.last_name}" + lorem: + words: ["đã", "đang", "ừ", "ờ", "á", "không", "biết", "gì", "hết", "đâu", "nha", + "thế", "thì", "là", "đánh", "đá", "đập", "phá", "viết", "vẽ", "tô", "thuê", + "mướn", "mượn", "mua", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", + "chín", "mười", "thôi", "việc", "nghỉ", "làm", "nhà", "cửa", "xe", "đạp", "ác", + "độc", "khoảng", "khoan", "thuyền", "tàu", "bè", "lầu", "xanh", "đỏ", "tím", "vàng", + "kim", "chỉ", "khâu", "may", "vá", "em", "anh", "yêu", "thương", "thích", "con", "cái", + "bàn", "ghế", "tủ", "quần", "áo", "nón", "dép", "giày", "lỗi", "được", "ghét", "giết", + "chết", "hết", "tôi", "bạn", "tui", "trời", "trăng", "mây", "gió", "máy", "hàng", "hóa", + "leo", "núi", "bơi", "biển", "chìm", "xuồng", "nước", "ngọt", "ruộng", "đồng", "quê", "hương"] + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-CN.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-CN.yml new file mode 100644 index 0000000..164884b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-CN.yml @@ -0,0 +1,27 @@ +# coding: utf-8 +zh-CN: + faker: + address: + city_prefix: [长, 上, 南, 西, 北, 诸, 宁, 珠, 武, 衡, 成, 福, 厦, 贵, 吉, 海, 太, 济, 安, 吉, 包] + city_suffix: [沙市, 京市, 宁市, 安市, 乡县, 海市, 码市, 汉市, 阳市, 都市, 州市, 门市, 阳市, 口市, 原市, 南市, 徽市, 林市, 头市] + building_number: ['#####', '####', '###', '##', '#'] + street_suffix: [巷, 街, 路, 桥, 侬, 旁, 中心, 栋] + postcode: ['######'] + state: [北京市, 上海市, 天津市, 重庆市, 黑龙江省, 吉林省, 辽宁省, 内蒙古, 河北省, 新疆, 甘肃省, 青海省, 陕西省, 宁夏, 河南省, 山东省, 山西省, 安徽省, 湖北省, 湖南省, 江苏省, 四川省, 贵州省, 云南省, 广西省, 西藏, 浙江省, 江西省, 广东省, 福建省, 海南省, 香港, 澳门] + state_abbr: [京, 沪, 津, 渝, 黑, 吉, 辽, 蒙, 冀, 新, 甘, 青, 陕, 宁, 豫, 鲁, 晋, 皖, 鄂, 湘, 苏, 川, 黔, 滇, 桂, 藏, 浙, 赣, 粤, 闽, 琼, 港, 澳] + city: + - "#{city_prefix}#{city_suffix}" + street_name: + - "#{Name.last_name}#{street_suffix}" + street_address: + - "#{street_name}#{building_number}号" + default_country: [中国] + + + name: + last_name: [王, 李, 张, 刘, 陈, 杨, 黄, 吴, 赵, 周, 徐, 孙, 马, 朱, 胡, 林, 郭, 何, 高, 罗, 郑, 梁, 谢, 宋, 唐, 许, 邓, 冯, 韩, 曹, 曾, 彭, 萧, 蔡, 潘, 田, 董, 袁, 于, 余, 叶, 蒋, 杜, 苏, 魏, 程, 吕, 丁, 沈, 任, 姚, 卢, 傅, 钟, 姜, 崔, 谭, 廖, 范, 汪, 陆, 金, 石, 戴, 贾, 韦, 夏, 邱, 方, 侯, 邹, 熊, 孟, 秦, 白, 江, 阎, 薛, 尹, 段, 雷, 黎, 史, 龙, 陶, 贺, 顾, 毛, 郝, 龚, 邵, 万, 钱, 严, 赖, 覃, 洪, 武, 莫, 孔] + first_name: [绍齐, 博文, 梓晨, 胤祥, 瑞霖, 明哲, 天翊, 凯瑞, 健雄, 耀杰, 潇然, 子涵, 越彬, 钰轩, 智辉, 致远, 俊驰, 雨泽, 烨磊, 晟睿, 文昊, 修洁, 黎昕, 远航, 旭尧, 鸿涛, 伟祺, 荣轩, 越泽, 浩宇, 瑾瑜, 皓轩, 擎苍, 擎宇, 志泽, 子轩, 睿渊, 弘文, 哲瀚, 雨泽, 楷瑞, 建辉, 晋鹏, 天磊, 绍辉, 泽洋, 鑫磊, 鹏煊, 昊强, 伟宸, 博超, 君浩, 子骞, 鹏涛, 炎彬, 鹤轩, 越彬, 风华, 靖琪, 明辉, 伟诚, 明轩, 健柏, 修杰, 志泽, 弘文, 峻熙, 嘉懿, 煜城, 懿轩, 烨伟, 苑博, 伟泽, 熠彤, 鸿煊, 博涛, 烨霖, 烨华, 煜祺, 智宸, 正豪, 昊然, 明杰, 立诚, 立轩, 立辉, 峻熙, 弘文, 熠彤, 鸿煊, 烨霖, 哲瀚, 鑫鹏, 昊天, 思聪, 展鹏, 笑愚, 志强, 炫明, 雪松, 思源, 智渊, 思淼, 晓啸, 天宇, 浩然, 文轩, 鹭洋, 振家, 乐驹, 晓博, 文博, 昊焱, 立果, 金鑫, 锦程, 嘉熙, 鹏飞, 子默, 思远, 浩轩, 语堂, 聪健, 明, 文, 果, 思, 鹏, 驰, 涛, 琪, 浩, 航, 彬] + name: + - "#{last_name}#{first_name}" + phone_number: + formats: ['###-########', '####-########', '###########'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-TW.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-TW.yml new file mode 100644 index 0000000..3637f8e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/lib/locales/zh-TW.yml @@ -0,0 +1,27 @@ +# coding: utf-8 +zh-TW: + faker: + address: + city_prefix: [新, 竹, 竹, 新, 關, 峨, 寶, 北, 橫, 芎, 湖, 新, 尖, 五, 苗, 苗, 通, 苑, 竹, 頭, 後, 卓, 西, 頭, 公, 銅, 三, 造, 三, 南, 大, 獅, 泰, 彰, 彰, 員, 和, 鹿, 溪, 二, 田, 北, 花, 芬, 大, 永, 伸, 線, 福, 秀, 埔, 埔, 大, 芳, 竹, 社, 二, 田, 埤, 溪, 南, 南, 埔, 草, 竹, 集, 名, 鹿, 中, 魚, 國, 水, 信, 仁, 雲, 斗, 斗, 虎, 西, 土, 北, 莿, 林, 古, 大, 崙, 二, 麥, 臺, 東, 褒, 四, 口, 水, 元, 嘉, 太, 朴, 布, 大, 民, 溪, 新, 六, 東, 義, 鹿, 水, 中, 竹, 梅, 番, 大, 阿, 屏, 屏, 潮, 東, 恆, 萬, 長, 麟, 九, 里, 鹽, 高, 萬, 內, 竹, 新, 枋, 新, 崁, 林, 南, 佳, 琉, 車, 滿, 枋, 霧, 瑪, 泰, 來, 春, 獅, 牡, 三, 宜, 宜, 羅, 蘇, 頭, 礁, 壯, 員, 冬, 五, 三, 大, 南, 花, 花, 鳳, 玉, 新, 吉, 壽, 秀, 光, 豐, 瑞, 萬, 富, 卓, 臺, 臺, 成, 關, 長, 海, 池, 東, 鹿, 延, 卑, 金, 大, 達, 綠, 蘭, 太, 澎, 馬, 湖, 白, 西, 望, 七, 金, 金, 金, 金, 金, 烈, 烏, 連, 南, 北, 莒, 東] + city_suffix: [竹縣, 北市, 東鎮, 埔鎮, 西鎮, 眉鄉, 山鄉, 埔鄉, 山鄉, 林鄉, 口鄉, 豐鄉, 石鄉, 峰鄉, 栗縣, 栗市, 霄鎮, 裡鎮, 南鎮, 份鎮, 龍鎮, 蘭鎮, 湖鄉, 屋鄉, 館鄉, 鑼鄉, 義鄉, 橋鄉, 灣鄉, 庄鄉, 湖鄉, 潭鄉, 安鄉, 化縣, 化市, 林鎮, 美鎮, 港鎮, 湖鎮, 林鎮, 中鎮, 斗鎮, 壇鄉, 園鄉, 村鄉, 靖鄉, 港鄉, 西鄉, 興鄉, 水鄉, 心鄉, 鹽鄉, 城鄉, 苑鄉, 塘鄉, 頭鄉, 水鄉, 尾鄉, 頭鄉, 州鄉, 投縣, 投市, 里鎮, 屯鎮, 山鎮, 集鎮, 間鄉, 谷鄉, 寮鄉, 池鄉, 姓鄉, 里鄉, 義鄉, 愛鄉, 林縣, 六市, 南鎮, 尾鎮, 螺鎮, 庫鎮, 港鎮, 桐鄉, 內鄉, 坑鄉, 埤鄉, 背鄉, 崙鄉, 寮鄉, 西鄉, 勢鄉, 忠鄉, 湖鄉, 湖鄉, 林鄉, 長鄉, 義縣, 保市, 子市, 袋鎮, 林鎮, 雄鄉, 口鄉, 港鄉, 腳鄉, 石鄉, 竹鄉, 草鄉, 上鄉, 埔鄉, 崎鄉, 山鄉, 路鄉, 埔鄉, 里山鄉, 東縣, 東市, 州鎮, 港鎮, 春鎮, 丹鄉, 治鄉, 洛鄉, 如鄉, 港鄉, 埔鄉, 樹鄉, 巒鄉, 埔鄉, 田鄉, 埤鄉, 寮鄉, 園鄉, 頂鄉, 邊鄉, 州鄉, 冬鄉, 球鄉, 城鄉, 州鄉, 山鄉, 台鄉, 家鄉, 武鄉, 義鄉, 日鄉, 子鄉, 丹鄉, 地門鄉, 蘭縣, 蘭市, 東鎮, 澳鎮, 城鎮, 溪鄉, 圍鄉, 山鄉, 山鄉, 結鄉, 星鄉, 同鄉, 澳鄉, 蓮縣, 蓮市, 林鎮, 里鎮, 城鄉, 安鄉, 豐鄉, 林鄉, 復鄉, 濱鄉, 穗鄉, 榮鄉, 里鄉, 溪鄉, 東縣, 東市, 功鎮, 山鎮, 濱鄉, 端鄉, 上鄉, 河鄉, 野鄉, 平鄉, 南鄉, 峰鄉, 武鄉, 仁鄉, 島鄉, 嶼鄉, 麻里鄉, 湖縣, 公市, 西鄉, 沙鄉, 嶼鄉, 安鄉, 美鄉, 門縣, 城鎮, 湖鎮, 沙鎮, 寧鄉, 嶼鄉, 坵鄉, 江縣, 竿鄉, 竿鄉, 光鄉, 引鄉] + building_number: ['###', '##', '#'] + street_suffix: [大道, 路, 街, 巷, 弄, 衖] + postcode: ['#####'] + state: [臺北市, 新北市, 桃園市, 臺中市, 臺南市, 高雄市, 基隆市, 新竹市, 嘉義市, 新竹縣, 竹北市, 苗栗縣, 苗栗市, 彰化縣, 彰化市, 南投縣, 南投市, 雲林縣, 斗六市, 嘉義縣, 太保市, 屏東縣, 屏東市, 宜蘭縣, 宜蘭市, 臺東縣, 臺東市, 澎湖縣, 金門縣, 連江縣] + state_abbr: [北, 桃, 竹, 苗, 中, 彰, 雲, 嘉, 南, 高, 屏, 東, 花, 宜, 基] + city: + - "#{city_prefix}#{city_suffix}" + street_name: + - "#{Name.last_name}#{street_suffix}" + street_address: + - "#{street_name} #{building_number} 號" + default_country: [台灣] + + + name: + last_name: [趙, 錢, 孫, 李, 周, 吳, 鄭, 王, 馮, 陳, 褚, 衛, 蔣, 沈, 韓, 楊, 朱, 秦, 尤, 許, 何, 呂, 施, 張, 孔, 曹, 嚴, 華, 金, 魏, 陶, 薑, 戚, 謝, 鄒, 喻, 柏, 水, 竇, 章, 雲, 蘇, 潘, 葛, 奚, 範, 彭, 郎, 魯, 韋, 昌, 馬, 苗, 鳳, 花, 方, 俞, 任, 袁, 柳, 酆, 鮑, 史, 唐, 費, 廉, 岑, 薛, 雷, 賀, 倪, 湯, 滕, 殷, 羅, 畢, 郝, 鄔, 安, 常, 樂, 於, 時, 傅, 皮, 卞, 齊, 康, 伍, 餘, 元, 蔔, 顧, 孟, 平, 黃, 和, 穆, 蕭, 尹, 姚, 邵, 湛, 汪, 祁, 毛, 禹, 狄, 米, 貝, 明, 臧, 計, 伏, 成, 戴, 談, 宋, 茅, 龐, 熊, 紀, 舒, 屈, 項, 祝, 董, 梁, 杜, 阮, 藍, 閔, 席, 季, 麻, 強, 賈, 路, 婁, 危, 江, 童, 顏, 郭, 梅, 盛, 林, 刁, 鍾, 徐, 邱, 駱, 高, 夏, 蔡, 田, 樊, 胡, 淩, 霍, 虞, 萬, 支, 柯, 昝, 管, 盧, 莫, 柯, 房, 裘, 繆, 幹, 解, 應, 宗, 丁, 宣, 賁, 鄧, 鬱, 單, 杭, 洪, 包, 諸, 左, 石, 崔, 吉, 鈕, 龔, 程, 嵇, 邢, 滑, 裴, 陸, 榮, 翁, 荀, 羊, 于, 惠, 甄, 曲, 家, 封, 芮, 羿, 儲, 靳, 汲, 邴, 糜, 松, 井, 段, 富, 巫, 烏, 焦, 巴, 弓, 牧, 隗, 山, 穀, 車, 侯, 宓, 蓬, 全, 郗, 班, 仰, 秋, 仲, 伊, 宮, 甯, 仇, 欒, 暴, 甘, 鈄, 曆, 戎, 祖, 武, 符, 劉, 景, 詹, 束, 龍, 葉, 幸, 司, 韶, 郜, 黎, 薊, 溥, 印, 宿, 白, 懷, 蒲, 邰, 從, 鄂, 索, 鹹, 籍, 賴, 卓, 藺, 屠, 蒙, 池, 喬, 陽, 鬱, 胥, 能, 蒼, 雙, 聞, 莘, 党, 翟, 譚, 貢, 勞, 逄, 姬, 申, 扶, 堵, 冉, 宰, 酈, 雍, 卻, 璩, 桑, 桂, 濮, 牛, 壽, 通, 邊, 扈, 燕, 冀, 浦, 尚, 農, 溫, 別, 莊, 晏, 柴, 瞿, 閻, 充, 慕, 連, 茹, 習, 宦, 艾, 魚, 容, 向, 古, 易, 慎, 戈, 廖, 庾, 終, 暨, 居, 衡, 步, 都, 耿, 滿, 弘, 匡, 國, 文, 寇, 廣, 祿, 闕, 東, 歐, 殳, 沃, 利, 蔚, 越, 夔, 隆, 師, 鞏, 厙, 聶, 晁, 勾, 敖, 融, 冷, 訾, 辛, 闞, 那, 簡, 饒, 空, 曾, 毋, 沙, 乜, 養, 鞠, 須, 豐, 巢, 關, 蒯, 相, 查, 後, 荊, 紅, 遊, 竺, 權, 逮, 盍, 益, 桓, 公, 萬俟, 司馬, 上官, 歐陽, 夏侯, 諸葛, 聞人, 東方, 赫連, 皇甫, 尉遲, 公羊, 澹台, 公冶, 宗政, 濮陽, 淳于, 單於, 太叔, 申屠, 公孫, 仲孫, 軒轅, 令狐, 徐離, 宇文, 長孫, 慕容, 司徒, 司空] + first_name: [怡君, 欣怡, 雅雯, 心怡, 志豪, 雅婷, 雅惠, 家豪, 雅玲, 靜怡, 志偉, 俊宏, 建宏, 佩君, 怡婷, 淑芬, 靜宜, 俊傑, 怡如, 家銘, 佳玲, 慧君, 怡伶, 雅芳, 宗翰, 志宏, 淑娟, 信宏, 志強, 淑婷, 佩珊, 佳慧, 佳蓉, 佳穎, 淑惠, 智偉, 欣儀, 嘉玲, 雅慧, 惠雯, 玉婷, 惠如, 惠君, 宜芳, 惠婷, 淑華, 志明, 雅芬, 家榮, 俊賢, 俊豪, 慧玲, 嘉宏, 佩芬, 佳樺, 雅琪, 淑萍, 淑君, 婉婷, 佳琪, 韻如, 詩婷, 建良, 芳儀, 宜君, 佩蓉, 志銘, 雅鈴, 建文, 佩玲, 鈺婷, 雅萍, 立偉, 文傑, 慧如, 淑慧, 佳宏, 志遠, 靜儀, 惠玲, 淑玲, 美君, 怡慧, 千慧, 馨儀, 嘉慧, 家瑋, 美慧, 美玲, 建志, 宗憲, 筱婷, 靜雯, 雅君, 彥廷, 怡靜, 玉玲, 郁婷, 俊男] + name: + - "#{last_name}#{first_name}" + phone_number: + formats: ['###-########', '####-########', '###########'] diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_array_sample_method_compat.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_array_sample_method_compat.rb new file mode 100644 index 0000000..e0dd74e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_array_sample_method_compat.rb @@ -0,0 +1,56 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +# when these tests are run under Ruby 1.8.7, they will use the +# self-defined Array#sample method in lib/extensions/array and will test whether it +# behaves as the built-in Array#sample method from Ruby 1.9 or greater. +# Under Ruby 1.9, they simply use the built-in Array#sample method +class TestArraySampleMethodCompatibility < Test::Unit::TestCase + + def test_returns_nil_or_empty_array_with_empty_source + source = [] + + result = source.sample + assert result.nil? + + result = source.sample(1) + assert_equal result, [] + end + + def test_returns_one_array_elem_without_param + source = ['foo', 'bar'] + result = source.sample + assert source.include? result + end + + def test_returns_empty_array_with_param_zero + source = ['foo', 'bar'] + result = source.sample(0) + assert_equal result, [] + end + + def test_returns_an_array_with_integer_param + source = ['foo', 'bar', 'baz'] + result = source.sample(2) + assert result.is_a? Array + assert result.length == 2 + assert((result - source).empty?) + end + + def test_returns_source_array_with_integer_param_equal_or_bigger_than_source_length + source = ['foo','bar'] + result = source.sample(2) + assert result.is_a? Array + assert((source.sort <=> result.sort) == 0) + + result = source.sample(3) + assert result.is_a? Array + assert((source.sort <=> result.sort) == 0) + end + + def test_raises_Argument_Error_with_negative_param + source = ['foo','bar'] + assert_raise ArgumentError do + source.sample(-1) + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_avatar.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_avatar.rb new file mode 100644 index 0000000..7de426e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_avatar.rb @@ -0,0 +1,39 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerAvatar < Test::Unit::TestCase + def setup + @tester = Faker::Avatar + end + + def test_avatar + assert @tester.image.match(/http:\/\/robohash\.org\/(.+)\.png/)[1] != nil + end + + def test_avatar_with_param + assert @tester.image('faker').match(/http:\/\/robohash\.org\/(.+)\.png/)[1] == 'faker' + end + + def test_avatar_with_correct_size + assert @tester.image('faker', '150x320').match(/http:\/\/robohash\.org\/faker\.png\?size=(.+)&.*/)[1] == '150x320' + end + + def test_avatar_with_incorrect_size + assert_raise ArgumentError do + @tester.image(nil, '150x320z') + end + end + + def test_avatar_with_supported_format + assert @tester.image('faker', '300x300', 'jpg').match(/http:\/\/robohash\.org\/faker\.jpg/) + end + + def test_avatar_with_incorrect_format + assert_raise ArgumentError do + @tester.image(nil, '300x300', 'wrong_format') + end + end + + def test_avatar_with_set + assert @tester.image('faker', '300x300', 'jpg', 'set2').match(/http:\/\/robohash\.org\/faker\.jpg.*set=set2/) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_au_ocker_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_au_ocker_locale.rb new file mode 100644 index 0000000..1cbb802 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_au_ocker_locale.rb @@ -0,0 +1,23 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestEnUsLocale < Test::Unit::TestCase + def setup + Faker::Config.locale = nil + end + + def teardown + Faker::Config.locale = nil + end + + def test_au_ocker_methods_with_en_au_ocker_locale + Faker::Config.locale = 'en-au-ocker' + + assert Faker::Name.first_name.is_a? String + assert Faker::Name.last_name.is_a? String + assert Faker::Name.ocker_first_name.is_a? String + assert Faker::Address.street_name.is_a? String + assert Faker::Address.city.is_a? String + assert Faker::Address.region.is_a? String + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ca_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ca_locale.rb new file mode 100644 index 0000000..d5d9e89 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ca_locale.rb @@ -0,0 +1,18 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestEnCaLocale < Test::Unit::TestCase + def setup + @previous_locale = Faker::Config.locale + Faker::Config.locale = 'en-CA' + end + + def teardown + Faker::Config.locale = @previous_locale + end + + def test_ca_postcode + expected = /[A-VX-Y][0-9][A-CEJ-NPR-TV-Z] ?[0-9][A-CEJ-NPR-TV-Z][0-9]/ + assert_match(expected, Faker::Address.postcode) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_locale.rb new file mode 100644 index 0000000..1684d50 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_locale.rb @@ -0,0 +1,25 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TesetEnLocale < Test::Unit::TestCase + def setup + Faker::Config.locale = nil + end + + def teardown + Faker::Config.locale = nil + end + + def test_us_states_only_include_states + assert_equal LoadedYaml['en']['address']['state'].size, 50 + assert_equal LoadedYaml['en']['address']['state'], ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'] + assert_equal LoadedYaml['en']['address']['state_abbr'].size, 50 + assert_equal LoadedYaml['en']['address']['state_abbr'], ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY'] + end + + def test_us_zip_codes + Faker::Config.locale = 'en-US' + expected = /\d{5}(\-\d{4})?/ + assert_match(expected, Faker::Address.zip_code) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ug_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ug_locale.rb new file mode 100644 index 0000000..892fd68 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_ug_locale.rb @@ -0,0 +1,23 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestEnUgLocale < Test::Unit::TestCase + def setup + @previous_locale = Faker::Config.locale + Faker::Config.locale = 'en-UG' + end + + def teardown + Faker::Config.locale = @previous_locale + end + + def test_validity_of_phone_number + validation_regex = /^((0)|(256)|(\+256))((39)|(41))\d{7}$/ + assert_match(validation_regex, Faker::PhoneNumber.phone_number.gsub(' ','')) + end + + def test_validity_of_cell_phone + validation_regex = /^((0)|(256)|(\+256))((70)|(71)|(72)|(74)|(75)|(77)|(78)|(79))\d{7}$/ + assert_match(validation_regex, Faker::PhoneNumber.cell_phone.gsub(' ','')) + end + +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_us_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_us_locale.rb new file mode 100644 index 0000000..6dbbdde --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_en_us_locale.rb @@ -0,0 +1,79 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TesetEnUsLocale < Test::Unit::TestCase + def setup + Faker::Config.locale = nil + end + + def teardown + Faker::Config.locale = nil + end + + def test_us_phone_methods_return_nil_for_nil_locale + assert_nil Faker::PhoneNumber.area_code + assert_nil Faker::PhoneNumber.exchange_code + end + + def test_subscriber_number_method + assert Faker::PhoneNumber.subscriber_number.is_a? String + assert_equal Faker::PhoneNumber.subscriber_number.length, 4 + assert_equal Faker::PhoneNumber.subscriber_number(10).length, 10 + assert_equal Faker::PhoneNumber.method(:extension), Faker::PhoneNumber.method(:subscriber_number) + end + + def test_us_phone_methods_with_en_us_locale + Faker::Config.locale = 'en-US' + + assert Faker::PhoneNumber.area_code.is_a? String + assert Faker::PhoneNumber.area_code.to_i.is_a? Integer + assert_equal Faker::PhoneNumber.area_code.length, 3 + + assert Faker::PhoneNumber.exchange_code.is_a? String + assert Faker::PhoneNumber.exchange_code.to_i.is_a? Integer + assert_equal Faker::PhoneNumber.exchange_code.length, 3 + end + + def test_validity_of_phone_method_output + Faker::Config.locale = 'en-US' + + # got the following regex from http://stackoverflow.com/a/123666/1210055 as an expression of the NANP standard. + us_number_validation_regex = /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/ + assert_match(us_number_validation_regex, Faker::PhoneNumber.phone_number) + end + + def test_us_invalid_state_raises_exception + Faker::Config.locale = 'en-US' + assert_raise I18n::MissingTranslationData do Faker::Address.zip_code('NA') end + end + + def test_us_zip_codes_match_state + + Faker::Config.locale = 'en-US' + + state_abbr = 'AZ' + expected = /^850\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + + # disjointed ranges for these states + # http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf + state_abbr = 'AR' + expected = /^717\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + state_abbr = 'GA' + expected = /^301\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + state_abbr = 'MA' + expected = /^026\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + state_abbr = 'NY' + expected = /^122\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + state_abbr = 'TX' + expected = /^798\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + state_abbr = 'VA' + expected = /^222\d\d$/ + assert_match(expected, Faker::Address.zip_code(state_abbr)) + + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_es_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_es_locale.rb new file mode 100644 index 0000000..2f016ac --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_es_locale.rb @@ -0,0 +1,34 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +LoadedEsYaml = ['en', 'es'].inject({}) do |h, locale| + h[locale] = YAML.load_file(File.expand_path(File.dirname(__FILE__) + "/../lib/locales/#{locale}.yml"))[locale]['faker'] + h +end + +class TestEsLocale < Test::Unit::TestCase + def teardown + Faker::Config.locale = nil + end + + def test_locale_separate_from_i18n + I18n.locale = :en + Faker::Config.locale = :es + assert Faker::Address.street_name.match(//) + end + + def test_configured_locale_translation + Faker::Config.locale = 'es' + assert_equal Faker::Base.translate('faker.address.city_prefix').first, LoadedEsYaml['es']['address']['city_prefix'].first + end + + def test_locale_override_when_calling_translate + Faker::Config.locale = 'es' + assert_equal Faker::Base.translate('faker.lorem.words', :locale => :en).first, LoadedEsYaml['en']['lorem']['words'].first + end + + def test_translation_fallback + Faker::Config.locale = 'es' + assert_nil LoadedEsYaml['es']['company']['bs'] + assert_equal Faker::Base.translate('faker.company.bs'), LoadedEsYaml['en']['company']['bs'] + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker.rb new file mode 100644 index 0000000..38523d9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker.rb @@ -0,0 +1,29 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFaker < Test::Unit::TestCase + + def setup + end + + def test_numerify + 100.times do + assert Faker::Base.numerify('###').match(/[1-9]\d{2}/) + end + end + + def test_letterify + assert Faker::Base.letterify('???').match(/[A-Z]{3}/) + end + + def test_regexify + { + 'uk post code' => /^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$/, + 'us phone' => /^(1-?)[2-8][0-1][0-9]-\d{3}-\d{4}$/ + }.each do |label, re| + 10.times do + assert re.match(result = Faker::Base.regexify(re)), "#{result} is not a match for #{label}" + end + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_app.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_app.rb new file mode 100644 index 0000000..fd017b9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_app.rb @@ -0,0 +1,12 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerApp < Test::Unit::TestCase + def setup + @tester = Faker::App + end + + def test_name + assert @tester.author.match(/(\w+\.? ?){2,3}/) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_bitcoin.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_bitcoin.rb new file mode 100644 index 0000000..8d7cd59 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_bitcoin.rb @@ -0,0 +1,14 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerBitcoin < Test::Unit::TestCase + + def test_address + assert Faker::Bitcoin.address.match(/^[13][1-9A-Za-z][^OIl]{20,40}/) + end + + def test_testnet_address + assert_match(/\A[mn][1-9A-Za-z]{32,34}\Z/, Faker::Bitcoin.testnet_address) + assert_not_match(/[OIl]/, Faker::Bitcoin.testnet_address) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_book.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_book.rb new file mode 100644 index 0000000..35e9c9a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_book.rb @@ -0,0 +1,20 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerBook < Test::Unit::TestCase + + def setup + @tester = Faker::Book + end + + def test_title + assert @tester.title.match(/(\w+\.? ?){2,3}/) + end + + def test_author + assert @tester.author.match(/(\w+\.? ?){2,3}/) + end + + def test_publisher + assert @tester.author.match(/(\w+\.? ?){2,3}/) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_business.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_business.rb new file mode 100644 index 0000000..90aaea2 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_business.rb @@ -0,0 +1,34 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +class TestFakerBusiness < Test::Unit::TestCase + + def setup + @tester = Faker::Business + @credit_card_number_list = I18n.translate('faker.business.credit_card_numbers') + @credit_card_types = I18n.translate('faker.business.credit_card_types') + @minimum_expiry_date = ::Date.today + 365 + @maximum_expiry_date = ::Date.today + (365 * 4) + end + + def test_credit_card_number + number1 = @tester.credit_card_number + number2 = @tester.credit_card_number + assert @credit_card_number_list.include?(number1) + assert @credit_card_number_list.include?(number2) + end + + def test_credit_card_expiry_date + date1 = @tester.credit_card_expiry_date + date2 = @tester.credit_card_expiry_date + assert date1.between?(@minimum_expiry_date, @maximum_expiry_date) + assert date2.between?(@minimum_expiry_date, @maximum_expiry_date) + end + + def test_credit_card_type + type1 = @tester.credit_card_type + type2 = @tester.credit_card_type + assert @credit_card_types.include?(type1) + assert @credit_card_types.include?(type2) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_city.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_city.rb new file mode 100644 index 0000000..e096be4 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_city.rb @@ -0,0 +1,45 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +class TestFakerCity < Test::Unit::TestCase + def setup + xx = { + :faker => { + :name => {:first_name => ['alice'], :last_name => ['smith']}, + :address => {:city_prefix => ['west'], :city_suffix => ['burg']} + } + } + I18n.backend.store_translations(:xx, xx) + + xy = { + :faker => { + :address => { + :city_prefix => ['big'], + :city_root => ['rock'], + :city_root_suffix => ['ing'], + :city_suffix => ['town'], + :city => ['#{city_prefix} #{city_root}#{city_root_suffix} #{city_suffix}'] + } + } + } + I18n.backend.store_translations(:xy, xy) + end + + def test_default_city_formats + I18n.with_locale(:xx) do + 100.times do + cities = ["west alice", "west smith", "west aliceburg", "west smithburg", "aliceburg", "smithburg"] + city = Faker::Address.city + assert cities.include?(city), "Expected <#{cities.join(' / ')}>, but got #{city}" + end + end + end + + def test_city_formats_are_flexible + I18n.with_locale(:xy) do + cities = ['big rocking town'] + city = Faker::Address.city + assert cities.include?(city), "Expected <#{cities.join(' / ')}>, but got #{city}" + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_code.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_code.rb new file mode 100644 index 0000000..a40b36f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_code.rb @@ -0,0 +1,31 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +class TestFakerCode < Test::Unit::TestCase + def setup + @tester = Faker::Code + end + + def test_npi_regexp + assert @tester.npi.match(/[0-9]{10}/) + end + + def test_default_isbn_regexp + assert @tester.isbn.match(/^\d{9}-[\d|X]$/) + end + + def test_default_isbn13_regexp + assert @tester.isbn(13).match(/^\d{12}-\d$/) + end + + def test_default_ean_regexp + assert @tester.ean.match(/^\d{13}$/) + end + + def test_default_ean8_regexp + assert @tester.ean(8).match(/^\d{8}$/) + end + + def test_rut + assert @tester.rut.match(/^\d{1,8}-(\d|k)$/) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_color.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_color.rb new file mode 100644 index 0000000..7f0da1a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_color.rb @@ -0,0 +1,46 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerColor < Test::Unit::TestCase + def setup + @tester = Faker::Color + end + + def test_hex_color + assert @tester.hex_color.match(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/) + end + + def test_single_rgb_color + assert @tester.single_rgb_color.between?(0, 255) + end + + def test_rgb_color + @result = @tester.rgb_color + assert @result.length == 3 + + @result.each do |color| + assert color.between?(0, 255) + end + end + + def test_single_hsl_color + assert @tester.single_hsl_color.between?(0.0, 360.0) + end + + def test_hsl_color + @result = @tester.hsl_color + assert @result.length == 3 + + @result.each do |color| + assert color.between?(0.0, 360.0) + end + end + + def test_hsla_color + @result = @tester.hsla_color + assert @result.length == 4 + + @result.each do |color| + assert color.between?(0.0, 360.0) || color.between?(0.0, 1.0) + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_commerce.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_commerce.rb new file mode 100644 index 0000000..42e7d54 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_commerce.rb @@ -0,0 +1,73 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerCommerce < Test::Unit::TestCase + + def setup + @tester = Faker::Commerce + end + + def test_color + assert @tester.color.match(/[a-z]+\.?/) + end + + def test_department + assert @tester.department.match(/[A-Z][a-z]+\.?/) + end + + def test_single_department_should_not_contain_separators + assert_match(/\A[A-Za-z]+\z/, @tester.department(1)) + end + + def test_department_should_have_ampersand_as_default_separator + assert_match ' & ', @tester.department(2, true) + end + + def test_department_should_accept_localized_separator + data = { + :faker => { + :separator => ' + ', + :commerce => { + :department => ['Books', 'Movies'] + } + } + } + + I18n.backend.store_translations(:xy, data) + I18n.with_locale(:xy) do + assert_match ' + ', @tester.department(2, true) + end + end + + def test_department_should_have_exact_number_of_categories_when_fixed_amount + assert_match(/\A([A-Za-z]+, ){8}[A-Za-z]+ & [A-Za-z]+\z/, @tester.department(10, true)) + end + + def test_department_should_never_exceed_the_max_number_of_categories_when_random_amount + 100.times do + assert_match(/\A([A-Za-z]+(, | & )){0,5}[A-Za-z]+\z/, @tester.department(6)) + end + end + + def test_department_should_have_no_duplicate_categories + department = @tester.department(10, true) + + departments = department.split(/[,& ]+/) + assert_equal departments, departments.uniq + end + + def test_product_name + assert @tester.product_name.match(/[A-Z][a-z]+\.?/) + end + + def test_material + assert @tester.material.match(/[A-Z][a-z]+\.?/) + end + + def test_price + assert_includes 0..100, @tester.price + end + + def test_price_is_float + assert @tester.price.is_a? Float + end +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_company.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_company.rb new file mode 100644 index 0000000..c4e5810 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_company.rb @@ -0,0 +1,30 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerCompany < Test::Unit::TestCase + def setup + @tester = Faker::Company + end + + def test_ein + assert @tester.ein.match(/\d\d-\d\d\d\d\d\d\d/) + end + + def test_duns_number + assert @tester.duns_number.match(/\d\d-\d\d\d-\d\d\d\d/) + end + + def test_logo + assert @tester.logo.match(%r{http://pigment.github.io/fake-logos/logos/medium/color/\d+\.png}) + end + + def test_buzzword + assert @tester.buzzword.match(/\w+\.?/) + end + + def test_swedish_organisation_number + org_no = @tester.swedish_organisation_number + assert org_no.match(/\d{10}/) + assert org_no[9] == @tester.send(:luhn_algorithm, org_no[0..8]).to_s + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_date.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_date.rb new file mode 100644 index 0000000..8ef4ace --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_date.rb @@ -0,0 +1,77 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerDate < Test::Unit::TestCase + def setup + @tester = Faker::Date + end + + def test_between + from = Date.parse("2012-01-01") + to = Date.parse("2013-01-01") + + 100.times do + random_date = @tester.between(from, to) + assert random_date >= from, "Expected >= \"#{from}\", but got #{random_date}" + assert random_date <= to , "Expected <= \"#{to}\", but got #{random_date}" + end + end + + def test_forward + today = Date.today + + 100.times do + random_date = @tester.forward(5) + assert random_date > today, "Expected > \"#{today}\", but got #{random_date}" + end + end + + def test_backward + today = Date.today + + 100.times do + random_date = @tester.backward(5) + assert random_date < today, "Expected < \"#{today}\", but got #{random_date}" + end + end + + def test_return_type + random_forward = @tester.forward(5) + random_backward = @tester.backward(5) + random_between = @tester.between(Date.today, Date.today + 5) + + [random_forward, random_backward, random_between].each do |result| + assert result.is_a?(Date), "Expected a Date object, but got #{result.class}" + end + end + + def test_invalid_date + assert_raise ArgumentError do + @tester.between("9999-99-99", "9999-99-99") + end + end + + def test_birthday + min = 40 + max = 90 + 100.times do + t = Date.today + date_min = Date.new(t.year - min, t.month, t.day) + date_max = Date.new(t.year - max, t.month, t.day) + birthday = @tester.birthday(min, max) + assert birthday > date_max, "Expect > \"#{date_max}\", but got #{birthday}" + assert birthday < date_min, "Expect > \"#{date_max}\", but got #{birthday}" + end + end + def test_default_birthday + min = 10 + max = 65 + 100.times do + t = Date.today + date_min = Date.new(t.year - min, t.month, t.day) + date_max = Date.new(t.year - max, t.month, t.day) + birthday = @tester.birthday + assert birthday > date_max, "Expect > \"#{date_max}\", but got #{birthday}" + assert birthday < date_min, "Expect > \"#{date_max}\", but got #{birthday}" + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_hacker_talk.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_hacker_talk.rb new file mode 100644 index 0000000..4ae7fc1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_hacker_talk.rb @@ -0,0 +1,37 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerHacker < Test::Unit::TestCase + def setup + @hacker = Faker::Hacker + @phrases = @hacker.phrases + end + + def test_phrases + assert @phrases.size == 8 + @phrases.each do |phrase| + assert !phrase.nil? + assert phrase != "" + end + end + + def test_noun + assert @hacker.noun.match(/\w+/) + end + + def test_abbreviation + assert @hacker.abbreviation.match(/\w+/) + end + + def test_adjective + assert @hacker.adjective.match(/\w+/) + end + + def test_verb + assert @hacker.verb.match(/\w+/) + end + + def test_ingverb + assert @hacker.ingverb.match(/\w+/) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_internet.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_internet.rb new file mode 100644 index 0000000..0c03285 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_internet.rb @@ -0,0 +1,141 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerInternet < Test::Unit::TestCase + + def setup + @tester = Faker::Internet + end + + def test_email + assert @tester.email.match(/.+@.+\.\w+/) + end + + def test_free_email + assert @tester.free_email.match(/.+@(gmail|hotmail|yahoo)\.com/) + end + + def test_safe_email + assert @tester.safe_email.match(/.+@example.(com|net|org)/) + end + + def test_user_name + assert @tester.user_name.match(/[a-z]+((_|\.)[a-z]+)?/) + end + + def test_user_name_with_string_arg + assert @tester.user_name('bo peep').match(/(bo(_|\.)peep|peep(_|\.)bo)/) + end + + def test_user_name_with_integer_arg + (1..32).each do |min_length| + assert @tester.user_name(min_length).length >= min_length + end + end + + def test_user_name_with_closed_range_arg + (1..32).each do |min_length| + (min_length..32).each do |max_length| + l = @tester.user_name((min_length..max_length)).length + assert l >= min_length + assert l <= max_length + end + end + end + + def test_user_name_with_open_range_arg + (1..32).each do |min_length| + (min_length+1..33).each do |max_length| + l = @tester.user_name((min_length...max_length)).length + assert l >= min_length + assert l <= max_length-1 + end + end + end + + def test_user_name_with_range_and_separators + (1..32).each do |min_length| + (min_length+1..33).each do |max_length| + u = @tester.user_name((min_length...max_length), %w(=)) + assert u.length.between? min_length, max_length-1 + assert u.match(/\A[a-z]+((=)?[a-z]*)*\z/) + end + end + end + + def test_password + assert @tester.password.match(/\w{3}/) + end + + def test_password_with_integer_arg + (1..32).each do |min_length| + assert @tester.password(min_length).length >= min_length + end + end + + def test_password_max_with_integer_arg + (1..32).each do |min_length| + max_length = min_length + 4 + assert @tester.password(min_length, max_length).length <= max_length + end + end + + def test_domain_name + assert @tester.domain_name.match(/\w+\.\w+/) + end + + def test_domain_word + assert @tester.domain_word.match(/^\w+$/) + end + + def test_domain_suffix + assert @tester.domain_suffix.match(/^\w+(\.\w+)?/) + end + + def test_ip_v4_address + assert_equal 3, @tester.ip_v4_address.count('.') + + 1000.times do + assert @tester.ip_v4_address.split('.').map{|octet| octet.to_i}.max <= 255 + end + end + + def test_mac_address + assert_equal 5, @tester.mac_address.count(':') + assert_equal 5, @tester.mac_address("").count(':') + + 1000.times do + assert @tester.mac_address.split(':').map{|d| d.to_i(16)}.max <= 255 + end + + assert @tester.mac_address("fa:fa:fa").start_with?("fa:fa:fa") + assert @tester.mac_address("01:02").start_with?("01:02") + end + + def test_ip_v6_address + assert_equal 7, @tester.ip_v6_address.count(':') + + 1000.times do + assert @tester.ip_v6_address.split('.').map{|h| "0x#{h}".hex}.max <= 65535 + end + end + + def test_slug + assert @tester.slug.match(/^[a-z]+(_|\.|\-)[a-z]+$/) + end + + def test_slug_with_content_arg + assert @tester.slug('Foo bAr baZ').match(/^foo(_|\.|\-)bar(_|\.|\-)baz$/) + end + + def test_slug_with_glue_arg + assert @tester.slug(nil, '+').match(/^[a-z]+\+[a-z]+$/) + end + + def test_url + assert @tester.url('domain.com', '/username').match(/^http:\/\/domain\.com\/username$/) + end + + def test_device_token + assert_equal 64, @tester.device_token.size + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_lorem.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_lorem.rb new file mode 100644 index 0000000..f6f52d6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_lorem.rb @@ -0,0 +1,87 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +class TestFakerLorem < Test::Unit::TestCase + + def setup + @tester = Faker::Lorem + @standard_wordlist = I18n.translate('faker.lorem.words') + @complete_wordlist = + @standard_wordlist + I18n.translate('faker.lorem.supplemental') + end + + def test_character + assert @tester.character.length == 1 + end + + def test_character_type + assert @tester.character.class == String + end + + def test_characters + assert @tester.characters.length == 255 + end + + def test_characters_with_args + 1000.times { assert @tester.characters(500).length == 500 } + end + + # Words delivered by a standard request should be on the standard wordlist. + def test_standard_words + @words = @tester.words(1000) + @words.each {|w| assert @standard_wordlist.include?(w) } + end + + # Words requested from the supplemental list should all be in that list. + def test_supplemental_words + @words = @tester.words(10000, true) + @words.each {|w| assert @complete_wordlist.include?(w) } + end + + # Faker::Lorem.word generates random word from standart wordlist + def test_word + @tester = Faker::Lorem + @standard_wordlist = I18n.translate('faker.lorem.words') + 1000.times { assert @standard_wordlist.include?(@tester.word) } + end + + def test_exact_count_param + assert(@tester.characters(2).length == 2) + assert(@tester.words(2).length == 2) + assert(@tester.sentences(2).length == 2) + assert(@tester.paragraphs(2).length == 2) + end + + def test_range_count_param + cs = @tester.characters(2..5) + ws = @tester.words(2..5) + ss = @tester.sentences(2..5) + ps = @tester.paragraphs(2..5) + + assert(2 <= cs.length && cs.length <= 5) + assert(2 <= ws.length && ws.length <= 5) + assert(2 <= ss.length && ss.length <= 5) + assert(2 <= ps.length && ps.length <= 5) + end + + def test_array_count_param + cs = @tester.characters([1,4]) + ws = @tester.words([1,4]) + ss = @tester.sentences([1,4]) + ps = @tester.paragraphs([1,4]) + + assert(cs.length == 1 || cs.length == 4) + assert(ws.length == 1 || ws.length == 4) + assert(ss.length == 1 || ss.length == 4) + assert(ps.length == 1 || ps.length == 4) + end + + def test_words_with_large_count_params + exact = @tester.words(500) + range = @tester.words(250..500) + array = @tester.words([250, 500]) + + assert(exact.length == 500) + assert(250 <= range.length && range.length <= 500) + assert(array.length == 250 || array.length == 500) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_name.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_name.rb new file mode 100644 index 0000000..6b0b784 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_name.rb @@ -0,0 +1,20 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerName < Test::Unit::TestCase + + def setup + @tester = Faker::Name + end + + def test_name + assert @tester.name.match(/(\w+\.? ?){2,3}/) + end + + def test_prefix + assert @tester.prefix.match(/[A-Z][a-z]+\.?/) + end + + def test_suffix + assert @tester.suffix.match(/[A-Z][a-z]*\.?/) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_number.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_number.rb new file mode 100644 index 0000000..b1a3f9c --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_number.rb @@ -0,0 +1,77 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerNumber < Test::Unit::TestCase + def setup + @tester = Faker::Number + end + + def test_number + assert @tester.number(10).match(/[0-9]{10}/) + + 10.times do |digits| + digits += 1 + assert @tester.number(digits).match(/^[0-9]{#{digits}}$/) + end + + assert @tester.number(10).length == 10 + assert @tester.number(1).length == 1 + assert @tester.number(0) == "" + end + + def test_decimal + assert @tester.decimal(2).match(/[0-9]{2}\.[0-9]{2}/) + assert @tester.decimal(4, 5).match(/[0-9]{4}\.[0-9]{5}/) + end + + def test_digit + assert @tester.digit.match(/[0-9]{1}/) + assert (1..1000).collect {|i| @tester.digit == "9"}.include?(true) + end + + def test_between + 100.times do + random_number = @tester.between(-50, 50) + assert random_number >= -50, "Expected >= -50, but got #{random_number}" + assert random_number <= 50, "Expected <= 50, but got #{random_number}" + end + end + + def test_positive + 100.times do + random_number = @tester.positive(1, 100) + assert random_number >= 1, "Expected >= 1, but got #{random_number}" + assert random_number <= 100, "Expected <= 100, but got #{random_number}" + end + end + + def test_negative + 100.times do + random_number = @tester.negative(-1, -100) + assert random_number <= -1, "Expected <= -1, but got #{random_number}" + assert random_number >= -100, "Expected >= -100, but got #{random_number}" + end + end + + def test_force_positive + random_number = @tester.positive(-1, -100) + assert random_number >= 1, "Expected >= 1, but got #{random_number}" + assert random_number <= 100, "Expected <= 100, but got #{random_number}" + end + + def test_force_negative + random_number = @tester.negative(1, 100) + assert random_number <= -1, "Expected <= -1, but got #{random_number}" + assert random_number >= -100, "Expected >= -100, but got #{random_number}" + end + + def test_parameters_order + random_number = @tester.between(100, 1) + assert random_number >= 1, "Expected >= 1, but got #{random_number}" + assert random_number <= 100, "Expected <= 100, but got #{random_number}" + end + + def test_hexadecimal + assert @tester.hexadecimal(4).match(/[0-9a-f]{4}/) + assert @tester.hexadecimal(7).match(/[0-9a-f]{7}/) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_slack_emoji.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_slack_emoji.rb new file mode 100644 index 0000000..273e77b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_slack_emoji.rb @@ -0,0 +1,45 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerSlackEmoji < Test::Unit::TestCase + + def setup + @tester = Faker::SlackEmoji + @emoticon_regex= /^:([\w-]+):$/ + end + + def test_people + assert @tester.people.match(@emoticon_regex) + end + + def test_nature + assert @tester.nature.match(@emoticon_regex) + end + + def test_food_and_drink + assert @tester.food_and_drink.match(@emoticon_regex) + end + + def test_celebration + assert @tester.celebration.match(@emoticon_regex) + end + + def test_activity + assert @tester.activity.match(@emoticon_regex) + end + + def test_travel_and_places + assert @tester.travel_and_places.match(@emoticon_regex) + end + + def test_objects_and_symbols + assert @tester.objects_and_symbols.match(@emoticon_regex) + end + + def test_custom + assert @tester.custom.match(@emoticon_regex) + end + + def test_emoji + assert @tester.emoji.match(@emoticon_regex) + end +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_street.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_street.rb new file mode 100644 index 0000000..6a8d622 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_street.rb @@ -0,0 +1,52 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +class TestFakerStreet < Test::Unit::TestCase + def setup + shire = { + :faker => { + :address => { + :street_name => ['#{street_prefix} #{street_root} #{street_suffix}'], + :street_prefix => ["Wide"], + :street_root => ["Cheerful"], + :street_suffix => ["Path"], + :secondary_address => ["(Green Door)"], + :street_address => ['#{street_name} #{building_number}'], + :building_number => ["#"], + :time_zone => ["Pacific/Pago_Pago"], + } + } + } + I18n.backend.store_translations(:shire, shire) + end + + def test_street_name_supports_flexible_formats + I18n.with_locale(:shire) do + assert_equal "Wide Cheerful Path", Faker::Address.street_name + end + end + + def test_street_address_supports_flexible_formats + I18n.with_locale(:shire) do + assert_match(/Wide Cheerful Path \d/, Faker::Address.street_address) + end + end + + def test_street_address_optionally_provides_secondary_address + I18n.with_locale(:shire) do + assert_match(/Wide Cheerful Path \d \(Green Door\)/, Faker::Address.street_address(:include_secondary)) + end + end + + def test_street_address_with_locale_fallback + I18n.with_locale('en-GB') do + assert_match(/^\d+ [\w']+ \w+/, Faker::Address.street_address) + end + end + + def test_timezone_support + I18n.with_locale(:shire) do + assert_equal "Pacific/Pago_Pago", Faker::Address.time_zone + end + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_team.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_team.rb new file mode 100644 index 0000000..c6be01b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_team.rb @@ -0,0 +1,25 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerTeam < Test::Unit::TestCase + + def setup + @tester = Faker::Team + end + + def test_name + assert @tester.name.match(/(\w+\.? ?){2}/) + end + + def test_creature + assert @tester.creature.match(/(\w+){1}/) + end + + def test_state + assert @tester.state.match(/(\w+){1}/) + end + + def test_sport + assert @tester.sport.match(/(\w+){1}/) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_time.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_time.rb new file mode 100644 index 0000000..4276bc6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_time.rb @@ -0,0 +1,74 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerTime < Test::Unit::TestCase + def setup + @tester = Faker::Time + @time_ranges = Faker::Time::TIME_RANGES + end + + def test_between + from = Time.local(2012, 01, 01, 0, 0, 0) + to = Time.local(2013, 01, 01, 23, 59, 59) + + 100.times do + random_time = @tester.between(from, to) + assert random_time >= from, "Expected >= \"#{from}\", but got #{random_time}" + assert random_time <= to , "Expected <= \"#{to}\", but got #{random_time}" + end + end + + def test_forward + today = Date.today + + 100.times do + random_time = @tester.forward(10) + assert random_time > today.to_time, "Expected > \"#{today}\", but got #{random_time}" + end + end + + def test_backward + tomorrow = Date.today + 1 + + 100.times do + random_time = @tester.backward(10) + assert random_time < tomorrow.to_time, "Expected < \"#{tomorrow}\", but got #{random_time}" + end + end + + def test_invalid_period_error + from = Date.today + to = Date.today + 15 + + assert_raise ArgumentError do + @tester.between(from, to, :invalid_period) + end + end + + def test_return_type + random_backward = @tester.backward(5) + random_between = @tester.between(Date.today, Date.today + 5) + random_forward = @tester.forward(5) + + [random_backward, random_between, random_forward].each do |result| + assert result.is_a?(Time), "Expected a Time object, but got #{result.class}" + end + end + + def test_time_period + from = Date.today + to = Date.today + 15 + + 100.times do + period = @time_ranges.keys.to_a.sample + period_range = @time_ranges[period] + + random_backward = @tester.backward(30, period) + random_between = @tester.between(from, to, period) + random_forward = @tester.forward(30, period) + + [random_backward, random_between, random_forward].each do |result| + assert period_range.include?(result.hour.to_i), "\"#{result.hour}\" expected to be included in Faker::Time::TIME_RANGES[:#{period}] range" + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_university.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_university.rb new file mode 100644 index 0000000..9df21e7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_faker_university.rb @@ -0,0 +1,20 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestFakerUniversity < Test::Unit::TestCase + def setup + @tester = Faker::University + end + + def test_prefix + assert @tester.prefix.match(/\w+\.?/) + end + + def test_suffix + assert @tester.suffix.match(/\w+\.?/) + end + + def test_name + assert @tester.name.match(/\w+\.?/) + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_flexible.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_flexible.rb new file mode 100644 index 0000000..b1ae567 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_flexible.rb @@ -0,0 +1,56 @@ +require File.dirname(__FILE__) + '/test_helper.rb' + +module Faker + class Foodie < Base + flexible :chow + end +end + +class TestFlexible < Test::Unit::TestCase + + def setup + I18n.backend.store_translations(:xx, :faker => {:chow => {:yummie => [:fudge, :chocolate, :caramel], :taste => "delicious"}}) + I18n.backend.store_translations(:home, :faker => {:address => {:birthplace => [:bed, :hospital, :airplane]}}) + I18n.backend.store_translations(:kindergarden, :faker => {:name => {:girls_name => [:alice, :cheryl, :tatiana]}}) + I18n.backend.store_translations(:work, :faker => {:company => {:do_stuff => [:work, :work, :work]}}) + end + + def test_flexible_multiple_values + I18n.with_locale(:xx) do + actual = Faker::Foodie.yummie + assert [:fudge, :chocolate, :caramel].include? actual + end + end + + def test_flexible_single_value + I18n.with_locale(:xx) do + assert_equal "delicious", Faker::Foodie.taste + end + end + + def test_raises_no_method_error + I18n.with_locale(:xx) do + assert_raise(NoMethodError) do + Faker::Foodie.eeew + end + end + end + + def test_address_is_flexible + I18n.with_locale(:home) do + assert [:bed, :hospital, :airplane].include? Faker::Address.birthplace + end + end + + def test_name_is_flexible + I18n.with_locale(:kindergarden) do + assert [:alice, :cheryl, :tatiana].include? Faker::Name.girls_name + end + end + + def test_company_is_flexible + I18n.with_locale(:work) do + assert Faker::Company.do_stuff == :work + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_helper.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_helper.rb new file mode 100644 index 0000000..0945b3b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_helper.rb @@ -0,0 +1,12 @@ +require 'test/unit' +require 'rubygems' +require 'yaml' +YAML::ENGINE.yamler = 'syck' if defined? YAML::ENGINE +require File.expand_path(File.dirname(__FILE__) + '/../lib/faker') + +# configure I18n +locales_path = File.expand_path(File.dirname(__FILE__) + '../lib/locales') +I18n.available_locales = Dir[locales_path + '/*'].map do |file| + file.split('.').first +end +I18n.enforce_available_locales = true diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_locale.rb new file mode 100644 index 0000000..bf220cb --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_locale.rb @@ -0,0 +1,45 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +LoadedYaml = ['en', 'en-BORK'].inject({}) do |h, locale| + h[locale] = YAML.load_file(File.expand_path(File.dirname(__FILE__) + "/../lib/locales/#{locale}.yml"))[locale]['faker'] + h +end + +class TestLocale < Test::Unit::TestCase + def teardown + Faker::Config.locale = nil + end + + def test_locale_separate_from_i18n + I18n.locale = :en + Faker::Config.locale = :de + assert Faker::PhoneNumber.phone_number.match(/\(0\d+\) \d+|\+49-\d+-\d+/) + assert Faker::Address.street_name.match(//) + end + + def test_configured_locale_translation + Faker::Config.locale = 'en-BORK' + assert_equal Faker::Base.translate('faker.lorem.words').first, LoadedYaml['en-BORK']['lorem']['words'].first + end + + def test_locale_override_when_calling_translate + Faker::Config.locale = 'en-BORK' + assert_equal Faker::Base.translate('faker.lorem.words', :locale => :en).first, LoadedYaml['en']['lorem']['words'].first + end + + def test_translation_fallback + Faker::Config.locale = 'en-BORK' + assert_nil LoadedYaml['en-BORK']['name'] + assert_equal Faker::Base.translate('faker.name.first_name').first, LoadedYaml['en']['name']['first_name'].first + end + + def test_regex + Faker::Config.locale = 'en-GB' + re = /[A-PR-UWYZ][A-HK-Y]?[0-9][ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}/ + assert re.match(result = Faker::Address.postcode), "#{result} didn't match #{re}" + end + + def test_available_locales + assert I18n.locale_available?('en-GB') + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_pl_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_pl_locale.rb new file mode 100644 index 0000000..d1de4f1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_pl_locale.rb @@ -0,0 +1,24 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestPlLocale < Test::Unit::TestCase + def setup + @phone_prefixes = %w{12 13 14 15 16 17 18 22 23 24 25 29 32 33 34 41 42 43 44 46 48 52 54 55 56 58 59 61 62 63 65 67 68 71 74 75 76 77 81 82 83 84 85 86 87 89 91 94 95}.sort + @cell_prefixes = %w{50 51 53 57 60 66 69 72 73 78 79 88}.sort + @previous_locale = Faker::Config.locale + Faker::Config.locale = :pl + end + + def teardown + Faker::Config.locale = @previous_locale + end + + def test_pl_phone_number + prefixes = (0..999).map { Faker::PhoneNumber.phone_number[0,2] }.uniq.sort + assert_equal @phone_prefixes, prefixes + end + + def test_pl_cell_phone + prefixes = (0..999).map { Faker::PhoneNumber.cell_phone[0,2] }.uniq.sort + assert_equal @cell_prefixes, prefixes + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_uk_locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_uk_locale.rb new file mode 100644 index 0000000..46744cd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/faker-1.5.0/test/test_uk_locale.rb @@ -0,0 +1,44 @@ +require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') + +class TestUkLocale < Test::Unit::TestCase + def setup + @previous_locale = Faker::Config.locale + Faker::Config.locale = "uk" + end + + def teardown + Faker::Config.locale = @previous_locale + end + + def test_uk_email_at_symbol_is_not_followed_by_dot + assert Faker::Internet.email.match(/.+@[^.].+\.\w+/) + end + + def test_uk_domain_word_returns_latin_chars + assert Faker::Internet.domain_word.match(/^\w+$/) + end + + def test_uk_zipcode_length + assert Faker::Address.zip_code.match(/^\d{5}$/) + end + + def test_uk_street_prefix_returns_true_value + assert_send([Faker::Address, :street_prefix]) + end + + def test_uk_city_prefix_absent + assert_equal("", Faker::Address.city_prefix) + end + + def test_uk_city_suffix_absent + assert_equal("", Faker::Address.city_suffix) + end + + def test_uk_states_do_not_have_abbreviations + assert_equal("", Faker::Address.state_abbr) + end + + def test_uk_company_prefix_returns_true_value + assert_send([Faker::Company, :prefix]) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/MIT-LICENSE b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/MIT-LICENSE new file mode 100644 index 0000000..ed8e9ee --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2008 The Ruby I18n team + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/README.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/README.md new file mode 100644 index 0000000..07f8b63 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/README.md @@ -0,0 +1,82 @@ +# Ruby I18n + +[![Build Status](https://api.travis-ci.org/svenfuchs/i18n.svg?branch=master)](https://travis-ci.org/svenfuchs/i18n) + +Ruby Internationalization and localization solution. + +Features: + +* translation and localization +* interpolation of values to translations (Ruby 1.9 compatible syntax) +* pluralization (CLDR compatible) +* customizable transliteration to ASCII +* flexible defaults +* bulk lookup +* lambdas as translation data +* custom key/scope separator +* custom exception handlers +* extensible architecture with a swappable backend + +Pluggable features: + +* Cache +* Pluralization: lambda pluralizers stored as translation data +* Locale fallbacks, RFC4647 compliant (optionally: RFC4646 locale validation) +* Gettext support +* Translation metadata + +Alternative backends: + +* Chain +* ActiveRecord (optionally: ActiveRecord::Missing and ActiveRecord::StoreProcs) +* KeyValue (uses active_support/json and cannot store procs) + +For more information and lots of resources see: [http://ruby-i18n.org/wiki](http://ruby-i18n.org/wiki) + +## Installation + +``` +gem install i18n +``` + +## Tests + +You can run tests both with + +* `rake test` or just `rake` +* run any test file directly, e.g. `ruby -Ilib:test test/api/simple_test.rb` + +You can run all tests against all Gemfiles with + +* `ruby test/run_all.rb` + +The structure of the test suite is a bit unusual as it uses modules to reuse +particular tests in different test cases. + +The reason for this is that we need to enforce the I18n API across various +combinations of extensions. E.g. the Simple backend alone needs to support +the same API as any combination of feature and/or optimization modules included +to the Simple backend. We test this by reusing the same API defition (implemented +as test methods) in test cases with different setups. + +You can find the test cases that enforce the API in test/api. And you can find +the API definition test methods in test/api/tests. + +All other test cases (e.g. as defined in test/backend, test/core_ext) etc. +follow the usual test setup and should be easy to grok. + +## Authors + +* [Sven Fuchs](http://www.artweb-design.de) +* [Joshua Harvey](http://www.workingwithrails.com/person/759-joshua-harvey) +* [Stephan Soller](http://www.arkanis-development.de) +* [Saimon Moore](http://saimonmoore.net) +* [Matt Aimonetti](http://railsontherun.com) + +## Contributors + +https://github.com/svenfuchs/i18n/graphs/contributors + +## License + +MIT License. See the included MIT-LICENSE file. diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x new file mode 100644 index 0000000..d01cd86 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gemspec :path => '..' + +gem 'activesupport', '~> 3.2.0' +gem 'mocha' +gem 'test_declarative' +gem 'rake' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x.lock new file mode 100644 index 0000000..114b0a2 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-3.2.x.lock @@ -0,0 +1,27 @@ +PATH + remote: .. + specs: + i18n (0.7.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (3.2.21) + i18n (~> 0.6, >= 0.6.4) + multi_json (~> 1.0) + metaclass (0.0.4) + mocha (1.1.0) + metaclass (~> 0.0.1) + multi_json (1.10.1) + rake (10.4.2) + test_declarative (0.0.5) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 3.2.0) + i18n! + mocha + rake + test_declarative diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x new file mode 100644 index 0000000..6d41524 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gemspec :path => '..' + +gem 'activesupport', '~> 4.0.0' +gem 'mocha' +gem 'test_declarative' +gem 'rake' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x.lock new file mode 100644 index 0000000..4385986 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.0.x.lock @@ -0,0 +1,33 @@ +PATH + remote: .. + specs: + i18n (0.7.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.0.12) + i18n (~> 0.6, >= 0.6.9) + minitest (~> 4.2) + multi_json (~> 1.3) + thread_safe (~> 0.1) + tzinfo (~> 0.3.37) + metaclass (0.0.4) + minitest (4.7.5) + mocha (1.1.0) + metaclass (~> 0.0.1) + multi_json (1.10.1) + rake (10.4.2) + test_declarative (0.0.5) + thread_safe (0.3.4) + tzinfo (0.3.42) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 4.0.0) + i18n! + mocha + rake + test_declarative diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x new file mode 100644 index 0000000..9bb8658 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gemspec :path => '..' + +gem 'activesupport', '~> 4.1.0' +gem 'mocha' +gem 'test_declarative' +gem 'rake' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x.lock new file mode 100644 index 0000000..76d767a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.1.x.lock @@ -0,0 +1,34 @@ +PATH + remote: .. + specs: + i18n (0.7.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.1.8) + i18n (~> 0.6, >= 0.6.9) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.1) + tzinfo (~> 1.1) + json (1.8.1) + metaclass (0.0.4) + minitest (5.5.0) + mocha (1.1.0) + metaclass (~> 0.0.1) + rake (10.4.2) + test_declarative (0.0.5) + thread_safe (0.3.4) + tzinfo (1.2.2) + thread_safe (~> 0.1) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 4.1.0) + i18n! + mocha + rake + test_declarative diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x new file mode 100644 index 0000000..c7101eb --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gemspec :path => '..' + +gem 'activesupport', '~> 4.2.0.rc3' +gem 'mocha' +gem 'test_declarative' +gem 'rake' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x.lock new file mode 100644 index 0000000..0780ffe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-4.2.x.lock @@ -0,0 +1,34 @@ +PATH + remote: .. + specs: + i18n (0.7.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.0.rc3) + i18n (>= 0.7.0.beta1, < 0.8) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.1) + tzinfo (~> 1.1) + json (1.8.1) + metaclass (0.0.4) + minitest (5.5.0) + mocha (1.1.0) + metaclass (~> 0.0.1) + rake (10.4.2) + test_declarative (0.0.5) + thread_safe (0.3.4) + tzinfo (1.2.2) + thread_safe (~> 0.1) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 4.2.0.rc3) + i18n! + mocha + rake + test_declarative diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master new file mode 100644 index 0000000..285ea5a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gemspec :path => '..' + +gem 'activesupport', github: 'rails/rails', branch: 'master' +gem 'mocha' +gem 'test_declarative' +gem 'rake' diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master.lock b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master.lock new file mode 100644 index 0000000..c1f1fc8 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/gemfiles/Gemfile.rails-master.lock @@ -0,0 +1,40 @@ +GIT + remote: git://github.com/rails/rails.git + revision: fe46f009be1ece58e45abc51195e2381a71bd023 + branch: master + specs: + activesupport (5.0.0.alpha) + i18n (>= 0.7.0.beta1, < 0.8) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.1) + tzinfo (~> 1.1) + +PATH + remote: .. + specs: + i18n (0.7.0) + +GEM + remote: https://rubygems.org/ + specs: + json (1.8.1) + metaclass (0.0.4) + minitest (5.5.0) + mocha (1.1.0) + metaclass (~> 0.0.1) + rake (10.4.2) + test_declarative (0.0.5) + thread_safe (0.3.4) + tzinfo (1.2.2) + thread_safe (~> 0.1) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport! + i18n! + mocha + rake + test_declarative diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n.rb new file mode 100644 index 0000000..e3f7cbe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n.rb @@ -0,0 +1,341 @@ +require 'i18n/version' +require 'i18n/exceptions' +require 'i18n/interpolate/ruby' + +module I18n + autoload :Backend, 'i18n/backend' + autoload :Config, 'i18n/config' + autoload :Gettext, 'i18n/gettext' + autoload :Locale, 'i18n/locale' + autoload :Tests, 'i18n/tests' + + RESERVED_KEYS = [:scope, :default, :separator, :resolve, :object, :fallback, :format, :cascade, :throw, :raise] + RESERVED_KEYS_PATTERN = /%\{(#{RESERVED_KEYS.join("|")})\}/ + + extend(Module.new { + # Gets I18n configuration object. + def config + Thread.current[:i18n_config] ||= I18n::Config.new + end + + # Sets I18n configuration object. + def config=(value) + Thread.current[:i18n_config] = value + end + + # Write methods which delegates to the configuration object + %w(locale backend default_locale available_locales default_separator + exception_handler load_path enforce_available_locales).each do |method| + module_eval <<-DELEGATORS, __FILE__, __LINE__ + 1 + def #{method} + config.#{method} + end + + def #{method}=(value) + config.#{method} = (value) + end + DELEGATORS + end + + # Tells the backend to reload translations. Used in situations like the + # Rails development environment. Backends can implement whatever strategy + # is useful. + def reload! + config.clear_available_locales_set + config.backend.reload! + end + + # Translates, pluralizes and interpolates a given key using a given locale, + # scope, and default, as well as interpolation values. + # + # *LOOKUP* + # + # Translation data is organized as a nested hash using the upper-level keys + # as namespaces. E.g., ActionView ships with the translation: + # :date => {:formats => {:short => "%b %d"}}. + # + # Translations can be looked up at any level of this hash using the key argument + # and the scope option. E.g., in this example I18n.t :date + # returns the whole translations hash {:formats => {:short => "%b %d"}}. + # + # Key can be either a single key or a dot-separated key (both Strings and Symbols + # work). E.g., the short format can be looked up using both: + # I18n.t 'date.formats.short' + # I18n.t :'date.formats.short' + # + # Scope can be either a single key, a dot-separated key or an array of keys + # or dot-separated keys. Keys and scopes can be combined freely. So these + # examples will all look up the same short date format: + # I18n.t 'date.formats.short' + # I18n.t 'formats.short', :scope => 'date' + # I18n.t 'short', :scope => 'date.formats' + # I18n.t 'short', :scope => %w(date formats) + # + # *INTERPOLATION* + # + # Translations can contain interpolation variables which will be replaced by + # values passed to #translate as part of the options hash, with the keys matching + # the interpolation variable names. + # + # E.g., with a translation :foo => "foo %{bar}" the option + # value for the key +bar+ will be interpolated into the translation: + # I18n.t :foo, :bar => 'baz' # => 'foo baz' + # + # *PLURALIZATION* + # + # Translation data can contain pluralized translations. Pluralized translations + # are arrays of singluar/plural versions of translations like ['Foo', 'Foos']. + # + # Note that I18n::Backend::Simple only supports an algorithm for English + # pluralization rules. Other algorithms can be supported by custom backends. + # + # This returns the singular version of a pluralized translation: + # I18n.t :foo, :count => 1 # => 'Foo' + # + # These both return the plural version of a pluralized translation: + # I18n.t :foo, :count => 0 # => 'Foos' + # I18n.t :foo, :count => 2 # => 'Foos' + # + # The :count option can be used both for pluralization and interpolation. + # E.g., with the translation + # :foo => ['%{count} foo', '%{count} foos'], count will + # be interpolated to the pluralized translation: + # I18n.t :foo, :count => 1 # => '1 foo' + # + # *DEFAULTS* + # + # This returns the translation for :foo or default if no translation was found: + # I18n.t :foo, :default => 'default' + # + # This returns the translation for :foo or the translation for :bar if no + # translation for :foo was found: + # I18n.t :foo, :default => :bar + # + # Returns the translation for :foo or the translation for :bar + # or default if no translations for :foo and :bar were found. + # I18n.t :foo, :default => [:bar, 'default'] + # + # *BULK LOOKUP* + # + # This returns an array with the translations for :foo and :bar. + # I18n.t [:foo, :bar] + # + # Can be used with dot-separated nested keys: + # I18n.t [:'baz.foo', :'baz.bar'] + # + # Which is the same as using a scope option: + # I18n.t [:foo, :bar], :scope => :baz + # + # *LAMBDAS* + # + # Both translations and defaults can be given as Ruby lambdas. Lambdas will be + # called and passed the key and options. + # + # E.g. assuming the key :salutation resolves to: + # lambda { |key, options| options[:gender] == 'm' ? "Mr. %{options[:name]}" : "Mrs. %{options[:name]}" } + # + # Then I18n.t(:salutation, :gender => 'w', :name => 'Smith') will result in "Mrs. Smith". + # + # It is recommended to use/implement lambdas in an "idempotent" way. E.g. when + # a cache layer is put in front of I18n.translate it will generate a cache key + # from the argument values passed to #translate. Therefor your lambdas should + # always return the same translations/values per unique combination of argument + # values. + def translate(*args) + options = args.last.is_a?(Hash) ? args.pop.dup : {} + key = args.shift + backend = config.backend + locale = options.delete(:locale) || config.locale + handling = options.delete(:throw) && :throw || options.delete(:raise) && :raise # TODO deprecate :raise + + enforce_available_locales!(locale) + raise I18n::ArgumentError if key.is_a?(String) && key.empty? + + result = catch(:exception) do + if key.is_a?(Array) + key.map { |k| backend.translate(locale, k, options) } + else + backend.translate(locale, key, options) + end + end + result.is_a?(MissingTranslation) ? handle_exception(handling, result, locale, key, options) : result + end + alias :t :translate + + # Wrapper for translate that adds :raise => true. With + # this option, if no translation is found, it will raise I18n::MissingTranslationData + def translate!(key, options={}) + translate(key, options.merge(:raise => true)) + end + alias :t! :translate! + + # Returns true if a translation exists for a given key, otherwise returns false. + def exists?(key, locale = config.locale) + raise I18n::ArgumentError if key.is_a?(String) && key.empty? + config.backend.exists?(locale, key) + end + + # Transliterates UTF-8 characters to ASCII. By default this method will + # transliterate only Latin strings to an ASCII approximation: + # + # I18n.transliterate("Ærøskøbing") + # # => "AEroskobing" + # + # I18n.transliterate("日本語") + # # => "???" + # + # It's also possible to add support for per-locale transliterations. I18n + # expects transliteration rules to be stored at + # i18n.transliterate.rule. + # + # Transliteration rules can either be a Hash or a Proc. Procs must accept a + # single string argument. Hash rules inherit the default transliteration + # rules, while Procs do not. + # + # *Examples* + # + # Setting a Hash in .yml: + # + # i18n: + # transliterate: + # rule: + # ü: "ue" + # ö: "oe" + # + # Setting a Hash using Ruby: + # + # store_translations(:de, :i18n => { + # :transliterate => { + # :rule => { + # "ü" => "ue", + # "ö" => "oe" + # } + # } + # ) + # + # Setting a Proc: + # + # translit = lambda {|string| MyTransliterator.transliterate(string) } + # store_translations(:xx, :i18n => {:transliterate => {:rule => translit}) + # + # Transliterating strings: + # + # I18n.locale = :en + # I18n.transliterate("Jürgen") # => "Jurgen" + # I18n.locale = :de + # I18n.transliterate("Jürgen") # => "Juergen" + # I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen" + # I18n.transliterate("Jürgen", :locale => :de) # => "Juergen" + def transliterate(*args) + options = args.pop.dup if args.last.is_a?(Hash) + key = args.shift + locale = options && options.delete(:locale) || config.locale + handling = options && (options.delete(:throw) && :throw || options.delete(:raise) && :raise) + replacement = options && options.delete(:replacement) + enforce_available_locales!(locale) + config.backend.transliterate(locale, key, replacement) + rescue I18n::ArgumentError => exception + handle_exception(handling, exception, locale, key, options || {}) + end + + # Localizes certain objects, such as dates and numbers to local formatting. + def localize(object, options = nil) + options = options ? options.dup : {} + locale = options.delete(:locale) || config.locale + format = options.delete(:format) || :default + enforce_available_locales!(locale) + config.backend.localize(locale, object, format, options) + end + alias :l :localize + + # Executes block with given I18n.locale set. + def with_locale(tmp_locale = nil) + if tmp_locale + current_locale = self.locale + self.locale = tmp_locale + end + yield + ensure + self.locale = current_locale if tmp_locale + end + + # Merges the given locale, key and scope into a single array of keys. + # Splits keys that contain dots into multiple keys. Makes sure all + # keys are Symbols. + def normalize_keys(locale, key, scope, separator = nil) + separator ||= I18n.default_separator + + keys = [] + keys.concat normalize_key(locale, separator) + keys.concat normalize_key(scope, separator) + keys.concat normalize_key(key, separator) + keys + end + + # Returns true when the passed locale, which can be either a String or a + # Symbol, is in the list of available locales. Returns false otherwise. + def locale_available?(locale) + I18n.config.available_locales_set.include?(locale) + end + + # Raises an InvalidLocale exception when the passed locale is not available. + def enforce_available_locales!(locale) + if config.enforce_available_locales + raise I18n::InvalidLocale.new(locale) if !locale_available?(locale) + end + end + + private + + # Any exceptions thrown in translate will be sent to the @@exception_handler + # which can be a Symbol, a Proc or any other Object unless they're forced to + # be raised or thrown (MissingTranslation). + # + # If exception_handler is a Symbol then it will simply be sent to I18n as + # a method call. A Proc will simply be called. In any other case the + # method #call will be called on the exception_handler object. + # + # Examples: + # + # I18n.exception_handler = :custom_exception_handler # this is the default + # I18n.custom_exception_handler(exception, locale, key, options) # will be called like this + # + # I18n.exception_handler = lambda { |*args| ... } # a lambda + # I18n.exception_handler.call(exception, locale, key, options) # will be called like this + # + # I18n.exception_handler = I18nExceptionHandler.new # an object + # I18n.exception_handler.call(exception, locale, key, options) # will be called like this + def handle_exception(handling, exception, locale, key, options) + case handling + when :raise + raise exception.respond_to?(:to_exception) ? exception.to_exception : exception + when :throw + throw :exception, exception + else + case handler = options[:exception_handler] || config.exception_handler + when Symbol + send(handler, exception, locale, key, options) + else + handler.call(exception, locale, key, options) + end + end + end + + def normalize_key(key, separator) + normalized_key_cache[separator][key] ||= + case key + when Array + key.map { |k| normalize_key(k, separator) }.flatten + else + keys = key.to_s.split(separator) + keys.delete('') + keys.map! { |k| k.to_sym } + keys + end + end + + def normalized_key_cache + @normalized_key_cache ||= Hash.new { |h,k| h[k] = {} } + end + }) +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend.rb new file mode 100644 index 0000000..46ef054 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend.rb @@ -0,0 +1,18 @@ +module I18n + module Backend + autoload :Base, 'i18n/backend/base' + autoload :InterpolationCompiler, 'i18n/backend/interpolation_compiler' + autoload :Cache, 'i18n/backend/cache' + autoload :Cascade, 'i18n/backend/cascade' + autoload :Chain, 'i18n/backend/chain' + autoload :Fallbacks, 'i18n/backend/fallbacks' + autoload :Flatten, 'i18n/backend/flatten' + autoload :Gettext, 'i18n/backend/gettext' + autoload :KeyValue, 'i18n/backend/key_value' + autoload :Memoize, 'i18n/backend/memoize' + autoload :Metadata, 'i18n/backend/metadata' + autoload :Pluralization, 'i18n/backend/pluralization' + autoload :Simple, 'i18n/backend/simple' + autoload :Transliterator, 'i18n/backend/transliterator' + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb new file mode 100644 index 0000000..df5e755 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb @@ -0,0 +1,189 @@ +require 'yaml' +require 'i18n/core_ext/hash' +require 'i18n/core_ext/kernel/suppress_warnings' + +module I18n + module Backend + module Base + include I18n::Backend::Transliterator + + # Accepts a list of paths to translation files. Loads translations from + # plain Ruby (*.rb) or YAML files (*.yml). See #load_rb and #load_yml + # for details. + def load_translations(*filenames) + filenames = I18n.load_path if filenames.empty? + filenames.flatten.each { |filename| load_file(filename) } + end + + # This method receives a locale, a data hash and options for storing translations. + # Should be implemented + def store_translations(locale, data, options = {}) + raise NotImplementedError + end + + def translate(locale, key, options = {}) + raise InvalidLocale.new(locale) unless locale + entry = key && lookup(locale, key, options[:scope], options) + + if options.empty? + entry = resolve(locale, key, entry, options) + else + count, default = options.values_at(:count, :default) + values = options.except(*RESERVED_KEYS) + entry = entry.nil? && default ? + default(locale, key, default, options) : resolve(locale, key, entry, options) + end + + throw(:exception, I18n::MissingTranslation.new(locale, key, options)) if entry.nil? + entry = entry.dup if entry.is_a?(String) + + entry = pluralize(locale, entry, count) if count + entry = interpolate(locale, entry, values) if values + entry + end + + def exists?(locale, key) + lookup(locale, key) != nil + end + + # Acts the same as +strftime+, but uses a localized version of the + # format string. Takes a key from the date/time formats translations as + # a format argument (e.g., :short in :'date.formats'). + def localize(locale, object, format = :default, options = {}) + raise ArgumentError, "Object must be a Date, DateTime or Time object. #{object.inspect} given." unless object.respond_to?(:strftime) + + if Symbol === format + key = format + type = object.respond_to?(:sec) ? 'time' : 'date' + options = options.merge(:raise => true, :object => object, :locale => locale) + format = I18n.t(:"#{type}.formats.#{key}", options) + end + + # format = resolve(locale, object, format, options) + format = format.to_s.gsub(/%[aAbBpP]/) do |match| + case match + when '%a' then I18n.t(:"date.abbr_day_names", :locale => locale, :format => format)[object.wday] + when '%A' then I18n.t(:"date.day_names", :locale => locale, :format => format)[object.wday] + when '%b' then I18n.t(:"date.abbr_month_names", :locale => locale, :format => format)[object.mon] + when '%B' then I18n.t(:"date.month_names", :locale => locale, :format => format)[object.mon] + when '%p' then I18n.t(:"time.#{object.hour < 12 ? :am : :pm}", :locale => locale, :format => format).upcase if object.respond_to? :hour + when '%P' then I18n.t(:"time.#{object.hour < 12 ? :am : :pm}", :locale => locale, :format => format).downcase if object.respond_to? :hour + end + end + + object.strftime(format) + end + + # Returns an array of locales for which translations are available + # ignoring the reserved translation meta data key :i18n. + def available_locales + raise NotImplementedError + end + + def reload! + end + + protected + + # The method which actually looks up for the translation in the store. + def lookup(locale, key, scope = [], options = {}) + raise NotImplementedError + end + + # Evaluates defaults. + # If given subject is an Array, it walks the array and returns the + # first translation that can be resolved. Otherwise it tries to resolve + # the translation directly. + def default(locale, object, subject, options = {}) + options = options.dup.reject { |key, value| key == :default } + case subject + when Array + subject.each do |item| + result = resolve(locale, object, item, options) and return result + end and nil + else + resolve(locale, object, subject, options) + end + end + + # Resolves a translation. + # If the given subject is a Symbol, it will be translated with the + # given options. If it is a Proc then it will be evaluated. All other + # subjects will be returned directly. + def resolve(locale, object, subject, options = {}) + return subject if options[:resolve] == false + result = catch(:exception) do + case subject + when Symbol + I18n.translate(subject, options.merge(:locale => locale, :throw => true)) + when Proc + date_or_time = options.delete(:object) || object + resolve(locale, object, subject.call(date_or_time, options)) + else + subject + end + end + result unless result.is_a?(MissingTranslation) + end + + # Picks a translation from a pluralized mnemonic subkey according to English + # pluralization rules : + # - It will pick the :one subkey if count is equal to 1. + # - It will pick the :other subkey otherwise. + # - It will pick the :zero subkey in the special case where count is + # equal to 0 and there is a :zero subkey present. This behaviour is + # not stand with regards to the CLDR pluralization rules. + # Other backends can implement more flexible or complex pluralization rules. + def pluralize(locale, entry, count) + return entry unless entry.is_a?(Hash) && count + + key = :zero if count == 0 && entry.has_key?(:zero) + key ||= count == 1 ? :one : :other + raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key) + entry[key] + end + + # Interpolates values into a given string. + # + # interpolate "file %{file} opened by %%{user}", :file => 'test.txt', :user => 'Mr. X' + # # => "file test.txt opened by %{user}" + def interpolate(locale, string, values = {}) + if string.is_a?(::String) && !values.empty? + I18n.interpolate(string, values) + else + string + end + end + + # Loads a single translations file by delegating to #load_rb or + # #load_yml depending on the file extension and directly merges the + # data to the existing translations. Raises I18n::UnknownFileType + # for all other file extensions. + def load_file(filename) + type = File.extname(filename).tr('.', '').downcase + raise UnknownFileType.new(type, filename) unless respond_to?(:"load_#{type}", true) + data = send(:"load_#{type}", filename) + unless data.is_a?(Hash) + raise InvalidLocaleData.new(filename, 'expects it to return a hash, but does not') + end + data.each { |locale, d| store_translations(locale, d || {}) } + end + + # Loads a plain Ruby translations file. eval'ing the file must yield + # a Hash containing translation data with locales as toplevel keys. + def load_rb(filename) + eval(IO.read(filename), binding, filename) + end + + # Loads a YAML translations file. The data must have locales as + # toplevel keys. + def load_yml(filename) + begin + YAML.load_file(filename) + rescue TypeError, ScriptError, StandardError => e + raise InvalidLocaleData.new(filename, e.inspect) + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cache.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cache.rb new file mode 100644 index 0000000..3c456ff --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cache.rb @@ -0,0 +1,96 @@ +# This module allows you to easily cache all responses from the backend - thus +# speeding up the I18n aspects of your application quite a bit. +# +# To enable caching you can simply include the Cache module to the Simple +# backend - or whatever other backend you are using: +# +# I18n::Backend::Simple.send(:include, I18n::Backend::Cache) +# +# You will also need to set a cache store implementation that you want to use: +# +# I18n.cache_store = ActiveSupport::Cache.lookup_store(:memory_store) +# +# You can use any cache implementation you want that provides the same API as +# ActiveSupport::Cache (only the methods #fetch and #write are being used). +# +# The cache_key implementation assumes that you only pass values to +# I18n.translate that return a valid key from #hash (see +# http://www.ruby-doc.org/core/classes/Object.html#M000337). +# +# If you use a lambda as a default value in your translation like this: +# +# I18n.t(:"date.order", :default => lambda {[:month, :day, :year]}) +# +# Then you will always have a cache miss, because each time this method +# is called the lambda will have a different hash value. If you know +# the result of the lambda is a constant as in the example above, then +# to cache this you can make the lambda a constant, like this: +# +# DEFAULT_DATE_ORDER = lambda {[:month, :day, :year]} +# ... +# I18n.t(:"date.order", :default => DEFAULT_DATE_ORDER) +# +# If the lambda may result in different values for each call then consider +# also using the Memoize backend. +# +module I18n + class << self + @@cache_store = nil + @@cache_namespace = nil + + def cache_store + @@cache_store + end + + def cache_store=(store) + @@cache_store = store + end + + def cache_namespace + @@cache_namespace + end + + def cache_namespace=(namespace) + @@cache_namespace = namespace + end + + def perform_caching? + !cache_store.nil? + end + end + + module Backend + # TODO Should the cache be cleared if new translations are stored? + module Cache + def translate(locale, key, options = {}) + I18n.perform_caching? ? fetch(cache_key(locale, key, options)) { super } : super + end + + protected + + def fetch(cache_key, &block) + result = _fetch(cache_key, &block) + throw(:exception, result) if result.is_a?(MissingTranslation) + result = result.dup if result.frozen? rescue result + result + end + + def _fetch(cache_key, &block) + result = I18n.cache_store.read(cache_key) and return result + result = catch(:exception, &block) + I18n.cache_store.write(cache_key, result) unless result.is_a?(Proc) + result + end + + def cache_key(locale, key, options) + # This assumes that only simple, native Ruby values are passed to I18n.translate. + "i18n/#{I18n.cache_namespace}/#{locale}/#{key.hash}/#{USE_INSPECT_HASH ? options.inspect.hash : options.hash}" + end + + private + # In Ruby < 1.9 the following is true: { :foo => 1, :bar => 2 }.hash == { :foo => 2, :bar => 1 }.hash + # Therefore we must use the hash of the inspect string instead to avoid cache key colisions. + USE_INSPECT_HASH = RUBY_VERSION <= "1.9" + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cascade.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cascade.rb new file mode 100644 index 0000000..d8fb1cf --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/cascade.rb @@ -0,0 +1,54 @@ +# The Cascade module adds the ability to do cascading lookups to backends that +# are compatible to the Simple backend. +# +# By cascading lookups we mean that for any key that can not be found the +# Cascade module strips one segment off the scope part of the key and then +# tries to look up the key in that scope. +# +# E.g. when a lookup for the key :"foo.bar.baz" does not yield a result then +# the segment :bar will be stripped off the scope part :"foo.bar" and the new +# scope :foo will be used to look up the key :baz. If that does not succeed +# then the remaining scope segment :foo will be omitted, too, and again the +# key :baz will be looked up (now with no scope). +# +# To enable a cascading lookup one passes the :cascade option: +# +# I18n.t(:'foo.bar.baz', :cascade => true) +# +# This will return the first translation found for :"foo.bar.baz", :"foo.baz" +# or :baz in this order. +# +# The cascading lookup takes precedence over resolving any given defaults. +# I.e. defaults will kick in after the cascading lookups haven't succeeded. +# +# This behavior is useful for libraries like ActiveRecord validations where +# the library wants to give users a bunch of more or less fine-grained options +# of scopes for a particular key. +# +# Thanks to Clemens Kofler for the initial idea and implementation! See +# http://github.com/clemens/i18n-cascading-backend + +module I18n + module Backend + module Cascade + def lookup(locale, key, scope = [], options = {}) + return super unless cascade = options[:cascade] + + cascade = { :step => 1 } unless cascade.is_a?(Hash) + step = cascade[:step] || 1 + offset = cascade[:offset] || 1 + separator = options[:separator] || I18n.default_separator + skip_root = cascade.has_key?(:skip_root) ? cascade[:skip_root] : true + + scope = I18n.normalize_keys(nil, key, scope, separator) + key = (scope.slice!(-offset, offset) || []).join(separator) + + begin + result = super + return result unless result.nil? + scope = scope.dup + end while (!scope.empty? || !skip_root) && scope.slice!(-step, step) + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/chain.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/chain.rb new file mode 100644 index 0000000..01d2ec9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/chain.rb @@ -0,0 +1,97 @@ +module I18n + module Backend + # Backend that chains multiple other backends and checks each of them when + # a translation needs to be looked up. This is useful when you want to use + # standard translations with a Simple backend but store custom application + # translations in a database or other backends. + # + # To use the Chain backend instantiate it and set it to the I18n module. + # You can add chained backends through the initializer or backends + # accessor: + # + # # preserves the existing Simple backend set to I18n.backend + # I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18n.backend) + # + # The implementation assumes that all backends added to the Chain implement + # a lookup method with the same API as Simple backend does. + class Chain + module Implementation + include Base + + attr_accessor :backends + + def initialize(*backends) + self.backends = backends + end + + def reload! + backends.each { |backend| backend.reload! } + end + + def store_translations(locale, data, options = {}) + backends.first.store_translations(locale, data, options) + end + + def available_locales + backends.map { |backend| backend.available_locales }.flatten.uniq + end + + def translate(locale, key, default_options = {}) + namespace = nil + options = default_options.except(:default) + + backends.each do |backend| + catch(:exception) do + options = default_options if backend == backends.last + translation = backend.translate(locale, key, options) + if namespace_lookup?(translation, options) + namespace = _deep_merge(translation, namespace || {}) + elsif !translation.nil? + return translation + end + end + end + + return namespace if namespace + throw(:exception, I18n::MissingTranslation.new(locale, key, options)) + end + + def exists?(locale, key) + backends.any? do |backend| + backend.exists?(locale, key) + end + end + + def localize(locale, object, format = :default, options = {}) + backends.each do |backend| + catch(:exception) do + result = backend.localize(locale, object, format, options) and return result + end + end + throw(:exception, I18n::MissingTranslation.new(locale, format, options)) + end + + protected + def namespace_lookup?(result, options) + result.is_a?(Hash) && !options.has_key?(:count) + end + + private + # This is approximately what gets used in ActiveSupport. + # However since we are not guaranteed to run in an ActiveSupport context + # it is wise to have our own copy. We underscore it + # to not pollute the namespace of the including class. + def _deep_merge(hash, other_hash) + copy = hash.dup + other_hash.each_pair do |k,v| + value_from_other = hash[k] + copy[k] = value_from_other.is_a?(Hash) && v.is_a?(Hash) ? _deep_merge(value_from_other, v) : v + end + copy + end + end + + include Implementation + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb new file mode 100644 index 0000000..d74b800 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb @@ -0,0 +1,69 @@ +# I18n locale fallbacks are useful when you want your application to use +# translations from other locales when translations for the current locale are +# missing. E.g. you might want to use :en translations when translations in +# your applications main locale :de are missing. +# +# To enable locale fallbacks you can simply include the Fallbacks module to +# the Simple backend - or whatever other backend you are using: +# +# I18n::Backend::Simple.include(I18n::Backend::Fallbacks) +module I18n + @@fallbacks = nil + + class << self + # Returns the current fallbacks implementation. Defaults to +I18n::Locale::Fallbacks+. + def fallbacks + @@fallbacks ||= I18n::Locale::Fallbacks.new + end + + # Sets the current fallbacks implementation. Use this to set a different fallbacks implementation. + def fallbacks=(fallbacks) + @@fallbacks = fallbacks + end + end + + module Backend + module Fallbacks + # Overwrites the Base backend translate method so that it will try each + # locale given by I18n.fallbacks for the given locale. E.g. for the + # locale :"de-DE" it might try the locales :"de-DE", :de and :en + # (depends on the fallbacks implementation) until it finds a result with + # the given options. If it does not find any result for any of the + # locales it will then throw MissingTranslation as usual. + # + # The default option takes precedence over fallback locales only when + # it's a Symbol. When the default contains a String, Proc or Hash + # it is evaluated last after all the fallback locales have been tried. + def translate(locale, key, options = {}) + return super if options[:fallback] + default = extract_non_symbol_default!(options) if options[:default] + + options[:fallback] = true + I18n.fallbacks[locale].each do |fallback| + begin + catch(:exception) do + result = super(fallback, key, options) + return result unless result.nil? + end + rescue I18n::InvalidLocale + # we do nothing when the locale is invalid, as this is a fallback anyways. + end + end + options.delete(:fallback) + + return super(locale, nil, options.merge(:default => default)) if default + throw(:exception, I18n::MissingTranslation.new(locale, key, options)) + end + + def extract_non_symbol_default!(options) + defaults = [options[:default]].flatten + first_non_symbol_default = defaults.detect{|default| !default.is_a?(Symbol)} + if first_non_symbol_default + options[:default] = defaults[0, defaults.index(first_non_symbol_default)] + end + return first_non_symbol_default + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/flatten.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/flatten.rb new file mode 100644 index 0000000..c23f7c1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/flatten.rb @@ -0,0 +1,113 @@ +module I18n + module Backend + # This module contains several helpers to assist flattening translations. + # You may want to flatten translations for: + # + # 1) speed up lookups, as in the Memoize backend; + # 2) In case you want to store translations in a data store, as in ActiveRecord backend; + # + # You can check both backends above for some examples. + # This module also keeps all links in a hash so they can be properly resolved when flattened. + module Flatten + SEPARATOR_ESCAPE_CHAR = "\001" + FLATTEN_SEPARATOR = "." + + # normalize_keys the flatten way. This method is significantly faster + # and creates way less objects than the one at I18n.normalize_keys. + # It also handles escaping the translation keys. + def self.normalize_flat_keys(locale, key, scope, separator) + keys = [scope, key].flatten.compact + separator ||= I18n.default_separator + + if separator != FLATTEN_SEPARATOR + keys.map! do |k| + k.to_s.tr("#{FLATTEN_SEPARATOR}#{separator}", + "#{SEPARATOR_ESCAPE_CHAR}#{FLATTEN_SEPARATOR}") + end + end + + keys.join(".") + end + + # Receives a string and escape the default separator. + def self.escape_default_separator(key) #:nodoc: + key.to_s.tr(FLATTEN_SEPARATOR, SEPARATOR_ESCAPE_CHAR) + end + + # Shortcut to I18n::Backend::Flatten.normalize_flat_keys + # and then resolve_links. + def normalize_flat_keys(locale, key, scope, separator) + key = I18n::Backend::Flatten.normalize_flat_keys(locale, key, scope, separator) + resolve_link(locale, key) + end + + # Store flattened links. + def links + @links ||= Hash.new { |h,k| h[k] = {} } + end + + # Flatten keys for nested Hashes by chaining up keys: + # + # >> { "a" => { "b" => { "c" => "d", "e" => "f" }, "g" => "h" }, "i" => "j"}.wind + # => { "a.b.c" => "d", "a.b.e" => "f", "a.g" => "h", "i" => "j" } + # + def flatten_keys(hash, escape, prev_key=nil, &block) + hash.each_pair do |key, value| + key = escape_default_separator(key) if escape + curr_key = [prev_key, key].compact.join(FLATTEN_SEPARATOR).to_sym + yield curr_key, value + flatten_keys(value, escape, curr_key, &block) if value.is_a?(Hash) + end + end + + # Receives a hash of translations (where the key is a locale and + # the value is another hash) and return a hash with all + # translations flattened. + # + # Nested hashes are included in the flattened hash just if subtree + # is true and Symbols are automatically stored as links. + def flatten_translations(locale, data, escape, subtree) + hash = {} + flatten_keys(data, escape) do |key, value| + if value.is_a?(Hash) + hash[key] = value if subtree + else + store_link(locale, key, value) if value.is_a?(Symbol) + hash[key] = value + end + end + hash + end + + protected + + def store_link(locale, key, link) + links[locale.to_sym][key.to_s] = link.to_s + end + + def resolve_link(locale, key) + key, locale = key.to_s, locale.to_sym + links = self.links[locale] + + if links.key?(key) + links[key] + elsif link = find_link(locale, key) + store_link(locale, key, key.gsub(*link)) + else + key + end + end + + def find_link(locale, key) #:nodoc: + links[locale].each do |from, to| + return [from, to] if key[0, from.length] == from + end && nil + end + + def escape_default_separator(key) #:nodoc: + I18n::Backend::Flatten.escape_default_separator(key) + end + + end + end +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/gettext.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/gettext.rb new file mode 100644 index 0000000..c357a6d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/gettext.rb @@ -0,0 +1,72 @@ +require 'i18n/gettext' +require 'i18n/gettext/po_parser' + +# Experimental support for using Gettext po files to store translations. +# +# To use this you can simply include the module to the Simple backend - or +# whatever other backend you are using. +# +# I18n::Backend::Simple.include(I18n::Backend::Gettext) +# +# Now you should be able to include your Gettext translation (*.po) files to +# the I18n.load_path so they're loaded to the backend and you can use them as +# usual: +# +# I18n.load_path += Dir["path/to/locales/*.po"] +# +# Following the Gettext convention this implementation expects that your +# translation files are named by their locales. E.g. the file en.po would +# contain the translations for the English locale. +module I18n + module Backend + module Gettext + class PoData < Hash + def set_comment(msgid_or_sym, comment) + # ignore + end + end + + protected + def load_po(filename) + locale = ::File.basename(filename, '.po').to_sym + data = normalize(locale, parse(filename)) + { locale => data } + end + + def parse(filename) + GetText::PoParser.new.parse(::File.read(filename), PoData.new) + end + + def normalize(locale, data) + data.inject({}) do |result, (key, value)| + unless key.nil? || key.empty? + key = key.gsub(I18n::Gettext::CONTEXT_SEPARATOR, '|') + key, value = normalize_pluralization(locale, key, value) if key.index("\000") + + parts = key.split('|').reverse + normalized = parts.inject({}) do |_normalized, part| + { part => _normalized.empty? ? value : _normalized } + end + + result.deep_merge!(normalized) + end + result + end + end + + def normalize_pluralization(locale, key, value) + # FIXME po_parser includes \000 chars that can not be turned into Symbols + key = key.gsub("\000", I18n::Gettext::PLURAL_SEPARATOR).split(I18n::Gettext::PLURAL_SEPARATOR).first + + keys = I18n::Gettext.plural_keys(locale) + values = value.split("\000") + raise "invalid number of plurals: #{values.size}, keys: #{keys.inspect} on #{locale} locale for msgid #{key.inspect} with values #{values.inspect}" if values.size != keys.size + + result = {} + values.each_with_index { |_value, ix| result[keys[ix]] = _value } + [key, result] + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/interpolation_compiler.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/interpolation_compiler.rb new file mode 100644 index 0000000..0e3a603 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/interpolation_compiler.rb @@ -0,0 +1,121 @@ +# The InterpolationCompiler module contains optimizations that can tremendously +# speed up the interpolation process on the Simple backend. +# +# It works by defining a pre-compiled method on stored translation Strings that +# already bring all the knowledge about contained interpolation variables etc. +# so that the actual recurring interpolation will be very fast. +# +# To enable pre-compiled interpolations you can simply include the +# InterpolationCompiler module to the Simple backend: +# +# I18n::Backend::Simple.include(I18n::Backend::InterpolationCompiler) +# +# Note that InterpolationCompiler does not yield meaningful results and consequently +# should not be used with Ruby 1.9 (YARV) but improves performance everywhere else +# (jRuby, Rubinius). +module I18n + module Backend + module InterpolationCompiler + module Compiler + extend self + + TOKENIZER = /(%%\{[^\}]+\}|%\{[^\}]+\})/ + INTERPOLATION_SYNTAX_PATTERN = /(%)?(%\{([^\}]+)\})/ + + def compile_if_an_interpolation(string) + if interpolated_str?(string) + string.instance_eval <<-RUBY_EVAL, __FILE__, __LINE__ + def i18n_interpolate(v = {}) + "#{compiled_interpolation_body(string)}" + end + RUBY_EVAL + end + + string + end + + def interpolated_str?(str) + str.kind_of?(::String) && str =~ INTERPOLATION_SYNTAX_PATTERN + end + + protected + # tokenize("foo %{bar} baz %%{buz}") # => ["foo ", "%{bar}", " baz ", "%%{buz}"] + def tokenize(str) + str.split(TOKENIZER) + end + + def compiled_interpolation_body(str) + tokenize(str).map do |token| + (matchdata = token.match(INTERPOLATION_SYNTAX_PATTERN)) ? handle_interpolation_token(token, matchdata) : escape_plain_str(token) + end.join + end + + def handle_interpolation_token(interpolation, matchdata) + escaped, pattern, key = matchdata.values_at(1, 2, 3) + escaped ? pattern : compile_interpolation_token(key.to_sym) + end + + def compile_interpolation_token(key) + "\#{#{interpolate_or_raise_missing(key)}}" + end + + def interpolate_or_raise_missing(key) + escaped_key = escape_key_sym(key) + RESERVED_KEYS.include?(key) ? reserved_key(escaped_key) : interpolate_key(escaped_key) + end + + def interpolate_key(key) + [direct_key(key), nil_key(key), missing_key(key)].join('||') + end + + def direct_key(key) + "((t = v[#{key}]) && t.respond_to?(:call) ? t.call : t)" + end + + def nil_key(key) + "(v.has_key?(#{key}) && '')" + end + + def missing_key(key) + "I18n.config.missing_interpolation_argument_handler.call(#{key}, v, self)" + end + + def reserved_key(key) + "raise(ReservedInterpolationKey.new(#{key}, self))" + end + + def escape_plain_str(str) + str.gsub(/"|\\|#/) {|x| "\\#{x}"} + end + + def escape_key_sym(key) + # rely on Ruby to do all the hard work :) + key.to_sym.inspect + end + end + + def interpolate(locale, string, values) + if string.respond_to?(:i18n_interpolate) + string.i18n_interpolate(values) + elsif values + super + else + string + end + end + + def store_translations(locale, data, options = {}) + compile_all_strings_in(data) + super + end + + protected + def compile_all_strings_in(data) + data.each_value do |value| + Compiler.compile_if_an_interpolation(value) + compile_all_strings_in(value) if value.kind_of?(Hash) + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/key_value.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/key_value.rb new file mode 100644 index 0000000..a79fc1a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/key_value.rb @@ -0,0 +1,100 @@ +require 'i18n/backend/base' +require 'active_support/json' + +module I18n + module Backend + # This is a basic backend for key value stores. It receives on + # initialization the store, which should respond to three methods: + # + # * store#[](key) - Used to get a value + # * store#[]=(key, value) - Used to set a value + # * store#keys - Used to get all keys + # + # Since these stores only supports string, all values are converted + # to JSON before being stored, allowing it to also store booleans, + # hashes and arrays. However, this store does not support Procs. + # + # As the ActiveRecord backend, Symbols are just supported when loading + # translations from the filesystem or through explicit store translations. + # + # Also, avoid calling I18n.available_locales since it's a somehow + # expensive operation in most stores. + # + # == Example + # + # To setup I18n to use TokyoCabinet in memory is quite straightforward: + # + # require 'rufus/tokyo/cabinet' # gem install rufus-tokyo + # I18n.backend = I18n::Backend::KeyValue.new(Rufus::Tokyo::Cabinet.new('*')) + # + # == Performance + # + # You may make this backend even faster by including the Memoize module. + # However, notice that you should properly clear the cache if you change + # values directly in the key-store. + # + # == Subtrees + # + # In most backends, you are allowed to retrieve part of a translation tree: + # + # I18n.backend.store_translations :en, :foo => { :bar => :baz } + # I18n.t "foo" #=> { :bar => :baz } + # + # This backend supports this feature by default, but it slows down the storage + # of new data considerably and makes hard to delete entries. That said, you are + # allowed to disable the storage of subtrees on initialization: + # + # I18n::Backend::KeyValue.new(@store, false) + # + # This is useful if you are using a KeyValue backend chained to a Simple backend. + class KeyValue + module Implementation + attr_accessor :store + + include Base, Flatten + + def initialize(store, subtrees=true) + @store, @subtrees = store, subtrees + end + + def store_translations(locale, data, options = {}) + escape = options.fetch(:escape, true) + flatten_translations(locale, data, escape, @subtrees).each do |key, value| + key = "#{locale}.#{key}" + + case value + when Hash + if @subtrees && (old_value = @store[key]) + old_value = ActiveSupport::JSON.decode(old_value) + value = old_value.deep_symbolize_keys.deep_merge!(value) if old_value.is_a?(Hash) + end + when Proc + raise "Key-value stores cannot handle procs" + end + + @store[key] = ActiveSupport::JSON.encode(value) unless value.is_a?(Symbol) + end + end + + def available_locales + locales = @store.keys.map { |k| k =~ /\./; $` } + locales.uniq! + locales.compact! + locales.map! { |k| k.to_sym } + locales + end + + protected + + def lookup(locale, key, scope = [], options = {}) + key = normalize_flat_keys(locale, key, scope, options[:separator]) + value = @store["#{locale}.#{key}"] + value = ActiveSupport::JSON.decode(value) if value + value.is_a?(Hash) ? value.deep_symbolize_keys : value + end + end + + include Implementation + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/memoize.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/memoize.rb new file mode 100644 index 0000000..ae9801f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/memoize.rb @@ -0,0 +1,46 @@ +# Memoize module simply memoizes the values returned by lookup using +# a flat hash and can tremendously speed up the lookup process in a backend. +# +# To enable it you can simply include the Memoize module to your backend: +# +# I18n::Backend::Simple.include(I18n::Backend::Memoize) +# +# Notice that it's the responsibility of the backend to define whenever the +# cache should be cleaned. +module I18n + module Backend + module Memoize + def available_locales + @memoized_locales ||= super + end + + def store_translations(locale, data, options = {}) + reset_memoizations!(locale) + super + end + + def reload! + reset_memoizations! + super + end + + protected + + def lookup(locale, key, scope = nil, options = {}) + flat_key = I18n::Backend::Flatten.normalize_flat_keys(locale, + key, scope, options[:separator]).to_sym + flat_hash = memoized_lookup[locale.to_sym] + flat_hash.key?(flat_key) ? flat_hash[flat_key] : (flat_hash[flat_key] = super) + end + + def memoized_lookup + @memoized_lookup ||= Hash.new { |h, k| h[k] = {} } + end + + def reset_memoizations!(locale=nil) + @memoized_locales = nil + (locale ? memoized_lookup[locale.to_sym] : memoized_lookup).clear + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/metadata.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/metadata.rb new file mode 100644 index 0000000..52c0a29 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/metadata.rb @@ -0,0 +1,65 @@ +# I18n translation metadata is useful when you want to access information +# about how a translation was looked up, pluralized or interpolated in +# your application. +# +# msg = I18n.t(:message, :default => 'Hi!', :scope => :foo) +# msg.translation_metadata +# # => { :key => :message, :scope => :foo, :default => 'Hi!' } +# +# If a :count option was passed to #translate it will be set to the metadata. +# Likewise, if any interpolation variables were passed they will also be set. +# +# To enable translation metadata you can simply include the Metadata module +# into the Simple backend class - or whatever other backend you are using: +# +# I18n::Backend::Simple.include(I18n::Backend::Metadata) +# +module I18n + module Backend + module Metadata + class << self + def included(base) + Object.class_eval do + def translation_metadata + @translation_metadata ||= {} + end + + def translation_metadata=(translation_metadata) + @translation_metadata = translation_metadata + end + end unless Object.method_defined?(:translation_metadata) + end + end + + def translate(locale, key, options = {}) + metadata = { + :locale => locale, + :key => key, + :scope => options[:scope], + :default => options[:default], + :separator => options[:separator], + :values => options.reject { |name, value| RESERVED_KEYS.include?(name) } + } + with_metadata(metadata) { super } + end + + def interpolate(locale, entry, values = {}) + metadata = entry.translation_metadata.merge(:original => entry) + with_metadata(metadata) { super } + end + + def pluralize(locale, entry, count) + with_metadata(:count => count) { super } + end + + protected + + def with_metadata(metadata, &block) + result = yield + result.translation_metadata = result.translation_metadata.merge(metadata) if result + result + end + + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb new file mode 100644 index 0000000..c73a009 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb @@ -0,0 +1,53 @@ +# I18n Pluralization are useful when you want your application to +# customize pluralization rules. +# +# To enable locale specific pluralizations you can simply include the +# Pluralization module to the Simple backend - or whatever other backend you +# are using. +# +# I18n::Backend::Simple.include(I18n::Backend::Pluralization) +# +# You also need to make sure to provide pluralization algorithms to the +# backend, i.e. include them to your I18n.load_path accordingly. +module I18n + module Backend + module Pluralization + # Overwrites the Base backend translate method so that it will check the + # translation meta data space (:i18n) for a locale specific pluralization + # rule and use it to pluralize the given entry. I.e. the library expects + # pluralization rules to be stored at I18n.t(:'i18n.plural.rule') + # + # Pluralization rules are expected to respond to #call(count) and + # return a pluralization key. Valid keys depend on the translation data + # hash (entry) but it is generally recommended to follow CLDR's style, + # i.e., return one of the keys :zero, :one, :few, :many, :other. + # + # The :zero key is always picked directly when count equals 0 AND the + # translation data has the key :zero. This way translators are free to + # either pick a special :zero translation even for languages where the + # pluralizer does not return a :zero key. + def pluralize(locale, entry, count) + return entry unless entry.is_a?(Hash) and count + + pluralizer = pluralizer(locale) + if pluralizer.respond_to?(:call) + key = count == 0 && entry.has_key?(:zero) ? :zero : pluralizer.call(count) + raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key) + entry[key] + else + super + end + end + + protected + + def pluralizers + @pluralizers ||= {} + end + + def pluralizer(locale) + pluralizers[locale] ||= I18n.t(:'i18n.plural.rule', :locale => locale, :resolve => false) + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/simple.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/simple.rb new file mode 100644 index 0000000..95ffb6a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/simple.rb @@ -0,0 +1,87 @@ +module I18n + module Backend + # A simple backend that reads translations from YAML files and stores them in + # an in-memory hash. Relies on the Base backend. + # + # The implementation is provided by a Implementation module allowing to easily + # extend Simple backend's behavior by including modules. E.g.: + # + # module I18n::Backend::Pluralization + # def pluralize(*args) + # # extended pluralization logic + # super + # end + # end + # + # I18n::Backend::Simple.include(I18n::Backend::Pluralization) + class Simple + (class << self; self; end).class_eval { public :include } + + module Implementation + include Base + + def initialized? + @initialized ||= false + end + + # Stores translations for the given locale in memory. + # This uses a deep merge for the translations hash, so existing + # translations will be overwritten by new ones only at the deepest + # level of the hash. + def store_translations(locale, data, options = {}) + locale = locale.to_sym + translations[locale] ||= {} + data = data.deep_symbolize_keys + translations[locale].deep_merge!(data) + end + + # Get available locales from the translations hash + def available_locales + init_translations unless initialized? + translations.inject([]) do |locales, (locale, data)| + locales << locale unless (data.keys - [:i18n]).empty? + locales + end + end + + # Clean up translations hash and set initialized to false on reload! + def reload! + @initialized = false + @translations = nil + super + end + + protected + + def init_translations + load_translations + @initialized = true + end + + def translations + @translations ||= {} + end + + # Looks up a translation from the translations hash. Returns nil if + # eiher key is nil, or locale, scope or key do not exist as a key in the + # nested translations hash. Splits keys or scopes containing dots + # into multiple keys, i.e. currency.format is regarded the same as + # %w(currency format). + def lookup(locale, key, scope = [], options = {}) + init_translations unless initialized? + keys = I18n.normalize_keys(locale, key, scope, options[:separator]) + + keys.inject(translations) do |result, _key| + _key = _key.to_sym + return nil unless result.is_a?(Hash) && result.has_key?(_key) + result = result[_key] + result = resolve(locale, _key, result, options.merge(:scope => nil)) if result.is_a?(Symbol) + result + end + end + end + + include Implementation + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/transliterator.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/transliterator.rb new file mode 100644 index 0000000..2ee983d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/transliterator.rb @@ -0,0 +1,99 @@ +# encoding: utf-8 +module I18n + module Backend + module Transliterator + DEFAULT_REPLACEMENT_CHAR = "?" + + # Given a locale and a UTF-8 string, return the locale's ASCII + # approximation for the string. + def transliterate(locale, string, replacement = nil) + @transliterators ||= {} + @transliterators[locale] ||= Transliterator.get I18n.t(:'i18n.transliterate.rule', + :locale => locale, :resolve => false, :default => {}) + @transliterators[locale].transliterate(string, replacement) + end + + # Get a transliterator instance. + def self.get(rule = nil) + if !rule || rule.kind_of?(Hash) + HashTransliterator.new(rule) + elsif rule.kind_of? Proc + ProcTransliterator.new(rule) + else + raise I18n::ArgumentError, "Transliteration rule must be a proc or a hash." + end + end + + # A transliterator which accepts a Proc as its transliteration rule. + class ProcTransliterator + def initialize(rule) + @rule = rule + end + + def transliterate(string, replacement = nil) + @rule.call(string) + end + end + + # A transliterator which accepts a Hash of characters as its translation + # rule. + class HashTransliterator + DEFAULT_APPROXIMATIONS = { + "À"=>"A", "Á"=>"A", "Â"=>"A", "Ã"=>"A", "Ä"=>"A", "Å"=>"A", "Æ"=>"AE", + "Ç"=>"C", "È"=>"E", "É"=>"E", "Ê"=>"E", "Ë"=>"E", "Ì"=>"I", "Í"=>"I", + "Î"=>"I", "Ï"=>"I", "Ð"=>"D", "Ñ"=>"N", "Ò"=>"O", "Ó"=>"O", "Ô"=>"O", + "Õ"=>"O", "Ö"=>"O", "×"=>"x", "Ø"=>"O", "Ù"=>"U", "Ú"=>"U", "Û"=>"U", + "Ü"=>"U", "Ý"=>"Y", "Þ"=>"Th", "ß"=>"ss", "à"=>"a", "á"=>"a", "â"=>"a", + "ã"=>"a", "ä"=>"a", "å"=>"a", "æ"=>"ae", "ç"=>"c", "è"=>"e", "é"=>"e", + "ê"=>"e", "ë"=>"e", "ì"=>"i", "í"=>"i", "î"=>"i", "ï"=>"i", "ð"=>"d", + "ñ"=>"n", "ò"=>"o", "ó"=>"o", "ô"=>"o", "õ"=>"o", "ö"=>"o", "ø"=>"o", + "ù"=>"u", "ú"=>"u", "û"=>"u", "ü"=>"u", "ý"=>"y", "þ"=>"th", "ÿ"=>"y", + "Ā"=>"A", "ā"=>"a", "Ă"=>"A", "ă"=>"a", "Ą"=>"A", "ą"=>"a", "Ć"=>"C", + "ć"=>"c", "Ĉ"=>"C", "ĉ"=>"c", "Ċ"=>"C", "ċ"=>"c", "Č"=>"C", "č"=>"c", + "Ď"=>"D", "ď"=>"d", "Đ"=>"D", "đ"=>"d", "Ē"=>"E", "ē"=>"e", "Ĕ"=>"E", + "ĕ"=>"e", "Ė"=>"E", "ė"=>"e", "Ę"=>"E", "ę"=>"e", "Ě"=>"E", "ě"=>"e", + "Ĝ"=>"G", "ĝ"=>"g", "Ğ"=>"G", "ğ"=>"g", "Ġ"=>"G", "ġ"=>"g", "Ģ"=>"G", + "ģ"=>"g", "Ĥ"=>"H", "ĥ"=>"h", "Ħ"=>"H", "ħ"=>"h", "Ĩ"=>"I", "ĩ"=>"i", + "Ī"=>"I", "ī"=>"i", "Ĭ"=>"I", "ĭ"=>"i", "Į"=>"I", "į"=>"i", "İ"=>"I", + "ı"=>"i", "IJ"=>"IJ", "ij"=>"ij", "Ĵ"=>"J", "ĵ"=>"j", "Ķ"=>"K", "ķ"=>"k", + "ĸ"=>"k", "Ĺ"=>"L", "ĺ"=>"l", "Ļ"=>"L", "ļ"=>"l", "Ľ"=>"L", "ľ"=>"l", + "Ŀ"=>"L", "ŀ"=>"l", "Ł"=>"L", "ł"=>"l", "Ń"=>"N", "ń"=>"n", "Ņ"=>"N", + "ņ"=>"n", "Ň"=>"N", "ň"=>"n", "ʼn"=>"'n", "Ŋ"=>"NG", "ŋ"=>"ng", + "Ō"=>"O", "ō"=>"o", "Ŏ"=>"O", "ŏ"=>"o", "Ő"=>"O", "ő"=>"o", "Œ"=>"OE", + "œ"=>"oe", "Ŕ"=>"R", "ŕ"=>"r", "Ŗ"=>"R", "ŗ"=>"r", "Ř"=>"R", "ř"=>"r", + "Ś"=>"S", "ś"=>"s", "Ŝ"=>"S", "ŝ"=>"s", "Ş"=>"S", "ş"=>"s", "Š"=>"S", + "š"=>"s", "Ţ"=>"T", "ţ"=>"t", "Ť"=>"T", "ť"=>"t", "Ŧ"=>"T", "ŧ"=>"t", + "Ũ"=>"U", "ũ"=>"u", "Ū"=>"U", "ū"=>"u", "Ŭ"=>"U", "ŭ"=>"u", "Ů"=>"U", + "ů"=>"u", "Ű"=>"U", "ű"=>"u", "Ų"=>"U", "ų"=>"u", "Ŵ"=>"W", "ŵ"=>"w", + "Ŷ"=>"Y", "ŷ"=>"y", "Ÿ"=>"Y", "Ź"=>"Z", "ź"=>"z", "Ż"=>"Z", "ż"=>"z", + "Ž"=>"Z", "ž"=>"z" + }.freeze + + def initialize(rule = nil) + @rule = rule + add DEFAULT_APPROXIMATIONS.dup + add rule if rule + end + + def transliterate(string, replacement = nil) + string.gsub(/[^\x00-\x7f]/u) do |char| + approximations[char] || replacement || DEFAULT_REPLACEMENT_CHAR + end + end + + private + + def approximations + @approximations ||= {} + end + + # Add transliteration rules to the approximations hash. + def add(hash) + hash.each do |key, value| + approximations[key.to_s] = value.to_s + end + end + end + end + end +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/config.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/config.rb new file mode 100644 index 0000000..0a232a0 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/config.rb @@ -0,0 +1,140 @@ +require 'set' + +module I18n + class Config + # The only configuration value that is not global and scoped to thread is :locale. + # It defaults to the default_locale. + def locale + @locale ||= default_locale + end + + # Sets the current locale pseudo-globally, i.e. in the Thread.current hash. + def locale=(locale) + I18n.enforce_available_locales!(locale) + @locale = locale && locale.to_sym + end + + # Returns the current backend. Defaults to +Backend::Simple+. + def backend + @@backend ||= Backend::Simple.new + end + + # Sets the current backend. Used to set a custom backend. + def backend=(backend) + @@backend = backend + end + + # Returns the current default locale. Defaults to :'en' + def default_locale + @@default_locale ||= :en + end + + # Sets the current default locale. Used to set a custom default locale. + def default_locale=(locale) + I18n.enforce_available_locales!(locale) + @@default_locale = locale && locale.to_sym + end + + # Returns an array of locales for which translations are available. + # Unless you explicitely set these through I18n.available_locales= + # the call will be delegated to the backend. + def available_locales + @@available_locales ||= nil + @@available_locales || backend.available_locales + end + + # Caches the available locales list as both strings and symbols in a Set, so + # that we can have faster lookups to do the available locales enforce check. + def available_locales_set #:nodoc: + @@available_locales_set ||= available_locales.inject(Set.new) do |set, locale| + set << locale.to_s << locale.to_sym + end + end + + # Sets the available locales. + def available_locales=(locales) + @@available_locales = Array(locales).map { |locale| locale.to_sym } + @@available_locales = nil if @@available_locales.empty? + @@available_locales_set = nil + end + + # Clears the available locales set so it can be recomputed again after I18n + # gets reloaded. + def clear_available_locales_set #:nodoc: + @@available_locales_set = nil + end + + # Returns the current default scope separator. Defaults to '.' + def default_separator + @@default_separator ||= '.' + end + + # Sets the current default scope separator. + def default_separator=(separator) + @@default_separator = separator + end + + # Returns the current exception handler. Defaults to an instance of + # I18n::ExceptionHandler. + def exception_handler + @@exception_handler ||= ExceptionHandler.new + end + + # Sets the exception handler. + def exception_handler=(exception_handler) + @@exception_handler = exception_handler + end + + # Returns the current handler for situations when interpolation argument + # is missing. MissingInterpolationArgument will be raised by default. + def missing_interpolation_argument_handler + @@missing_interpolation_argument_handler ||= lambda do |missing_key, provided_hash, string| + raise MissingInterpolationArgument.new(missing_key, provided_hash, string) + end + end + + # Sets the missing interpolation argument handler. It can be any + # object that responds to #call. The arguments that will be passed to #call + # are the same as for MissingInterpolationArgument initializer. Use +Proc.new+ + # if you don't care about arity. + # + # == Example: + # You can supress raising an exception and return string instead: + # + # I18n.config.missing_interpolation_argument_handler = Proc.new do |key| + # "#{key} is missing" + # end + def missing_interpolation_argument_handler=(exception_handler) + @@missing_interpolation_argument_handler = exception_handler + end + + # Allow clients to register paths providing translation data sources. The + # backend defines acceptable sources. + # + # E.g. the provided SimpleBackend accepts a list of paths to translation + # files which are either named *.rb and contain plain Ruby Hashes or are + # named *.yml and contain YAML data. So for the SimpleBackend clients may + # register translation files like this: + # I18n.load_path << 'path/to/locale/en.yml' + def load_path + @@load_path ||= [] + end + + # Sets the load path instance. Custom implementations are expected to + # behave like a Ruby Array. + def load_path=(load_path) + @@load_path = load_path + end + + # Whether or not to verify if locales are in the list of available locales. + # Defaults to true. + @@enforce_available_locales = true + def enforce_available_locales + @@enforce_available_locales + end + + def enforce_available_locales=(enforce_available_locales) + @@enforce_available_locales = enforce_available_locales + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/hash.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/hash.rb new file mode 100644 index 0000000..f2a2422 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/hash.rb @@ -0,0 +1,29 @@ +class Hash + def slice(*keep_keys) + h = {} + keep_keys.each { |key| h[key] = fetch(key) } + h + end unless Hash.method_defined?(:slice) + + def except(*less_keys) + slice(*keys - less_keys) + end unless Hash.method_defined?(:except) + + def deep_symbolize_keys + inject({}) { |result, (key, value)| + value = value.deep_symbolize_keys if value.is_a?(Hash) + result[(key.to_sym rescue key) || key] = value + result + } + end unless Hash.method_defined?(:deep_symbolize_keys) + + # deep_merge_hash! by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809 + MERGER = proc do |key, v1, v2| + Hash === v1 && Hash === v2 ? v1.merge(v2, &MERGER) : v2 + end + + def deep_merge!(data) + merge!(data, &MERGER) + end unless Hash.method_defined?(:deep_merge!) +end + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/kernel/suppress_warnings.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/kernel/suppress_warnings.rb new file mode 100644 index 0000000..eec1435 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/kernel/suppress_warnings.rb @@ -0,0 +1,8 @@ +module Kernel + def suppress_warnings + original_verbosity, $VERBOSE = $VERBOSE, nil + yield + ensure + $VERBOSE = original_verbosity + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/string/interpolate.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/string/interpolate.rb new file mode 100644 index 0000000..a353310 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/core_ext/string/interpolate.rb @@ -0,0 +1,9 @@ +# This file used to backport the Ruby 1.9 String interpolation syntax to Ruby 1.8. +# +# Since I18n has dropped support to Ruby 1.8, this file is not required anymore, +# however, Rails 3.2 still requires it directly: +# +# https://github.com/rails/rails/blob/3-2-stable/activesupport/lib/active_support/core_ext/string/interpolation.rb#L2 +# +# So we can't just drop the file entirely, which would then break Rails users +# under Ruby 1.9. This file can be removed once Rails 3.2 support is dropped. diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/exceptions.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/exceptions.rb new file mode 100644 index 0000000..35c4572 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/exceptions.rb @@ -0,0 +1,104 @@ +require 'cgi' + +module I18n + # Handles exceptions raised in the backend. All exceptions except for + # MissingTranslationData exceptions are re-thrown. When a MissingTranslationData + # was caught the handler returns an error message string containing the key/scope. + # Note that the exception handler is not called when the option :throw was given. + class ExceptionHandler + include Module.new { + def call(exception, locale, key, options) + case exception + when MissingTranslation + exception.message + when Exception + raise exception + else + throw :exception, exception + end + end + } + end + + class ArgumentError < ::ArgumentError; end + + class InvalidLocale < ArgumentError + attr_reader :locale + def initialize(locale) + @locale = locale + super "#{locale.inspect} is not a valid locale" + end + end + + class InvalidLocaleData < ArgumentError + attr_reader :filename + def initialize(filename, exception_message) + @filename, @exception_message = filename, exception_message + super "can not load translations from #{filename}: #{exception_message}" + end + end + + class MissingTranslation + module Base + attr_reader :locale, :key, :options + + def initialize(locale, key, options = nil) + @key, @locale, @options = key, locale, options.dup || {} + options.each { |k, v| self.options[k] = v.inspect if v.is_a?(Proc) } + end + + def keys + @keys ||= I18n.normalize_keys(locale, key, options[:scope]).tap do |keys| + keys << 'no key' if keys.size < 2 + end + end + + def message + "translation missing: #{keys.join('.')}" + end + alias :to_s :message + + def to_exception + MissingTranslationData.new(locale, key, options) + end + end + + include Base + end + + class MissingTranslationData < ArgumentError + include MissingTranslation::Base + end + + class InvalidPluralizationData < ArgumentError + attr_reader :entry, :count + def initialize(entry, count) + @entry, @count = entry, count + super "translation data #{entry.inspect} can not be used with :count => #{count}" + end + end + + class MissingInterpolationArgument < ArgumentError + attr_reader :key, :values, :string + def initialize(key, values, string) + @key, @values, @string = key, values, string + super "missing interpolation argument #{key.inspect} in #{string.inspect} (#{values.inspect} given)" + end + end + + class ReservedInterpolationKey < ArgumentError + attr_reader :key, :string + def initialize(key, string) + @key, @string = key, string + super "reserved key #{key.inspect} used in #{string.inspect}" + end + end + + class UnknownFileType < ArgumentError + attr_reader :type, :filename + def initialize(type, filename) + @type, @filename = type, filename + super "can not load translations from #{filename}, the file type #{type} is not known" + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext.rb new file mode 100644 index 0000000..26a5d48 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext.rb @@ -0,0 +1,25 @@ +module I18n + module Gettext + PLURAL_SEPARATOR = "\001" + CONTEXT_SEPARATOR = "\004" + + autoload :Helpers, 'i18n/gettext/helpers' + + @@plural_keys = { :en => [:one, :other] } + + class << self + # returns an array of plural keys for the given locale so that we can + # convert from gettext's integer-index based style + # TODO move this information to the pluralization module + def plural_keys(locale) + @@plural_keys[locale] || @@plural_keys[:en] + end + + def extract_scope(msgid, separator) + scope = msgid.to_s.split(separator) + msgid = scope.pop + [scope, msgid] + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/helpers.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/helpers.rb new file mode 100644 index 0000000..ea07d05 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/helpers.rb @@ -0,0 +1,64 @@ +require 'i18n/gettext' + +module I18n + module Gettext + # Implements classical Gettext style accessors. To use this include the + # module to the global namespace or wherever you want to use it. + # + # include I18n::Gettext::Helpers + module Helpers + def gettext(msgid, options = {}) + I18n.t(msgid, { :default => msgid, :separator => '|' }.merge(options)) + end + alias _ gettext + + def sgettext(msgid, separator = '|') + scope, msgid = I18n::Gettext.extract_scope(msgid, separator) + I18n.t(msgid, :scope => scope, :default => msgid, :separator => separator) + end + alias s_ sgettext + + def pgettext(msgctxt, msgid) + separator = I18n::Gettext::CONTEXT_SEPARATOR + sgettext([msgctxt, msgid].join(separator), separator) + end + alias p_ pgettext + + def ngettext(msgid, msgid_plural, n = 1) + nsgettext(msgid, msgid_plural, n) + end + alias n_ ngettext + + # Method signatures: + # nsgettext('Fruits|apple', 'apples', 2) + # nsgettext(['Fruits|apple', 'apples'], 2) + def nsgettext(msgid, msgid_plural, n = 1, separator = '|') + if msgid.is_a?(Array) + msgid, msgid_plural, n, separator = msgid[0], msgid[1], msgid_plural, n + separator = '|' unless separator.is_a?(::String) + end + + scope, msgid = I18n::Gettext.extract_scope(msgid, separator) + default = { :one => msgid, :other => msgid_plural } + I18n.t(msgid, :default => default, :count => n, :scope => scope, :separator => separator) + end + alias ns_ nsgettext + + # Method signatures: + # npgettext('Fruits', 'apple', 'apples', 2) + # npgettext('Fruits', ['apple', 'apples'], 2) + def npgettext(msgctxt, msgid, msgid_plural, n = 1) + separator = I18n::Gettext::CONTEXT_SEPARATOR + + if msgid.is_a?(Array) + msgid_plural, msgid, n = msgid[1], [msgctxt, msgid[0]].join(separator), msgid_plural + else + msgid = [msgctxt, msgid].join(separator) + end + + nsgettext(msgid, msgid_plural, n, separator) + end + alias np_ npgettext + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/po_parser.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/po_parser.rb new file mode 100644 index 0000000..547df6a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/gettext/po_parser.rb @@ -0,0 +1,329 @@ +=begin + poparser.rb - Generate a .mo + + Copyright (C) 2003-2009 Masao Mutoh + + You may redistribute it and/or modify it under the same + license terms as Ruby. +=end + +#MODIFIED +# removed include GetText etc +# added stub translation method _(x) +require 'racc/parser' + +module GetText + + class PoParser < Racc::Parser + + def _(x) + x + end + +module_eval <<'..end src/poparser.ry modeval..id7a99570e05', 'src/poparser.ry', 108 + def unescape(orig) + ret = orig.gsub(/\\n/, "\n") + ret.gsub!(/\\t/, "\t") + ret.gsub!(/\\r/, "\r") + ret.gsub!(/\\"/, "\"") + ret + end + + def parse(str, data, ignore_fuzzy = true) + @comments = [] + @data = data + @fuzzy = false + @msgctxt = "" + $ignore_fuzzy = ignore_fuzzy + + str.strip! + @q = [] + until str.empty? do + case str + when /\A\s+/ + str = $' + when /\Amsgctxt/ + @q.push [:MSGCTXT, $&] + str = $' + when /\Amsgid_plural/ + @q.push [:MSGID_PLURAL, $&] + str = $' + when /\Amsgid/ + @q.push [:MSGID, $&] + str = $' + when /\Amsgstr/ + @q.push [:MSGSTR, $&] + str = $' + when /\A\[(\d+)\]/ + @q.push [:PLURAL_NUM, $1] + str = $' + when /\A\#~(.*)/ + $stderr.print _("Warning: obsolete msgid exists.\n") + $stderr.print " #{$&}\n" + @q.push [:COMMENT, $&] + str = $' + when /\A\#(.*)/ + @q.push [:COMMENT, $&] + str = $' + when /\A\"(.*)\"/ + @q.push [:STRING, $1] + str = $' + else + #c = str[0,1] + #@q.push [:STRING, c] + str = str[1..-1] + end + end + @q.push [false, '$end'] + if $DEBUG + @q.each do |a,b| + puts "[#{a}, #{b}]" + end + end + @yydebug = true if $DEBUG + do_parse + + if @comments.size > 0 + @data.set_comment(:last, @comments.join("\n")) + end + @data + end + + def next_token + @q.shift + end + + def on_message(msgid, msgstr) + if msgstr.size > 0 + @data[msgid] = msgstr + @data.set_comment(msgid, @comments.join("\n")) + end + @comments.clear + @msgctxt = "" + end + + def on_comment(comment) + @fuzzy = true if (/fuzzy/ =~ comment) + @comments << comment + end + + +..end src/poparser.ry modeval..id7a99570e05 + +##### racc 1.4.5 generates ### + +racc_reduce_table = [ + 0, 0, :racc_error, + 0, 10, :_reduce_none, + 2, 10, :_reduce_none, + 2, 10, :_reduce_none, + 2, 10, :_reduce_none, + 2, 12, :_reduce_5, + 1, 13, :_reduce_none, + 1, 13, :_reduce_none, + 4, 15, :_reduce_8, + 5, 16, :_reduce_9, + 2, 17, :_reduce_10, + 1, 17, :_reduce_none, + 3, 18, :_reduce_12, + 1, 11, :_reduce_13, + 2, 14, :_reduce_14, + 1, 14, :_reduce_15 ] + +racc_reduce_n = 16 + +racc_shift_n = 26 + +racc_action_table = [ + 3, 13, 5, 7, 9, 15, 16, 17, 20, 17, + 13, 17, 13, 13, 11, 17, 23, 20, 13, 17 ] + +racc_action_check = [ + 1, 16, 1, 1, 1, 12, 12, 12, 18, 18, + 7, 14, 15, 9, 3, 19, 20, 21, 23, 25 ] + +racc_action_pointer = [ + nil, 0, nil, 14, nil, nil, nil, 3, nil, 6, + nil, nil, 0, nil, 4, 5, -6, nil, 2, 8, + 8, 11, nil, 11, nil, 12 ] + +racc_action_default = [ + -1, -16, -2, -16, -3, -13, -4, -16, -6, -16, + -7, 26, -16, -15, -5, -16, -16, -14, -16, -8, + -16, -9, -11, -16, -10, -12 ] + +racc_goto_table = [ + 12, 22, 14, 4, 24, 6, 2, 8, 18, 19, + 10, 21, 1, nil, nil, nil, 25 ] + +racc_goto_check = [ + 5, 9, 5, 3, 9, 4, 2, 6, 5, 5, + 7, 8, 1, nil, nil, nil, 5 ] + +racc_goto_pointer = [ + nil, 12, 5, 2, 4, -7, 6, 9, -7, -17 ] + +racc_goto_default = [ + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ] + +racc_token_table = { + false => 0, + Object.new => 1, + :COMMENT => 2, + :MSGID => 3, + :MSGCTXT => 4, + :MSGID_PLURAL => 5, + :MSGSTR => 6, + :STRING => 7, + :PLURAL_NUM => 8 } + +racc_use_result_var = true + +racc_nt_base = 9 + +Racc_arg = [ + racc_action_table, + racc_action_check, + racc_action_default, + racc_action_pointer, + racc_goto_table, + racc_goto_check, + racc_goto_default, + racc_goto_pointer, + racc_nt_base, + racc_reduce_table, + racc_token_table, + racc_shift_n, + racc_reduce_n, + racc_use_result_var ] + +Racc_token_to_s_table = [ +'$end', +'error', +'COMMENT', +'MSGID', +'MSGCTXT', +'MSGID_PLURAL', +'MSGSTR', +'STRING', +'PLURAL_NUM', +'$start', +'msgfmt', +'comment', +'msgctxt', +'message', +'string_list', +'single_message', +'plural_message', +'msgstr_plural', +'msgstr_plural_line'] + +Racc_debug_parser = true + +##### racc system variables end ##### + + # reduce 0 omitted + + # reduce 1 omitted + + # reduce 2 omitted + + # reduce 3 omitted + + # reduce 4 omitted + +module_eval <<'.,.,', 'src/poparser.ry', 25 + def _reduce_5( val, _values, result ) + @msgctxt = unescape(val[1]) + "\004" + result + end +.,., + + # reduce 6 omitted + + # reduce 7 omitted + +module_eval <<'.,.,', 'src/poparser.ry', 48 + def _reduce_8( val, _values, result ) + if @fuzzy and $ignore_fuzzy + if val[1] != "" + $stderr.print _("Warning: fuzzy message was ignored.\n") + $stderr.print " msgid '#{val[1]}'\n" + else + on_message('', unescape(val[3])) + end + @fuzzy = false + else + on_message(@msgctxt + unescape(val[1]), unescape(val[3])) + end + result = "" + result + end +.,., + +module_eval <<'.,.,', 'src/poparser.ry', 65 + def _reduce_9( val, _values, result ) + if @fuzzy and $ignore_fuzzy + if val[1] != "" + $stderr.print _("Warning: fuzzy message was ignored.\n") + $stderr.print "msgid = '#{val[1]}\n" + else + on_message('', unescape(val[3])) + end + @fuzzy = false + else + on_message(@msgctxt + unescape(val[1]) + "\000" + unescape(val[3]), unescape(val[4])) + end + result = "" + result + end +.,., + +module_eval <<'.,.,', 'src/poparser.ry', 76 + def _reduce_10( val, _values, result ) + if val[0].size > 0 + result = val[0] + "\000" + val[1] + else + result = "" + end + result + end +.,., + + # reduce 11 omitted + +module_eval <<'.,.,', 'src/poparser.ry', 84 + def _reduce_12( val, _values, result ) + result = val[2] + result + end +.,., + +module_eval <<'.,.,', 'src/poparser.ry', 91 + def _reduce_13( val, _values, result ) + on_comment(val[0]) + result + end +.,., + +module_eval <<'.,.,', 'src/poparser.ry', 99 + def _reduce_14( val, _values, result ) + result = val.delete_if{|item| item == ""}.join + result + end +.,., + +module_eval <<'.,.,', 'src/poparser.ry', 103 + def _reduce_15( val, _values, result ) + result = val[0] + result + end +.,., + + def _reduce_none( val, _values, result ) + result + end + + end # class PoParser + +end # module GetText diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/interpolate/ruby.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/interpolate/ruby.rb new file mode 100644 index 0000000..442677f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/interpolate/ruby.rb @@ -0,0 +1,37 @@ +# heavily based on Masao Mutoh's gettext String interpolation extension +# http://github.com/mutoh/gettext/blob/f6566738b981fe0952548c421042ad1e0cdfb31e/lib/gettext/core_ext/string.rb + +module I18n + INTERPOLATION_PATTERN = Regexp.union( + /%%/, + /%\{(\w+)\}/, # matches placeholders like "%{foo}" + /%<(\w+)>(.*?\d*\.?\d*[bBdiouxXeEfgGcps])/ # matches placeholders like "%.d" + ) + + class << self + # Return String or raises MissingInterpolationArgument exception. + # Missing argument's logic is handled by I18n.config.missing_interpolation_argument_handler. + def interpolate(string, values) + raise ReservedInterpolationKey.new($1.to_sym, string) if string =~ RESERVED_KEYS_PATTERN + raise ArgumentError.new('Interpolation values must be a Hash.') unless values.kind_of?(Hash) + interpolate_hash(string, values) + end + + def interpolate_hash(string, values) + string.gsub(INTERPOLATION_PATTERN) do |match| + if match == '%%' + '%' + else + key = ($1 || $2).to_sym + value = if values.key?(key) + values[key] + else + config.missing_interpolation_argument_handler.call(key, values, string) + end + value = value.call(values) if value.respond_to?(:call) + $3 ? sprintf("%#{$3}", value) : value + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale.rb new file mode 100644 index 0000000..4f9d026 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale.rb @@ -0,0 +1,6 @@ +module I18n + module Locale + autoload :Fallbacks, 'i18n/locale/fallbacks' + autoload :Tag, 'i18n/locale/tag' + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/fallbacks.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/fallbacks.rb new file mode 100644 index 0000000..08bf6f5 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/fallbacks.rb @@ -0,0 +1,96 @@ +# Locale Fallbacks +# +# Extends the I18n module to hold a fallbacks instance which is set to an +# instance of I18n::Locale::Fallbacks by default but can be swapped with a +# different implementation. +# +# Locale fallbacks will compute a number of fallback locales for a given locale. +# For example: +# +#

+# I18n.fallbacks[:"es-MX"] # => [:"es-MX", :es, :en] 
+# +# Locale fallbacks always fall back to +# +# * all parent locales of a given locale (e.g. :es for :"es-MX") first, +# * the current default locales and all of their parents second +# +# The default locales are set to [I18n.default_locale] by default but can be +# set to something else. +# +# One can additionally add any number of additional fallback locales manually. +# These will be added before the default locales to the fallback chain. For +# example: +# +# # using the default locale as default fallback locale +# +# I18n.default_locale = :"en-US" +# I18n.fallbacks = I18n::Locale::Fallbacks.new(:"de-AT" => :"de-DE") +# I18n.fallbacks[:"de-AT"] # => [:"de-AT", :"de-DE", :de, :"en-US", :en] +# +# # using a custom locale as default fallback locale +# +# I18n.fallbacks = I18n::Locale::Fallbacks.new(:"en-GB", :"de-AT" => :de, :"de-CH" => :de) +# I18n.fallbacks[:"de-AT"] # => [:"de-AT", :de, :"en-GB", :en] +# I18n.fallbacks[:"de-CH"] # => [:"de-CH", :de, :"en-GB", :en] +# +# # mapping fallbacks to an existing instance +# +# # people speaking Catalan also speak Spanish as spoken in Spain +# fallbacks = I18n.fallbacks +# fallbacks.map(:ca => :"es-ES") +# fallbacks[:ca] # => [:ca, :"es-ES", :es, :"en-US", :en] +# +# # people speaking Arabian as spoken in Palestine also speak Hebrew as spoken in Israel +# fallbacks.map(:"ar-PS" => :"he-IL") +# fallbacks[:"ar-PS"] # => [:"ar-PS", :ar, :"he-IL", :he, :"en-US", :en] +# fallbacks[:"ar-EG"] # => [:"ar-EG", :ar, :"en-US", :en] +# +# # people speaking Sami as spoken in Finnland also speak Swedish and Finnish as spoken in Finnland +# fallbacks.map(:sms => [:"se-FI", :"fi-FI"]) +# fallbacks[:sms] # => [:sms, :"se-FI", :se, :"fi-FI", :fi, :"en-US", :en] + +module I18n + module Locale + class Fallbacks < Hash + def initialize(*mappings) + @map = {} + map(mappings.pop) if mappings.last.is_a?(Hash) + self.defaults = mappings.empty? ? [I18n.default_locale.to_sym] : mappings + end + + def defaults=(defaults) + @defaults = defaults.map { |default| compute(default, false) }.flatten + end + attr_reader :defaults + + def [](locale) + raise InvalidLocale.new(locale) if locale.nil? + locale = locale.to_sym + super || store(locale, compute(locale)) + end + + def map(mappings) + mappings.each do |from, to| + from, to = from.to_sym, Array(to) + to.each do |_to| + @map[from] ||= [] + @map[from] << _to.to_sym + end + end + end + + protected + + def compute(tags, include_defaults = true, exclude = []) + result = Array(tags).collect do |tag| + tags = I18n::Locale::Tag.tag(tag).self_and_parents.map! { |t| t.to_sym } - exclude + tags.each { |_tag| tags += compute(@map[_tag], false, exclude + tags) if @map[_tag] } + tags + end.flatten + result.push(*defaults) if include_defaults + result.uniq.compact + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag.rb new file mode 100644 index 0000000..a640b44 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag.rb @@ -0,0 +1,28 @@ +# encoding: utf-8 + +module I18n + module Locale + module Tag + autoload :Parents, 'i18n/locale/tag/parents' + autoload :Rfc4646, 'i18n/locale/tag/rfc4646' + autoload :Simple, 'i18n/locale/tag/simple' + + class << self + # Returns the current locale tag implementation. Defaults to +I18n::Locale::Tag::Simple+. + def implementation + @@implementation ||= Simple + end + + # Sets the current locale tag implementation. Use this to set a different locale tag implementation. + def implementation=(implementation) + @@implementation = implementation + end + + # Factory method for locale tags. Delegates to the current locale tag implementation. + def tag(tag) + implementation.tag(tag) + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/parents.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/parents.rb new file mode 100644 index 0000000..ec53060 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/parents.rb @@ -0,0 +1,22 @@ +module I18n + module Locale + module Tag + module Parents + def parent + @parent ||= begin + segs = to_a.compact + segs.length > 1 ? self.class.tag(*segs[0..(segs.length-2)].join('-')) : nil + end + end + + def self_and_parents + @self_and_parents ||= [self] + parents + end + + def parents + @parents ||= ([parent] + (parent ? parent.parents : [])).compact + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/rfc4646.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/rfc4646.rb new file mode 100644 index 0000000..4ce4c75 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/rfc4646.rb @@ -0,0 +1,74 @@ +# RFC 4646/47 compliant Locale tag implementation that parses locale tags to +# subtags such as language, script, region, variant etc. +# +# For more information see by http://en.wikipedia.org/wiki/IETF_language_tag +# +# Rfc4646::Parser does not implement grandfathered tags. + +module I18n + module Locale + module Tag + RFC4646_SUBTAGS = [ :language, :script, :region, :variant, :extension, :privateuse, :grandfathered ] + RFC4646_FORMATS = { :language => :downcase, :script => :capitalize, :region => :upcase, :variant => :downcase } + + class Rfc4646 < Struct.new(*RFC4646_SUBTAGS) + class << self + # Parses the given tag and returns a Tag instance if it is valid. + # Returns false if the given tag is not valid according to RFC 4646. + def tag(tag) + matches = parser.match(tag) + new(*matches) if matches + end + + def parser + @@parser ||= Rfc4646::Parser + end + + def parser=(parser) + @@parser = parser + end + end + + include Parents + + RFC4646_FORMATS.each do |name, format| + define_method(name) { self[name].send(format) unless self[name].nil? } + end + + def to_sym + to_s.to_sym + end + + def to_s + @tag ||= to_a.compact.join("-") + end + + def to_a + members.collect { |attr| self.send(attr) } + end + + module Parser + PATTERN = %r{\A(?: + ([a-z]{2,3}(?:(?:-[a-z]{3}){0,3})?|[a-z]{4}|[a-z]{5,8}) # language + (?:-([a-z]{4}))? # script + (?:-([a-z]{2}|\d{3}))? # region + (?:-([0-9a-z]{5,8}|\d[0-9a-z]{3}))* # variant + (?:-([0-9a-wyz](?:-[0-9a-z]{2,8})+))* # extension + (?:-(x(?:-[0-9a-z]{1,8})+))?| # privateuse subtag + (x(?:-[0-9a-z]{1,8})+)| # privateuse tag + /* ([a-z]{1,3}(?:-[0-9a-z]{2,8}){1,2}) */ # grandfathered + )\z}xi + + class << self + def match(tag) + c = PATTERN.match(tag.to_s).captures + c[0..4] << (c[5].nil? ? c[6] : c[5]) << c[7] # TODO c[7] is grandfathered, throw a NotImplemented exception here? + rescue + false + end + end + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/simple.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/simple.rb new file mode 100644 index 0000000..68642a1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/locale/tag/simple.rb @@ -0,0 +1,39 @@ +# Simple Locale tag implementation that computes subtags by simply splitting +# the locale tag at '-' occurences. +module I18n + module Locale + module Tag + class Simple + class << self + def tag(tag) + new(tag) + end + end + + include Parents + + attr_reader :tag + + def initialize(*tag) + @tag = tag.join('-').to_sym + end + + def subtags + @subtags = tag.to_s.split('-').map { |subtag| subtag.to_s } + end + + def to_sym + tag + end + + def to_s + tag.to_s + end + + def to_a + subtags + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests.rb new file mode 100644 index 0000000..554cdef --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests.rb @@ -0,0 +1,12 @@ +module I18n + module Tests + autoload :Basics, 'i18n/tests/basics' + autoload :Defaults, 'i18n/tests/defaults' + autoload :Interpolation, 'i18n/tests/interpolation' + autoload :Link, 'i18n/tests/link' + autoload :Localization, 'i18n/tests/localization' + autoload :Lookup, 'i18n/tests/lookup' + autoload :Pluralization, 'i18n/tests/pluralization' + autoload :Procs, 'i18n/tests/procs' + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/basics.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/basics.rb new file mode 100644 index 0000000..dc0596a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/basics.rb @@ -0,0 +1,59 @@ +module I18n + module Tests + module Basics + def teardown + I18n.available_locales = nil + end + + test "available_locales returns the locales stored to the backend by default" do + I18n.backend.store_translations('de', :foo => 'bar') + I18n.backend.store_translations('en', :foo => 'foo') + + assert I18n.available_locales.include?(:de) + assert I18n.available_locales.include?(:en) + end + + test "available_locales can be set to something else independently from the actual locale data" do + I18n.backend.store_translations('de', :foo => 'bar') + I18n.backend.store_translations('en', :foo => 'foo') + + I18n.available_locales = :foo + assert_equal [:foo], I18n.available_locales + + I18n.available_locales = [:foo, 'bar'] + assert_equal [:foo, :bar], I18n.available_locales + + I18n.available_locales = nil + assert I18n.available_locales.include?(:de) + assert I18n.available_locales.include?(:en) + end + + test "available_locales memoizes when set explicitely" do + I18n.backend.expects(:available_locales).never + I18n.available_locales = [:foo] + I18n.backend.store_translations('de', :bar => 'baz') + I18n.reload! + assert_equal [:foo], I18n.available_locales + end + + test "available_locales delegates to the backend when not set explicitely" do + I18n.backend.expects(:available_locales).twice + assert_equal I18n.available_locales, I18n.available_locales + end + + test "exists? is implemented by the backend" do + I18n.backend.store_translations(:foo, :bar => 'baz') + assert I18n.exists?(:bar, :foo) + end + + test "storing a nil value as a translation removes it from the available locale data" do + I18n.backend.store_translations(:en, :to_be_deleted => 'bar') + assert_equal 'bar', I18n.t(:to_be_deleted, :default => 'baz') + + I18n.cache_store.clear if I18n.respond_to?(:cache_store) && I18n.cache_store + I18n.backend.store_translations(:en, :to_be_deleted => nil) + assert_equal 'baz', I18n.t(:to_be_deleted, :default => 'baz') + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/defaults.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/defaults.rb new file mode 100644 index 0000000..081dcbd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/defaults.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 + +module I18n + module Tests + module Defaults + def setup + super + I18n.backend.store_translations(:en, :foo => { :bar => 'bar', :baz => 'baz' }) + end + + test "defaults: given nil as a key it returns the given default" do + assert_equal 'default', I18n.t(nil, :default => 'default') + end + + test "defaults: given a symbol as a default it translates the symbol" do + assert_equal 'bar', I18n.t(nil, :default => :'foo.bar') + end + + test "defaults: given a symbol as a default and a scope it stays inside the scope when looking up the symbol" do + assert_equal 'bar', I18n.t(:missing, :default => :bar, :scope => :foo) + end + + test "defaults: given an array as a default it returns the first match" do + assert_equal 'bar', I18n.t(:does_not_exist, :default => [:does_not_exist_2, :'foo.bar']) + end + + test "defaults: given an array of missing keys it raises a MissingTranslationData exception" do + assert_raise I18n::MissingTranslationData do + I18n.t(:does_not_exist, :default => [:does_not_exist_2, :does_not_exist_3], :raise => true) + end + end + + test "defaults: using a custom scope separator" do + # data must have been stored using the custom separator when using the ActiveRecord backend + I18n.backend.store_translations(:en, { :foo => { :bar => 'bar' } }, { :separator => '|' }) + assert_equal 'bar', I18n.t(nil, :default => :'foo|bar', :separator => '|') + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/interpolation.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/interpolation.rb new file mode 100644 index 0000000..add8b90 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/interpolation.rb @@ -0,0 +1,133 @@ +# encoding: utf-8 + +module I18n + module Tests + module Interpolation + # If no interpolation parameter is not given, I18n should not alter the string. + # This behavior is due to three reasons: + # + # * Checking interpolation keys in all strings hits performance, badly; + # + # * This allows us to retrieve untouched values through I18n. For example + # I could have a middleware that returns I18n lookup results in JSON + # to be processed through Javascript. Leaving the keys untouched allows + # the interpolation to happen at the javascript level; + # + # * Security concerns: if I allow users to translate a web site, they can + # insert %{} in messages causing the I18n lookup to fail in every request. + # + test "interpolation: given no values it does not alter the string" do + assert_equal 'Hi %{name}!', interpolate(:default => 'Hi %{name}!') + end + + test "interpolation: given values it interpolates them into the string" do + assert_equal 'Hi David!', interpolate(:default => 'Hi %{name}!', :name => 'David') + end + + test "interpolation: given a nil value it still interpolates it into the string" do + assert_equal 'Hi !', interpolate(:default => 'Hi %{name}!', :name => nil) + end + + test "interpolation: given a lambda as a value it calls it if the string contains the key" do + assert_equal 'Hi David!', interpolate(:default => 'Hi %{name}!', :name => lambda { |*args| 'David' }) + end + + test "interpolation: given a lambda as a value it does not call it if the string does not contain the key" do + assert_nothing_raised { interpolate(:default => 'Hi!', :name => lambda { |*args| raise 'fail' }) } + end + + test "interpolation: given values but missing a key it raises I18n::MissingInterpolationArgument" do + assert_raise(I18n::MissingInterpolationArgument) do + interpolate(:default => '%{foo}', :bar => 'bar') + end + end + + test "interpolation: it does not raise I18n::MissingInterpolationArgument for escaped variables" do + assert_nothing_raised(I18n::MissingInterpolationArgument) do + assert_equal 'Barr %{foo}', interpolate(:default => '%{bar} %%{foo}', :bar => 'Barr') + end + end + + test "interpolation: it does not change the original, stored translation string" do + I18n.backend.store_translations(:en, :interpolate => 'Hi %{name}!') + assert_equal 'Hi David!', interpolate(:interpolate, :name => 'David') + assert_equal 'Hi Yehuda!', interpolate(:interpolate, :name => 'Yehuda') + end + + test "interpolation: given the translation is in utf-8 it still works" do + assert_equal 'Häi David!', interpolate(:default => 'Häi %{name}!', :name => 'David') + end + + test "interpolation: given the value is in utf-8 it still works" do + assert_equal 'Hi ゆきひろ!', interpolate(:default => 'Hi %{name}!', :name => 'ゆきひろ') + end + + test "interpolation: given the translation and the value are in utf-8 it still works" do + assert_equal 'こんにちは、ゆきひろさん!', interpolate(:default => 'こんにちは、%{name}さん!', :name => 'ゆきひろ') + end + + if Object.const_defined?(:Encoding) + test "interpolation: given a euc-jp translation and a utf-8 value it raises Encoding::CompatibilityError" do + assert_raise(Encoding::CompatibilityError) do + interpolate(:default => euc_jp('こんにちは、%{name}さん!'), :name => 'ゆきひろ') + end + end + + test "interpolation: given a utf-8 translation and a euc-jp value it raises Encoding::CompatibilityError" do + assert_raise(Encoding::CompatibilityError) do + interpolate(:default => 'こんにちは、%{name}さん!', :name => euc_jp('ゆきひろ')) + end + end + + test "interpolation: ASCII strings in the backend should be encoded to UTF8 if interpolation options are in UTF8" do + I18n.backend.store_translations 'en', 'encoding' => ('%{who} let me go'.force_encoding("ASCII")) + result = I18n.t 'encoding', :who => "måmmå miå" + assert_equal Encoding::UTF_8, result.encoding + end + + test "interpolation: UTF8 strings in the backend are still returned as UTF8 with ASCII interpolation" do + I18n.backend.store_translations 'en', 'encoding' => 'måmmå miå %{what}' + result = I18n.t 'encoding', :what => 'let me go'.force_encoding("ASCII") + assert_equal Encoding::UTF_8, result.encoding + end + + test "interpolation: UTF8 strings in the backend are still returned as UTF8 even with numbers interpolation" do + I18n.backend.store_translations 'en', 'encoding' => '%{count} times: måmmå miå' + result = I18n.t 'encoding', :count => 3 + assert_equal Encoding::UTF_8, result.encoding + end + end + + test "interpolation: given a translations containing a reserved key it raises I18n::ReservedInterpolationKey" do + assert_raise(I18n::ReservedInterpolationKey) { interpolate(:default => '%{default}', :foo => :bar) } + assert_raise(I18n::ReservedInterpolationKey) { interpolate(:default => '%{scope}', :foo => :bar) } + assert_raise(I18n::ReservedInterpolationKey) { interpolate(:default => '%{separator}', :foo => :bar) } + end + + protected + + def capture(stream) + begin + stream = stream.to_s + eval "$#{stream} = StringIO.new" + yield + result = eval("$#{stream}").string + ensure + eval("$#{stream} = #{stream.upcase}") + end + + result + end + + def euc_jp(string) + string.encode!(Encoding::EUC_JP) + end + + def interpolate(*args) + options = args.last.is_a?(Hash) ? args.pop : {} + key = args.pop + I18n.backend.translate('en', key, options) + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/link.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/link.rb new file mode 100644 index 0000000..da84a2c --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/link.rb @@ -0,0 +1,56 @@ +# encoding: utf-8 + +module I18n + module Tests + module Link + test "linked lookup: if a key resolves to a symbol it looks up the symbol" do + I18n.backend.store_translations 'en', { + :link => :linked, + :linked => 'linked' + } + assert_equal 'linked', I18n.backend.translate('en', :link) + end + + test "linked lookup: if a key resolves to a dot-separated symbol it looks up the symbol" do + I18n.backend.store_translations 'en', { + :link => :"foo.linked", + :foo => { :linked => 'linked' } + } + assert_equal('linked', I18n.backend.translate('en', :link)) + end + + test "linked lookup: if a dot-separated key resolves to a symbol it looks up the symbol" do + I18n.backend.store_translations 'en', { + :foo => { :link => :linked }, + :linked => 'linked' + } + assert_equal('linked', I18n.backend.translate('en', :'foo.link')) + end + + test "linked lookup: if a dot-separated key resolves to a dot-separated symbol it looks up the symbol" do + I18n.backend.store_translations 'en', { + :foo => { :link => :"bar.linked" }, + :bar => { :linked => 'linked' } + } + assert_equal('linked', I18n.backend.translate('en', :'foo.link')) + end + + test "linked lookup: links always refer to the absolute key" do + I18n.backend.store_translations 'en', { + :foo => { :link => :linked, :linked => 'linked in foo' }, + :linked => 'linked absolutely' + } + assert_equal 'linked absolutely', I18n.backend.translate('en', :link, :scope => :foo) + end + + test "linked lookup: a link can resolve to a namespace in the middle of a dot-separated key" do + I18n.backend.store_translations 'en', { + :activemodel => { :errors => { :messages => { :blank => "can't be blank" } } }, + :activerecord => { :errors => { :messages => :"activemodel.errors.messages" } } + } + assert_equal "can't be blank", I18n.t(:"activerecord.errors.messages.blank") + assert_equal "can't be blank", I18n.t(:"activerecord.errors.messages.blank") + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization.rb new file mode 100644 index 0000000..53b1502 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization.rb @@ -0,0 +1,19 @@ +module I18n + module Tests + module Localization + autoload :Date, 'i18n/tests/localization/date' + autoload :DateTime, 'i18n/tests/localization/date_time' + autoload :Time, 'i18n/tests/localization/time' + autoload :Procs, 'i18n/tests/localization/procs' + + def self.included(base) + base.class_eval do + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Procs + include I18n::Tests::Localization::Time + end + end + end + end +end \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date.rb new file mode 100644 index 0000000..a723475 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date.rb @@ -0,0 +1,91 @@ +# encoding: utf-8 + +module I18n + module Tests + module Localization + module Date + def setup + super + setup_date_translations + @date = ::Date.new(2008, 3, 1) + end + + test "localize Date: given the short format it uses it" do + # TODO should be Mrz, shouldn't it? + assert_equal '01. Mar', I18n.l(@date, :format => :short, :locale => :de) + end + + test "localize Date: given the long format it uses it" do + assert_equal '01. März 2008', I18n.l(@date, :format => :long, :locale => :de) + end + + test "localize Date: given the default format it uses it" do + assert_equal '01.03.2008', I18n.l(@date, :format => :default, :locale => :de) + end + + test "localize Date: given a day name format it returns the correct day name" do + assert_equal 'Samstag', I18n.l(@date, :format => '%A', :locale => :de) + end + + test "localize Date: given an abbreviated day name format it returns the correct abbreviated day name" do + assert_equal 'Sa', I18n.l(@date, :format => '%a', :locale => :de) + end + + test "localize Date: given a month name format it returns the correct month name" do + assert_equal 'März', I18n.l(@date, :format => '%B', :locale => :de) + end + + test "localize Date: given an abbreviated month name format it returns the correct abbreviated month name" do + # TODO should be Mrz, shouldn't it? + assert_equal 'Mar', I18n.l(@date, :format => '%b', :locale => :de) + end + + test "localize Date: given an unknown format it does not fail" do + assert_nothing_raised { I18n.l(@date, :format => '%x') } + end + + test "localize Date: does not modify the options hash" do + options = { :format => '%b', :locale => :de } + assert_equal 'Mar', I18n.l(@date, options) + assert_equal({ :format => '%b', :locale => :de }, options) + assert_nothing_raised { I18n.l(@date, options.freeze) } + end + + test "localize Date: given nil it raises I18n::ArgumentError" do + assert_raise(I18n::ArgumentError) { I18n.l(nil) } + end + + test "localize Date: given a plain Object it raises I18n::ArgumentError" do + assert_raise(I18n::ArgumentError) { I18n.l(Object.new) } + end + + test "localize Date: given a format is missing it raises I18n::MissingTranslationData" do + assert_raise(I18n::MissingTranslationData) { I18n.l(@date, :format => :missing) } + end + + test "localize Date: it does not alter the format string" do + assert_equal '01. Februar 2009', I18n.l(::Date.parse('2009-02-01'), :format => :long, :locale => :de) + assert_equal '01. Oktober 2009', I18n.l(::Date.parse('2009-10-01'), :format => :long, :locale => :de) + end + + protected + + def setup_date_translations + I18n.backend.store_translations :de, { + :date => { + :formats => { + :default => "%d.%m.%Y", + :short => "%d. %b", + :long => "%d. %B %Y", + }, + :day_names => %w(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag), + :abbr_day_names => %w(So Mo Di Mi Do Fr Sa), + :month_names => %w(Januar Februar März April Mai Juni Juli August September Oktober November Dezember).unshift(nil), + :abbr_month_names => %w(Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Dez).unshift(nil) + } + } + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date_time.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date_time.rb new file mode 100644 index 0000000..7a30bff --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/date_time.rb @@ -0,0 +1,82 @@ +# encoding: utf-8 + +module I18n + module Tests + module Localization + module DateTime + def setup + super + setup_datetime_translations + @datetime = ::DateTime.new(2008, 3, 1, 6) + @other_datetime = ::DateTime.new(2008, 3, 1, 18) + end + + test "localize DateTime: given the short format it uses it" do + # TODO should be Mrz, shouldn't it? + assert_equal '01. Mar 06:00', I18n.l(@datetime, :format => :short, :locale => :de) + end + + test "localize DateTime: given the long format it uses it" do + assert_equal '01. März 2008 06:00', I18n.l(@datetime, :format => :long, :locale => :de) + end + + test "localize DateTime: given the default format it uses it" do + # TODO should be Mrz, shouldn't it? + assert_equal 'Sa, 01. Mar 2008 06:00:00 +0000', I18n.l(@datetime, :format => :default, :locale => :de) + end + + test "localize DateTime: given a day name format it returns the correct day name" do + assert_equal 'Samstag', I18n.l(@datetime, :format => '%A', :locale => :de) + end + + test "localize DateTime: given an abbreviated day name format it returns the correct abbreviated day name" do + assert_equal 'Sa', I18n.l(@datetime, :format => '%a', :locale => :de) + end + + test "localize DateTime: given a month name format it returns the correct month name" do + assert_equal 'März', I18n.l(@datetime, :format => '%B', :locale => :de) + end + + test "localize DateTime: given an abbreviated month name format it returns the correct abbreviated month name" do + # TODO should be Mrz, shouldn't it? + assert_equal 'Mar', I18n.l(@datetime, :format => '%b', :locale => :de) + end + + test "localize DateTime: given a meridian indicator format it returns the correct meridian indicator" do + assert_equal 'AM', I18n.l(@datetime, :format => '%p', :locale => :de) + assert_equal 'PM', I18n.l(@other_datetime, :format => '%p', :locale => :de) + end + + test "localize DateTime: given a meridian indicator format it returns the correct meridian indicator in downcase" do + assert_equal 'am', I18n.l(@datetime, :format => '%P', :locale => :de) + assert_equal 'pm', I18n.l(@other_datetime, :format => '%P', :locale => :de) + end + + test "localize DateTime: given an unknown format it does not fail" do + assert_nothing_raised { I18n.l(@datetime, :format => '%x') } + end + + test "localize DateTime: given a format is missing it raises I18n::MissingTranslationData" do + assert_raise(I18n::MissingTranslationData) { I18n.l(@datetime, :format => :missing) } + end + + protected + + def setup_datetime_translations + # time translations might have been set up in Tests::Api::Localization::Time + I18n.backend.store_translations :de, { + :time => { + :formats => { + :default => "%a, %d. %b %Y %H:%M:%S %z", + :short => "%d. %b %H:%M", + :long => "%d. %B %Y %H:%M" + }, + :am => 'am', + :pm => 'pm' + } + } + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/procs.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/procs.rb new file mode 100644 index 0000000..7b7813e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/procs.rb @@ -0,0 +1,116 @@ +# encoding: utf-8 + +module I18n + module Tests + module Localization + module Procs + test "localize: using day names from lambdas" do + setup_time_proc_translations + time = ::Time.utc(2008, 3, 1, 6, 0) + assert_match(/Суббота/, I18n.l(time, :format => "%A, %d %B", :locale => :ru)) + assert_match(/суббота/, I18n.l(time, :format => "%d %B (%A)", :locale => :ru)) + end + + test "localize: using month names from lambdas" do + setup_time_proc_translations + time = ::Time.utc(2008, 3, 1, 6, 0) + assert_match(/марта/, I18n.l(time, :format => "%d %B %Y", :locale => :ru)) + assert_match(/Март /, I18n.l(time, :format => "%B %Y", :locale => :ru)) + end + + test "localize: using abbreviated day names from lambdas" do + setup_time_proc_translations + time = ::Time.utc(2008, 3, 1, 6, 0) + assert_match(/марта/, I18n.l(time, :format => "%d %b %Y", :locale => :ru)) + assert_match(/март /, I18n.l(time, :format => "%b %Y", :locale => :ru)) + end + + test "localize Date: given a format that resolves to a Proc it calls the Proc with the object" do + setup_time_proc_translations + date = ::Date.new(2008, 3, 1) + assert_equal '[Sat, 01 Mar 2008, {}]', I18n.l(date, :format => :proc, :locale => :ru) + end + + test "localize Date: given a format that resolves to a Proc it calls the Proc with the object and extra options" do + setup_time_proc_translations + date = ::Date.new(2008, 3, 1) + assert_equal '[Sat, 01 Mar 2008, {:foo=>"foo"}]', I18n.l(date, :format => :proc, :foo => 'foo', :locale => :ru) + end + + test "localize DateTime: given a format that resolves to a Proc it calls the Proc with the object" do + setup_time_proc_translations + datetime = ::DateTime.new(2008, 3, 1, 6) + assert_equal '[Sat, 01 Mar 2008 06:00:00 +00:00, {}]', I18n.l(datetime, :format => :proc, :locale => :ru) + end + + test "localize DateTime: given a format that resolves to a Proc it calls the Proc with the object and extra options" do + setup_time_proc_translations + datetime = ::DateTime.new(2008, 3, 1, 6) + assert_equal '[Sat, 01 Mar 2008 06:00:00 +00:00, {:foo=>"foo"}]', I18n.l(datetime, :format => :proc, :foo => 'foo', :locale => :ru) + end + + test "localize Time: given a format that resolves to a Proc it calls the Proc with the object" do + setup_time_proc_translations + time = ::Time.utc(2008, 3, 1, 6, 0) + assert_equal inspect_args([time, {}]), I18n.l(time, :format => :proc, :locale => :ru) + end + + test "localize Time: given a format that resolves to a Proc it calls the Proc with the object and extra options" do + setup_time_proc_translations + time = ::Time.utc(2008, 3, 1, 6, 0) + options = { :foo => 'foo' } + assert_equal inspect_args([time, options]), I18n.l(time, options.merge(:format => :proc, :locale => :ru)) + end + + protected + + def inspect_args(args) + args = args.map do |arg| + case arg + when ::Time, ::DateTime + arg.strftime('%a, %d %b %Y %H:%M:%S %Z').sub('+0000', '+00:00') + when ::Date + arg.strftime('%a, %d %b %Y') + when Hash + arg.delete(:fallback) + arg.inspect + else + arg.inspect + end + end + "[#{args.join(', ')}]" + end + + def setup_time_proc_translations + I18n.backend.store_translations :ru, { + :time => { + :formats => { + :proc => lambda { |*args| inspect_args(args) } + } + }, + :date => { + :formats => { + :proc => lambda { |*args| inspect_args(args) } + }, + :'day_names' => lambda { |key, options| + (options[:format] =~ /^%A/) ? + %w(Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота) : + %w(воскресенье понедельник вторник среда четверг пятница суббота) + }, + :'month_names' => lambda { |key, options| + (options[:format] =~ /(%d|%e)(\s*)?(%B)/) ? + %w(января февраля марта апреля мая июня июля августа сентября октября ноября декабря).unshift(nil) : + %w(Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь).unshift(nil) + }, + :'abbr_month_names' => lambda { |key, options| + (options[:format] =~ /(%d|%e)(\s*)(%b)/) ? + %w(янв. февр. марта апр. мая июня июля авг. сент. окт. нояб. дек.).unshift(nil) : + %w(янв. февр. март апр. май июнь июль авг. сент. окт. нояб. дек.).unshift(nil) + }, + } + } + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/time.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/time.rb new file mode 100644 index 0000000..8bbba43 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/localization/time.rb @@ -0,0 +1,81 @@ +# encoding: utf-8 + +module I18n + module Tests + module Localization + module Time + def setup + super + setup_time_translations + @time = ::Time.utc(2008, 3, 1, 6, 0) + @other_time = ::Time.utc(2008, 3, 1, 18, 0) + end + + test "localize Time: given the short format it uses it" do + # TODO should be Mrz, shouldn't it? + assert_equal '01. Mar 06:00', I18n.l(@time, :format => :short, :locale => :de) + end + + test "localize Time: given the long format it uses it" do + assert_equal '01. März 2008 06:00', I18n.l(@time, :format => :long, :locale => :de) + end + + # TODO Seems to break on Windows because ENV['TZ'] is ignored. What's a better way to do this? + # def test_localize_given_the_default_format_it_uses_it + # assert_equal 'Sa, 01. Mar 2008 06:00:00 +0000', I18n.l(@time, :format => :default, :locale => :de) + # end + + test "localize Time: given a day name format it returns the correct day name" do + assert_equal 'Samstag', I18n.l(@time, :format => '%A', :locale => :de) + end + + test "localize Time: given an abbreviated day name format it returns the correct abbreviated day name" do + assert_equal 'Sa', I18n.l(@time, :format => '%a', :locale => :de) + end + + test "localize Time: given a month name format it returns the correct month name" do + assert_equal 'März', I18n.l(@time, :format => '%B', :locale => :de) + end + + test "localize Time: given an abbreviated month name format it returns the correct abbreviated month name" do + # TODO should be Mrz, shouldn't it? + assert_equal 'Mar', I18n.l(@time, :format => '%b', :locale => :de) + end + + test "localize Time: given a meridian indicator format it returns the correct meridian indicator" do + assert_equal 'AM', I18n.l(@time, :format => '%p', :locale => :de) + assert_equal 'PM', I18n.l(@other_time, :format => '%p', :locale => :de) + end + + test "localize Time: given a meridian indicator format it returns the correct meridian indicator in upcase" do + assert_equal 'am', I18n.l(@time, :format => '%P', :locale => :de) + assert_equal 'pm', I18n.l(@other_time, :format => '%P', :locale => :de) + end + + test "localize Time: given an unknown format it does not fail" do + assert_nothing_raised { I18n.l(@time, :format => '%x') } + end + + test "localize Time: given a format is missing it raises I18n::MissingTranslationData" do + assert_raise(I18n::MissingTranslationData) { I18n.l(@time, :format => :missing) } + end + + protected + + def setup_time_translations + I18n.backend.store_translations :de, { + :time => { + :formats => { + :default => "%a, %d. %b %Y %H:%M:%S %z", + :short => "%d. %b %H:%M", + :long => "%d. %B %Y %H:%M", + }, + :am => 'am', + :pm => 'pm' + } + } + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/lookup.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/lookup.rb new file mode 100644 index 0000000..3b4c843 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/lookup.rb @@ -0,0 +1,81 @@ +# encoding: utf-8 + +module I18n + module Tests + module Lookup + def setup + super + I18n.backend.store_translations(:en, :foo => { :bar => 'bar', :baz => 'baz' }, :falsy => false, :truthy => true, + :string => "a", :array => %w(a b c), :hash => { "a" => "b" }) + end + + test "lookup: it returns a string" do + assert_equal("a", I18n.t(:string)) + end + + test "lookup: it returns hash" do + assert_equal({ :a => "b" }, I18n.t(:hash)) + end + + test "lookup: it returns an array" do + assert_equal(%w(a b c), I18n.t(:array)) + end + + test "lookup: it returns a native true" do + assert I18n.t(:truthy) === true + end + + test "lookup: it returns a native false" do + assert I18n.t(:falsy) === false + end + + test "lookup: given a missing key, no default and no raise option it returns an error message" do + assert_equal "translation missing: en.missing", I18n.t(:missing) + end + + test "lookup: given a missing key, no default and the raise option it raises MissingTranslationData" do + assert_raise(I18n::MissingTranslationData) { I18n.t(:missing, :raise => true) } + end + + test "lookup: does not raise an exception if no translation data is present for the given locale" do + assert_nothing_raised { I18n.t(:foo, :locale => :xx) } + end + + test "lookup: does not modify the options hash" do + options = {} + assert_equal "a", I18n.t(:string, options) + assert_equal({}, options) + assert_nothing_raised { I18n.t(:string, options.freeze) } + end + + test "lookup: given an array of keys it translates all of them" do + assert_equal %w(bar baz), I18n.t([:bar, :baz], :scope => [:foo]) + end + + test "lookup: using a custom scope separator" do + # data must have been stored using the custom separator when using the ActiveRecord backend + I18n.backend.store_translations(:en, { :foo => { :bar => 'bar' } }, { :separator => '|' }) + assert_equal 'bar', I18n.t('foo|bar', :separator => '|') + end + + # In fact it probably *should* fail but Rails currently relies on using the default locale instead. + # So we'll stick to this for now until we get it fixed in Rails. + test "lookup: given nil as a locale it does not raise but use the default locale" do + # assert_raise(I18n::InvalidLocale) { I18n.t(:bar, :locale => nil) } + assert_nothing_raised { I18n.t(:bar, :locale => nil) } + end + + test "lookup: a resulting String is not frozen" do + assert !I18n.t(:string).frozen? + end + + test "lookup: a resulting Array is not frozen" do + assert !I18n.t(:array).frozen? + end + + test "lookup: a resulting Hash is not frozen" do + assert !I18n.t(:hash).frozen? + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/pluralization.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/pluralization.rb new file mode 100644 index 0000000..d3319dc --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/pluralization.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 + +module I18n + module Tests + module Pluralization + test "pluralization: given 0 it returns the :zero translation if it is defined" do + assert_equal 'zero', I18n.t(:default => { :zero => 'zero' }, :count => 0) + end + + test "pluralization: given 0 it returns the :other translation if :zero is not defined" do + assert_equal 'bars', I18n.t(:default => { :other => 'bars' }, :count => 0) + end + + test "pluralization: given 1 it returns the singular translation" do + assert_equal 'bar', I18n.t(:default => { :one => 'bar' }, :count => 1) + end + + test "pluralization: given 2 it returns the :other translation" do + assert_equal 'bars', I18n.t(:default => { :other => 'bars' }, :count => 2) + end + + test "pluralization: given 3 it returns the :other translation" do + assert_equal 'bars', I18n.t(:default => { :other => 'bars' }, :count => 3) + end + + test "pluralization: given nil it returns the whole entry" do + assert_equal({ :one => 'bar' }, I18n.t(:default => { :one => 'bar' }, :count => nil)) + end + + test "pluralization: given incomplete pluralization data it raises I18n::InvalidPluralizationData" do + assert_raise(I18n::InvalidPluralizationData) { I18n.t(:default => { :one => 'bar' }, :count => 2) } + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/procs.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/procs.rb new file mode 100644 index 0000000..55ff952 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/tests/procs.rb @@ -0,0 +1,55 @@ +# encoding: utf-8 + +module I18n + module Tests + module Procs + test "lookup: given a translation is a proc it calls the proc with the key and interpolation values" do + I18n.backend.store_translations(:en, :a_lambda => lambda { |*args| filter_args(*args) }) + assert_equal '[:a_lambda, {:foo=>"foo"}]', I18n.t(:a_lambda, :foo => 'foo') + end + + test "defaults: given a default is a Proc it calls it with the key and interpolation values" do + proc = lambda { |*args| filter_args(*args) } + assert_equal '[nil, {:foo=>"foo"}]', I18n.t(nil, :default => proc, :foo => 'foo') + end + + test "defaults: given a default is a key that resolves to a Proc it calls it with the key and interpolation values" do + I18n.backend.store_translations(:en, :a_lambda => lambda { |*args| filter_args(*args) }) + assert_equal '[:a_lambda, {:foo=>"foo"}]', I18n.t(nil, :default => :a_lambda, :foo => 'foo') + assert_equal '[:a_lambda, {:foo=>"foo"}]', I18n.t(nil, :default => [nil, :a_lambda], :foo => 'foo') + end + + test "interpolation: given an interpolation value is a lambda it calls it with key and values before interpolating it" do + proc = lambda { |*args| filter_args(*args) } + assert_match %r(\[\{:foo=>#\}\]), I18n.t(nil, :default => '%{foo}', :foo => proc) + end + + test "interpolation: given a key resolves to a Proc that returns a string then interpolation still works" do + proc = lambda { |*args| "%{foo}: " + filter_args(*args) } + assert_equal 'foo: [nil, {:foo=>"foo"}]', I18n.t(nil, :default => proc, :foo => 'foo') + end + + test "pluralization: given a key resolves to a Proc that returns valid data then pluralization still works" do + proc = lambda { |*args| { :zero => 'zero', :one => 'one', :other => 'other' } } + assert_equal 'zero', I18n.t(:default => proc, :count => 0) + assert_equal 'one', I18n.t(:default => proc, :count => 1) + assert_equal 'other', I18n.t(:default => proc, :count => 2) + end + + test "lookup: given the option :resolve => false was passed it does not resolve proc translations" do + I18n.backend.store_translations(:en, :a_lambda => lambda { |*args| filter_args(*args) }) + assert_equal Proc, I18n.t(:a_lambda, :resolve => false).class + end + + test "lookup: given the option :resolve => false was passed it does not resolve proc default" do + assert_equal Proc, I18n.t(nil, :default => lambda { |*args| filter_args(*args) }, :resolve => false).class + end + + protected + + def filter_args(*args) + args.map {|arg| arg.delete(:fallback) if arg.is_a?(Hash) ; arg }.inspect + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/version.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/version.rb new file mode 100644 index 0000000..4a9efa9 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/version.rb @@ -0,0 +1,3 @@ +module I18n + VERSION = "0.7.0" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/all_features_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/all_features_test.rb new file mode 100644 index 0000000..a1799bd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/all_features_test.rb @@ -0,0 +1,58 @@ +require 'test_helper' + +begin + require 'rubygems' + require 'active_support' +rescue LoadError + puts "not testing with Cache enabled because active_support can not be found" +end + +class I18nAllFeaturesApiTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Metadata + include I18n::Backend::Cache + include I18n::Backend::Cascade + include I18n::Backend::Fallbacks + include I18n::Backend::Pluralization + include I18n::Backend::Memoize + end + + def setup + I18n.backend = I18n::Backend::Chain.new(Backend.new, I18n::Backend::Simple.new) + I18n.cache_store = cache_store + super + end + + def teardown + I18n.cache_store.clear if I18n.cache_store + I18n.cache_store = nil + super + end + + def cache_store + ActiveSupport::Cache.lookup_store(:memory_store) if cache_available? + end + + def cache_available? + defined?(ActiveSupport) && defined?(ActiveSupport::Cache) + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use a Chain backend with an all features backend" do + assert_equal I18n::Backend::Chain, I18n.backend.class + assert_equal Backend, I18n.backend.backends.first.class + end + + # links: test that keys stored on one backend can link to keys stored on another backend +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/cascade_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/cascade_test.rb new file mode 100644 index 0000000..4d9516c --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/cascade_test.rb @@ -0,0 +1,28 @@ +require 'test_helper' + +class I18nCascadeApiTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Cascade + end + + def setup + I18n.backend = Backend.new + super + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use a backend with Cascade included" do + assert_equal Backend, I18n.backend.class + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/chain_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/chain_test.rb new file mode 100644 index 0000000..f3dff1b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/chain_test.rb @@ -0,0 +1,24 @@ +require 'test_helper' + +class I18nApiChainTest < I18n::TestCase + def setup + super + I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Simple.new, I18n.backend) + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use the Chain backend" do + assert_equal I18n::Backend::Chain, I18n.backend.class + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/fallbacks_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/fallbacks_test.rb new file mode 100644 index 0000000..e5ca5f2 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/fallbacks_test.rb @@ -0,0 +1,30 @@ +require 'test_helper' + +class I18nFallbacksApiTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Fallbacks + end + + def setup + I18n.backend = Backend.new + super + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use a backend with Fallbacks included" do + assert_equal Backend, I18n.backend.class + end + + # links: test that keys stored on one backend can link to keys stored on another backend +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/key_value_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/key_value_test.rb new file mode 100644 index 0000000..4d6cdd8 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/key_value_test.rb @@ -0,0 +1,24 @@ +require 'test_helper' + +class I18nKeyValueApiTest < I18n::TestCase + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + # include Tests::Api::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + # include Tests::Api::Localization::Procs + + def setup + I18n.backend = I18n::Backend::KeyValue.new({}) + super + end + + test "make sure we use the KeyValue backend" do + assert_equal I18n::Backend::KeyValue, I18n.backend.class + end +end if I18n::TestCase.key_value? diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/memoize_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/memoize_test.rb new file mode 100644 index 0000000..ed93866 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/memoize_test.rb @@ -0,0 +1,56 @@ +require 'test_helper' + +class I18nMemoizeBackendWithSimpleApiTest < I18n::TestCase + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + class MemoizeBackend < I18n::Backend::Simple + include I18n::Backend::Memoize + end + + def setup + I18n.backend = MemoizeBackend.new + super + end + + test "make sure we use the MemoizeBackend backend" do + assert_equal MemoizeBackend, I18n.backend.class + end +end + +class I18nMemoizeBackendWithKeyValueApiTest < I18n::TestCase + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + + # include I18n::Tests::Procs + # include I18n::Tests::Localization::Procs + + class MemoizeBackend < I18n::Backend::KeyValue + include I18n::Backend::Memoize + end + + def setup + I18n.backend = MemoizeBackend.new({}) + super + end + + test "make sure we use the MemoizeBackend backend" do + assert_equal MemoizeBackend, I18n.backend.class + end +end if I18n::TestCase.key_value? diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/override_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/override_test.rb new file mode 100644 index 0000000..6e1248a --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/override_test.rb @@ -0,0 +1,42 @@ +require 'test_helper' + +class I18nOverrideTest < I18n::TestCase + module OverrideInverse + def translate(*args) + super(*args).reverse + end + alias :t :translate + end + + module OverrideSignature + def translate(*args) + args.first + args[1] + end + alias :t :translate + end + + def setup + super + @I18n = I18n.dup + @I18n.backend = I18n::Backend::Simple.new + end + + test "make sure modules can overwrite I18n methods" do + @I18n.extend OverrideInverse + @I18n.backend.store_translations('en', :foo => 'bar') + + assert_equal 'rab', @I18n.translate(:foo, :locale => 'en') + assert_equal 'rab', @I18n.t(:foo, :locale => 'en') + assert_equal 'rab', @I18n.translate!(:foo, :locale => 'en') + assert_equal 'rab', @I18n.t!(:foo, :locale => 'en') + end + + test "make sure modules can overwrite I18n signature" do + exception = catch(:exception) do + @I18n.t('Hello', 'Welcome message on home page', :tokenize => true, :throw => true) + end + assert exception.message + @I18n.extend OverrideSignature + assert_equal 'HelloWelcome message on home page', @I18n.translate('Hello', 'Welcome message on home page', :tokenize => true) # tr8n example + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/pluralization_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/pluralization_test.rb new file mode 100644 index 0000000..53004be --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/pluralization_test.rb @@ -0,0 +1,30 @@ +require 'test_helper' + +class I18nPluralizationApiTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Pluralization + end + + def setup + I18n.backend = Backend.new + super + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use a backend with Pluralization included" do + assert_equal Backend, I18n.backend.class + end + + # links: test that keys stored on one backend can link to keys stored on another backend +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/simple_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/simple_test.rb new file mode 100644 index 0000000..3fd3a42 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/api/simple_test.rb @@ -0,0 +1,28 @@ +require 'test_helper' + +class I18nSimpleBackendApiTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Pluralization + end + + def setup + I18n.backend = I18n::Backend::Simple.new + super + end + + include I18n::Tests::Basics + include I18n::Tests::Defaults + include I18n::Tests::Interpolation + include I18n::Tests::Link + include I18n::Tests::Lookup + include I18n::Tests::Pluralization + include I18n::Tests::Procs + include I18n::Tests::Localization::Date + include I18n::Tests::Localization::DateTime + include I18n::Tests::Localization::Time + include I18n::Tests::Localization::Procs + + test "make sure we use the Simple backend" do + assert_equal I18n::Backend::Simple, I18n.backend.class + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cache_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cache_test.rb new file mode 100644 index 0000000..8e144a1 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cache_test.rb @@ -0,0 +1,86 @@ +require 'test_helper' + +begin + require 'active_support' +rescue LoadError + $stderr.puts "Skipping cache tests using ActiveSupport" +else + +class I18nBackendCacheTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Cache + end + + def setup + I18n.backend = Backend.new + super + I18n.cache_store = ActiveSupport::Cache.lookup_store(:memory_store) + end + + def teardown + super + I18n.cache_store = nil + end + + test "it uses the cache" do + assert I18n.cache_store.is_a?(ActiveSupport::Cache::MemoryStore) + end + + test "translate hits the backend and caches the response" do + I18n.backend.expects(:lookup).returns('Foo') + assert_equal 'Foo', I18n.t(:foo) + + I18n.backend.expects(:lookup).never + assert_equal 'Foo', I18n.t(:foo) + + I18n.backend.expects(:lookup).returns('Bar') + assert_equal 'Bar', I18n.t(:bar) + end + + test "still raises MissingTranslationData but also caches it" do + assert_raise(I18n::MissingTranslationData) { I18n.t(:missing, :raise => true) } + assert_raise(I18n::MissingTranslationData) { I18n.t(:missing, :raise => true) } + assert_equal 1, I18n.cache_store.instance_variable_get(:@data).size + + # I18n.backend.expects(:lookup).returns(nil) + # assert_raise(I18n::MissingTranslationData) { I18n.t(:missing, :raise => true) } + # I18n.backend.expects(:lookup).never + # assert_raise(I18n::MissingTranslationData) { I18n.t(:missing, :raise => true) } + end + + test "uses 'i18n' as a cache key namespace by default" do + assert_equal 0, I18n.backend.send(:cache_key, :en, :foo, {}).index('i18n') + end + + test "adds a custom cache key namespace" do + with_cache_namespace('bar') do + assert_equal 0, I18n.backend.send(:cache_key, :en, :foo, {}).index('i18n/bar/') + end + end + + test "adds locale and hash of key and hash of options" do + options = { :bar=>1 } + options_hash = I18n::Backend::Cache::USE_INSPECT_HASH ? options.inspect.hash : options.hash + assert_equal "i18n//en/#{:foo.hash}/#{options_hash}", I18n.backend.send(:cache_key, :en, :foo, options) + end + + test "keys should not be equal" do + interpolation_values1 = { :foo => 1, :bar => 2 } + interpolation_values2 = { :foo => 2, :bar => 1 } + + key1 = I18n.backend.send(:cache_key, :en, :some_key, interpolation_values1) + key2 = I18n.backend.send(:cache_key, :en, :some_key, interpolation_values2) + + assert key1 != key2 + end + + protected + + def with_cache_namespace(namespace) + I18n.cache_namespace = namespace + yield + I18n.cache_namespace = nil + end +end + +end # AS cache check diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cascade_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cascade_test.rb new file mode 100644 index 0000000..1101460 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/cascade_test.rb @@ -0,0 +1,86 @@ +require 'test_helper' + +class I18nBackendCascadeTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Cascade + end + + def setup + super + I18n.backend = Backend.new + store_translations(:en, :foo => 'foo', :bar => { :baz => 'baz' }) + @cascade_options = { :step => 1, :offset => 1, :skip_root => false } + end + + def lookup(key, options = {}) + I18n.t(key, options.merge(:cascade => @cascade_options)) + end + + test "still returns an existing translation as usual" do + assert_equal 'foo', lookup(:foo) + assert_equal 'baz', lookup(:'bar.baz') + end + + test "falls back by cutting keys off the end of the scope" do + assert_equal 'foo', lookup(:foo, :scope => :'missing') + assert_equal 'foo', lookup(:foo, :scope => :'missing.missing') + assert_equal 'baz', lookup(:baz, :scope => :'bar.missing') + assert_equal 'baz', lookup(:baz, :scope => :'bar.missing.missing') + end + + test "raises I18n::MissingTranslationData exception when no translation was found" do + assert_raise(I18n::MissingTranslationData) { lookup(:'foo.missing', :raise => true) } + assert_raise(I18n::MissingTranslationData) { lookup(:'bar.baz.missing', :raise => true) } + assert_raise(I18n::MissingTranslationData) { lookup(:'missing.bar.baz', :raise => true) } + end + + test "cascades before evaluating the default" do + assert_equal 'foo', lookup(:foo, :scope => :missing, :default => 'default') + end + + test "cascades defaults, too" do + assert_equal 'foo', lookup(nil, :default => [:'missing.missing', :'missing.foo']) + end + + test "works with :offset => 2 and a single key" do + @cascade_options[:offset] = 2 + lookup(:foo) + end + + test "assemble required fallbacks for ActiveRecord validation messages" do + store_translations(:en, + :errors => { + :odd => 'errors.odd', + :reply => { :title => { :blank => 'errors.reply.title.blank' }, :taken => 'errors.reply.taken' }, + :topic => { :title => { :format => 'errors.topic.title.format' }, :length => 'errors.topic.length' } + } + ) + assert_equal 'errors.reply.title.blank', lookup(:'errors.reply.title.blank', :default => :'errors.topic.title.blank') + assert_equal 'errors.reply.taken', lookup(:'errors.reply.title.taken', :default => :'errors.topic.title.taken') + assert_equal 'errors.topic.title.format', lookup(:'errors.reply.title.format', :default => :'errors.topic.title.format') + assert_equal 'errors.topic.length', lookup(:'errors.reply.title.length', :default => :'errors.topic.title.length') + assert_equal 'errors.odd', lookup(:'errors.reply.title.odd', :default => :'errors.topic.title.odd') + end + + test "assemble action view translation helper lookup cascade" do + @cascade_options[:offset] = 2 + + store_translations(:en, + :menu => { :show => 'menu.show' }, + :namespace => { + :menu => { :new => 'namespace.menu.new' }, + :controller => { + :menu => { :edit => 'namespace.controller.menu.edit' }, + :action => { + :menu => { :destroy => 'namespace.controller.action.menu.destroy' } + } + } + } + ) + + assert_equal 'menu.show', lookup(:'namespace.controller.action.menu.show') + assert_equal 'namespace.menu.new', lookup(:'namespace.controller.action.menu.new') + assert_equal 'namespace.controller.menu.edit', lookup(:'namespace.controller.action.menu.edit') + assert_equal 'namespace.controller.action.menu.destroy', lookup(:'namespace.controller.action.menu.destroy') + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/chain_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/chain_test.rb new file mode 100644 index 0000000..0b402af --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/chain_test.rb @@ -0,0 +1,91 @@ +require 'test_helper' + +class I18nBackendChainTest < I18n::TestCase + def setup + super + @first = backend(:en => { + :foo => 'Foo', :formats => { + :short => 'short', + :subformats => {:short => 'short'}, + }, + :plural_1 => { :one => '%{count}' }, + :dates => {:a => "A"} + }) + @second = backend(:en => { + :bar => 'Bar', :formats => { + :long => 'long', + :subformats => {:long => 'long'}, + }, + :plural_2 => { :one => 'one' }, + :dates => {:a => "B", :b => "B"} + }) + @chain = I18n.backend = I18n::Backend::Chain.new(@first, @second) + end + + test "looks up translations from the first chained backend" do + assert_equal 'Foo', @first.send(:translations)[:en][:foo] + assert_equal 'Foo', I18n.t(:foo) + end + + test "looks up translations from the second chained backend" do + assert_equal 'Bar', @second.send(:translations)[:en][:bar] + assert_equal 'Bar', I18n.t(:bar) + end + + test "defaults only apply to lookups on the last backend in the chain" do + assert_equal 'Foo', I18n.t(:foo, :default => 'Bah') + assert_equal 'Bar', I18n.t(:bar, :default => 'Bah') + assert_equal 'Bah', I18n.t(:bah, :default => 'Bah') # default kicks in only here + end + + test "default" do + assert_equal 'Fuh', I18n.t(:default => 'Fuh') + assert_equal 'Zero', I18n.t(:default => { :zero => 'Zero' }, :count => 0) + assert_equal({ :zero => 'Zero' }, I18n.t(:default => { :zero => 'Zero' })) + assert_equal 'Foo', I18n.t(:default => :foo) + end + + test 'default is returned if translation is missing' do + assert_equal({}, I18n.t(:'i18n.transliterate.rule', :locale => 'en', :default => {})) + end + + test "namespace lookup collects results from all backends and merges deep hashes" do + assert_equal({:long=>"long", :subformats=>{:long=>"long", :short=>"short"}, :short=>"short"}, I18n.t(:formats)) + end + + test "namespace lookup collects results from all backends and lets leftmost backend take priority" do + assert_equal({ :a => "A", :b => "B" }, I18n.t(:dates)) + end + + test "namespace lookup with only the first backend returning a result" do + assert_equal({ :one => '%{count}' }, I18n.t(:plural_1)) + end + + test "pluralization still works" do + assert_equal '1', I18n.t(:plural_1, :count => 1) + assert_equal 'one', I18n.t(:plural_2, :count => 1) + end + + test "bulk lookup collects results from all backends" do + assert_equal ['Foo', 'Bar'], I18n.t([:foo, :bar]) + assert_equal ['Foo', 'Bar', 'Bah'], I18n.t([:foo, :bar, :bah], :default => 'Bah') + assert_equal [{ + :long=>"long", + :subformats=>{:long=>"long", :short=>"short"}, + :short=>"short"}, {:one=>"one"}, + "Bah"], I18n.t([:formats, :plural_2, :bah], :default => 'Bah') + end + + test "store_translations options are not dropped while transfering to backend" do + @first.expects(:store_translations).with(:foo, {:bar => :baz}, {:option => 'persists'}) + I18n.backend.store_translations :foo, {:bar => :baz}, {:option => 'persists'} + end + + protected + + def backend(translations) + backend = I18n::Backend::Simple.new + translations.each { |locale, data| backend.store_translations(locale, data) } + backend + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/exceptions_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/exceptions_test.rb new file mode 100644 index 0000000..cc22166 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/exceptions_test.rb @@ -0,0 +1,36 @@ +require 'test_helper' + +class I18nBackendExceptionsTest < I18n::TestCase + def setup + super + I18n.backend = I18n::Backend::Simple.new + end + + test "throw message: MissingTranslation message from #translate includes the given scope and full key" do + exception = catch(:exception) do + I18n.t(:'baz.missing', :scope => :'foo.bar', :throw => true) + end + assert_equal "translation missing: en.foo.bar.baz.missing", exception.message + end + + test "exceptions: MissingTranslationData message from #translate includes the given scope and full key" do + begin + I18n.t(:'baz.missing', :scope => :'foo.bar', :raise => true) + rescue I18n::MissingTranslationData => exception + end + assert_equal "translation missing: en.foo.bar.baz.missing", exception.message + end + + test "exceptions: MissingTranslationData message from #localize includes the given scope and full key" do + begin + I18n.l(Time.now, :format => :foo) + rescue I18n::MissingTranslationData => exception + end + assert_equal "translation missing: en.time.formats.foo", exception.message + end + + test "exceptions: MissingInterpolationArgument message includes missing key, provided keys and full string" do + exception = I18n::MissingInterpolationArgument.new('key', {:this => 'was given'}, 'string') + assert_equal 'missing interpolation argument "key" in "string" ({:this=>"was given"} given)', exception.message + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/fallbacks_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/fallbacks_test.rb new file mode 100644 index 0000000..76d2a79 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/fallbacks_test.rb @@ -0,0 +1,152 @@ +require 'test_helper' + +class I18nBackendFallbacksTranslateTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Fallbacks + end + + def setup + super + I18n.backend = Backend.new + store_translations(:en, :foo => 'Foo in :en', :bar => 'Bar in :en', :buz => 'Buz in :en') + store_translations(:de, :bar => 'Bar in :de', :baz => 'Baz in :de') + store_translations(:'de-DE', :baz => 'Baz in :de-DE') + store_translations(:'pt-BR', :baz => 'Baz in :pt-BR') + end + + test "still returns an existing translation as usual" do + assert_equal 'Foo in :en', I18n.t(:foo, :locale => :en) + assert_equal 'Bar in :de', I18n.t(:bar, :locale => :de) + assert_equal 'Baz in :de-DE', I18n.t(:baz, :locale => :'de-DE') + end + + test "returns the :en translation for a missing :de translation" do + assert_equal 'Foo in :en', I18n.t(:foo, :locale => :de) + end + + test "returns the :de translation for a missing :'de-DE' translation" do + assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE') + end + + test "returns the :en translation for translation missing in both :de and :'de-De'" do + assert_equal 'Buz in :en', I18n.t(:buz, :locale => :'de-DE') + end + + test "returns the :de translation for a missing :'de-DE' when :default is a String" do + assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => "Default Bar") + assert_equal "Default Bar", I18n.t(:missing_bar, :locale => :'de-DE', :default => "Default Bar") + end + + test "returns the :de translation for a missing :'de-DE' when defaults is a Symbol (which exists in :en)" do + assert_equal "Bar in :de", I18n.t(:bar, :locale => :'de-DE', :default => [:buz]) + end + + test "returns the :'de-DE' default :baz translation for a missing :'de-DE' (which exists in :de)" do + assert_equal "Baz in :de-DE", I18n.t(:bar, :locale => :'de-DE', :default => [:baz]) + end + + test "returns the :de translation for a missing :'de-DE' when :default is a Proc" do + assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => Proc.new { "Default Bar" }) + assert_equal "Default Bar", I18n.t(:missing_bar, :locale => :'de-DE', :default => Proc.new { "Default Bar" }) + end + + test "returns the :de translation for a missing :'de-DE' when :default is a Hash" do + assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => {}) + assert_equal({}, I18n.t(:missing_bar, :locale => :'de-DE', :default => {})) + end + + test "returns the :'de-DE' default :baz translation for a missing :'de-DE' when defaults contains Symbol" do + assert_equal 'Baz in :de-DE', I18n.t(:missing_foo, :locale => :'de-DE', :default => [:baz, "Default Bar"]) + end + + test "returns the defaults translation for a missing :'de-DE' when defaults contains a String or Proc before Symbol" do + assert_equal "Default Bar", I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, "Default Bar", :baz]) + assert_equal "Default Bar", I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, Proc.new { "Default Bar" }, :baz]) + end + + test "returns the default translation for a missing :'de-DE' and existing :de when default is a Hash" do + assert_equal 'Default 6 Bars', I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, {:other => "Default %{count} Bars"}, "Default Bar"], :count => 6) + end + + test "raises I18n::MissingTranslationData exception when no translation was found" do + assert_raise(I18n::MissingTranslationData) { I18n.t(:faa, :locale => :en, :raise => true) } + assert_raise(I18n::MissingTranslationData) { I18n.t(:faa, :locale => :de, :raise => true) } + end + + test "should ensure that default is not splitted on new line char" do + assert_equal "Default \n Bar", I18n.t(:missing_bar, :default => "Default \n Bar") + end + + test "should not raise error when enforce_available_locales is true, :'pt' is missing and default is a Symbol" do + I18n.enforce_available_locales = true + begin + assert_equal 'Foo', I18n.t(:'model.attrs.foo', :locale => :'pt-BR', :default => [:'attrs.foo', "Foo"]) + ensure + I18n.enforce_available_locales = false + end + end +end + +class I18nBackendFallbacksLocalizeTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Fallbacks + end + + def setup + super + I18n.backend = Backend.new + store_translations(:en, :date => { :formats => { :en => 'en' }, :day_names => %w(Sunday) }) + store_translations(:de, :date => { :formats => { :de => 'de' } }) + end + + test "still uses an existing format as usual" do + assert_equal 'en', I18n.l(Date.today, :format => :en, :locale => :en) + end + + test "looks up and uses a fallback locale's format for a key missing in the given locale (1)" do + assert_equal 'en', I18n.l(Date.today, :format => :en, :locale => :de) + end + + test "looks up and uses a fallback locale's format for a key missing in the given locale (2)" do + assert_equal 'de', I18n.l(Date.today, :format => :de, :locale => :'de-DE') + end + + test "still uses an existing day name translation as usual" do + assert_equal 'Sunday', I18n.l(Date.new(2010, 1, 3), :format => '%A', :locale => :en) + end + + test "uses a fallback locale's translation for a key missing in the given locale" do + assert_equal 'Sunday', I18n.l(Date.new(2010, 1, 3), :format => '%A', :locale => :de) + end +end + +class I18nBackendFallbacksWithChainTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Fallbacks + end + + class Chain < I18n::Backend::Chain + include I18n::Backend::Fallbacks + end + + def setup + super + backend = Backend.new + backend.store_translations(:de, :foo => 'FOO') + backend.store_translations(:'pt-BR', :foo => 'Baz in :pt-BR') + I18n.backend = Chain.new(I18n::Backend::Simple.new, backend) + end + + test "falls back from de-DE to de when there is no translation for de-DE available" do + assert_equal 'FOO', I18n.t(:foo, :locale => :'de-DE') + end + + test "should not raise error when enforce_available_locales is true, :'pt' is missing and default is a Symbol" do + I18n.enforce_available_locales = true + begin + assert_equal 'Foo', I18n.t(:'model.attrs.foo', :locale => :'pt-BR', :default => [:'attrs.foo', "Foo"]) + ensure + I18n.enforce_available_locales = false + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/interpolation_compiler_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/interpolation_compiler_test.rb new file mode 100644 index 0000000..cffe28f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/interpolation_compiler_test.rb @@ -0,0 +1,118 @@ +require 'test_helper' + +class InterpolationCompilerTest < I18n::TestCase + Compiler = I18n::Backend::InterpolationCompiler::Compiler + + def compile_and_interpolate(str, values = {}) + Compiler.compile_if_an_interpolation(str).i18n_interpolate(values) + end + + def assert_escapes_interpolation_key(expected, malicious_str) + assert_equal(expected, Compiler.send(:escape_key_sym, malicious_str)) + end + + def test_escape_key_properly_escapes + assert_escapes_interpolation_key ':"\""', '"' + assert_escapes_interpolation_key ':"\\\\"', '\\' + assert_escapes_interpolation_key ':"\\\\\""', '\\"' + assert_escapes_interpolation_key ':"\#{}"', '#{}' + assert_escapes_interpolation_key ':"\\\\\#{}"', '\#{}' + end + + def assert_escapes_plain_string(expected, plain_str) + assert_equal expected, Compiler.send(:escape_plain_str, plain_str) + end + + def test_escape_plain_string_properly_escapes + assert_escapes_plain_string '\\"', '"' + assert_escapes_plain_string '\'', '\'' + assert_escapes_plain_string '\\#', '#' + assert_escapes_plain_string '\\#{}', '#{}' + assert_escapes_plain_string '\\\\\\"','\\"' + end + + def test_non_interpolated_strings_or_arrays_dont_get_compiled + ['abc', '\\{a}}', '{a}}', []].each do |obj| + Compiler.compile_if_an_interpolation(obj) + assert_equal false, obj.respond_to?(:i18n_interpolate) + end + end + + def test_interpolated_string_gets_compiled + assert_equal '-A-', compile_and_interpolate('-%{a}-', :a => 'A') + end + + def assert_handles_key(str, key) + assert_equal 'A', compile_and_interpolate(str, key => 'A') + end + + def test_compiles_fancy_keys + assert_handles_key('%{\}', :'\\' ) + assert_handles_key('%{#}', :'#' ) + assert_handles_key('%{#{}', :'#{' ) + assert_handles_key('%{#$SAFE}', :'#$SAFE') + assert_handles_key('%{\000}', :'\000' ) + assert_handles_key('%{\'}', :'\'' ) + assert_handles_key('%{\'\'}', :'\'\'' ) + assert_handles_key('%{a.b}', :'a.b' ) + assert_handles_key('%{ }', :' ' ) + assert_handles_key('%{:}', :':' ) + assert_handles_key("%{:''}", :":''" ) + assert_handles_key('%{:"}', :':"' ) + end + + def test_str_containing_only_escaped_interpolation_is_handled_correctly + assert_equal 'abc %{x}', compile_and_interpolate('abc %%{x}') + end + + def test_handles_weird_strings + assert_equal '#{} a', compile_and_interpolate('#{} %{a}', :a => 'a') + assert_equal '"#{abc}"', compile_and_interpolate('"#{ab%{a}c}"', :a => '' ) + assert_equal 'a}', compile_and_interpolate('%{{a}}', :'{a' => 'a') + assert_equal '"', compile_and_interpolate('"%{a}', :a => '' ) + assert_equal 'a%{a}', compile_and_interpolate('%{a}%%{a}', :a => 'a') + assert_equal '%%{a}', compile_and_interpolate('%%%{a}') + assert_equal '\";eval("a")', compile_and_interpolate('\";eval("%{a}")', :a => 'a') + assert_equal '\";eval("a")', compile_and_interpolate('\";eval("a")%{a}', :a => '' ) + assert_equal "\na", compile_and_interpolate("\n%{a}", :a => 'a') + end + + def test_raises_exception_when_argument_is_missing + assert_raise(I18n::MissingInterpolationArgument) do + compile_and_interpolate('%{first} %{last}', :first => 'first') + end + end + + def test_custom_missing_interpolation_argument_handler + old_handler = I18n.config.missing_interpolation_argument_handler + I18n.config.missing_interpolation_argument_handler = lambda do |key, values, string| + "missing key is #{key}, values are #{values.inspect}, given string is '#{string}'" + end + assert_equal %|first missing key is last, values are {:first=>"first"}, given string is '%{first} %{last}'|, + compile_and_interpolate('%{first} %{last}', :first => 'first') + ensure + I18n.config.missing_interpolation_argument_handler = old_handler + end +end + +class I18nBackendInterpolationCompilerTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::InterpolationCompiler + end + + include I18n::Tests::Interpolation + + def setup + I18n.backend = Backend.new + super + end + + # pre-compile default strings to make sure we are testing I18n::Backend::InterpolationCompiler + def interpolate(*args) + options = args.last.kind_of?(Hash) ? args.last : {} + if default_str = options[:default] + I18n::Backend::InterpolationCompiler::Compiler.compile_if_an_interpolation(default_str) + end + super + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/key_value_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/key_value_test.rb new file mode 100644 index 0000000..097780d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/key_value_test.rb @@ -0,0 +1,43 @@ +require 'test_helper' + +class I18nBackendKeyValueTest < I18n::TestCase + def setup_backend!(subtree=true) + I18n.backend = I18n::Backend::KeyValue.new({}, subtree) + store_translations(:en, :foo => { :bar => 'bar', :baz => 'baz' }) + end + + def assert_flattens(expected, nested, escape=true, subtree=true) + assert_equal expected, I18n.backend.flatten_translations("en", nested, escape, subtree) + end + + test "hash flattening works" do + setup_backend! + assert_flattens( + {:a=>'a', :b=>{:c=>'c', :d=>'d', :f=>{:x=>'x'}}, :"b.f" => {:x=>"x"}, :"b.c"=>"c", :"b.f.x"=>"x", :"b.d"=>"d"}, + {:a=>'a', :b=>{:c=>'c', :d=>'d', :f=>{:x=>'x'}}} + ) + assert_flattens({:a=>{:b =>['a', 'b']}, :"a.b"=>['a', 'b']}, {:a=>{:b =>['a', 'b']}}) + assert_flattens({:"a\001b" => "c"}, {:"a.b" => "c"}) + assert_flattens({:"a.b"=>['a', 'b']}, {:a=>{:b =>['a', 'b']}}, true, false) + assert_flattens({:"a.b" => "c"}, {:"a.b" => "c"}, false) + end + + test "store_translations handle subtrees by default" do + setup_backend! + assert_equal({ :bar => 'bar', :baz => 'baz' }, I18n.t("foo")) + end + + test "store_translations merge subtrees accordingly" do + setup_backend! + store_translations(:en, :foo => { :baz => "BAZ"}) + assert_equal('BAZ', I18n.t("foo.baz")) + assert_equal({ :bar => 'bar', :baz => 'BAZ' }, I18n.t("foo")) + end + + test "store_translations does not handle subtrees if desired" do + setup_backend!(false) + assert_raise I18n::MissingTranslationData do + I18n.t("foo", :raise => true) + end + end +end if I18n::TestCase.key_value? diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/memoize_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/memoize_test.rb new file mode 100644 index 0000000..0fb9f90 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/memoize_test.rb @@ -0,0 +1,47 @@ +require 'test_helper' +# TODO: change back to "require 'backend/simple'" when dropping support to Ruby 1.8.7. +require File.expand_path('../simple_test', __FILE__) + +class I18nBackendMemoizeTest < I18nBackendSimpleTest + module MemoizeSpy + attr_accessor :spy_calls + + def available_locales + self.spy_calls = (self.spy_calls || 0) + 1 + super + end + end + + class MemoizeBackend < I18n::Backend::Simple + include MemoizeSpy + include I18n::Backend::Memoize + end + + def setup + super + I18n.backend = MemoizeBackend.new + end + + def test_memoizes_available_locales + I18n.backend.spy_calls = 0 + assert_equal I18n.available_locales, I18n.available_locales + assert_equal 1, I18n.backend.spy_calls + end + + def test_resets_available_locales_on_reload! + I18n.available_locales + I18n.backend.spy_calls = 0 + I18n.reload! + assert_equal I18n.available_locales, I18n.available_locales + assert_equal 1, I18n.backend.spy_calls + end + + def test_resets_available_locales_on_store_translations + I18n.available_locales + I18n.backend.spy_calls = 0 + I18n.backend.store_translations(:copa, :ca => :bana) + assert_equal I18n.available_locales, I18n.available_locales + assert I18n.available_locales.include?(:copa) + assert_equal 1, I18n.backend.spy_calls + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/metadata_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/metadata_test.rb new file mode 100644 index 0000000..44612cf --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/metadata_test.rb @@ -0,0 +1,48 @@ +require 'test_helper' + +class I18nBackendMetadataTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Metadata + end + + def setup + super + I18n.backend = Backend.new + store_translations(:en, :foo => 'Hi %{name}') + end + + test "translation strings carry metadata" do + translation = I18n.t(:foo, :name => 'David') + assert translation.respond_to?(:translation_metadata) + assert translation.translation_metadata.is_a?(Hash) + end + + test "translate adds the locale to metadata on Strings" do + assert_equal :en, I18n.t(:foo, :name => 'David', :locale => :en).translation_metadata[:locale] + end + + test "translate adds the key to metadata on Strings" do + assert_equal :foo, I18n.t(:foo, :name => 'David').translation_metadata[:key] + end + + test "translate adds the default to metadata on Strings" do + assert_equal 'bar', I18n.t(:foo, :default => 'bar', :name => '').translation_metadata[:default] + end + + test "translation adds the interpolation values to metadata on Strings" do + assert_equal({:name => 'David'}, I18n.t(:foo, :name => 'David').translation_metadata[:values]) + end + + test "interpolation adds the original string to metadata on Strings" do + assert_equal('Hi %{name}', I18n.t(:foo, :name => 'David').translation_metadata[:original]) + end + + test "pluralization adds the count to metadata on Strings" do + assert_equal(1, I18n.t(:missing, :count => 1, :default => { :one => 'foo' }).translation_metadata[:count]) + end + + test "metadata works with frozen values" do + assert_equal(1, I18n.t(:missing, :count => 1, :default => 'foo'.freeze).translation_metadata[:count]) + end +end + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/pluralization_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/pluralization_test.rb new file mode 100644 index 0000000..1518efd --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/pluralization_test.rb @@ -0,0 +1,45 @@ +require 'test_helper' + +class I18nBackendPluralizationTest < I18n::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Pluralization + include I18n::Backend::Fallbacks + end + + def setup + super + I18n.backend = Backend.new + @rule = lambda { |n| n == 1 ? :one : n == 0 || (2..10).include?(n % 100) ? :few : (11..19).include?(n % 100) ? :many : :other } + store_translations(:xx, :i18n => { :plural => { :rule => @rule } }) + @entry = { :zero => 'zero', :one => 'one', :few => 'few', :many => 'many', :other => 'other' } + end + + test "pluralization picks a pluralizer from :'i18n.pluralize'" do + assert_equal @rule, I18n.backend.send(:pluralizer, :xx) + end + + test "pluralization picks :one for 1" do + assert_equal 'one', I18n.t(:count => 1, :default => @entry, :locale => :xx) + end + + test "pluralization picks :few for 2" do + assert_equal 'few', I18n.t(:count => 2, :default => @entry, :locale => :xx) + end + + test "pluralization picks :many for 11" do + assert_equal 'many', I18n.t(:count => 11, :default => @entry, :locale => :xx) + end + + test "pluralization picks zero for 0 if the key is contained in the data" do + assert_equal 'zero', I18n.t(:count => 0, :default => @entry, :locale => :xx) + end + + test "pluralization picks few for 0 if the key is not contained in the data" do + @entry.delete(:zero) + assert_equal 'few', I18n.t(:count => 0, :default => @entry, :locale => :xx) + end + + test "Fallbacks can pick up rules from fallback locales, too" do + assert_equal @rule, I18n.backend.send(:pluralizer, :'xx-XX') + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/simple_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/simple_test.rb new file mode 100644 index 0000000..4d0c447 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/simple_test.rb @@ -0,0 +1,84 @@ +require 'test_helper' + +class I18nBackendSimpleTest < I18n::TestCase + def setup + super + I18n.backend = I18n::Backend::Simple.new + I18n.load_path = [locales_dir + '/en.yml'] + end + + # useful because this way we can use the backend with no key for interpolation/pluralization + test "simple backend translate: given nil as a key it still interpolations the default value" do + assert_equal "Hi David", I18n.t(nil, :default => "Hi %{name}", :name => "David") + end + + # loading translations + test "simple load_translations: given an unknown file type it raises I18n::UnknownFileType" do + assert_raise(I18n::UnknownFileType) { I18n.backend.load_translations("#{locales_dir}/en.xml") } + end + + test "simple load_translations: given a Ruby file name it does not raise anything" do + assert_nothing_raised { I18n.backend.load_translations("#{locales_dir}/en.rb") } + end + + test "simple load_translations: given no argument, it uses I18n.load_path" do + I18n.backend.load_translations + assert_equal({ :en => { :foo => { :bar => 'baz' } } }, I18n.backend.send(:translations)) + end + + test "simple load_rb: loads data from a Ruby file" do + data = I18n.backend.send(:load_rb, "#{locales_dir}/en.rb") + assert_equal({ :en => { :fuh => { :bah => 'bas' } } }, data) + end + + test "simple load_yml: loads data from a YAML file" do + data = I18n.backend.send(:load_yml, "#{locales_dir}/en.yml") + assert_equal({ 'en' => { 'foo' => { 'bar' => 'baz' } } }, data) + end + + test "simple load_translations: loads data from known file formats" do + I18n.backend = I18n::Backend::Simple.new + I18n.backend.load_translations("#{locales_dir}/en.rb", "#{locales_dir}/en.yml") + expected = { :en => { :fuh => { :bah => "bas" }, :foo => { :bar => "baz" } } } + assert_equal expected, translations + end + + test "simple load_translations: given file names as array it does not raise anything" do + assert_nothing_raised { I18n.backend.load_translations(["#{locales_dir}/en.rb", "#{locales_dir}/en.yml"]) } + end + + # storing translations + + test "simple store_translations: stores translations, ... no, really :-)" do + store_translations :'en', :foo => 'bar' + assert_equal Hash[:'en', {:foo => 'bar'}], translations + end + + test "simple store_translations: deep_merges with existing translations" do + store_translations :'en', :foo => {:bar => 'bar'} + store_translations :'en', :foo => {:baz => 'baz'} + assert_equal Hash[:'en', {:foo => {:bar => 'bar', :baz => 'baz'}}], translations + end + + test "simple store_translations: converts the given locale to a Symbol" do + store_translations 'en', :foo => 'bar' + assert_equal Hash[:'en', {:foo => 'bar'}], translations + end + + test "simple store_translations: converts keys to Symbols" do + store_translations 'en', 'foo' => {'bar' => 'bar', 'baz' => 'baz'} + assert_equal Hash[:'en', {:foo => {:bar => 'bar', :baz => 'baz'}}], translations + end + + # reloading translations + + test "simple reload_translations: unloads translations" do + I18n.backend.reload! + assert_nil translations + end + + test "simple reload_translations: uninitializes the backend" do + I18n.backend.reload! + assert_equal false, I18n.backend.initialized? + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/transliterator_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/transliterator_test.rb new file mode 100644 index 0000000..c40e2bb --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/backend/transliterator_test.rb @@ -0,0 +1,84 @@ +# encoding: utf-8 +require 'test_helper' + +class I18nBackendTransliterator < I18n::TestCase + def setup + super + I18n.backend = I18n::Backend::Simple.new + @proc = lambda { |n| n.upcase } + @hash = { "ü" => "ue", "ö" => "oe", "a" => "a" } + @transliterator = I18n::Backend::Transliterator.get + end + + test "transliteration rule can be a proc" do + store_translations(:xx, :i18n => {:transliterate => {:rule => @proc}}) + assert_equal "HELLO", I18n.backend.transliterate(:xx, "hello") + end + + test "transliteration rule can be a hash" do + store_translations(:xx, :i18n => {:transliterate => {:rule => @hash}}) + assert_equal "ue", I18n.backend.transliterate(:xx, "ü") + end + + test "transliteration rule must be a proc or hash" do + store_translations(:xx, :i18n => {:transliterate => {:rule => ""}}) + assert_raise I18n::ArgumentError do + I18n.backend.transliterate(:xx, "ü") + end + end + + test "transliterator defaults to latin => ascii when no rule is given" do + assert_equal "AEroskobing", I18n.backend.transliterate(:xx, "Ærøskøbing") + end + + test "default transliterator should not modify ascii characters" do + (0..127).each do |byte| + char = [byte].pack("U") + assert_equal char, @transliterator.transliterate(char) + end + end + + test "default transliterator correctly transliterates latin characters" do + # create string with range of Unicode's western characters with + # diacritics, excluding the division and multiplication signs which for + # some reason or other are floating in the middle of all the letters. + string = (0xC0..0x17E).to_a.reject {|c| [0xD7, 0xF7].include? c}.pack("U*") + string.split(//) do |char| + assert_match %r{^[a-zA-Z']*$}, @transliterator.transliterate(string) + end + end + + test "should replace non-ASCII chars not in map with a replacement char" do + assert_equal "abc?", @transliterator.transliterate("abcſ") + end + + test "can replace non-ASCII chars not in map with a custom replacement string" do + assert_equal "abc#", @transliterator.transliterate("abcſ", "#") + end + + test "default transliterator raises errors for invalid UTF-8" do + assert_raise ArgumentError do + @transliterator.transliterate("a\x92b") + end + end + + test "I18n.transliterate should transliterate using a default transliterator" do + assert_equal "aeo", I18n.transliterate("áèö") + end + + test "I18n.transliterate should transliterate using a locale" do + store_translations(:xx, :i18n => {:transliterate => {:rule => @hash}}) + assert_equal "ue", I18n.transliterate("ü", :locale => :xx) + end + + test "default transliterator fails with custom rules with uncomposed input" do + char = [117, 776].pack("U*") # "ü" as ASCII "u" plus COMBINING DIAERESIS + transliterator = I18n::Backend::Transliterator.get(@hash) + assert_not_equal "ue", transliterator.transliterate(char) + end + + test "DEFAULT_APPROXIMATIONS is frozen to prevent concurrency issues" do + assert I18n::Backend::Transliterator::HashTransliterator::DEFAULT_APPROXIMATIONS.frozen? + end + +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/core_ext/hash_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/core_ext/hash_test.rb new file mode 100644 index 0000000..8309336 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/core_ext/hash_test.rb @@ -0,0 +1,30 @@ +require 'test_helper' +require 'i18n/core_ext/hash' + +class I18nCoreExtHashInterpolationTest < I18n::TestCase + test "#deep_symbolize_keys" do + hash = { 'foo' => { 'bar' => { 'baz' => 'bar' } } } + expected = { :foo => { :bar => { :baz => 'bar' } } } + assert_equal expected, hash.deep_symbolize_keys + end + + test "#slice" do + hash = { :foo => 'bar', :baz => 'bar' } + expected = { :foo => 'bar' } + assert_equal expected, hash.slice(:foo) + end + + test "#except" do + hash = { :foo => 'bar', :baz => 'bar' } + expected = { :foo => 'bar' } + assert_equal expected, hash.except(:baz) + end + + test "#deep_merge!" do + hash = { :foo => { :bar => { :baz => 'bar' } }, :baz => 'bar' } + hash.deep_merge!(:foo => { :bar => { :baz => 'foo' } }) + + expected = { :foo => { :bar => { :baz => 'foo' } }, :baz => 'bar' } + assert_equal expected, hash + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/api_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/api_test.rb new file mode 100644 index 0000000..4297400 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/api_test.rb @@ -0,0 +1,207 @@ +# encoding: utf-8 +require 'test_helper' +require 'i18n/gettext/helpers' + +include I18n::Gettext::Helpers + +class I18nGettextApiTest < I18n::TestCase + def setup + super + I18n.locale = :en + I18n.backend.store_translations :de, { + 'Hi Gettext!' => 'Hallo Gettext!', + 'Sentence 1. Sentence 2.' => 'Satz 1. Satz 2.', + "An apple" => { :one => 'Ein Apfel', :other => '%{count} Äpfel' }, + :special => { "A special apple" => { :one => 'Ein spezieller Apfel', :other => '%{count} spezielle Äpfel' } }, + :foo => { :bar => 'bar-de' }, + 'foo.bar' => 'Foo Bar' + }, :separator => '|' + end + + # gettext + def test_gettext_uses_msg_as_default + assert_equal 'Hi Gettext!', _('Hi Gettext!') + end + + def test_gettext_uses_msg_as_key + I18n.locale = :de + assert_equal 'Hallo Gettext!', gettext('Hi Gettext!') + assert_equal 'Hallo Gettext!', _('Hi Gettext!') + end + + def test_gettext_uses_msg_containing_dots_as_default + assert_equal 'Sentence 1. Sentence 2.', gettext('Sentence 1. Sentence 2.') + assert_equal 'Sentence 1. Sentence 2.', _('Sentence 1. Sentence 2.') + end + + def test_gettext_uses_msg_containing_dots_as_key + I18n.locale = :de + assert_equal 'Satz 1. Satz 2.', gettext('Sentence 1. Sentence 2.') + assert_equal 'Satz 1. Satz 2.', _('Sentence 1. Sentence 2.') + end + + # sgettext + def test_sgettext_defaults_to_the_last_token_of_a_scoped_msgid + assert_equal 'bar', sgettext('foo|bar') + assert_equal 'bar', s_('foo|bar') + end + + def test_sgettext_looks_up_a_scoped_translation + I18n.locale = :de + assert_equal 'bar-de', sgettext('foo|bar') + assert_equal 'bar-de', s_('foo|bar') + end + + def test_sgettext_ignores_dots + I18n.locale = :de + assert_equal 'Foo Bar', sgettext('foo.bar') + assert_equal 'Foo Bar', s_('foo.bar') + end + + # pgettext + def test_pgettext_defaults_to_msgid + assert_equal 'bar', pgettext('foo', 'bar') + assert_equal 'bar', p_('foo', 'bar') + end + + def test_pgettext_looks_up_a_scoped_translation + I18n.locale = :de + assert_equal 'bar-de', pgettext('foo', 'bar') + assert_equal 'bar-de', p_('foo', 'bar') + end + + # ngettext + def test_ngettext_looks_up_msg_id_as_default_singular + assert_equal 'An apple', ngettext('An apple', '%{count} apples', 1) + assert_equal 'An apple', n_('An apple', '%{count} apples', 1) + end + + def test_ngettext_looks_up_msg_id_plural_as_default_plural + assert_equal '2 apples', ngettext('An apple', '%{count} apples', 2) + assert_equal '2 apples', n_('An apple', '%{count} apples', 2) + end + + def test_ngettext_looks_up_a_singular + I18n.locale = :de + assert_equal 'Ein Apfel', ngettext('An apple', '%{count} apples', 1) + assert_equal 'Ein Apfel', n_('An apple', '%{count} apples', 1) + end + + def test_ngettext_looks_up_a_plural + I18n.locale = :de + assert_equal '2 Äpfel', ngettext('An apple', '%{count} apples', 2) + assert_equal '2 Äpfel', n_('An apple', '%{count} apples', 2) + end + + def test_ngettext_looks_up_msg_id_as_default_singular_with_alternative_syntax + assert_equal 'An apple', ngettext(['An apple', '%{count} apples'], 1) + assert_equal 'An apple', n_(['An apple', '%{count} apples'], 1) + end + + def test_ngettext_looks_up_msg_id_plural_as_default_plural_with_alternative_syntax + assert_equal '2 apples', ngettext(['An apple', '%{count} apples'], 2) + assert_equal '2 apples', n_(['An apple', '%{count} apples'], 2) + end + + def test_ngettext_looks_up_a_singular_with_alternative_syntax + I18n.locale = :de + assert_equal 'Ein Apfel', ngettext(['An apple', '%{count} apples'], 1) + assert_equal 'Ein Apfel', n_(['An apple', '%{count} apples'], 1) + end + + def test_ngettext_looks_up_a_plural_with_alternative_syntax + I18n.locale = :de + assert_equal '2 Äpfel', ngettext(['An apple', '%{count} apples'], 2) + assert_equal '2 Äpfel', n_(['An apple', '%{count} apples'], 2) + end + + # nsgettext + def test_nsgettext_looks_up_msg_id_as_default_singular + assert_equal 'A special apple', nsgettext('special|A special apple', '%{count} special apples', 1) + assert_equal 'A special apple', ns_('special|A special apple', '%{count} special apples', 1) + end + + def test_nsgettext_looks_up_msg_id_plural_as_default_plural + assert_equal '2 special apples', nsgettext('special|A special apple', '%{count} special apples', 2) + assert_equal '2 special apples', ns_('special|A special apple', '%{count} special apples', 2) + end + + def test_nsgettext_looks_up_a_singular + I18n.locale = :de + assert_equal 'Ein spezieller Apfel', nsgettext('special|A special apple', '%{count} special apples', 1) + assert_equal 'Ein spezieller Apfel', ns_('special|A special apple', '%{count} special apples', 1) + end + + def test_nsgettext_looks_up_a_plural + I18n.locale = :de + assert_equal '2 spezielle Äpfel', nsgettext('special|A special apple', '%{count} special apples', 2) + assert_equal '2 spezielle Äpfel', ns_('special|A special apple', '%{count} special apples', 2) + end + + def test_nsgettext_looks_up_msg_id_as_default_singular_with_alternative_syntax + assert_equal 'A special apple', nsgettext(['special|A special apple', '%{count} special apples'], 1) + assert_equal 'A special apple', ns_(['special|A special apple', '%{count} special apples'], 1) + end + + def test_nsgettext_looks_up_msg_id_plural_as_default_plural_with_alternative_syntax + assert_equal '2 special apples', nsgettext(['special|A special apple', '%{count} special apples'], 2) + assert_equal '2 special apples', ns_(['special|A special apple', '%{count} special apples'], 2) + end + + def test_nsgettext_looks_up_a_singular_with_alternative_syntax + I18n.locale = :de + assert_equal 'Ein spezieller Apfel', nsgettext(['special|A special apple', '%{count} special apples'], 1) + assert_equal 'Ein spezieller Apfel', ns_(['special|A special apple', '%{count} special apples'], 1) + end + + def test_nsgettext_looks_up_a_plural_with_alternative_syntax + I18n.locale = :de + assert_equal '2 spezielle Äpfel', nsgettext(['special|A special apple', '%{count} special apples'], 2) + assert_equal '2 spezielle Äpfel', ns_(['special|A special apple', '%{count} special apples'], 2) + end + + # npgettext + def test_npgettext_looks_up_msg_id_as_default_singular + assert_equal 'A special apple', npgettext('special', 'A special apple', '%{count} special apples', 1) + assert_equal 'A special apple', np_('special', 'A special apple', '%{count} special apples', 1) + end + + def test_npgettext_looks_up_msg_id_plural_as_default_plural + assert_equal '2 special apples', npgettext('special', 'A special apple', '%{count} special apples', 2) + assert_equal '2 special apples', np_('special', 'A special apple', '%{count} special apples', 2) + end + + def test_npgettext_looks_up_a_singular + I18n.locale = :de + assert_equal 'Ein spezieller Apfel', npgettext('special', 'A special apple', '%{count} special apples', 1) + assert_equal 'Ein spezieller Apfel', np_('special', 'A special apple', '%{count} special apples', 1) + end + + def test_npgettext_looks_up_a_plural + I18n.locale = :de + assert_equal '2 spezielle Äpfel', npgettext('special', 'A special apple', '%{count} special apples', 2) + assert_equal '2 spezielle Äpfel', np_('special', 'A special apple', '%{count} special apples', 2) + end + + def test_npgettext_looks_up_msg_id_as_default_singular_with_alternative_syntax + assert_equal 'A special apple', npgettext('special', ['A special apple', '%{count} special apples'], 1) + assert_equal 'A special apple', np_('special', ['A special apple', '%{count} special apples'], 1) + end + + def test_npgettext_looks_up_msg_id_plural_as_default_plural_with_alternative_syntax + assert_equal '2 special apples', npgettext('special', ['A special apple', '%{count} special apples'], 2) + assert_equal '2 special apples', np_('special', ['A special apple', '%{count} special apples'], 2) + end + + def test_npgettext_looks_up_a_singular_with_alternative_syntax + I18n.locale = :de + assert_equal 'Ein spezieller Apfel', npgettext('special', ['A special apple', '%{count} special apples'], 1) + assert_equal 'Ein spezieller Apfel', np_('special', ['A special apple', '%{count} special apples'], 1) + end + + def test_npgettext_looks_up_a_plural_with_alternative_syntax + I18n.locale = :de + assert_equal '2 spezielle Äpfel', npgettext('special', ['A special apple', '%{count} special apples'], 2) + assert_equal '2 spezielle Äpfel', np_('special', ['A special apple', '%{count} special apples'], 2) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/backend_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/backend_test.rb new file mode 100644 index 0000000..30254e6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/gettext/backend_test.rb @@ -0,0 +1,92 @@ +# encoding: utf-8 + +require 'test_helper' + +class I18nGettextBackendTest < I18n::TestCase + include I18n::Gettext::Helpers + + class Backend < I18n::Backend::Simple + include I18n::Backend::Gettext + end + + def setup + super + I18n.backend = Backend.new + I18n.locale = :en + I18n.load_path = ["#{locales_dir}/de.po"] + I18n.default_separator = '|' + end + + def test_backend_loads_po_file + I18n.backend.send(:init_translations) + assert I18n.backend.send(:translations)[:de][:"Axis"] + end + + def test_looks_up_a_translation + I18n.locale = :de + assert_equal 'Auto', gettext('car') + end + + def test_uses_default_translation + assert_equal 'car', gettext('car') + end + + def test_looks_up_a_namespaced_translation + I18n.locale = :de + assert_equal 'Räderzahl', sgettext('Car|Wheels count') + assert_equal 'Räderzahl', pgettext('Car', 'Wheels count') + assert_equal 'Räderzahl!', pgettext('New car', 'Wheels count') + end + + def test_uses_namespaced_default_translation + assert_equal 'Wheels count', sgettext('Car|Wheels count') + assert_equal 'Wheels count', pgettext('Car', 'Wheels count') + assert_equal 'Wheels count', pgettext('New car', 'Wheels count') + end + + def test_pluralizes_entry + I18n.locale = :de + assert_equal 'Achse', ngettext('Axis', 'Axis', 1) + assert_equal 'Achsen', ngettext('Axis', 'Axis', 2) + end + + def test_pluralizes_default_entry + assert_equal 'Axis', ngettext('Axis', 'Axis', 1) + assert_equal 'Axis', ngettext('Axis', 'Axis', 2) + end + + def test_pluralizes_namespaced_entry + I18n.locale = :de + assert_equal 'Rad', nsgettext('Car|wheel', 'wheels', 1) + assert_equal 'Räder', nsgettext('Car|wheel', 'wheels', 2) + assert_equal 'Rad', npgettext('Car', 'wheel', 'wheels', 1) + assert_equal 'Räder', npgettext('Car', 'wheel', 'wheels', 2) + assert_equal 'Rad!', npgettext('New car', 'wheel', 'wheels', 1) + assert_equal 'Räder!', npgettext('New car', 'wheel', 'wheels', 2) + end + + def test_pluralizes_namespaced_default_entry + assert_equal 'wheel', nsgettext('Car|wheel', 'wheels', 1) + assert_equal 'wheels', nsgettext('Car|wheel', 'wheels', 2) + assert_equal 'wheel', npgettext('Car', 'wheel', 'wheels', 1) + assert_equal 'wheels', npgettext('Car', 'wheel', 'wheels', 2) + assert_equal 'wheel', npgettext('New car', 'wheel', 'wheels', 1) + assert_equal 'wheels', npgettext('New car', 'wheel', 'wheels', 2) + end + + def test_pluralizes_namespaced_entry_with_alternative_syntax + I18n.locale = :de + assert_equal 'Rad', nsgettext(['Car|wheel', 'wheels'], 1) + assert_equal 'Räder', nsgettext(['Car|wheel', 'wheels'], 2) + assert_equal 'Rad', npgettext('Car', ['wheel', 'wheels'], 1) + assert_equal 'Räder', npgettext('Car', ['wheel', 'wheels'], 2) + assert_equal 'Rad!', npgettext('New car', ['wheel', 'wheels'], 1) + assert_equal 'Räder!', npgettext('New car', ['wheel', 'wheels'], 2) + end + + def test_ngettextpluralizes_entry_with_dots + I18n.locale = :de + assert_equal 'Auf 1 Achse.', n_("On %{count} wheel.", "On %{count} wheels.", 1) + assert_equal 'Auf 2 Achsen.', n_("On %{count} wheel.", "On %{count} wheels.", 2) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/exceptions_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/exceptions_test.rb new file mode 100644 index 0000000..d8f2160 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/exceptions_test.rb @@ -0,0 +1,105 @@ +require 'test_helper' + +class I18nExceptionsTest < I18n::TestCase + def test_invalid_locale_stores_locale + force_invalid_locale + rescue I18n::ArgumentError => exception + assert_nil exception.locale + end + + test "passing an invalid locale raises an InvalidLocale exception" do + force_invalid_locale do |exception| + assert_equal 'nil is not a valid locale', exception.message + end + end + + test "MissingTranslationData exception stores locale, key and options" do + force_missing_translation_data do |exception| + assert_equal 'de', exception.locale + assert_equal :foo, exception.key + assert_equal({:scope => :bar}, exception.options) + end + end + + test "MissingTranslationData message contains the locale and scoped key" do + force_missing_translation_data do |exception| + assert_equal 'translation missing: de.bar.foo', exception.message + end + end + + test "InvalidPluralizationData stores entry and count" do + force_invalid_pluralization_data do |exception| + assert_equal [:bar], exception.entry + assert_equal 1, exception.count + end + end + + test "InvalidPluralizationData message contains count and data" do + force_invalid_pluralization_data do |exception| + assert_equal 'translation data [:bar] can not be used with :count => 1', exception.message + end + end + + test "MissingInterpolationArgument stores key and string" do + assert_raise(I18n::MissingInterpolationArgument) { force_missing_interpolation_argument } + force_missing_interpolation_argument do |exception| + assert_equal :bar, exception.key + assert_equal "%{bar}", exception.string + end + end + + test "MissingInterpolationArgument message contains the missing and given arguments" do + force_missing_interpolation_argument do |exception| + assert_equal 'missing interpolation argument :bar in "%{bar}" ({:baz=>"baz"} given)', exception.message + end + end + + test "ReservedInterpolationKey stores key and string" do + force_reserved_interpolation_key do |exception| + assert_equal :scope, exception.key + assert_equal "%{scope}", exception.string + end + end + + test "ReservedInterpolationKey message contains the reserved key" do + force_reserved_interpolation_key do |exception| + assert_equal 'reserved key :scope used in "%{scope}"', exception.message + end + end + + private + + def force_invalid_locale + I18n.translate(:foo, :locale => nil) + rescue I18n::ArgumentError => e + block_given? ? yield(e) : raise(e) + end + + def force_missing_translation_data(options = {}) + store_translations('de', :bar => nil) + I18n.translate(:foo, options.merge(:scope => :bar, :locale => :de)) + rescue I18n::ArgumentError => e + block_given? ? yield(e) : raise(e) + end + + def force_invalid_pluralization_data + store_translations('de', :foo => [:bar]) + I18n.translate(:foo, :count => 1, :locale => :de) + rescue I18n::ArgumentError => e + block_given? ? yield(e) : raise(e) + end + + def force_missing_interpolation_argument + store_translations('de', :foo => "%{bar}") + I18n.translate(:foo, :baz => 'baz', :locale => :de) + rescue I18n::ArgumentError => e + block_given? ? yield(e) : raise(e) + end + + def force_reserved_interpolation_key + store_translations('de', :foo => "%{scope}") + I18n.translate(:foo, :baz => 'baz', :locale => :de) + rescue I18n::ArgumentError => e + block_given? ? yield(e) : raise(e) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/interpolate_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/interpolate_test.rb new file mode 100644 index 0000000..4bc6392 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/interpolate_test.rb @@ -0,0 +1,80 @@ +require 'test_helper' + +# thanks to Masao's String extensions, some tests taken from Masao's tests +# http://github.com/mutoh/gettext/blob/edbbe1fa8238fa12c7f26f2418403015f0270e47/test/test_string.rb + +class I18nInterpolateTest < I18n::TestCase + test "String interpolates a hash argument w/ named placeholders" do + assert_equal "Masao Mutoh", I18n.interpolate("%{first} %{last}", :first => 'Masao', :last => 'Mutoh' ) + end + + test "String interpolates a hash argument w/ named placeholders (reverse order)" do + assert_equal "Mutoh, Masao", I18n.interpolate("%{last}, %{first}", :first => 'Masao', :last => 'Mutoh' ) + end + + test "String interpolates named placeholders with sprintf syntax" do + assert_equal "10, 43.4", I18n.interpolate("%d, %.1f", :integer => 10, :float => 43.4) + end + + test "String interpolates named placeholders with sprintf syntax, does not recurse" do + assert_equal "%s", I18n.interpolate("%{msg}", :msg => '%s', :not_translated => 'should not happen' ) + end + + test "String interpolation does not replace anything when no placeholders are given" do + assert_equal "aaa", I18n.interpolate("aaa", :num => 1) + end + + test "String interpolation sprintf behaviour equals Ruby 1.9 behaviour" do + assert_equal "1", I18n.interpolate("%d", :num => 1) + assert_equal "0b1", I18n.interpolate("%#b", :num => 1) + assert_equal "foo", I18n.interpolate("%s", :msg => "foo") + assert_equal "1.000000", I18n.interpolate("%f", :num => 1.0) + assert_equal " 1", I18n.interpolate("%3.0f", :num => 1.0) + assert_equal "100.00", I18n.interpolate("%2.2f", :num => 100.0) + assert_equal "0x64", I18n.interpolate("%#x", :num => 100.0) + assert_raise(ArgumentError) { I18n.interpolate("%,d", :num => 100) } + assert_raise(ArgumentError) { I18n.interpolate("%/d", :num => 100) } + end + + test "String interpolation raises an I18n::MissingInterpolationArgument when the string has extra placeholders" do + assert_raise(I18n::MissingInterpolationArgument) do # Ruby 1.9 msg: "key not found" + I18n.interpolate("%{first} %{last}", :first => 'Masao') + end + end + + test "String interpolation does not raise when extra values were passed" do + assert_nothing_raised do + assert_equal "Masao Mutoh", I18n.interpolate("%{first} %{last}", :first => 'Masao', :last => 'Mutoh', :salutation => 'Mr.' ) + end + end + + test "% acts as escape character in String interpolation" do + assert_equal "%{first}", I18n.interpolate("%%{first}", :first => 'Masao') + assert_equal "% 1", I18n.interpolate("%% %d", :num => 1.0) + assert_equal "%{num} %d", I18n.interpolate("%%{num} %%d", :num => 1) + end + + def test_sprintf_mix_unformatted_and_formatted_named_placeholders + assert_equal "foo 1.000000", I18n.interpolate("%{name} %f", :name => "foo", :num => 1.0) + end +end + +class I18nMissingInterpolationCustomHandlerTest < I18n::TestCase + def setup + super + @old_handler = I18n.config.missing_interpolation_argument_handler + I18n.config.missing_interpolation_argument_handler = lambda do |key, values, string| + "missing key is #{key}, values are #{values.inspect}, given string is '#{string}'" + end + end + + def teardown + I18n.config.missing_interpolation_argument_handler = @old_handler + super + end + + test "String interpolation can use custom missing interpolation handler" do + assert_equal %|Masao missing key is last, values are {:first=>"Masao"}, given string is '%{first} %{last}'|, + I18n.interpolate("%{first} %{last}", :first => 'Masao') + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/load_path_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/load_path_test.rb new file mode 100644 index 0000000..804aa88 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n/load_path_test.rb @@ -0,0 +1,34 @@ +require 'test_helper' + +class I18nLoadPathTest < I18n::TestCase + def setup + super + I18n.locale = :en + I18n.backend = I18n::Backend::Simple.new + store_translations(:en, :foo => {:bar => 'bar', :baz => 'baz'}) + end + + test "nested load paths do not break locale loading" do + I18n.load_path = [[locales_dir + '/en.yml']] + assert_equal "baz", I18n.t(:'foo.bar') + end + + test "loading an empty yml file raises an InvalidLocaleData exception" do + assert_raise I18n::InvalidLocaleData do + I18n.load_path = [[locales_dir + '/invalid/empty.yml']] + I18n.t(:'foo.bar', :default => "baz") + end + end + + test "loading an invalid yml file raises an InvalidLocaleData exception" do + assert_raise I18n::InvalidLocaleData do + I18n.load_path = [[locales_dir + '/invalid/syntax.yml']] + I18n.t(:'foo.bar', :default => "baz") + end + end + + test "adding arrays of filenames to the load path does not break locale loading" do + I18n.load_path << Dir[locales_dir + '/*.{rb,yml}'] + assert_equal "baz", I18n.t(:'foo.bar') + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n_test.rb new file mode 100644 index 0000000..ed3d987 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/i18n_test.rb @@ -0,0 +1,429 @@ +# encoding: utf-8 +require 'test_helper' + +class I18nTest < I18n::TestCase + def setup + super + store_translations(:en, :currency => { :format => { :separator => '.', :delimiter => ',', } }) + store_translations(:nl, :currency => { :format => { :separator => ',', :delimiter => '.', } }) + end + + test "exposes its VERSION constant" do + assert I18n::VERSION + end + + test "uses the simple backend by default" do + assert I18n.backend.is_a?(I18n::Backend::Simple) + end + + test "can set the backend" do + begin + assert_nothing_raised { I18n.backend = self } + assert_equal self, I18n.backend + ensure + I18n.backend = I18n::Backend::Simple.new + end + end + + test "uses :en as a default_locale by default" do + assert_equal :en, I18n.default_locale + end + + test "can set the default locale" do + begin + assert_nothing_raised { I18n.default_locale = 'de' } + assert_equal :de, I18n.default_locale + ensure + I18n.default_locale = :en + end + end + + test "default_locale= doesn't ignore junk" do + assert_raise(NoMethodError) { I18n.default_locale = Class } + end + + test "raises an I18n::InvalidLocale exception when setting an unavailable default locale" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.default_locale = :klingon } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "uses the default locale as a locale by default" do + assert_equal I18n.default_locale, I18n.locale + end + + test "sets the current locale to Thread.current" do + assert_nothing_raised { I18n.locale = 'de' } + assert_equal :de, I18n.locale + assert_equal :de, Thread.current[:i18n_config].locale + I18n.locale = :en + end + + test "locale= doesn't ignore junk" do + assert_raise(NoMethodError) { I18n.locale = Class } + end + + test "raises an I18n::InvalidLocale exception when setting an unavailable locale" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.locale = :klingon } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "can set the configuration object" do + begin + I18n.config = self + assert_equal self, I18n.config + assert_equal self, Thread.current[:i18n_config] + ensure + I18n.config = ::I18n::Config.new + end + end + + test "locale is not shared between configurations" do + a = I18n::Config.new + b = I18n::Config.new + a.locale = :fr + b.locale = :es + assert_equal :fr, a.locale + assert_equal :es, b.locale + assert_equal :en, I18n.locale + end + + test "other options are shared between configurations" do + begin + a = I18n::Config.new + b = I18n::Config.new + a.default_locale = :fr + b.default_locale = :es + assert_equal :es, a.default_locale + assert_equal :es, b.default_locale + assert_equal :es, I18n.default_locale + ensure + I18n.default_locale = :en + end + end + + test "uses a dot as a default_separator by default" do + assert_equal '.', I18n.default_separator + end + + test "can set the default_separator" do + begin + assert_nothing_raised { I18n.default_separator = "\001" } + ensure + I18n.default_separator = '.' + end + end + + test "normalize_keys normalizes given locale, keys and scope to an array of single-key symbols" do + assert_equal [:en, :foo, :bar], I18n.normalize_keys(:en, :bar, :foo) + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, :'baz.buz', :'foo.bar') + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, 'baz.buz', 'foo.bar') + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, %w(baz buz), %w(foo bar)) + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, [:baz, :buz], [:foo, :bar]) + end + + test "normalize_keys discards empty keys" do + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, :'baz..buz', :'foo..bar') + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, :'baz......buz', :'foo......bar') + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, ['baz', nil, '', 'buz'], ['foo', nil, '', 'bar']) + end + + test "normalize_keys uses a given separator" do + assert_equal [:en, :foo, :bar, :baz, :buz], I18n.normalize_keys(:en, :'baz|buz', :'foo|bar', '|') + end + + test "can set the exception_handler" do + begin + previous_exception_handler = I18n.exception_handler + assert_nothing_raised { I18n.exception_handler = :custom_exception_handler } + ensure + I18n.exception_handler = previous_exception_handler + end + end + + test "uses a custom exception handler set to I18n.exception_handler" do + begin + previous_exception_handler = I18n.exception_handler + I18n.exception_handler = :custom_exception_handler + I18n.expects(:custom_exception_handler) + I18n.translate :bogus + ensure + I18n.exception_handler = previous_exception_handler + end + end + + test "uses a custom exception handler passed as an option" do + I18n.expects(:custom_exception_handler) + I18n.translate(:bogus, :exception_handler => :custom_exception_handler) + end + + test "delegates translate calls to the backend" do + I18n.backend.expects(:translate).with('de', :foo, {}) + I18n.translate :foo, :locale => 'de' + end + + test "delegates localize calls to the backend" do + I18n.backend.expects(:localize).with('de', :whatever, :default, {}) + I18n.localize :whatever, :locale => 'de' + end + + test "translate given no locale uses the current locale" do + I18n.backend.expects(:translate).with(:en, :foo, {}) + I18n.translate :foo + end + + test "translate works with nested symbol keys" do + assert_equal ".", I18n.t(:'currency.format.separator') + end + + test "translate works with nested string keys" do + assert_equal ".", I18n.t('currency.format.separator') + end + + test "translate with an array as a scope works" do + assert_equal ".", I18n.t(:separator, :scope => %w(currency format)) + end + + test "translate with an array containing dot separated strings as a scope works" do + assert_equal ".", I18n.t(:separator, :scope => ['currency.format']) + end + + test "translate with an array of keys and a dot separated string as a scope works" do + assert_equal [".", ","], I18n.t(%w(separator delimiter), :scope => 'currency.format') + end + + test "translate with an array of dot separated keys and a scope works" do + assert_equal [".", ","], I18n.t(%w(format.separator format.delimiter), :scope => 'currency') + end + + # def test_translate_given_no_args_raises_missing_translation_data + # assert_equal "translation missing: en, no key", I18n.t + # end + + test "translate given a bogus key returns an error message" do + assert_equal "translation missing: en.bogus", I18n.t(:bogus) + end + + test "translate given an empty string as a key raises an I18n::ArgumentError" do + assert_raise(I18n::ArgumentError) { I18n.t("") } + end + + test "translate given an unavailable locale rases an I18n::InvalidLocale" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.t(:foo, :locale => 'klingon') } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "available_locales can be replaced at runtime" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.t(:foo, :locale => 'klingon') } + old_locales, I18n.config.available_locales = I18n.config.available_locales, [:klingon] + I18n.t(:foo, :locale => 'klingon') + ensure + I18n.config.enforce_available_locales = false + I18n.config.available_locales = old_locales + end + end + + test "available_locales_set should return a set" do + assert_equal Set, I18n.config.available_locales_set.class + assert_equal I18n.config.available_locales.size * 2, I18n.config.available_locales_set.size + end + + test "exists? given an existing key will return true" do + assert_equal true, I18n.exists?(:currency) + end + + test "exists? given a non-existing key will return false" do + assert_equal false, I18n.exists?(:bogus) + end + + test "exists? given an existing dot-separated key will return true" do + assert_equal true, I18n.exists?('currency.format.delimiter') + end + + test "exists? given a non-existing dot-separated key will return false" do + assert_equal false, I18n.exists?('currency.format.bogus') + end + + test "exists? given an existing key and an existing locale will return true" do + assert_equal true, I18n.exists?(:currency, :nl) + end + + test "exists? given a non-existing key and an existing locale will return false" do + assert_equal false, I18n.exists?(:bogus, :nl) + end + + test "localize given nil raises an I18n::ArgumentError" do + assert_raise(I18n::ArgumentError) { I18n.l nil } + end + + test "localize given an Object raises an I18n::ArgumentError" do + assert_raise(I18n::ArgumentError) { I18n.l Object.new } + end + + test "localize given an unavailable locale rases an I18n::InvalidLocale" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.l(Time.now, :locale => 'klingon') } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "can use a lambda as an exception handler" do + begin + previous_exception_handler = I18n.exception_handler + I18n.exception_handler = Proc.new { |exception, locale, key, options| key } + assert_equal :test_proc_handler, I18n.translate(:test_proc_handler) + ensure + I18n.exception_handler = previous_exception_handler + end + end + + test "can use an object responding to #call as an exception handler" do + begin + previous_exception_handler = I18n.exception_handler + I18n.exception_handler = Class.new do + def call(exception, locale, key, options); key; end + end.new + assert_equal :test_proc_handler, I18n.translate(:test_proc_handler) + ensure + I18n.exception_handler = previous_exception_handler + end + end + + test "I18n.with_locale temporarily sets the given locale" do + store_translations(:en, :foo => 'Foo in :en') + store_translations(:de, :foo => 'Foo in :de') + store_translations(:pl, :foo => 'Foo in :pl') + + I18n.with_locale { assert_equal [:en, 'Foo in :en'], [I18n.locale, I18n.t(:foo)] } + I18n.with_locale(:de) { assert_equal [:de, 'Foo in :de'], [I18n.locale, I18n.t(:foo)] } + I18n.with_locale(:pl) { assert_equal [:pl, 'Foo in :pl'], [I18n.locale, I18n.t(:foo)] } + I18n.with_locale(:en) { assert_equal [:en, 'Foo in :en'], [I18n.locale, I18n.t(:foo)] } + + assert_equal I18n.default_locale, I18n.locale + end + + test "I18n.with_locale resets the locale in case of errors" do + assert_raise(I18n::ArgumentError) { I18n.with_locale(:pl) { raise I18n::ArgumentError } } + assert_equal I18n.default_locale, I18n.locale + end + + test "I18n.translitarate handles I18n::ArgumentError exception" do + I18n::Backend::Transliterator.stubs(:get).raises(I18n::ArgumentError) + I18n.exception_handler.expects(:call).raises(I18n::ArgumentError) + assert_raise(I18n::ArgumentError) { + I18n.transliterate("ąćó") + } + end + + test "I18n.translitarate raises I18n::ArgumentError exception" do + I18n::Backend::Transliterator.stubs(:get).raises(I18n::ArgumentError) + I18n.exception_handler.expects(:call).never + assert_raise(I18n::ArgumentError) { + I18n.transliterate("ąćó", :raise => true) + } + end + + test "transliterate given an unavailable locale rases an I18n::InvalidLocale" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.transliterate('string', :locale => 'klingon') } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "I18n.locale_available? returns true when the passed locale is available" do + I18n.available_locales = [:en, :de] + assert_equal true, I18n.locale_available?(:de) + end + + test "I18n.locale_available? returns true when the passed locale is a string and is available" do + I18n.available_locales = [:en, :de] + assert_equal true, I18n.locale_available?('de') + end + + test "I18n.locale_available? returns false when the passed locale is unavailable" do + assert_equal false, I18n.locale_available?(:klingon) + end + + test "I18n.enforce_available_locales! raises an I18n::InvalidLocale when the passed locale is unavailable" do + begin + I18n.config.enforce_available_locales = true + assert_raise(I18n::InvalidLocale) { I18n.enforce_available_locales!(:klingon) } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "I18n.enforce_available_locales! does nothing when the passed locale is available" do + I18n.available_locales = [:en, :de] + begin + I18n.config.enforce_available_locales = true + assert_nothing_raised { I18n.enforce_available_locales!(:en) } + ensure + I18n.config.enforce_available_locales = false + end + end + + test "I18n.enforce_available_locales config can be set to false" do + begin + I18n.config.enforce_available_locales = false + assert_equal false, I18n.config.enforce_available_locales + ensure + I18n.config.enforce_available_locales = false + end + end + + test 'I18n.reload! reloads the set of locales that are enforced' do + begin + # Clear the backend that affects the available locales and somehow can remain + # set from the last running test. + # For instance, it contains enough translations to cause a false positive with + # this test when ran with --seed=50992 + I18n.backend = I18n::Backend::Simple.new + + assert !I18n.available_locales.include?(:de), "Available locales should not include :de at this point" + + I18n.enforce_available_locales = true + + assert_raise(I18n::InvalidLocale) { I18n.default_locale = :de } + assert_raise(I18n::InvalidLocale) { I18n.locale = :de } + + store_translations(:de, :foo => 'Foo in :de') + + assert_raise(I18n::InvalidLocale) { I18n.default_locale = :de } + assert_raise(I18n::InvalidLocale) { I18n.locale = :de } + + I18n.reload! + + store_translations(:en, :foo => 'Foo in :en') + store_translations(:de, :foo => 'Foo in :de') + store_translations(:pl, :foo => 'Foo in :pl') + + assert I18n.available_locales.include?(:de), ":de should now be allowed" + assert I18n.available_locales.include?(:en), ":en should now be allowed" + assert I18n.available_locales.include?(:pl), ":pl should now be allowed" + + assert_nothing_raised { I18n.default_locale = I18n.locale = :en } + assert_nothing_raised { I18n.default_locale = I18n.locale = :de } + assert_nothing_raised { I18n.default_locale = I18n.locale = :pl } + ensure + I18n.enforce_available_locales = false + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/fallbacks_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/fallbacks_test.rb new file mode 100644 index 0000000..7a43852 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/fallbacks_test.rb @@ -0,0 +1,133 @@ +require 'test_helper' + +include I18n::Locale + +class I18nFallbacksDefaultsTest < I18n::TestCase + test "defaults reflect the I18n.default_locale if no default has been set manually" do + I18n.default_locale = :'en-US' + fallbacks = Fallbacks.new + assert_equal [:'en-US', :en], fallbacks.defaults + end + + test "defaults reflect a manually passed default locale if any" do + fallbacks = Fallbacks.new(:'fi-FI') + assert_equal [:'fi-FI', :fi], fallbacks.defaults + I18n.default_locale = :'de-DE' + assert_equal [:'fi-FI', :fi], fallbacks.defaults + end + + test "defaults allows to set multiple defaults" do + fallbacks = Fallbacks.new(:'fi-FI', :'se-FI') + assert_equal [:'fi-FI', :fi, :'se-FI', :se], fallbacks.defaults + end +end + +class I18nFallbacksComputationTest < I18n::TestCase + def setup + super + @fallbacks = Fallbacks.new(:'en-US') + end + + test "with no mappings defined it returns [:es, :en-US] for :es" do + assert_equal [:es, :"en-US", :en], @fallbacks[:es] + end + + test "with no mappings defined it returns [:es-ES, :es, :en-US] for :es-ES" do + assert_equal [:"es-ES", :es, :"en-US", :en], @fallbacks[:"es-ES"] + end + + test "with no mappings defined it returns [:es-MX, :es, :en-US] for :es-MX" do + assert_equal [:"es-MX", :es, :"en-US", :en], @fallbacks[:"es-MX"] + end + + test "with no mappings defined it returns [:es-Latn-ES, :es-Latn, :es, :en-US] for :es-Latn-ES" do + assert_equal [:"es-Latn-ES", :"es-Latn", :es, :"en-US", :en], @fallbacks[:'es-Latn-ES'] + end + + test "with no mappings defined it returns [:en, :en-US] for :en" do + assert_equal [:en, :"en-US"], @fallbacks[:en] + end + + test "with no mappings defined it returns [:en-US, :en] for :en-US (special case: locale == default)" do + assert_equal [:"en-US", :en], @fallbacks[:"en-US"] + end + + # Most people who speak Catalan also live in Spain, so it is safe to assume + # that they also speak Spanish as spoken in Spain. + test "with a Catalan mapping defined it returns [:ca, :es-ES, :es, :en-US] for :ca" do + @fallbacks.map(:ca => :"es-ES") + assert_equal [:ca, :"es-ES", :es, :"en-US", :en], @fallbacks[:ca] + end + + test "with a Catalan mapping defined it returns [:ca-ES, :ca, :es-ES, :es, :en-US] for :ca-ES" do + @fallbacks.map(:ca => :"es-ES") + assert_equal [:"ca-ES", :ca, :"es-ES", :es, :"en-US", :en], @fallbacks[:"ca-ES"] + end + + # People who speak Arabic as spoken in Palestine often times also speak + # Hebrew as spoken in Israel. However it is in no way safe to assume that + # everybody who speaks Arabic also speaks Hebrew. + + test "with a Hebrew mapping defined it returns [:ar, :en-US] for :ar" do + @fallbacks.map(:"ar-PS" => :"he-IL") + assert_equal [:ar, :"en-US", :en], @fallbacks[:ar] + end + + test "with a Hebrew mapping defined it returns [:ar-EG, :ar, :en-US] for :ar-EG" do + @fallbacks.map(:"ar-PS" => :"he-IL") + assert_equal [:"ar-EG", :ar, :"en-US", :en], @fallbacks[:"ar-EG"] + end + + test "with a Hebrew mapping defined it returns [:ar-PS, :ar, :he-IL, :he, :en-US] for :ar-PS" do + @fallbacks.map(:"ar-PS" => :"he-IL") + assert_equal [:"ar-PS", :ar, :"he-IL", :he, :"en-US", :en], @fallbacks[:"ar-PS"] + end + + # Sami people live in several scandinavian countries. In Finnland many people + # know Swedish and Finnish. Thus, it can be assumed that Sami living in + # Finnland also speak Swedish and Finnish. + + test "with a Sami mapping defined it returns [:sms-FI, :sms, :se-FI, :se, :fi-FI, :fi, :en-US] for :sms-FI" do + @fallbacks.map(:sms => [:"se-FI", :"fi-FI"]) + assert_equal [:"sms-FI", :sms, :"se-FI", :se, :"fi-FI", :fi, :"en-US", :en], @fallbacks[:"sms-FI"] + end + + # Austrian people understand German as spoken in Germany + + test "with a German mapping defined it returns [:de, :en-US] for de" do + @fallbacks.map(:"de-AT" => :"de-DE") + assert_equal [:de, :"en-US", :en], @fallbacks[:"de"] + end + + test "with a German mapping defined it returns [:de-DE, :de, :en-US] for de-DE" do + @fallbacks.map(:"de-AT" => :"de-DE") + assert_equal [:"de-DE", :de, :"en-US", :en], @fallbacks[:"de-DE"] + end + + test "with a German mapping defined it returns [:de-AT, :de, :de-DE, :en-US] for de-AT" do + @fallbacks.map(:"de-AT" => :"de-DE") + assert_equal [:"de-AT", :de, :"de-DE", :"en-US", :en], @fallbacks[:"de-AT"] + end + + # Mapping :de => :en, :he => :en + + test "with a mapping :de => :en, :he => :en defined it returns [:de, :en] for :de" do + assert_equal [:de, :"en-US", :en], @fallbacks[:de] + end + + test "with a mapping :de => :en, :he => :en defined it [:he, :en] for :de" do + assert_equal [:he, :"en-US", :en], @fallbacks[:he] + end + + # Test allowing mappings that fallback to each other + + test "with :no => :nb, :nb => :no defined :no returns [:no, :nb, :en-US, :en]" do + @fallbacks.map(:no => :nb, :nb => :no) + assert_equal [:no, :nb, :"en-US", :en], @fallbacks[:no] + end + + test "with :no => :nb, :nb => :no defined :nb returns [:nb, :no, :en-US, :en]" do + @fallbacks.map(:no => :nb, :nb => :no) + assert_equal [:nb, :no, :"en-US", :en], @fallbacks[:nb] + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/rfc4646_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/rfc4646_test.rb new file mode 100644 index 0000000..a0f4286 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/rfc4646_test.rb @@ -0,0 +1,143 @@ +# encoding: utf-8 +require 'test_helper' + +class I18nLocaleTagRfc4646ParserTest < I18n::TestCase + include I18n::Locale + + test "Rfc4646::Parser given a valid tag 'de' returns an array of subtags" do + assert_equal ['de', nil, nil, nil, nil, nil, nil], Tag::Rfc4646::Parser.match('de') + end + + test "Rfc4646::Parser given a valid tag 'de-DE' returns an array of subtags" do + assert_equal ['de', nil, 'DE', nil, nil, nil, nil], Tag::Rfc4646::Parser.match('de-DE') + end + + test "Rfc4646::Parser given a valid lowercase tag 'de-latn-de-variant-x-phonebk' returns an array of subtags" do + assert_equal ['de', 'latn', 'de', 'variant', nil, 'x-phonebk', nil], Tag::Rfc4646::Parser.match('de-latn-de-variant-x-phonebk') + end + + test "Rfc4646::Parser given a valid uppercase tag 'DE-LATN-DE-VARIANT-X-PHONEBK' returns an array of subtags" do + assert_equal ['DE', 'LATN', 'DE', 'VARIANT', nil, 'X-PHONEBK', nil], Tag::Rfc4646::Parser.match('DE-LATN-DE-VARIANT-X-PHONEBK') + end + + test "Rfc4646::Parser given an invalid tag 'a-DE' it returns false" do + assert_equal false, Tag::Rfc4646::Parser.match('a-DE') + end + + test "Rfc4646::Parser given an invalid tag 'de-419-DE' it returns false" do + assert_equal false, Tag::Rfc4646::Parser.match('de-419-DE') + end +end + +# Tag for the locale 'de-Latn-DE-Variant-a-ext-x-phonebk-i-klingon' + +class I18nLocaleTagSubtagsTest < I18n::TestCase + include I18n::Locale + + def setup + super + subtags = %w(de Latn DE variant a-ext x-phonebk i-klingon) + @tag = Tag::Rfc4646.new(*subtags) + end + + test "returns 'de' as the language subtag in lowercase" do + assert_equal 'de', @tag.language + end + + test "returns 'Latn' as the script subtag in titlecase" do + assert_equal 'Latn', @tag.script + end + + test "returns 'DE' as the region subtag in uppercase" do + assert_equal 'DE', @tag.region + end + + test "returns 'variant' as the variant subtag in lowercase" do + assert_equal 'variant', @tag.variant + end + + test "returns 'a-ext' as the extension subtag" do + assert_equal 'a-ext', @tag.extension + end + + test "returns 'x-phonebk' as the privateuse subtag" do + assert_equal 'x-phonebk', @tag.privateuse + end + + test "returns 'i-klingon' as the grandfathered subtag" do + assert_equal 'i-klingon', @tag.grandfathered + end + + test "returns a formatted tag string from #to_s" do + assert_equal 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon', @tag.to_s + end + + test "returns an array containing the formatted subtags from #to_a" do + assert_equal %w(de Latn DE variant a-ext x-phonebk i-klingon), @tag.to_a + end +end + +# Tag inheritance + +class I18nLocaleTagSubtagsTest < I18n::TestCase + test "#parent returns 'de-Latn-DE-variant-a-ext-x-phonebk' as the parent of 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do + tag = Tag::Rfc4646.new(*%w(de Latn DE variant a-ext x-phonebk i-klingon)) + assert_equal 'de-Latn-DE-variant-a-ext-x-phonebk', tag.parent.to_s + end + + test "#parent returns 'de-Latn-DE-variant-a-ext' as the parent of 'de-Latn-DE-variant-a-ext-x-phonebk'" do + tag = Tag::Rfc4646.new(*%w(de Latn DE variant a-ext x-phonebk)) + assert_equal 'de-Latn-DE-variant-a-ext', tag.parent.to_s + end + + test "#parent returns 'de-Latn-DE-variant' as the parent of 'de-Latn-DE-variant-a-ext'" do + tag = Tag::Rfc4646.new(*%w(de Latn DE variant a-ext)) + assert_equal 'de-Latn-DE-variant', tag.parent.to_s + end + + test "#parent returns 'de-Latn-DE' as the parent of 'de-Latn-DE-variant'" do + tag = Tag::Rfc4646.new(*%w(de Latn DE variant)) + assert_equal 'de-Latn-DE', tag.parent.to_s + end + + test "#parent returns 'de-Latn' as the parent of 'de-Latn-DE'" do + tag = Tag::Rfc4646.new(*%w(de Latn DE)) + assert_equal 'de-Latn', tag.parent.to_s + end + + test "#parent returns 'de' as the parent of 'de-Latn'" do + tag = Tag::Rfc4646.new(*%w(de Latn)) + assert_equal 'de', tag.parent.to_s + end + + # TODO RFC4647 says: "If no language tag matches the request, the "default" value is returned." + # where should we set the default language? + # test "#parent returns '' as the parent of 'de'" do + # tag = Tag::Rfc4646.new *%w(de) + # assert_equal '', tag.parent.to_s + # end + + test "#parent returns an array of 5 parents for 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do + parents = %w(de-Latn-DE-variant-a-ext-x-phonebk-i-klingon + de-Latn-DE-variant-a-ext-x-phonebk + de-Latn-DE-variant-a-ext + de-Latn-DE-variant + de-Latn-DE + de-Latn + de) + tag = Tag::Rfc4646.new(*%w(de Latn DE variant a-ext x-phonebk i-klingon)) + assert_equal parents, tag.self_and_parents.map(&:to_s) + end + + test "returns an array of 5 parents for 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do + parents = %w(de-Latn-DE-variant-a-ext-x-phonebk-i-klingon + de-Latn-DE-variant-a-ext-x-phonebk + de-Latn-DE-variant-a-ext + de-Latn-DE-variant + de-Latn-DE + de-Latn + de) + tag = Tag::Rfc4646.new(*%w(de Latn DE variant a-ext x-phonebk i-klingon)) + assert_equal parents, tag.self_and_parents.map(&:to_s) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/simple_test.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/simple_test.rb new file mode 100644 index 0000000..002c63d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/locale/tag/simple_test.rb @@ -0,0 +1,32 @@ +# encoding: utf-8 +require 'test_helper' + +class I18nLocaleTagSimpleTest < I18n::TestCase + include I18n::Locale + + test "returns 'de' as the language subtag in lowercase" do + assert_equal %w(de Latn DE), Tag::Simple.new('de-Latn-DE').subtags + end + + test "returns a formatted tag string from #to_s" do + assert_equal 'de-Latn-DE', Tag::Simple.new('de-Latn-DE').to_s + end + + test "returns an array containing the formatted subtags from #to_a" do + assert_equal %w(de Latn DE), Tag::Simple.new('de-Latn-DE').to_a + end + + # Tag inheritance + + test "#parent returns 'de-Latn' as the parent of 'de-Latn-DE'" do + assert_equal 'de-Latn', Tag::Simple.new('de-Latn-DE').parent.to_s + end + + test "#parent returns 'de' as the parent of 'de-Latn'" do + assert_equal 'de', Tag::Simple.new('de-Latn').parent.to_s + end + + test "#self_and_parents returns an array of 3 tags for 'de-Latn-DE'" do + assert_equal %w(de-Latn-DE de-Latn de), Tag::Simple.new('de-Latn-DE').self_and_parents.map { |tag| tag.to_s} + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/run_all.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/run_all.rb new file mode 100644 index 0000000..64ff743 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/run_all.rb @@ -0,0 +1,20 @@ +def bundle_check + `bundle check` == "Resolving dependencies...\nThe Gemfile's dependencies are satisfied\n" +end + +def execute(command) + puts command + system command +end + +gemfiles = %w(Gemfile) + Dir['gemfiles/Gemfile*'].reject { |f| f.end_with?('.lock') } + +results = gemfiles.map do |gemfile| + puts "\nBUNDLE_GEMFILE=#{gemfile}" + ENV['BUNDLE_GEMFILE'] = File.expand_path("../../#{gemfile}", __FILE__) + + execute 'bundle install' unless bundle_check + execute 'bundle exec rake test' +end + +exit results.all? diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/de.po b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/de.po new file mode 100644 index 0000000..f3c9998 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/de.po @@ -0,0 +1,82 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: version 0.0.1\n" +"POT-Creation-Date: 2009-02-26 19:50+0100\n" +"PO-Revision-Date: 2009-02-18 14:53+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +# #: app/helpers/translation_helper.rb:3 +# msgid "%{relative_time} ago" +# msgstr "vor %{relative_time}" + +#: app/views/cars/show.html.erb:5 +msgid "Axis" +msgid_plural "Axis" +msgstr[0] "Achse" +msgstr[1] "Achsen" + +#: app/controllers/cars_controller.rb:47 +msgid "Car was successfully created." +msgstr "Auto wurde erfolgreich gespeichert" + +#: app/controllers/cars_controller.rb:64 +msgid "Car was successfully updated." +msgstr "Auto wurde erfolgreich aktualisiert" + +#: app/views/cars/show.html.erb:1 locale/model_attributes.rb:3 +msgid "Car|Model" +msgstr "Modell" + +#: app/views/cars/show.html.erb:3 locale/model_attributes.rb:4 +msgid "Car|Wheels count" +msgstr "Räderzahl" + +msgctxt "New car" +msgid "Wheels count" +msgstr "Räderzahl!" + +#: app/views/cars/show.html.erb:7 +msgid "Created" +msgstr "Erstellt" + +#: app/views/cars/show.html.erb:9 +msgid "Month" +msgstr "Monat" + +#: locale/model_attributes.rb:2 +msgid "car" +msgstr "Auto" + +#: locale/testlog_phrases.rb:2 +msgid "this is a dynamic translation which was found thorugh gettext_test_log!" +msgstr "" +"Dies ist eine dynamische Übersetzung, die durch gettext_test_log " +"gefunden wurde!" + +#: app/views/cars/nowhere_really +msgid "Car|wheel" +msgid_plural "Car|wheels" +msgstr[0] "Rad" +msgstr[1] "Räder" + +msgctxt "New car" +msgid "wheel" +msgid_plural "wheels" +msgstr[0] "Rad!" +msgstr[1] "Räder!" + +msgid "On %{count} wheel." +msgid_plural "On %{count} wheels." +msgstr[0] "Auf %{count} Achse." +msgstr[1] "Auf %{count} Achsen." diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.rb new file mode 100644 index 0000000..e847d10 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.rb @@ -0,0 +1,3 @@ +# encoding: utf-8 + +{ :en => { :fuh => { :bah => "bas" } } } \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.yml new file mode 100644 index 0000000..25f5bb6 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/en.yml @@ -0,0 +1,3 @@ +en: + foo: + bar: baz \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/empty.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/empty.yml new file mode 100644 index 0000000..e69de29 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/syntax.yml b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/syntax.yml new file mode 100644 index 0000000..40b1e61 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/invalid/syntax.yml @@ -0,0 +1,4 @@ +en: + foo: foo + bar: + baz: \ No newline at end of file diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/plurals.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/plurals.rb new file mode 100644 index 0000000..835e28f --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_data/locales/plurals.rb @@ -0,0 +1,113 @@ +# encoding: utf-8 + +{ + :af => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :am => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :ar => { :i18n => { :plural => { :keys => [:zero, :one, :two, :few, :many, :other], :rule => lambda { |n| n == 0 ? :zero : n == 1 ? :one : n == 2 ? :two : [3, 4, 5, 6, 7, 8, 9, 10].include?(n % 100) ? :few : [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99].include?(n % 100) ? :many : :other } } } }, + :az => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :be => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :bg => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :bh => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :bn => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :bo => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :bs => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :ca => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :cs => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n == 1 ? :one : [2, 3, 4].include?(n) ? :few : :other } } } }, + :cy => { :i18n => { :plural => { :keys => [:one, :two, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : n == 8 || n == 11 ? :many : :other } } } }, + :da => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :de => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :dz => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :el => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :en => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :eo => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :es => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :et => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :eu => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :fa => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :fi => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :fil => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :fo => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :fr => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n.between?(0, 2) && n != 2 ? :one : :other } } } }, + :fur => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :fy => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ga => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :gl => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :gu => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :guw => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :ha => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :he => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :hi => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :hr => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :hu => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :id => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :is => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :it => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :iw => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ja => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :jv => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :ka => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :km => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :kn => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :ko => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :ku => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :lb => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ln => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :lt => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n % 10 == 1 && ![11, 12, 13, 14, 15, 16, 17, 18, 19].include?(n % 100) ? :one : [2, 3, 4, 5, 6, 7, 8, 9].include?(n % 10) && ![11, 12, 13, 14, 15, 16, 17, 18, 19].include?(n % 100) ? :few : :other } } } }, + :lv => { :i18n => { :plural => { :keys => [:zero, :one, :other], :rule => lambda { |n| n == 0 ? :zero : n % 10 == 1 && n % 100 != 11 ? :one : :other } } } }, + :mg => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :mk => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n % 10 == 1 ? :one : :other } } } }, + :ml => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :mn => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :mo => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n == 1 ? :one : n == 0 ? :few : :other } } } }, + :mr => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ms => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :mt => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 0 || [2, 3, 4, 5, 6, 7, 8, 9, 10].include?(n % 100) ? :few : [11, 12, 13, 14, 15, 16, 17, 18, 19].include?(n % 100) ? :many : :other } } } }, + :my => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :nah => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :nb => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ne => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :nl => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :nn => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :no => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :nso => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :om => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :or => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :pa => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :pap => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :pl => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n == 1 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : :other } } } }, + :ps => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :pt => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :"pt-PT" => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ro => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n == 1 ? :one : n == 0 ? :few : :other } } } }, + :ru => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :se => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :sh => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :sk => { :i18n => { :plural => { :keys => [:one, :few, :other], :rule => lambda { |n| n == 1 ? :one : [2, 3, 4].include?(n) ? :few : :other } } } }, + :sl => { :i18n => { :plural => { :keys => [:one, :two, :few, :other], :rule => lambda { |n| n % 100 == 1 ? :one : n % 100 == 2 ? :two : [3, 4].include?(n % 100) ? :few : :other } } } }, + :sma => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :smi => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :smj => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :smn => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :sms => { :i18n => { :plural => { :keys => [:one, :two, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : :other } } } }, + :so => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :sq => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :sr => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :sv => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :sw => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :ta => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :te => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :th => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :ti => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :tk => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :tl => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :to => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :tr => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :uk => { :i18n => { :plural => { :keys => [:one, :few, :many, :other], :rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other } } } }, + :ur => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } }, + :vi => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :wa => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other } } } }, + :yo => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :zh => { :i18n => { :plural => { :keys => [:other], :rule => lambda { |n| :other } } } }, + :zu => { :i18n => { :plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other } } } } +} + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_helper.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_helper.rb new file mode 100644 index 0000000..dabb6a7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/test/test_helper.rb @@ -0,0 +1,55 @@ +$KCODE = 'u' if RUBY_VERSION <= '1.9' + +require 'minitest/autorun' +TEST_CASE = defined?(Minitest::Test) ? Minitest::Test : MiniTest::Unit::TestCase + +# TODO: Remove these aliases and update tests accordingly. +class TEST_CASE + alias :assert_raise :assert_raises + alias :assert_not_equal :refute_equal + + def assert_nothing_raised(*args) + yield + end +end + +require 'bundler/setup' +require 'i18n' +require 'mocha/setup' +require 'test_declarative' + +class I18n::TestCase < TEST_CASE + def self.key_value? + defined?(ActiveSupport) + end + + def setup + super + I18n.enforce_available_locales = false + end + + def teardown + I18n.locale = nil + I18n.default_locale = nil + I18n.load_path = nil + I18n.available_locales = nil + I18n.backend = nil + I18n.default_separator = nil + I18n.enforce_available_locales = true + super + end + + protected + + def translations + I18n.backend.instance_variable_get(:@translations) + end + + def store_translations(locale, data) + I18n.backend.store_translations(locale, data) + end + + def locales_dir + File.dirname(__FILE__) + '/test_data/locales' + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/alphred-1.0.0.gemspec b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/alphred-1.0.0.gemspec new file mode 100644 index 0000000..1011745 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/alphred-1.0.0.gemspec @@ -0,0 +1,37 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = "alphred" + s.version = "1.0.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Alpha Chen"] + s.date = "2015-10-31" + s.email = ["alpha.chen@gmail.com"] + s.homepage = "https://github.com/kejadlen/alph" + s.licenses = ["MIT"] + s.require_paths = ["lib"] + s.rubygems_version = "2.0.14" + s.summary = "Helper utilities for making Alfred workflows." + + if s.respond_to? :specification_version then + s.specification_version = 4 + + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then + s.add_runtime_dependency(%q, ["~> 3.2"]) + s.add_development_dependency(%q, ["~> 1.10"]) + s.add_development_dependency(%q, ["~> 10.0"]) + s.add_development_dependency(%q, [">= 0"]) + else + s.add_dependency(%q, ["~> 3.2"]) + s.add_dependency(%q, ["~> 1.10"]) + s.add_dependency(%q, ["~> 10.0"]) + s.add_dependency(%q, [">= 0"]) + end + else + s.add_dependency(%q, ["~> 3.2"]) + s.add_dependency(%q, ["~> 1.10"]) + s.add_dependency(%q, ["~> 10.0"]) + s.add_dependency(%q, [">= 0"]) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/builder-3.2.2.gemspec b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/builder-3.2.2.gemspec new file mode 100644 index 0000000..5a2853d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/builder-3.2.2.gemspec @@ -0,0 +1,20 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = "builder" + s.version = "3.2.2" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Jim Weirich"] + s.date = "2013-06-01" + s.description = "Builder provides a number of builder objects that make creating structured data\nsimple to do. Currently the following builder objects are supported:\n\n* XML Markup\n* XML Events\n" + s.email = "jim.weirich@gmail.com" + s.extra_rdoc_files = ["CHANGES", "MIT-LICENSE", "README.md", "Rakefile", "doc/releases/builder-1.2.4.rdoc", "doc/releases/builder-2.0.0.rdoc", "doc/releases/builder-2.1.1.rdoc"] + s.files = ["CHANGES", "MIT-LICENSE", "README.md", "Rakefile", "doc/releases/builder-1.2.4.rdoc", "doc/releases/builder-2.0.0.rdoc", "doc/releases/builder-2.1.1.rdoc"] + s.homepage = "http://onestepback.org" + s.licenses = ["MIT"] + s.rdoc_options = ["--title", "Builder -- Easy XML Building", "--main", "README.rdoc", "--line-numbers"] + s.require_paths = ["lib"] + s.rubygems_version = "2.0.14" + s.summary = "Builders for MarkUp." +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/faker-1.5.0.gemspec b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/faker-1.5.0.gemspec new file mode 100644 index 0000000..3f8fab5 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/faker-1.5.0.gemspec @@ -0,0 +1,29 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = "faker" + s.version = "1.5.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Benjamin Curtis"] + s.date = "2015-08-17" + s.description = "Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc." + s.email = ["benjamin.curtis@gmail.com"] + s.homepage = "https://github.com/stympy/faker" + s.licenses = ["MIT"] + s.require_paths = ["lib"] + s.rubygems_version = "2.0.14" + s.summary = "Easily generate fake data" + + if s.respond_to? :specification_version then + s.specification_version = 4 + + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then + s.add_runtime_dependency(%q, ["~> 0.5"]) + else + s.add_dependency(%q, ["~> 0.5"]) + end + else + s.add_dependency(%q, ["~> 0.5"]) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/i18n-0.7.0.gemspec b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/i18n-0.7.0.gemspec new file mode 100644 index 0000000..ce04318 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/specifications/i18n-0.7.0.gemspec @@ -0,0 +1,19 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = "i18n" + s.version = "0.7.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 1.3.5") if s.respond_to? :required_rubygems_version= + s.authors = ["Sven Fuchs", "Joshua Harvey", "Matt Aimonetti", "Stephan Soller", "Saimon Moore"] + s.date = "2014-12-19" + s.description = "New wave Internationalization support for Ruby." + s.email = "rails-i18n@googlegroups.com" + s.homepage = "http://github.com/svenfuchs/i18n" + s.licenses = ["MIT"] + s.require_paths = ["lib"] + s.required_ruby_version = Gem::Requirement.new(">= 1.9.3") + s.rubyforge_project = "[none]" + s.rubygems_version = "2.0.14" + s.summary = "New wave Internationalization support for Ruby" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/workflow.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/workflow.rb new file mode 100644 index 0000000..adc57be --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/workflow.rb @@ -0,0 +1,64 @@ +require "delegate" + +$LOAD_PATH.unshift(File.expand_path("../vendor/bundle", __FILE__)) +require "bundler/setup" + +require "alphred" +require "faker" + +module Workflow + class Faker + FAKER_KLASSES = ::Faker.constants + .reject {|c| c == :Config } + .map {|c| ::Faker.const_get(c) } + .select {|c| Class === c} + + attr_reader *%i[klass method] + + def initialize(klass, method="") + @klass, @method = klass, method + end + + def items + items = Alphred::Items.new + self.matching_klasses.each do |klass| + self.matching_methods(klass).each do |method| + result = method.call rescue next # Ignore missing translations + + klass_short = klass.to_s.split("::").last.downcase + query = [klass_short, method.name].join(" ") + autocomplete = klass_short + + items << Item.new(query, result, autocomplete) + end + end + + items + end + + def matching_klasses + FAKER_KLASSES.select {|c| c.to_s.downcase.include?(self.klass.downcase) } + end + + def matching_methods(klass) + klass.singleton_methods(false) + .map {|m| klass.method(m) } + .select do |method| + method.to_s.downcase.include?(self.method.downcase) && [-1, 0].include?(method.arity) + end + end + end + + class Item < Alphred::Item + def initialize(query, result, autocomplete) + super(uid: query, arg: result, autocomplete: autocomplete, + title: query, subtitle: result, icon: "icon.png") + end + end +end + +if __FILE__ == $0 + query = ARGV.shift + workflow = Workflow::Faker.new(*query.split(" ")) + puts workflow.items.to_xml +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.35F259A3-BBD9-4A1B-B237-5E149EE1E723/dash_keyword_gems.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.35F259A3-BBD9-4A1B-B237-5E149EE1E723/dash_keyword_gems.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cefe48f6bc060dd2fa6591853d2d88f248bd37 GIT binary patch literal 35651 zcmV(;K-<5GP)4Tx07!|IR|i;A$rhelQV0nx5CJKnccfS8y(1lLgd{*HF$98&9bHs#?IMDr zqAMT@t_6@qMeGg1-WNqwly$Ly1(i2R0DZo<-}~PAzPb0mXU;kEpL1vCn*l)HjwKLe zp$Y(G^YesJ0p84n#3Ux^Pk;a-PzL5ei^a|rctu8rf`62uThJQHbqjH~t0f;% zG@O?g6f=rbgtMYXc9T)*fsoX!mj9gVqypA|laD^q#?K@h{4h8`|RkBOJ^L{I1Q z;=&=8gSay{Gdg6{{!u}?PxzRPP!uKRtPk<~RH1*A)CN<{&K=7Ovt+X*98@9p%uA06 zl=@-`+}woFF>V~Lub-3y#^Lf~M>%6~c6mpQ`W6YYB1i49N^Vv_l(f#+f!zG)G2d%> zaDqwefIZ1z1xHHxV?%*#OlhhNejf4~AlkOsKG zVpKEc5ijZC!)G)o0DnQm1-avX-jZG}$cOr`<67y{0;EcM^Ccdc;2Ff(xH|5RyW*kn z=?R++?u0v!`7!0kMkV?YeTjiYf1=4a4>n|-1)C7?{!{nelkkktMR-EEN$4ir1tGAP z3v(7T7@Ggr}03Fg9A0gj*(z!yB`)sl zH`b4R!ihK?XW|xceg@*PI2+Hw7vih%a=Zp_#82bb@yGZ8{*6E*Xb{W@E`%UL0wIks zn@~h3CF~&_A)J9Ls+TZCBoY}!BcdZ*n~B5>;ymIi;x=Lfv5nY8>>&=4NF+6q8OeGFMJ7Uq zBQsZKjm&PD7MZIuy)wfTMT!x{jS@r2pe&)3QR*pYC=V#_WMyS_Wu0ZG$ns^f)Hdo}>N^^ZW=Qj-CDHO|t7)~gQ?y64k8*T5OSvF9 zj@%--3b{tPYjUsUW#kRyz2s-e7s!{&ACkW+->)E}V5s1uz*1PKP@!;C;kLq{B3;p1 zF+wq0ah2j;#S4lrlt@a3N`6WlrDaOHlujx2&@s9m-G|PmFQxCMpP~0E6P1mWgOoFr zOO*F3cPJ02D5=<~#Hq|tsZcql(#^mahKwLa7Gn+LAmbL}^90QaUK6+zR!*p&aBac| z)rqQ}s$A7#)dtm@s-M-EYJO^&YU|XR)E=ti>Za;b)Mu+#s-IEspQt?1bs~FW@x+4@ z?`fbKrW#Qi^E7s8T-F%W)Y1&l6liYIJf+#M#nAH9%Fx=VbzG}Yo38Dy&C}kfeM0*s zQ-$fp%wm=?PcsK}G;{)WL^?ZlI&_A0jdWvm3w0ZGAL>!`ob*!lHtMzO4d`p@hw0DP zuhYM0AY{I&(v!pkDxqR!&6CBrh*ve2^0 z^7SPBNlBB|O*%K}o0Yv)mep>n`_@X1-`JVi zaqTMY?%31q!|a#ax7&YpaC8tl)I0P!>N_SoZgsrvr0f*ww94tcGr`&0d69Fg^CuSv zmpqq)E`PgPxMsTUb$v0}Xfk*5?#VrFx^67Doo?OkO!s8>9q!#8Ivy;KDvu|gdY&B5 zJ)Y0KOuRC@_IbVbw(=HwAMyU+J7!JH{aE8zQEYph zeB89S+PDw#zVYkhyAviQEJ(PNsGi76Y)&F2#U<@Y8l37kb<@<|Y4+2KrrnxuG=0wW z3p3PbWX(7>Q+_6E=AmRla(wdMEpU_*K?nz zx}~m9eUavtwjr%A-6Op;y`Sg9E9bq*2+Y`?@gXxJvpRDmD?Y0so1C4TeUz`n&*Yz; zr8R5LtS*6>ph(c2?vsPS0)5Q-(*K%OYdZFQUi!?)eq@A7{tSJ~T&h z4u8(&xu$bh&V63sU+~*Jd>(sV`+S}GOXfdb;I&}qLS$je!uCaaiNj+M46x2*hD%qhND zVpURF@?{l!)x}?}e=YlUWOeH5jx`QzD%TR%^4H#4=drG4z2f?U^*tNHHZ*QzZY3oUEjqQ7PBmM`V$NiBlIK1 zjY#9%#(}2vrtap%=B}f`N84LmTaNr;`A2oDPHV+6m1Ap;Q;sh?K60Yq#9*7Ct^Z`& z$)5I^?e|Y5oVsy(%IS_XA!p8?^*?*+oY%P%=iSb?UU0c^^rF+nrb`Z&8ZX;lK61tW z%8?F-j>fBwSDQPXJ6pOYcOAdxaqZ-F-|J^@1l_oFGyG=Pt=L<4Zcn@2eTQ@B#oesC zZ|>#a8@|8z0pUUMLxqQ>k2D@t{b}-NL$^csvB$oTFF%QXa=(Y&^Xh5t(=WZtp3$C_ zKG%L;`@-f$YoC8#=gX-tdtV7&4fhxQrTEv@*T%08|Lytr<$;8O-Z#QGBX3u|Q+rqa z-tK+-VC3MVq3ogI55*tVKGuA4`gHDd{O9Mxv%iqOlzlb%+VU;r+k=tpkr4q)$dVid zFxb%4Q~=&q13*iJX9swXqsU3`UlKv2cSZ>U|AeJ?G>JF>Q0)mo>|y{y;Tfe8HUo&M z@GU-m$9MwN)^@y&N^YvHjWiY&-eL$JM@HUh0zhg3;Hz+CWO&=i$k*MF>|Frba-{b@ zu@K=Ie~09pb471C_*wo1L(#_64pp=y(lV);mf}ISC=YSVu?z!2F@YT?-A3Rb4$^=F zq(3AdRQ}otk`G2Buz@&9cLKCoaW^d4Vq2Yt=t1%%TCyZkBPo(1S@ZD5`|f!1`>(y% zx#!+@U%gipNm*|0_s-qZ+H0@9_Bw0N`()uw^LK&+9|@uL3n8?B{I1jgNuFg7=0)*N z2zw+CS*Hl0lVu^R1%3#u&r+$fP8fMwoKmFp1 zzx$^l?B;vn-wgR~aNt7-=Q0mM*rHNeA!L%n4B;%r1b5K$_t8+ujF+$$ilS8?k6ULJ z7u!DuKgz=YeJu3%QklMR^5lO-4YilD+J8)?+&>P*(y%C&5!O5}vMi4^NF7Rp#%hbd zGo_pxI0G}0`Pqp5{fEN4fAYC8MSS0CSs3SeHs-C|Y!=yek>$^C<>TMuW!&A%(-ZMtJ$~xkm8Q?2;FL5ps^aI$#HwE2imU7PGZ1Q%}#s4?V?`#FF9 zyvf@`Pd{zd^UT8!Th)*M+5grV6GDYBfREB3#c6ey$fI9s66uY9wW;?Kyc#))X=9$z zUByxjzfCUlz#RMlTZQCJ%v3xpV<_NJ))vY)1@r*sy;0FojWgOQ1@u#tEaPQ0e(Wj78%^8a*Zk0e#@h>z zJ!Ts7u?rW}rIe8@O_}2HbG5(tZ~kPcz&Z()K=R4x)`XAd&V@vy&2|_R%~2AD8j|K>A=|}3RMiNO2#kP`tw+LK)DTLfH)}R|8c90sy)YO+UY+qb z0@{qG5%16tU9Y~y0JntI1@_hDus2l_Ov{hhH=FpqEV`qR**@jD)TcyXT()ArAFLA2 zt$O=d{nq^pS#$7?Y-zZf?<_n5=xQ}nRgQ$uE6M#1W8nZuHq>ubw?OU;tyYYbErBU} z;d#}j6wri0B@ued!d?wLMonoY$k)tzQ$SxcR!$>&9AP~1%+>7C|M0zyu!)K*Zni=_ zYqYkDyR+J8smSv)=*lA~!?Q)mS6!Ob&PUycLv=4%!{Pc+0+%P57%3EY-bHelr^zx> zXS+ZMM^Z(&Escdve(pqYC8vTH9j4x!OoXj2kO?DjX;r-)y#aztDGc$QV4u)bm2$`6 zb`|PP_Z$vT1;(oj=gyg|JoE4c6O;4jr&?i4Suj%HeAm^rdeQ6TtbT)q`6Q%nsSm+rWy>%sBbEl8hY8aG=Uh@ zyf+#a%G#4aeb8kIVrmPvbX9*0o&J^F$z(V(W@R&)_iV(=P$%C-btNRA_ystWfMTaK zF`@n5!A~`DO!lS*y#w~m1C=laO&R^uha2JgD|xs!YH!zHYAo*-Cs-g^+|9dZ5vHOGktXlOo@;UXu8=KsLU#Yz zkl%kl@hEHwtD%k)H?B{GS14p3Xw+qpR^07{qT3DO>a`GVTo2jicF115L@#0#8p5P? zSP5(s9ou6zQ)v$M3hYmT)Ay!;&hV%leP6g>D(J$63kH#0xS$?b2&GLWBb+b(U~6^Z zhaPAj`O@_VM|o|v(HOq3GaMfoG>7k`+LoGOd@t&!$?&{|P~~CJZ=q?jVt~l1>sU0# z1^aoZ5Gh6zL}jcB(xa-5x-hy0qmjA^^>_$sX)~JJ)uoW#cX!Aide8(^113qc`lU)E zZ7bur%yZC>v?EWkgK%zdBZMgX4uW|7RwyptKx+;|(N`0%tiWt5` zyo-8c08Xg>hiDl|-2mBSgfnD|M4VV65~HYS)Z;^-Vz7yq2^YvlHFPornZe&Wc|7DN zkAZHw$-RXzVVFFn;z8)E)AvzEH>-7EmD4hvj_@5x7_)%L=b_fi8a&9%?udEOf5 z&9?UD6#a$fh>qsYZX+KT^ zu#+ez8?7iwMRR(1Xd{dZ3!%QY7TR~6G7Xz|tV=tADY4&~LwTs5S@4W{J$s~0`%4R< zxOFRxzw)#ItiK%kuxtrh>WG!5qm)o|lGjzJ0&9ixyujb><*ly@?P^nxlq zyY}(#U;6JJp}*Mbof&4wRyw2Nk=^aqk*smz-899^gN@er!M0XbEO$oZdTqPgX^uvD z*6p^@ggIk`4w|wSM*X&F$ljMb;QNzFVpR!$%#>PD0<3Tcc{)uJ=4 zZf%MOIMkxjX;h9;e#$39GiEJzZH9%=I%2&4s@{w%qEsM~gSkh7p>w(K&dvS^eL?iu` zuY~dDMtmV`00jlsCrMgVc=s_ToKA3pvC7&9{*4YcT3jP~=1)KU&=ieKfUBfpz)Vp* z#s0R0^LPHq?<}?RcKxp2JJ*n>X0zTuo@c{_#g*N+=e6-_r@i|wDr0pt9)CZW+RfTx zi>5f=>DF4~ah7fOLIWF(*klVQ1C}w9f|4?mJl8d%!N{DhW2RAY z4Qg1U=9EY)l?F^Ug735$B;mf*C7eOhhdvPUyN-vWKlRgL?Wcb_4w5=_A%rjql-$yy z!gHW;!PIO4?l{nbYH4S6A!Lvy!-qyyx1#&)9UHJeb$odG=E6M*WY5Pu0#2-?2Oz4x8iF@K`NtG{dlVvZ&YS2#(HDo2x90XoY8a zFdCgkR2s#wL$j>GOv75weqWQ*w4_5FpJBdHRnEWdLc(SODGEV)f8u)-by}>7D7aoN zsstHn4;fXVbbQjYhD%WdS%t~%al$0G!jxW`)GJ-utxP93eL>A>j&CwW)bE?yg|}?} z!DB`Os;5Ddt{DRcVOg6&7XoW9h=5#^S~mbrEiQ)Iks~48b&^H1n?zq`bkEe32|0X% z2Ce?u(SVqX(U+WiEa%d9O+e9<#^;ZH>|^4i-bSqK-A+g z)W{n3WvZe+=rftfbkNTBP@Sx-+Z(d6$oLAcAWb`kjFi|$=MCERkhF=yW29*|c}Z)= z8C?bds3?^-ff$^-qmU`RoghQ#K+Jy>MnS1>8ih|j3G_(9$HRoGRy>*M;zt4mvpjzj zN(6KJum36xE?+hwWdvsfDhZ((4QMb{6b*)!mO~EbYIolg>SxY`+R6%@oF#)%UMf>2 z9GKeja>y7&)!+AC22aPr__Lo2qZcoOi$BfD7W9d=+GKkK604`}{?ShxO&@sYy|vC}J=?nfdfwb>WO;2+-|DbFc(q>}qP}h|9O;bu44s!xE(gS| zyS2T>D5cr#EFqW$rvdYmp_aE1PWp^$o=104{1*Mk6THcq#a<+1+UEk*kmaMX;xsSG zfCk1FBf6MW^eAn*&`u&r6-qN!U<#ii9*@8bG})8*=}Pem@OZBnw-xSgPpLF=TR1<_ zh9+~z)hG)Si~?oS8?C9LG4qoBt5?I|l~+Q+>X7vrr6Enr0UHsTR@TJ(m;q3Z=B&eq zf&r3n)}>7apNy?Ekp~rIJE^kem5?#r6-ei0)IyU?LSHFF3@_u7S8$2?H@=CdkVY=T zVDzIgjjVI$&Nc51_tt*sf#oBkEN|8}uOIKPfQeE)N;3I?JTuVkF$a! zy2V;(6F{Sn1s;p96&&aig@hX8oO29%5mNfe5+om+q zmOfeUV!<4L%9k`0nu75jLXQLq%_&UQUqq0k!7L2n95d41L4)po@k?R6-VNhh^b>)V z0685ZqI63TnNn)3Er~xyr zULzmoYaFv})tZfydB)7+aC`!-)vD)>lQ06!Se$0hWDAyX0#K{Jf*W35s(i^9gWZ$LG4WbD=j$6Lpx)<{ z=KS2Rey*|lw*Fg=hTdA1w||xmJ!|(Aje9a2@bEZ?z#GlHuBDJV1Lq~mleb#UI_u87 ztF~~R(eKhmi)?5L23vDGG9#D?*LLaCO8l6NG|ohwLp-WgV9qWOML%zYg%hDTt#Lby z!kuB&FonBG_2k~tj<3KZKaZHj<9_911c`Rs3YQl2Fon1#6)uG{MbEtWm>C70v>%l2 zPJ99NV&axIgO_2X`Aa6)3kG||jcxW-F)gMwb`WK@bq<>(fQEu*nr(q$w6hzAuiOav zix)$9{`t_PFWUx(EeP1WE3ouG?Il6uYNN^+0X3ef7Bs4aZY!e|#9XONiiyT;`P}`6 z3234rNI0*whMi8)IaLp}6XUFQ7G|u~M#VkM+q9X^K0+DP?P(KEM`*kdj@vPGc@Xe=a(EzwN4 zg3PC8+%q*eLKVOxuUZA$xGWe8SI>nsG$r<~YQVxYl}6|WfIx*d!X@Co5(pev^3FQy zs#66BXwmJ5(RMeC(7Z$DJ1rkzZLox`Sq$M&+a;k^`p9`uq_~J3uw=Y+9xhv9?ibkW zE}*VCvB$rKa9&*9zQ37wPS^8=|A7j?Zr%$)npCV&5L#$yMw+5A8!{kOO|a6ky_zGm5>A6fpME{zKJg{KNs7IxCUKr` z8IsbQU=rxsv8-GRi`vw}QgLH?goyNd6~z{KXU(`39Ia_a{YVTk2B-Y(0$Tzd zxg67YpVwdRs0_dXEQ3kw6RW$Ry`j{b;a8tGG8`PlNq_|(+c5(%S`&E8E(T9=II$zr zM*Qn8pos>v?rUAihvU^F^iLSj6f8YtcTp6sBr4Qg8w2fa7t`Uqy~(mj9rfX)0-Z57 ztR`N}@xm#ys$2dy%6PtRSMycaES(;&IFDCYOfSK+YPVk#HMkMufI%P?Z=Dzdqku|K zEApe9U7$_baAq-2b`>sB6xj`?;Sp6($YZtDWw&$HPa%AU{hl^B$P9 zy4l<0r5rPxL*EipxJHD}#(YLhk?=U0_CZh7mr4+0bv9?pcnMRWct34oz-(~oFC8(} zjMuZRpqzoIc;$5RJb2cQ)g0kUEecSs7nSr5FFaoHp1I0q0tXUJjgurWh9TuaTci=ijR2Z^yYiB z68A>NigF^IXxVSHaT?rK{&GuDs$mMhotdqS*|e?~ZDJlo!tZ$~t=x_SkxO|?7$vY^ zllD>*k8OQEw3vj;mcIxy%_+@C|8cy%!~RZo$@7=713qJ~r;OxB##KV-0wV!kWe3)g zrBEEz^wJue3zuU)2($)fGBt!#FUhdGYyH%b_Ky-Cm5c-wDuv(jNEx{o+l|M#{T*vi z5Q#^@&+2$akDWiS7d=RGde|WEv8OlCq}P{wL-jF9s!k#tp;H|-XrioSlKY)vM;1%E zkFN}lOqqB~*DN}(@)E!u6+k(yu-KJggY@)eci~iXq2ZO7-psl z>u$4=0BK7Z35ztEB~&<04P1)lr7&JQLZ^zQTPB!egM}E8ftSr)tg=y6^^hN14cW<~ zp~i-goGB))7}-3l^0C~=N-u<(_RY;O)IL!JRe44T=gtH^C7ZGwmuz=`#{xQ)L&dY_ ztj=>Uw7+`gZ;n3q!n>E4##|@@vqwqnLZtc1oX1LUg^;j91NtIoZ9V6#Q}dpCLi_A}Hnmhg%Jeh+(qUTSWVMd8R3(1R zvG$(-Rv5haVi;Vz%Ji4Y!lV3o;#;CjVtH_waq+e6%dqIUV*y1Y`ipEBGS`rPR)^5y zJR4cw)mf`Q(rGuoeC>g8K3*L!4c~WH?K8)>drKee_g7aot}n9u*yOF&;$h^uAuN9) zxmBVSRr-^o^q1+PV-h}bO@R=s7-!Wil>6QGoJ)V{n8G@tZ#p=JduDC}+ovgB?uA-39oB_D4+^p-cIZ5Yez$!xlFC2YuR$L79Vrh1c<`(RRols z`870dUF-0y5LveYRGzzdWMb**0CT^Wzs z3%vErZZKtG4f_`8QV%?hG3XD_^AujCv3Q@xEei+-r?dq?OIa#K#dnj zHiGAPyiY2DGofRjs7lXePmbBTk}t3b zakidwK|vPI)^g5)hvE#yV)$3w1zl`~p+Gp|?H3v~Mlw{fxqZ8x&L-LUB*L`R zDS`083=_+QMl*4F$h2*<07{#hWzi&D*1RX0ghQHh_qk`o=-Rcg`N>a){&Vy{FTX-x z7g*pkZBPb>UYL1CXx+@Z#SfVS1=RbT(wufhV!NdrU_NsEfqjA6Dl~!$whY4na zZ#rBs4kra5jcM9W0+srtN*|$OvmE^g|GM_I?ttN=LTU2l%sG=^^mar45`&@3mqP#9 z=fdE*Z`nX8Zb^&+ZUZ_Ir~=HGlI}U-9(SOCPNhBlN{#JT$MSr1jB5tYz!~i@Izty} z3FdIU1-pqPoW@PEuzwRy+)*1a{)73fOVYs83nfX?3v&vfyuCu54kz6GQ?^ICJr#L4 zk0*7zno41mwG@bI+^l<+?%DWRzbf5~GQjBFc42kah*NTFu_DqD{gN0HPU3AIR2oZc zCtS;wvSE0{szDK2aGnvEr2&uOQvk-`C79~F>R~c|`0~p(AnN_uUxX2d<_4Fqa!@c1 zj5M;h7uk;ZoynTTk5P)Hyw3?p z!45cEi_w~eu~%DX2!>^FMg`V}SNhJiZ5EQ~MP=GYhz8~0nc!f%k^?iJc^0X7ckE-6 zQ$&~I4~9=jm92p1Bv4T7aZRFU!JMINKZ>xh#O?7k`v%)wthn#W_Fr70@aI+}V4Np2`-v zJP-!lmDh5PQ3PgtGxlSFR&T5o)ZKV3H-7AGRnx+V9bRNy#Eu5Wuj3Mt41wAnkEA{D zP8$Ot$Z$?a9pt-Rk}0&#k$n)(M&AzaJ}7P*?D#w%iH(G*T4s+kStEf79{@@#IkY87 z38>O(@FJ50EuKRfh2E8`aZjfmtU`!PfJwuMy~gyD_H%0fQ$lI|SJK-{0#f0Z{ur?> zZ$|^7^>tfG(o|B=&Zh=j?6hSsU58@}14fMKFly%hC@PjBMmwnNeFgM4(#;!z^W@BH zW}Ek}FVW9l<2yEIv(fmz@y1XS2`V5u-?Fg5CCxz`WI8G8B+KadE$}T4`AVnO>r520 z3AQ_A90g0+$`rxuS3mBjgkDIuEjGqGxcT%WnCYkpQVDY~MR>3?XyT8_N`U#^6gt6E z2Drl!?vvi5UHCMIp;Dys=^9F7NX+V=KK}J~f#ih_Xd%qo!Ycc<+E`h36Y5jgDn`Z^*5bfAq-{9(-tumjQ zw(v3KG~U=idycuoNelAZ5n!G>B(J$P(Crb4;W}`TpztOP3NH}Gb zPL}=7|M584RkzpAz5@C&G^bFW=gH28@kieF*{y&2>kr@jzI#`mXH$C7YS&J|F)kZQ zhjZAUX&gzpcxIDqrC6D7s&TNKLe&~uj09;Gb~&*@(vg<<5LP41IBVc!4kjU+AjA`m zf+G7T(X(Lo{&)iH+4xG7IrqfR1k8A6lUML3$Te zo1&$$)B3H*ka2q5j-fH!!({8x3nt^OhIwxH^Tap5IbPq|K^il3c(y_M^opibhPC4M zoMJvv9pI+nFzv~g?_j*W^Zuem8yL}M59o~d^2I|oV2O!XtIlEH9BYak#;#D zYy&oY474RrO|@`W5>b>A#MNCxiGlMJm?dj3Zs`^p>CyR(V_)g^{iU}kuzpeXDV|v?vky? zHR!$qn$k^Kqh^0R+70WqL9xz3O7T=hp1@R`#=S{Q>59ykplZ@St|&!wc0F$XK#OXJl1BDw>Xm~n1fW5+ z30X~k?c@mrpTe+5lm&14px~luH(K;E3Teg2=VkL?hp5`_K2Sh^!?9preJ1qBCwpIB zUZ}4x4aV0fTZ26>E6_p9Jv6F(cT!21=cM@wv?Z6RnCv!dTWC;SAf1|@1XmvAsN^fB zqnQaVy=8pqD5K1=CwPW&0uqdvCo>B#^35dMK0i#rtU|PD8^T#=0SOun+rl(}0O`mk zEmN2wOh2iEX;U*vC?%ZAPHSxvQL5uRxs2@tw9A}3cN3_#v z@W^|@=-65qedTLhdBf#l9K_R=InttbeYi46FNK$b92IK6;*EU%$R+oI0xAS8TSz5uXA2Y8F-OFd&YAj=5d!N!;lQ*AYg?mlxEB#O*;#vhDje~5WhC``EL#m!=x zFmF1hOe;>xlmXG}>0Ce!Ov1ujEFp3MuQQOaq%-Mz_(h|dbel7l--R}1r<76TD&CD&wJ9tv7cwoYjFfNHxL@``?gItXNAn-k2dKdJ)XnE!JlVOY zJMQJ5N6K#0mud|4!a~tcl!#gxalq_o!4BSRsxd={(hM}4bi`R*$^v~FE(D1eaf#sR zbY1|*GVAy7vZxgRIZJX9phuUQ&jC`4SEfjSE^wtrM1o9{aGS7-V@Dozi~Rpja2# zs%AAHGow<-#M+K-`7Frn$b~!9pi2LPzxveZoB#UE@Wi0#!RH?D9OdyWQVz1rc(_
KiqYaQz?x_Yy`8tiYCEckj+g{%@!$OT#hZ_j2A?BrjxQsc}A_PxX3rf zMjaX{63LPGlk`RuiS5No%bS8$%E@0$A2G*JA_2n9W5SA8_c)EYe75!0x6v1+E70U~ z_R_RTgWAibGSEM5Fu89ixCCO{Lh)#hRVzxoh}?Dnw)s+$D357H0*{Q_do(B!CMg#l zkKY5z9!p=hkj>cUoiF~^tB>EaedOnE>@*jOynbJQnCTigDM-U=%@Qa)2XEUHpu%%y zlFq?sMQO+gGpnOPS(5?PV+s)qTo8sedO6g;@|DoK|9)=u zj@R1wS43i+(jqXypHZlV_rBN8E)Bo@)i8LP{wOA~-pXPDMs(ET=I6)D5^cRSN~L|8 z2ODOXLiW(F{o2B{^`dd5xpDgV%J{@qm%is9EO0bcN1_v_QqGp0hpEC#5=(c~pt@~= zHdFmjl6vZSB#EK(%Ollm0xH4maA_-h7Pu^2BVGg&H?n4N!mqfhN#t3zsI1O0!N{%0`lrc_ z1;3&I8$8G*q`GBJ0%{vP1S5^dqfxir_#s=c#PLdkmq*A|cnK(;e2Fa<*dsO32x-pr zQTWO;_PLwpU2IyTsn6-7%Bb1a3)kQc33LGQus z-Er&m#<k&YbmXi%i3PocA1lE9c(A;6oVY^t;IZkOAW zuQ6!468a~v*a%8k98Y46T?#3 z051hJCQZMj`0Pu+-tM(}wf^A78n+y-peMEO^EA8V?_+D#5w;sI4>+zuFN4_%kW2V1 zIaw$dc|11{mz@Mp{m+`sgNhk?gd-9uunCgroBumEBS0sa$L)I*2*o0e*j|oJY(4c6 zJ4eujG~)}aG|e=_i)#oX0=kq0w7n1oQ?|68*=WRurcua-FMiA??G8hw&16(rqFz{K z+eluj24gahQ=2tRa23w~h+RcmXYW4yY}oK79w8Nh!XfQwD@6$MfX&4tZmF|d?ufFD zAmB^cM_5*qtZ*9KfTPDmeD8Voe{z(gfBgpQ^^1J+CT%F;e7#J@U`ct|X-{cl3H=HB zrSwI|H_*fgsQRK>WfJZDr!0*^+)=A5TrqK(fhL{+gD5p8(T~4$uD!do`vKlE?sH!H zdDb_NXZ8Hu(Awb)itgUacljdF5S4VTG0GQVK$|PEt*R0;J$viR#XR*(W*Sy#KD5h2 zAFaXuLOxeH=FEt?vFY7Sb}EUbchU__`iX@T))+g9lO~hE3$F?0Q3+=~y!`_w=^xfZ zM}0&DuGxVKV4LmO6xZ32qqHV?pf5EdVKSvWrmRhy5ng?@3~foEL@|eU&K3N*_ zFhja%NJm=jk|F_Tj&6qh+b`PL_}Yz|2I9-1>P8ri%#VsEBV9Fanwa!Rq|u>Y;$j`g zFd;HedE5F%e9I z*wwFSQ8pl_Ocdv3i&PLW&!|7Zk{XXRsdm}NWRa-IA5kfzn7xIusPtpyF{l_|j4I<| zS`}7!S}Qc)EA_CvqP`*r1Q19GXq~-`%D3JqS&}f!wie(`CG6Kv#TN-YNPWFt-M#lB|Hl$Q`B$&YzQC1I(w zB~M0(=+boQi*{eSgcrXwv`l0y4#F&v^3lJvDCre1Ix*VJB3y}jfnoHkoF_gtvhvBM zH^p-Mrys3<=*BxwT^{z2H5=pqjOFsv(ELF$O~$HuS{_&XG|`ajN3RJ zp9tsAHaeTj01dzjm)0ONN~kw_{ZcRV=zs2_ZJOLXy2w454TLdPA~~cid<}S#k>j1V zy-(?+rN(p`=vDYC#j~P{EDtkuc&sul!oj0tE;E6`Lt8_ZjGM}ssf zSMrm749a+#(#3F63K;@v&9zQwS|Y-3WB3jLvXF93RxC#^|U65Bg)BF=|WNZB7k6uMw~+B4)ua*!uMCP(FrGS|GkFI1Vtv zqHSbaQL2SRXed;fpT&)k~@nJJ+tJS3;(} zX$BQ@if&<=F-oh!5Z$4$tS$uc-q)#SqPLv>r}9#tH#YwQjzFToYgfW)K7Lfs@h_DP zaMLf?rtj)6cb3Ps-CsoF&oo<|pCrlB?(VS0=!d%ixCjwIDqNFjQ6R`h-52eQzq!Ci ztk_<&bCYJ8axZfAyE67pKh9``#0-g)F+dFxw43Z|q7PbZqC**d38zSR&08&0Ods)- z=puNGs{V=yj6uV=x^5Hi7U3^{?_%gMMO6RgdRRH$4yW!t&b*}#p~h;ro7gO6LSXLK z|3`ExN4J$@EU8>EF1pgMMLGm2l~}w(Fs(U|zhWHHV4Qi_3ZD_>GSv)gK37UnDyA3|<JT{c8#7{6(o5DUvmj6v>JVke-xZ zKH0G^hpdp;!Z^ZV*LYjJFicFDPW?bLF+{%#@%R{5{UuKkr~1=UXj-m}8w2-Njd*Ov zrmiMBS;;L1+bA%U)VXXD_+yoX-;_JH3FxTUWm%en3A}L z!2L!TufQl)*4c+_&3PF4Mna`Hr9ZyE#8@OhC>8NYou}IyB>)a!!{LnGlPC(mWnh94 z+ca+>V_qqdP)-HJ@FX%uqC#TM*f`{_J|3Tpis0zcFB4+?(Db4`Ye|EO;!?26JPvRq`evcZ;N&m? zAY&6k^6Ap0kmB5=PpV1v)m19?4Hn8O%?-Aui7z&fD6Nl2+?2RQPDQ`cc-hhzy!0!* z9vSPOM(0FmJkr7^9^<*gR&3=vZDJbFUvX8pGB;r?QBPt`7!^*Chn6<-rgRo9g&n15 zSMjDnFAhgL$FuP#k*PEN-P(@=qMK6|X!7+n4U;;4E!!lzMv3^S?PD6PUFA?;7l<>o zoDC4AE{SKGD939>(EH5Vgm37Se!j3^0< zUVA+&PVIdZ-a;B5*leQ}cA3ii>pyxStQ>2FANz$?SXya?#YJ}PK>T4fslUr9s|ojw zTV*JY7~p(yaviME(g|)RXLOhiE{N&Upt7S&LKlsv*~5cMc2x}r0t~6Jt7#06eiZ0P z1)7X&K6xE%E}$n6{sdUf$D_;cq6c6LPWh;@m(;}M2wjnBIg0&mnEw6EQFy)pML@d0 zf0Hxoi+td39T8rnW5~z_8A?-Gf|K!##bCMp?d~C@4Y~xD8Ih$jk`zxF`D02|fb~IH zQPSkSSBJFkY(+W>Pd#Cn$K2i)8A>Cge2o#97?m}6;+lLEb-=tIIy+}zmiB<`6H}d)?&qsdB@+9CC-{;yGUAsN%^C9^6N-s&v~r6pmo|N zPhj^v!s_^Nid9lriDikd_~KbTnJ5`4Ns3v7hMFEi9UNlgk8Ll zA*6K25Mhk3jNq!q(^SI*Q{wXkZWHHeDnZrcQ|>)5DWDqe?ui{;`b}YQMQQ`h$x%Lp z;CZGSzd;4;mIA6=Z{A$nIkvp{Df*Q6j*8|_kZ8m$xqP}-cjW5}IYNURVXQwvK;$pe zOqwjFLT_-EPMUPJ$GVUbcxj!KM3JT`)T}pZo4SyKZyoNi!@eE1dW)v@;;yEsM=eQ8 zH-ko`m~jE|_({0Ck}W(u{j`j?c#PFs`llB^zZ0%6jKb>C7s8Q~?eM-Id4TVs(ofd* zwW>+wiQW1Tdb%(RVWXw7rMy0U$Pq%dwZR?(?42z>A;=2P)_M%z?b2eHT7d{~X`w(1 z2d&fZX0SL4cm3E-So-!0VdI78!sVx*X3(^2yVsRRoE@1EqbVsFXR&N|iyw0PRFsDc zKAI@d?vw55mB!(n?Z&h!aB@%Lry~^}U&%?h!&a1wvXLTYb3oSRWWe7dV9y{JUw>tz z`@8Gxi<%P9wdZb*yYFbNw`$|Xd{nSAAh72r@L2~0RM~;qi&ZvzMhS6NdFXLb?AtwJlpAaoW_bP%dp;9&qG#{VLaD^P+V* zOs2(>x^@Raj;$k;#`r+tbVg7wX`ioTNWgb{EHu!y+1+MC265ZB5Kx46^A>`My|v9% zKlIW2>@tsUI>^AQMFI(^j{WeVQG}6sWqsdPo4Jz)cV0W~#G3IUB=7f>Riz!b^%md< zZCU6sHt$I|KhIN2!uj)$ny^0fu@eO=OGgI7@js%1&a$22m(doh-R?m5q{3WXPfDdK z2aE(!Z^{m@UB)`?$;;ia%n7jn;CjJ~KXc)xVga;Tu@w5j)X^kE_QPHbJN|X(#QfYXdnUS!nuJeW7CGZpd!Qg)11Uk<-q>NcQyzZw z+$mO?n&H%a+|$lF^cLX~xNUCZkic!M_c(ilAl_gL8}`O^1e1y2t!qQGcdjvC2OoB? zfE`trv+>!EfSf?^;I#G4ML!G_4~+_#+UT$|jQk(^@zt<;tR3F-f%|RqbF0m93k25A z9Esi}yh=IGxKOK)tQY3e%QwQ!E4$(M{@FLe7B9^rn`P9!po%b3J`#lqb5y5OMk0jS z6P|zst%vPX)w&7PG8oM&N#CN`ngMvFyU= zfB)*w_g6bdF2M~p)fF1<^M2F9NGgr)*z^kCCEPmwRCbSt?UdF>HKO@(VV*6srKNV1 zR?`JqlNZ8RVZwf}F>+?W6eisB;$}b%$ml?e$up$1J?L4#&Iv`{$abfTfM#Li22Cx3 zxr1O1c@a05KOG{NTetdAFilfxR)9$&^gw?L9?`8Gs8bFh^n8pbLv?j|nZ1m*F^PCP zY674%?0`=EjZ17WM&oXhpSlE1_GTU=lzYmS0wl`~PFXfME7ah7(RKC~>&3T$s}&x= zvTpaoa=38uT#pI}YOpfu<))-@S6fsbK{B3l0X-DLQb0d;{z>buoG01x7h5~scZ~mC z-W=bJUim3YdhXojZ(sN*yO+;PNDrzi%O8o}YtEg!Fz(-IZZY#h zErn}jbwg!P|5J=~W{L)pp-25VIc#kn=A$UALlL!Z0u+D=CXsT3R8$J9R+Q=tuOhY- zpL{|sLyFrzf=OiT3n!R)MlYK1YXq+*sz-mcyG@hMCYbG;gRq0UOFw2vv#p92)oMQL z(n<`bbTnj%^GM4_TQ>2(#z5=nDV}>f;plxlr(5C3351p1`|4ImXw<}-pi01b!_@`Q z(Gjf>v8*0?J4Lv4xfgC;=KDhot_EmVZ@TA|VgE3liQ-{etw~p-*-}?QRgnr!!q^GC zJ%10X2jwpw%2?M0?SfH*+TdtYb91-eIB&6s|0y*nY%|=CbN>Cpg%Ez_-0y7tKi~Yw z<>7Gc6Y%RSLi9EOn53jbMZwa|KV^r)=C;v#eN_PcxhuS-YVMDqX>2rauY%`dB>+xS z0vx&Eua$3v7B`K=UJ>}o3}}_~wx#jd{VLAm_d~KLUh0yJ)uf6eszhm+<)b<*$6kXq zv^#>dvc?e+Sif>aM@4F3`A7?Yjs7Def0)ruXPK4}TAB6ru5}xp`|>xKGuGU%ST7;9 z=s2<`Llau^Irg@eY1*&-X_u3u!*J$pSHdwg=>tD-4_dUWwwQR%uXhKWFPf3ittQ8L zQP@@)E`FV_a_}wA26XbCM8V&~jEGplRu|Z_Af?|OmNB&$&nof$<$UxdTW;1@jw}~% z-FoGbE9>E@FlPSUP-1(^Ii=7@WgkPO6u1x&mhaR$Mh^GGN2ueNdh9r17zsYBGO&E#k00LZD2lhz^sMG>Olg z?Z%D3sp)Q@eb!Dl>B}X-L_n95pe`+Q=nf6l(itY;B}8i4mzH^_$$!8upnjJyIIdf! zeLi&0#&o?P5M583a0aYM*O)`uVx_CaK|dc{9i|vn7?nrbS+wiX24`FT1<2Xsb~T;5 z_v8P(GzwFz$gkELRAOy*Z_#a|EB=V1Je0jhKp%VTLP^W7KJtm~Z$9x$e_lT^dVX=S z_*wEh!$$gtVR&=AOYvwYAb@I!nnonm#BrLe%V}-?LC#;*!Kls2X4JMwYLevA;Ft#O zFdy0e z-x^JHD?ISf>Coc9T&}qcRXTw7f=LYtO|tEjr~Hak?QlhQdubdNk7~7S95(68>Y5|l zFAa!wg@81{RT2hZaxapnju}1owOirV&E4?8+qqm81>k*A>uv$QpK%SUZi~7vOK5s^ zU$lCs0h?L~btz{vsb2s9KFLW$K~z-fks}GylxHSx7PgW({aTgAv@(|V!f|A+SgGap zV@2NH?k|5y6+3wP>8Dl715IjR=EK3;;>KUSyu%8|CXBesJ9mxjBMB5hm8o)+5{=vH zgP$IvuUS@x9>mYGv6@hHs^6t~P@PYTnpKQ-VX;hrGFutG29MF6@(^{(&-!F3GtXZ_ zDy3GZ-BABc(=&^lf!Fb4HJfdgOk4Cr)x6uJJ3?S*;1N_8Rx2NV>j!c^$NHg`w{lKq zs=7o^EGH+jZO6neec+ufrm!^sD#c&`p7`*#x+QvI`C>k=64h-pHT)X3&<$0On^VEs z+tJ!Sp{e!5n>`woq{cJ#MTG{9I{dAl`{=FiDEoc1;8_&my8vi0-CUCrlopV2hBcr^ z0(*^)I5&%h8_Z{F4Qh>@_Iev4xH<_kLcsKi5TZfb?Axp7UHYue&>Pz-D;kwZz-;o~ z5*c}xy81I4YJLxNyPCkb9iD=AL1ogEk*1S&w)>&IBVD7W(iUY6gO8@Y zl9jeP8Zgf9+-FTX(W> zi;dQ%LBXT0hx0vZ>T1r(U7<%WOotUeJ=!M36r$l4el=`fhAAwH#6-yGj($g+08$h* zTU*Hw5o%#{$xpF>wm!iO%?{JRCRYzX{IDgwpaIWq%sc_z1KwL5j#@j}Rr2fbZKF*J zvItYvAC0$);PAqU*?I;rqi;_f(Hk{oS>#9sw5DE_&KfwMrcrgot#-h~{{&e{Q=w3y zGHyqA6glHjHNqh0|5RInNL#h?B&bZh^SD6F$FhH@bqDDF=Zn3T>Q6$PO3Pg zDC3acYM9FvNkR8@4H?O6!N6hn&v9>z@JXociD*k8ufH;2ABX4bb`?xvMl%laGrFl! zvdqw+oaAlq_Rw5+VD=TzN?$bl#}7O)_+;^sFI;-I`O09c@h41?oXK0YALS+QjNq0E z2SaNnoH*1s?WLopSLi=!r~PqlKh=LC&u+TIuU@paNi_m%@(|w9zEHkyvx5fJ7+?BW zN#a5W3EWhi9yGC?2X0%|lW1JALWD#xQ5YjY>|*#aiW*u^D?c|`G17#I*4i7C%|5QG z)QJusjYk}n-xRMU%_f>_nR(GZ8hJR{GJ8ZD!F!BJfLO^DZ3Ig5mEA2Mxh7*Z8&B&(i+KC}k2LZggg_hv5!r)5u!XB?A9VN7nr$Lpuo25#ys8->hI z;q0|`ao>TtZ6CCPr})|IiQdk2M)F0tO!IRE&S+-a=uf}qRY85lNpF$*qFSG)D`$PV z5@%WR$l16S&+dBWLN%gST4$PxkMJJyPaKc^-u+VuCK|U($}AW2i8Lxv+}A47fGZa@ zaEaxez#rbF(Y=~_Do))q6*AEwD&{?oTeCLhMQ2h19&v}Z336n)rF1-d@+QEASLL00 z!~;@$m^^}YzfmUuGdR#fEJL>PB5(B<=%?I)xt%my7LT7xeNny#KR&vXjciEOf1!;Y+{B?vZAN-D^#%6ikyMmCw++sttA1{?RJ__*krA}&IXPl zD^6opy7=m&Wig>|LR*QWLILfBjiOi9I@VmPLWkPmEg|Lc3a+LVM)fyU4hg3&HP&jB z21>8iSStr&byf6830NyoVUL{BeKM6`^IOhdRJUj0NF+Gn9jWQl6hdem&$9aV&h9PR z)KFvoGY&_TRW!3%S?FOkr~$XuuQ31GxKRun*AUW8HvevuxoyCU8>6i) zVDzOyli)_`?gX>yiP?ZOigv-X{Dj8xoW@rTa<>cEG~^xlQijR0gsLwYuRGD=FN}w| zZFG9#{cHg#PB^JKc%`0Pi{DmJuF1#vgMM$PK`rfLXihn7RR3IHv)-4VUp;m2W_@w- z-y-{Gn~nTG;!RxI(aw8H1p{rArv9Xa>MB$GJ5=-y`cKjp$HAtz!ZlAW^`w3%mB-;{ zMqca-HPiRm5R+F*W`exx=u z>k`_ydBdUiw?(%ZaAUCI26`ljGEt18TLq^|A_FEt$u(`wA2izQD+Nk@wFnFa~0>DP`qv zTI3sR%H+^T@Op64Huk6ns*Z+7qfrO-z;gs{2j|R=WKjy+AT^<5Qq2N|b0) zTkG)Je5{XUnYxL|5C03Ux_0aH*t$F2AicEK%D$nX&awg{X)m0c`kCwbD-On?GvD!@+6JGOw(ZFoielj5@K&enNCs89S57WA<2vcNtL;Ila~gX zHaE1(C<{l9E?G-ZBHhPP)o_|>(mDKvl~GvWBHRJ*HSGkiH@$V55W%`eQ?E_@(;ib1 zyUYZl=1^CUckCShE_tQxdTe;nq`&51)vpy_#S6_Ye!Fl} zEru4C?INPrHXfrvxoLE3c(l8HeCN?euWdc~E76er_xsxi6M_q2fuqj`P8#mZoihyRIlp=d(QhcX?gW?Q3q*PvCLp1-vA z7-4EHa%CjfM>cdsBrUHVKIaH2{L=n&-fMtJXI+Py4$tHy;l?v<79=W%QiWsGiCH^)SaygphiD@j`t;!NsDQ zWBNxNxQ%fpmLLg!zhoZneJf4k$=zqGOphsuO>Np>ZQkY~OQeT$h$n6OkPDoBTG5(3 zf^z-a^vx0eut@n$T|fbFT6NNn{OjLhF96ph{>aZ94JYpDgteoKq-U=}qDw-5J5!An zuWxY_MUVA)(@K;C*ULTOmxoj_C?^m1dWpFUY7&DRkNmmyL5msj!Oej z)RsWP>;@>bFVya?Pw%J-I`0thY9AjFnZ}!!8XmK6(!5{&M|AlM$WQlgZ`u* z;j~>vVv-&ih*uM=X(&zCX;8Mzw!URtV-dO_kp|;J=`VJk`Hf!=d&M0k; zbnAHR$12{1N2#Vv3fL2Ftcevc1wZR46S_mWAuy;)X&IXjg|3a8U4#qGU;`y6Q#*MG zQ`KnNj;EdYyBbmRL4&StV`;!JQ0?5}b}D8G-un|P;V8#OKKPSoxvre!B5O;wT~Dv9 z-s{8WE7H`B*jV2VH?DQVx4+S2M-;6T|HQ)xBb?e_58K*oBWW)# zZ5^so?^uI6@#oViQ1k!6Cw7Z>Kl+)`Li5?txb_dA!aLC#T4uH$CiX~Mh7iR@w$7dV?EKESyPo5Rqwx_$l|Br>n#lJTUBWZh>>J_G z(*Wl4m!-lou~lA9XFwczqcsauzO;`9IXfI;Yp^@1-HykBeP8Hdgh&VGR#sV2q7~`f z!yGX7!;dV56*fYD--By*`0gza9AoExozs}{3LdLy_;?unUQ)NU(dC72T@P1Y*$KC< zvGJKx4l8RE3_h#br>Lb0n23|7j`lRyJkA;B44lB~Wfo#sC&9Fqk5`P7L*u)OVzgU~ z`5qAFpnajdyWhDvf1dpR_Uca9;xu@XU7_e4XfT@ip~zxv%4Qd`)YR`8%}Wq~lMre^ zq&q{aYw}K|7$r~{xk)m4h}aWm0i>zI&2h(sjx^dzYT@FxIE6JpgX*G&IG5;@2=MSm z=p=j#%x$inq>stz&*OKsc-rCQ-Dpk@$E`48mvCxA{?!PjQ=^f)Hkat4i4Bgg=q{>= z&uhdXqaE25#nfI37@#^7BM$o~SgUtKDP}uvR^!K63mRI3p)Tt@*t}{D3Tn%?vh%)w z{&OF_k=^S3J}V<<(R%MjbGCW3^ALr~^eAuA#a5neVPCDqJBr#!s`{d8<%LljmuqZX zUZNw==h69U&0R?g>n{SP%%{pn960!$*f`DaaPp*l%H}z~>JBl1m*mS}$))2Qa;>wX zl=B&sF8eY&T%Mup8fQ=_)gDt7GVKk$=f0!iy7eaV6a|3XFTntV#T`Ix)YOs$R878}m3KzWmk393 zC|kVU+39m#PoL>ADuhLn_z_!mmBjGKjKi>G|F+`b)Se49Np0p$KE2+`2esP0;fM2= z!kKe>^=r_G?$a&>z)bVfyor>4=}Ugeu}}7HmT6}jM}XP zH%H7}r52v39Ht?reI}klq9>tx|L9!DTrg>!=@DyXXFuAHM(BH!obcm)#jA zLr(Y<%Gab1>a?lD%L)@m;)`uw7Ixl;E95$}tx9A2ENr7Ww#hyARiLRtmMD#D@*J~J zlyNP>m>>w&;oWv34rx1zs+~l`P&?Y#GR5i=hqWHBgLLYLYPDxV$RRUMU=ln%nsU04DUWmDJD>~{F(2v~-X-C0(5-IpP21-6>)j?x z=eNz^JJz6%y}BZBu{PR1u{Hc8d+X2gVW}SlrpeWWEmd}>hJuIK7dS$-i6p+yw$?Fd z&~T69h=04JYp<9|s02G2!OJ8odMdw@aCaG&xe%2=b1FrdN*WDi zu(QR>!;HcPyPDeE!Boy4&Z3<~Hse=?MH6k;l&@wPQ+Qm1YEU&`*Z&L8UkX<)?SxN# z;%ZpunsZH6EgaFdaCnFIbpDkEjKs`(Q|N>bWq`w{Vpz*C6R9HVHPr8r`EXpc6OBd6 zzS61nxg=3*Wr8a`a|x(EK-$c9w(h|A0Bg zrFx&+A}P!(t(*(-*=bT|`x*sUU@AmA_H?_wR^HqBCM!w}&I!=hD|BzY7Ct2<_8Z+Q zH?CQu5HIy?tiS2TGr`ROc(~&gvrPxsTtozx*1UC#Z+l##B1@FWNXEde50}f@o z#uR-rnq-!6Uc7kS1oQWP_gOoM+Tf076erwzN`o>90DZR1A%9 zS0iv6J_6&t`mxRkfMR>kkWFyWfW!p<9PUYd7Gl?tS*F}R0zwNy5)>ym9E+dea z3F=dzktXL=C}~cu$?Lq5mYvk(RfUDkXbg>X!c&`>r!}ZEL-xFf;C(fr!wcrH#`6=r zjs(iDGfH|~P!5ah^@20aNxxH5O4pc@Ugt)>t#vw{Xii-VDM2<(R~03~R2Id}d-l_e z4y(k1asM7$g|!TlLxRlaU{(g%5}UEiF>37|=Tzlw%xk7W%REwFLjIQrS9i_~j{YGV zMegf`#*ZVMTH!oO9p@a395Z7RUTpL2c_PlR2HMoytsCxG`)h@Db~bTo7jvRoQQEOx zO|%I#`EFEpH|{QNaSM}ru4T1&eB_*`j!d5TCa#1g0q_#BB&kN~CTsEy_PFXw#1X94 zHo7;$lp349ri=#v63$m%xn{!oFaPhahMRm4;>J~8Yi0;K)W4Q#wR5Uuf)Y*`Vcjc9 zNhL@SW<1OlZy6|UqJIZ)F>`;JK6c(vKvr=Lw!4w8!M&lU20D#UuUj9O^ec4 zrw?+IDW;ngas&Nidu6SOqfi>j>(Q<(F+l<)qO_w)pX}DICiOuh11AlUbm|N*5=&l< z<(PzX@>kW{((tMb_2pQwi~A~BqI3=NYI1!o()4=Toz%Bx{R*1%#WtRCJG!_TiEgr5+GZ_jksC)i zN68(KOEmas&{UlGMo+jjaV64HKoqjQ*b|XZiAop$glFRO(EV+}PBbXZJcMgU zQ;$#WsL7Quxj>2X*VE`cl)4q$eBNfAf!d{4wt3iud`*77I1<~ZD1^pOsIRccO3shM zEZBZtKZ=DuzOu?gd@@T7C>t;H)^Lab+{V1-8r1W8_`(G%I>(p7X74jQ&F)Y9+fX0e z)9Zwvf}(p-oc9iES^e9sY;+5li_LLOT54gJ3t&m9u{<#BYU(1qoS`93bD`==NwB@p zmPr!nq#B5osg~Q_*fBu_DSsuLf{{IKV&yWgK*n;{(VE(wbDb3>we?$@+FQxJOKcLg zZp(D?eSNb69rKw`U7p%>(xFTnRIXgT8MYA4&wcL2aFwri{F{Hpep059R=G!1pR>_1 z5}Cf*cojxoo;~>qsA4?c)r0fFIpPCY53eLO=brGgK#?Bz>KrQuCf1HqliM4E7Z<|Y zKC%_Q`NZ5c`PW^8ikb`O!nm>C+U)Pv*CCJjQNF>1jHwy4bMvUv9o*XAVg*fFR28m1 zXdTg%VsN2!LAp~-C}u~7yEd+d#2C@L*LWO6(9Elu(khb8g)%)R!AX?wP5LTBBrtk3 z0Mf*}j%#f2aj>iOGcR98YhK)8B7T?6AbkXu(Kz3C73-v5GLWgc5TB3L0|jY6>eDWh0i{D!!~`a-w<5Jw?)a9 z7d+xcpwqho3Ns}=o|%Wcf5wh{n+dFX9Wh}-2_o ztG@Izr|;kVqvy}FCV$?6QyM9#H_Dt3P^nhb5Y!t6m>SL z>X%zmR1Fhtw=*u7he;Fh^Gnl7x!J2eZjI`VMv<{GHvE+d@N8bMyMR9VXZ7uCo7}K?mBMk_miZ-Eq_ufY zCR;PF4a#xShUUJA=j44Z)bT}u^5T2w;qBR!=1+mDJ8@|iMuQ_Ys}8HF=N+B(;o0Rw zKx+C`4Q1U6NAhSEKp3@-ubVA)cjGrbx3;NRh z(Xhv57AE`JvBoBEy(k!+))YZTQw-YktGIdPsRFtttcJ;bJG`^7xAQw5>xhX>ai6;G zF>mqd^XBgM-7c6@Xx<0`HQH=ml&mlO=7rub|MPd<==SO#ryF*b52wA0Z_;(1Yi7C5 ziM+yPPx_|&5>ncv*=lp5xr63xqe1DFai3AtP+Ij*SaboYAZQ!?IcuZkjl8{C4 z^4IYVQ2W~KyRgFCC;jHHfAt2V=}iQM*;;M`(KL^QGCt}G=vF^Ik+{u@6Xn_DTc7F{ z++=sV&LmyF+D8D#tOT*F!sS(4?CsIZx5&;T-D_`s+oPsDjh09UO}w_x%`=s^LuK$< zcLDTrdAOI$QF%NC@SrJserT0n31ZqR`N>WU;bZbpU;p6yNu3q$Y+Bel(Oj`t4mmN> z{O4%&)vFBU_)-FQVMFX7%UXSu10SqMn?|UNTwoYU4^>UBP`*kjH2CPzv1b-6B`ajBOkAC%QlVuAjT z20_~5r{eb0beE=mj1sF(BWdoBm&af$5VQVD)NA5&{Ic~pnc|DwIzvf}v<;1A*6Q`< zfBoYP6Hwj==T-LPKYG6Z4?lhXQ{$_{Z`XIjpQ3cm)Z4WWaQ$-U#a2G*Q;4_jaKazE z!+j8oG>J>>zaOAWd)#a+t*QQ>1lW;M(2@}*oCpf#E9YwPK0uy6%pevx#2L$qz>-S%&GhTB&Jtbjg0h1av0f;{Rml{eS*{ePEjn zSeydQI@Hw=Wl?NG5hp3=Ek_Y_4JxtJv=hQirA2Jc61NpvR@_X6?ybUl*pz($fY-a; zf6-xQlo-uxE>b(~t)G}`MFPq#HGBs z^7MQS86X6`A;$A@yPB!ORJM6>4mVXF0P0kd8Pg)XskWlT-q3+BVtdMHzmWoJl(EC# z>VVJVjPmi7?a}DO$60Ayrx_Nn5=j4k8 zyT6DdLM3xzkt@GAt^6@)y2L4LuSSSqr6A0*y-XM3Y^Sza3 zRiSV)5UR3bQ-yKkhRqJ>n7Wyn{1VzIxCx|cd9rF))m@f%7H^g1tT=+b=AR7w!+&8I^YOQL#y% zbZNVu>%(m|P1-^I+~E%+a~+HKYEagvTax#rYCo zK60ZS7%e+E@k&DDV5WRQ9FK5*2gcDj3irG1;Z<94bBj`mn9_`u#J9t1U;vne#xyz| z#TV#`_GrYe>N(~O7f@+V(Q*E~x@1oe|8nDP-&|c>zPVUyeyYo;{+o;SkE}MvOD}bb z(FpSI+uf=!6x=L~2JO)Y)sTc1H7p>on#hm8m69b6&A!2r<&udKppt0fOtF)I(lwhd z>JZ)WshCppmGIHAw<4!=(6m+6l=OMvY_@yCr}0gq9q&v$UWLpRK*Al`>2SZLAd!VT zYR{~at`cOU0@sGdRYv;udM~^Sl z+FkBv#h}Mb{WhIa&5epBI%HR8l%V^Xq+ulCUU0YXv=mA=`?xU8hVSQBp58~4J?{~{ zw|nlCZinBGCWRkV4&e~Y9vq@o;j+`S7ieC>!-WaA;WG%I_^&VL1@;+)0jQG4i0fDZ5Wetka2qv8qH zm7C-B^bY6Y?swbZJh9tEdU{KT$NJLPlkkMW1Lk`@8(XoKM{~m%mIiCbVf{|NGg^Mv zyZ)!GFMjdA*AloQjf(HO1{Iazp{GZSgT?i1RJ+L_gPl(K#x}$DEnc4?FPR1w@r;s0 zGfpizKdQFe^PYn=il-4Nb2W=1USm_uvx?foWjo!9m)reSnE$`MYwL|8xz61^J;Na- zidspOc2}~cESSAOLE?oR1W5p6;a9^8BtZUyk%v6w7w{o(2@oK8^AE_&J}nR+2$C4Y z#(;q&0-VHL#9n40E85kHm*H@RbL(5>`%cyAuIZVfC|lko6BaprPMtb+J9YYWRdsch z;J6U-q87bw0qg#`f|A5+I&;Ha9tsw*>r@<-+WxU<{L^yUHpJ`=8<%giTgg%u50|-H z!lrk7xLFNm_+`5-l$Adj)qflWx7&{fAGg|LeC)Zlg3WM;QT%2fA6ETVXIMm7bUjL6 z!yI`d_&4)9RyQ@!2W53_gOoM5B=K@IZM}{t+)hBiNuB#cOHRkI5$EzEXhxyINZyKG zHH=NemdkH2q2nS(183mkvjkrKpXA55wI8SD>NMYv14d-(j`pfd4~UjuVHxJ~ zEz9R2VPsYea$&JiVHntXI6YA25$ALGT%7PFN{{@Jjg zC=CWpJc?+7Ty7*L=@Gi$Or?ckjxb(?&ge|vB{N%2z1i&TRlhPOt>@xD%A2X%e0b;J>Bz4n zTiD^4yNxs-JeWTHDg2qq=#WjoJQgEoa6CWC9w3Dh)q&s+T^KFq^Q&@9<7h%CzFj~ zldB3>6ntI5VA-4)%VML;SbK3LzZ_qS!^_79pB_A6@Fpx4-I=kVEX;eb`L~j!Kg!J! z21p0v&>RlqsNe}9f$Uq4`A`g!_*RJ(r%(v35P-Y{r|BuwB-Kx-jp5Ty!dXBmE1*~? zk6HZ+%L;is&!w@D#+-1FG#zCUKQ0m#P{S1}-*chFMdwK(!UC3Mv4~nmz4{UvY;#%EPL^2rIAEMw2RXqc885{ zfcel#5wS0wVk?{+KYrzD=R>`^oQP7Si+yY&$DzYeG4xQV@TUADJ0f8l@Id zELV;8LWwgjor5POW&4I?J>4HU>lV>wv?v#^Abz1{a3RdSEJ~U5)5@O-YdUhnU;!*F zDJ*E%&R2QdTjkD<1+`_yjwE6bgAe}Xualqt@%_%TTg?yOGRfWDrQSPnWR}(r2RKm~ zYn+y@1l*~49U8>Ss`GKu)IZIo+%8;2qR@+1aaycO&kOO0ih7~XMH#2;8%hEwh%1Yx zr*6k?obrc=4v@=q(NFt|$-{uw`IH1~BR=pjv4U)O_4aKDylg&2hK8C2NAt zW*@YYjtTzsN27O!gJW#)u!r~Z`?%L~o`f8uRy@|5jup18N%#x=7Dl(iwtYk5FZRd6 z{BnIn6zm1vN!9nQ+&n&JRVmthQNB=dm=TqM#tq; zQ;A4IXXwJd=>7XaL~Hu(Hxje7)E=AU`ffJ4`@5J4UH&}35jRYX&wKb0FD(#^74An7 zFd*?#EPqD232! zkahFNB1A>3L;QTGbwi$2Q>)ak)%{rA4^3AeLF+gISXo z+2Es&Ly^d8)AM=#Rv+v?#J^~v1MY^?YyL`yqV$X#$fB6Bv_~^Yl#DeAyK1=4hQLGfBxUB+FV2k>SYyyU9xcY5l%`_QO z(x#$pi2w3VQ=A8>1a$MlGxJmzl9vXCW;PCEd=497 z;5)&dD#5ek$+$D@Jvs^k**-8h%L-anN0IC>E0Si|8-_&>yW^xVp*hr16xa%Y*9y~k zC&OvcE#g%!g+3o?iyG4BBd&^Ar_W2b&U0!%5|i7Ma84xBe(~~ZilWu?Gw|~)pY=YG zIO5wdmXZ(nLlm~t%qEjoitSp0`=Eay<*dg%YknsQ6#xDowQgqd+n1N`-MM}J-9N*- z+t*Cg!W#&D9avyL8L&WKJ%zOm!3z17Y+eOb>}8lE%+N~)MXHp^tA#~|;xxW0riLqB zTe$MObZhY)wFJtqP}5ZgrEB_1CuA7;!{wO}u`T8LUig|%R94&1iLf(8S-!NH*{SUy3eCY>Yo}Tc`=nAxCv7 z5WTVK70NUeQCU)XCF>$Z)IOd|u8gBdMYmY#cSxxS8leVD{&{rKxLFQTd}Y+AB_|NR zDH9EL#F@UK3}e7jM$%Li+5ik%#4=io$b4xdk+{rI0t!xpDKCETwPt|>+mKsku;;wV z({PN57JM@vHt>=K8x-bQ2aofKDN-KWKFEg$+hIQG9u9UMX5(jr<1aozya!15p@{CB zDQI9?jVx<6Bc3zN%|}ofR9|HZ$XbCuQT(71UsT?*mTs(AMyMkTEudqp6%0>f$rAHITu4TJCkOjCoaIAqn8oBo3A7Df zd{rD`A85<~nsk7;u!r^z8SsWZx_)Q5Ed5Q%fTP0yF5NTi(vbPj6|mmS~IXE-EvjRt(ht;8{RSM zU7_KckNSlT#L}+}4Dj)aLof+Kq`D%zY)fwY#1Pf6S-8#UH9u~|#yHdzLdeQmLIojq zFGE4(3n6C(SuT+iDrfVDie=a%64S)ktrR0`lV&FCL&(_R1%sNxq^TKUa06?Zn|(sW zz&5WYDbk|@ZYVh(?01WFfGtsX`(e&QXW9cSqDR*@#)rF6zITYT!W&TJo7i&tYf#SZ zZ76f)&VzzhrL|bm%$nFGlXoi4NdejlCH15pLa=NNZ5)MUSH<*cq}TnVo!V(+g&I>sFrs&(sNQ_M&cZz7P6$R#VB@`;?A`II|XFN3sM*?S5O!(6dHl>A9jCZk~ei_o_BS$35 zn%es6wem|)84Af*W+l(SMZr^aDUqM6O@^&3`T;1RcY{`!P zqp_AS&&FaI^I~vdXhzedgH_}yY-qPA#@Q&@5sQfB1@|%W3* zU1^Rn5QMPV|6#MZ7ALT(?8T^|j#Z=hp(g|hyQgb@v>ANr29QKu%Jzvn!(S50vO8pf zB~*T-DhY#|eL?)Ok4TFsC4kOhLjmb87Engs%w~ixB9=51*dT$lvHgMA3 zl38D07lqqGVZ?21sRCNKvm@l~@^JVM9OKF0+$gADjs3>Z+%m6V6d#VE5SUSsK9p6= z1&ZUV8}S8fel~M)l{#+%>q<$r350>JX{|1IxalvxG?8(%mSz zOhEgDn!7tUiAN(ykYtQfuy8CY^$>{6A42P})#MO4VsXz15ToTNgyky|Jg_lMgF#_2 zKEUW@lINoiW_FTnbkxCDt|_*!>Xlc=xl*_@LJ8u*?vDsAp!%wAt55N0eDsB0Vkl^+r;W!7&BfWg|+$gAD z^*FwUzB>9zaWTOrVzQk*J6GVb`iC}m?e9ku{P`A8l9-8C5>)F;ScX_cnvH0QNCTsE zgd{>mara*N!K;=%#F|8=H~<}*m+xXsljP~B z14EcJvcnD@=s*s+omJZT?C0oP9wV=xXx~sRVf`am77}hlu4`-75^~@|!s_a3Spi}A ziZ0J-jjyOw^Rv~mn&7?7_&55EyJ744ouGB|&taWz;}LcXN`Q|9Q<);fQhPh^=hAY9 zkgH3q;6U$N`9o;jD8&3>42#Io z@+3vy5Pihn@g7F!94$YU8v(mk+Z*BDJ-lCw&4V?Lo-s&Ph1=S)1-6fK2AyelE-h%V z1(|+poM7U2f`(5`6k@KcIBMe0~(`fnl{oXBcf)QTYhPg$z*)k z!+z{(V{|YGL!Rc&lP#K9J~&J`Zy2RF(g^UV_c1%Bu!xVXMST71EJ$##wTeEXH-EVL zGplIcS*RkVS%r1v^9jzU1r=HEz&dea8H$2oD8}*_&7;lK0*XGW;>|XW^a4SKg32Qi zG1=e*P)LrmbhM0f#qczm z1H-!|?;K&)C+&9j`ay`(Vvl}^zTuF0@=Xf!)V`rwMUXtV@=ftv!o)U_a{h4rQ2ZX} z|4DRl3!c^Lx)t`^d17PZuU4ZQOMeiA&AZK|tKY+9;k77_c(fj#z0iTO329MTRj3)> z%27FSP7ekXGEnK@Ih|rYQC{8Q#LPolLg?T==s2$sgA~$ubj1?lRSLeDjtz$Cb9Yd>Q3B#}*VlwY8<}65shoa^@!{prMFi;|lttJQzf8K3FIYjAXP7 zsywnWHZe!&GbUIEfkh8^hivd@mQ^h9z1 z3kO<9So@rglAqhrvaGgg<&7MJu!y5&Y^_R*I359VwEPGP28(#hT10)f%!={-^7cAL z)pXUH6j4Y}6iV>L<#ZA_&lVJG57vso&OZ$=-TWOGx3{0*u|8_G;>YNZUc$JBN6zC# z6GzLK&I$4_FnXRO*Du6e>jVj$Ukhq06$Tp{Eu3{7twrBz=Sdnb$IYunp2vAKXko;TS^TEVA7aZ! zyV@qjK4cs%_kU{V4?B;jfN(fU3>)g)yT|Fn*x(hO(6<;wSB;h{CAA?J*I%Io&bI}n zMZ-V?zx-(XZ(spsAft@7@oOcUa$4Tx07!|IR|i;A$rhelQV0nx5CJKnccfS8y(1lLgd{*HF$98&9bHs#?IMDr zqAMT@t_6@qMeGg1-WNqwly$Ly1(i2R0DZo<-}~PAzPb0mXU;kEpL1vCn*l)HjwKLe zp$Y(G^YesJ0p84n#3Ux^Pk;a-PzL5ei^a|rctu8rf`62uThJQHbqjH~t0f;% zG@O?g6f=rbgtMYXc9T)*fsoX!mj9gVqypA|laD^q#?K@h{4h8`|RkBOJ^L{I1Q z;=&=8gSay{Gdg6{{!u}?PxzRPP!uKRtPk<~RH1*A)CN<{&K=7Ovt+X*98@9p%uA06 zl=@-`+}woFF>V~Lub-3y#^Lf~M>%6~c6mpQ`W6YYB1i49N^Vv_l(f#+f!zG)G2d%> zaDqwefIZ1z1xHHxV?%*#OlhhNejf4~AlkOsKG zVpKEc5ijZC!)G)o0DnQm1-avX-jZG}$cOr`<67y{0;EcM^Ccdc;2Ff(xH|5RyW*kn z=?R++?u0v!`7!0kMkV?YeTjiYf1=4a4>n|-1)C7?{!{nelkkktMR-EEN$4ir1tGAP z3v(7T7@Ggr}03Fg9A0gj*(z!yB`)sl zH`b4R!ihK?XW|xceg@*PI2+Hw7vih%a=Zp_#82bb@yGZ8{*6E*Xb{W@E`%UL0wIks zn@~h3CF~&_A)J9Ls+TZCBoY}!BcdZ*n~B5>;ymIi;x=Lfv5nY8>>&=4NF+6q8OeGFMJ7Uq zBQsZKjm&PD7MZIuy)wfTMT!x{jS@r2pe&)3QR*pYC=V#_WMyS_Wu0ZG$ns^f)Hdo}>N^^ZW=Qj-CDHO|t7)~gQ?y64k8*T5OSvF9 zj@%--3b{tPYjUsUW#kRyz2s-e7s!{&ACkW+->)E}V5s1uz*1PKP@!;C;kLq{B3;p1 zF+wq0ah2j;#S4lrlt@a3N`6WlrDaOHlujx2&@s9m-G|PmFQxCMpP~0E6P1mWgOoFr zOO*F3cPJ02D5=<~#Hq|tsZcql(#^mahKwLa7Gn+LAmbL}^90QaUK6+zR!*p&aBac| z)rqQ}s$A7#)dtm@s-M-EYJO^&YU|XR)E=ti>Za;b)Mu+#s-IEspQt?1bs~FW@x+4@ z?`fbKrW#Qi^E7s8T-F%W)Y1&l6liYIJf+#M#nAH9%Fx=VbzG}Yo38Dy&C}kfeM0*s zQ-$fp%wm=?PcsK}G;{)WL^?ZlI&_A0jdWvm3w0ZGAL>!`ob*!lHtMzO4d`p@hw0DP zuhYM0AY{I&(v!pkDxqR!&6CBrh*ve2^0 z^7SPBNlBB|O*%K}o0Yv)mep>n`_@X1-`JVi zaqTMY?%31q!|a#ax7&YpaC8tl)I0P!>N_SoZgsrvr0f*ww94tcGr`&0d69Fg^CuSv zmpqq)E`PgPxMsTUb$v0}Xfk*5?#VrFx^67Doo?OkO!s8>9q!#8Ivy;KDvu|gdY&B5 zJ)Y0KOuRC@_IbVbw(=HwAMyU+J7!JH{aE8zQEYph zeB89S+PDw#zVYkhyAviQEJ(PNsGi76Y)&F2#U<@Y8l37kb<@<|Y4+2KrrnxuG=0wW z3p3PbWX(7>Q+_6E=AmRla(wdMEpU_*K?nz zx}~m9eUavtwjr%A-6Op;y`Sg9E9bq*2+Y`?@gXxJvpRDmD?Y0so1C4TeUz`n&*Yz; zr8R5LtS*6>ph(c2?vsPS0)5Q-(*K%OYdZFQUi!?)eq@A7{tSJ~T&h z4u8(&xu$bh&V63sU+~*Jd>(sV`+S}GOXfdb;I&}qLS$je!uCaaiNj+M46x2*hD%qhND zVpURF@?{l!)x}?}e=YlUWOeH5jx`QzD%TR%^4H#4=drG4z2f?U^*tNHHZ*QzZY3oUEjqQ7PBmM`V$NiBlIK1 zjY#9%#(}2vrtap%=B}f`N84LmTaNr;`A2oDPHV+6m1Ap;Q;sh?K60Yq#9*7Ct^Z`& z$)5I^?e|Y5oVsy(%IS_XA!p8?^*?*+oY%P%=iSb?UU0c^^rF+nrb`Z&8ZX;lK61tW z%8?F-j>fBwSDQPXJ6pOYcOAdxaqZ-F-|J^@1l_oFGyG=Pt=L<4Zcn@2eTQ@B#oesC zZ|>#a8@|8z0pUUMLxqQ>k2D@t{b}-NL$^csvB$oTFF%QXa=(Y&^Xh5t(=WZtp3$C_ zKG%L;`@-f$YoC8#=gX-tdtV7&4fhxQrTEv@*T%08|Lytr<$;8O-Z#QGBX3u|Q+rqa z-tK+-VC3MVq3ogI55*tVKGuA4`gHDd{O9Mxv%iqOlzlb%+VU;r+k=tpkr4q)$dVid zFxb%4Q~=&q13*iJX9swXqsU3`UlKv2cSZ>U|AeJ?G>JF>Q0)mo>|y{y;Tfe8HUo&M z@GU-m$9MwN)^@y&N^YvHjWiY&-eL$JM@HUh0zhg3;Hz+CWO&=i$k*MF>|Frba-{b@ zu@K=Ie~09pb471C_*wo1L(#_64pp=y(lV);mf}ISC=YSVu?z!2F@YT?-A3Rb4$^=F zq(3AdRQ}otk`G2Buz@&9cLKCoaW^d4Vq2Yt=t1%%TCyZkBPo(1S@ZD5`|f!1`>(y% zx#!+@U%gipNm*|0_s-qZ+H0@9_Bw0N`()uw^LK&+9|@uL3n8?B{I1jgNuFg7=0)*N z2zw+CS*Hl0lVu^R1%3#u&r+$fP8fMwoKmFp1 zzx$^l?B;vn-wgR~aNt7-=Q0mM*rHNeA!L%n4B;%r1b5K$_t8+ujF+$$ilS8?k6ULJ z7u!DuKgz=YeJu3%QklMR^5lO-4YilD+J8)?+&>P*(y%C&5!O5}vMi4^NF7Rp#%hbd zGo_pxI0G}0`Pqp5{fEN4fAYC8MSS0CSs3SeHs-C|Y!=yek>$^C<>TMuW!&A%(-ZMtJ$~xkm8Q?2;FL5ps^aI$#HwE2imU7PGZ1Q%}#s4?V?`#FF9 zyvf@`Pd{zd^UT8!Th)*M+5grV6GDYBfREB3#c6ey$fI9s66uY9wW;?Kyc#))X=9$z zUByxjzfCUlz#RMlTZQCJ%v3xpV<_NJ))vY)1@r*sy;0FojWgOQ1@u#tEaPQ0e(Wj78%^8a*Zk0e#@h>z zJ!Ts7u?rW}rIe8@O_}2HbG5(tZ~kPcz&Z()K=R4x)`XAd&V@vy&2|_R%~2AD8j|K>A=|}3RMiNO2#kP`tw+LK)DTLfH)}R|8c90sy)YO+UY+qb z0@{qG5%16tU9Y~y0JntI1@_hDus2l_Ov{hhH=FpqEV`qR**@jD)TcyXT()ArAFLA2 zt$O=d{nq^pS#$7?Y-zZf?<_n5=xQ}nRgQ$uE6M#1W8nZuHq>ubw?OU;tyYYbErBU} z;d#}j6wri0B@ued!d?wLMonoY$k)tzQ$SxcR!$>&9AP~1%+>7C|M0zyu!)K*Zni=_ zYqYkDyR+J8smSv)=*lA~!?Q)mS6!Ob&PUycLv=4%!{Pc+0+%P57%3EY-bHelr^zx> zXS+ZMM^Z(&Escdve(pqYC8vTH9j4x!OoXj2kO?DjX;r-)y#aztDGc$QV4u)bm2$`6 zb`|PP_Z$vT1;(oj=gyg|JoE4c6O;4jr&?i4Suj%HeAm^rdeQ6TtbT)q`6Q%nsSm+rWy>%sBbEl8hY8aG=Uh@ zyf+#a%G#4aeb8kIVrmPvbX9*0o&J^F$z(V(W@R&)_iV(=P$%C-btNRA_ystWfMTaK zF`@n5!A~`DO!lS*y#w~m1C=laO&R^uha2JgD|xs!YH!zHYAo*-Cs-g^+|9dZ5vHOGktXlOo@;UXu8=KsLU#Yz zkl%kl@hEHwtD%k)H?B{GS14p3Xw+qpR^07{qT3DO>a`GVTo2jicF115L@#0#8p5P? zSP5(s9ou6zQ)v$M3hYmT)Ay!;&hV%leP6g>D(J$63kH#0xS$?b2&GLWBb+b(U~6^Z zhaPAj`O@_VM|o|v(HOq3GaMfoG>7k`+LoGOd@t&!$?&{|P~~CJZ=q?jVt~l1>sU0# z1^aoZ5Gh6zL}jcB(xa-5x-hy0qmjA^^>_$sX)~JJ)uoW#cX!Aide8(^113qc`lU)E zZ7bur%yZC>v?EWkgK%zdBZMgX4uW|7RwyptKx+;|(N`0%tiWt5` zyo-8c08Xg>hiDl|-2mBSgfnD|M4VV65~HYS)Z;^-Vz7yq2^YvlHFPornZe&Wc|7DN zkAZHw$-RXzVVFFn;z8)E)AvzEH>-7EmD4hvj_@5x7_)%L=b_fi8a&9%?udEOf5 z&9?UD6#a$fh>qsYZX+KT^ zu#+ez8?7iwMRR(1Xd{dZ3!%QY7TR~6G7Xz|tV=tADY4&~LwTs5S@4W{J$s~0`%4R< zxOFRxzw)#ItiK%kuxtrh>WG!5qm)o|lGjzJ0&9ixyujb><*ly@?P^nxlq zyY}(#U;6JJp}*Mbof&4wRyw2Nk=^aqk*smz-899^gN@er!M0XbEO$oZdTqPgX^uvD z*6p^@ggIk`4w|wSM*X&F$ljMb;QNzFVpR!$%#>PD0<3Tcc{)uJ=4 zZf%MOIMkxjX;h9;e#$39GiEJzZH9%=I%2&4s@{w%qEsM~gSkh7p>w(K&dvS^eL?iu` zuY~dDMtmV`00jlsCrMgVc=s_ToKA3pvC7&9{*4YcT3jP~=1)KU&=ieKfUBfpz)Vp* z#s0R0^LPHq?<}?RcKxp2JJ*n>X0zTuo@c{_#g*N+=e6-_r@i|wDr0pt9)CZW+RfTx zi>5f=>DF4~ah7fOLIWF(*klVQ1C}w9f|4?mJl8d%!N{DhW2RAY z4Qg1U=9EY)l?F^Ug735$B;mf*C7eOhhdvPUyN-vWKlRgL?Wcb_4w5=_A%rjql-$yy z!gHW;!PIO4?l{nbYH4S6A!Lvy!-qyyx1#&)9UHJeb$odG=E6M*WY5Pu0#2-?2Oz4x8iF@K`NtG{dlVvZ&YS2#(HDo2x90XoY8a zFdCgkR2s#wL$j>GOv75weqWQ*w4_5FpJBdHRnEWdLc(SODGEV)f8u)-by}>7D7aoN zsstHn4;fXVbbQjYhD%WdS%t~%al$0G!jxW`)GJ-utxP93eL>A>j&CwW)bE?yg|}?} z!DB`Os;5Ddt{DRcVOg6&7XoW9h=5#^S~mbrEiQ)Iks~48b&^H1n?zq`bkEe32|0X% z2Ce?u(SVqX(U+WiEa%d9O+e9<#^;ZH>|^4i-bSqK-A+g z)W{n3WvZe+=rftfbkNTBP@Sx-+Z(d6$oLAcAWb`kjFi|$=MCERkhF=yW29*|c}Z)= z8C?bds3?^-ff$^-qmU`RoghQ#K+Jy>MnS1>8ih|j3G_(9$HRoGRy>*M;zt4mvpjzj zN(6KJum36xE?+hwWdvsfDhZ((4QMb{6b*)!mO~EbYIolg>SxY`+R6%@oF#)%UMf>2 z9GKeja>y7&)!+AC22aPr__Lo2qZcoOi$BfD7W9d=+GKkK604`}{?ShxO&@sYy|vC}J=?nfdfwb>WO;2+-|DbFc(q>}qP}h|9O;bu44s!xE(gS| zyS2T>D5cr#EFqW$rvdYmp_aE1PWp^$o=104{1*Mk6THcq#a<+1+UEk*kmaMX;xsSG zfCk1FBf6MW^eAn*&`u&r6-qN!U<#ii9*@8bG})8*=}Pem@OZBnw-xSgPpLF=TR1<_ zh9+~z)hG)Si~?oS8?C9LG4qoBt5?I|l~+Q+>X7vrr6Enr0UHsTR@TJ(m;q3Z=B&eq zf&r3n)}>7apNy?Ekp~rIJE^kem5?#r6-ei0)IyU?LSHFF3@_u7S8$2?H@=CdkVY=T zVDzIgjjVI$&Nc51_tt*sf#oBkEN|8}uOIKPfQeE)N;3I?JTuVkF$a! zy2V;(6F{Sn1s;p96&&aig@hX8oO29%5mNfe5+om+q zmOfeUV!<4L%9k`0nu75jLXQLq%_&UQUqq0k!7L2n95d41L4)po@k?R6-VNhh^b>)V z0685ZqI63TnNn)3Er~xyr zULzmoYaFv})tZfydB)7+aC`!-)vD)>lQ06!Se$0hWDAyX0#K{Jf*W35s(i^9gWZ$LG4WbD=j$6Lpx)<{ z=KS2Rey*|lw*Fg=hTdA1w||xmJ!|(Aje9a2@bEZ?z#GlHuBDJV1Lq~mleb#UI_u87 ztF~~R(eKhmi)?5L23vDGG9#D?*LLaCO8l6NG|ohwLp-WgV9qWOML%zYg%hDTt#Lby z!kuB&FonBG_2k~tj<3KZKaZHj<9_911c`Rs3YQl2Fon1#6)uG{MbEtWm>C70v>%l2 zPJ99NV&axIgO_2X`Aa6)3kG||jcxW-F)gMwb`WK@bq<>(fQEu*nr(q$w6hzAuiOav zix)$9{`t_PFWUx(EeP1WE3ouG?Il6uYNN^+0X3ef7Bs4aZY!e|#9XONiiyT;`P}`6 z3234rNI0*whMi8)IaLp}6XUFQ7G|u~M#VkM+q9X^K0+DP?P(KEM`*kdj@vPGc@Xe=a(EzwN4 zg3PC8+%q*eLKVOxuUZA$xGWe8SI>nsG$r<~YQVxYl}6|WfIx*d!X@Co5(pev^3FQy zs#66BXwmJ5(RMeC(7Z$DJ1rkzZLox`Sq$M&+a;k^`p9`uq_~J3uw=Y+9xhv9?ibkW zE}*VCvB$rKa9&*9zQ37wPS^8=|A7j?Zr%$)npCV&5L#$yMw+5A8!{kOO|a6ky_zGm5>A6fpME{zKJg{KNs7IxCUKr` z8IsbQU=rxsv8-GRi`vw}QgLH?goyNd6~z{KXU(`39Ia_a{YVTk2B-Y(0$Tzd zxg67YpVwdRs0_dXEQ3kw6RW$Ry`j{b;a8tGG8`PlNq_|(+c5(%S`&E8E(T9=II$zr zM*Qn8pos>v?rUAihvU^F^iLSj6f8YtcTp6sBr4Qg8w2fa7t`Uqy~(mj9rfX)0-Z57 ztR`N}@xm#ys$2dy%6PtRSMycaES(;&IFDCYOfSK+YPVk#HMkMufI%P?Z=Dzdqku|K zEApe9U7$_baAq-2b`>sB6xj`?;Sp6($YZtDWw&$HPa%AU{hl^B$P9 zy4l<0r5rPxL*EipxJHD}#(YLhk?=U0_CZh7mr4+0bv9?pcnMRWct34oz-(~oFC8(} zjMuZRpqzoIc;$5RJb2cQ)g0kUEecSs7nSr5FFaoHp1I0q0tXUJjgurWh9TuaTci=ijR2Z^yYiB z68A>NigF^IXxVSHaT?rK{&GuDs$mMhotdqS*|e?~ZDJlo!tZ$~t=x_SkxO|?7$vY^ zllD>*k8OQEw3vj;mcIxy%_+@C|8cy%!~RZo$@7=713qJ~r;OxB##KV-0wV!kWe3)g zrBEEz^wJue3zuU)2($)fGBt!#FUhdGYyH%b_Ky-Cm5c-wDuv(jNEx{o+l|M#{T*vi z5Q#^@&+2$akDWiS7d=RGde|WEv8OlCq}P{wL-jF9s!k#tp;H|-XrioSlKY)vM;1%E zkFN}lOqqB~*DN}(@)E!u6+k(yu-KJggY@)eci~iXq2ZO7-psl z>u$4=0BK7Z35ztEB~&<04P1)lr7&JQLZ^zQTPB!egM}E8ftSr)tg=y6^^hN14cW<~ zp~i-goGB))7}-3l^0C~=N-u<(_RY;O)IL!JRe44T=gtH^C7ZGwmuz=`#{xQ)L&dY_ ztj=>Uw7+`gZ;n3q!n>E4##|@@vqwqnLZtc1oX1LUg^;j91NtIoZ9V6#Q}dpCLi_A}Hnmhg%Jeh+(qUTSWVMd8R3(1R zvG$(-Rv5haVi;Vz%Ji4Y!lV3o;#;CjVtH_waq+e6%dqIUV*y1Y`ipEBGS`rPR)^5y zJR4cw)mf`Q(rGuoeC>g8K3*L!4c~WH?K8)>drKee_g7aot}n9u*yOF&;$h^uAuN9) zxmBVSRr-^o^q1+PV-h}bO@R=s7-!Wil>6QGoJ)V{n8G@tZ#p=JduDC}+ovgB?uA-39oB_D4+^p-cIZ5Yez$!xlFC2YuR$L79Vrh1c<`(RRols z`870dUF-0y5LveYRGzzdWMb**0CT^Wzs z3%vErZZKtG4f_`8QV%?hG3XD_^AujCv3Q@xEei+-r?dq?OIa#K#dnj zHiGAPyiY2DGofRjs7lXePmbBTk}t3b zakidwK|vPI)^g5)hvE#yV)$3w1zl`~p+Gp|?H3v~Mlw{fxqZ8x&L-LUB*L`R zDS`083=_+QMl*4F$h2*<07{#hWzi&D*1RX0ghQHh_qk`o=-Rcg`N>a){&Vy{FTX-x z7g*pkZBPb>UYL1CXx+@Z#SfVS1=RbT(wufhV!NdrU_NsEfqjA6Dl~!$whY4na zZ#rBs4kra5jcM9W0+srtN*|$OvmE^g|GM_I?ttN=LTU2l%sG=^^mar45`&@3mqP#9 z=fdE*Z`nX8Zb^&+ZUZ_Ir~=HGlI}U-9(SOCPNhBlN{#JT$MSr1jB5tYz!~i@Izty} z3FdIU1-pqPoW@PEuzwRy+)*1a{)73fOVYs83nfX?3v&vfyuCu54kz6GQ?^ICJr#L4 zk0*7zno41mwG@bI+^l<+?%DWRzbf5~GQjBFc42kah*NTFu_DqD{gN0HPU3AIR2oZc zCtS;wvSE0{szDK2aGnvEr2&uOQvk-`C79~F>R~c|`0~p(AnN_uUxX2d<_4Fqa!@c1 zj5M;h7uk;ZoynTTk5P)Hyw3?p z!45cEi_w~eu~%DX2!>^FMg`V}SNhJiZ5EQ~MP=GYhz8~0nc!f%k^?iJc^0X7ckE-6 zQ$&~I4~9=jm92p1Bv4T7aZRFU!JMINKZ>xh#O?7k`v%)wthn#W_Fr70@aI+}V4Np2`-v zJP-!lmDh5PQ3PgtGxlSFR&T5o)ZKV3H-7AGRnx+V9bRNy#Eu5Wuj3Mt41wAnkEA{D zP8$Ot$Z$?a9pt-Rk}0&#k$n)(M&AzaJ}7P*?D#w%iH(G*T4s+kStEf79{@@#IkY87 z38>O(@FJ50EuKRfh2E8`aZjfmtU`!PfJwuMy~gyD_H%0fQ$lI|SJK-{0#f0Z{ur?> zZ$|^7^>tfG(o|B=&Zh=j?6hSsU58@}14fMKFly%hC@PjBMmwnNeFgM4(#;!z^W@BH zW}Ek}FVW9l<2yEIv(fmz@y1XS2`V5u-?Fg5CCxz`WI8G8B+KadE$}T4`AVnO>r520 z3AQ_A90g0+$`rxuS3mBjgkDIuEjGqGxcT%WnCYkpQVDY~MR>3?XyT8_N`U#^6gt6E z2Drl!?vvi5UHCMIp;Dys=^9F7NX+V=KK}J~f#ih_Xd%qo!Ycc<+E`h36Y5jgDn`Z^*5bfAq-{9(-tumjQ zw(v3KG~U=idycuoNelAZ5n!G>B(J$P(Crb4;W}`TpztOP3NH}Gb zPL}=7|M584RkzpAz5@C&G^bFW=gH28@kieF*{y&2>kr@jzI#`mXH$C7YS&J|F)kZQ zhjZAUX&gzpcxIDqrC6D7s&TNKLe&~uj09;Gb~&*@(vg<<5LP41IBVc!4kjU+AjA`m zf+G7T(X(Lo{&)iH+4xG7IrqfR1k8A6lUML3$Te zo1&$$)B3H*ka2q5j-fH!!({8x3nt^OhIwxH^Tap5IbPq|K^il3c(y_M^opibhPC4M zoMJvv9pI+nFzv~g?_j*W^Zuem8yL}M59o~d^2I|oV2O!XtIlEH9BYak#;#D zYy&oY474RrO|@`W5>b>A#MNCxiGlMJm?dj3Zs`^p>CyR(V_)g^{iU}kuzpeXDV|v?vky? zHR!$qn$k^Kqh^0R+70WqL9xz3O7T=hp1@R`#=S{Q>59ykplZ@St|&!wc0F$XK#OXJl1BDw>Xm~n1fW5+ z30X~k?c@mrpTe+5lm&14px~luH(K;E3Teg2=VkL?hp5`_K2Sh^!?9preJ1qBCwpIB zUZ}4x4aV0fTZ26>E6_p9Jv6F(cT!21=cM@wv?Z6RnCv!dTWC;SAf1|@1XmvAsN^fB zqnQaVy=8pqD5K1=CwPW&0uqdvCo>B#^35dMK0i#rtU|PD8^T#=0SOun+rl(}0O`mk zEmN2wOh2iEX;U*vC?%ZAPHSxvQL5uRxs2@tw9A}3cN3_#v z@W^|@=-65qedTLhdBf#l9K_R=InttbeYi46FNK$b92IK6;*EU%$R+oI0xAS8TSz5uXA2Y8F-OFd&YAj=5d!N!;lQ*AYg?mlxEB#O*;#vhDje~5WhC``EL#m!=x zFmF1hOe;>xlmXG}>0Ce!Ov1ujEFp3MuQQOaq%-Mz_(h|dbel7l--R}1r<76TD&CD&wJ9tv7cwoYjFfNHxL@``?gItXNAn-k2dKdJ)XnE!JlVOY zJMQJ5N6K#0mud|4!a~tcl!#gxalq_o!4BSRsxd={(hM}4bi`R*$^v~FE(D1eaf#sR zbY1|*GVAy7vZxgRIZJX9phuUQ&jC`4SEfjSE^wtrM1o9{aGS7-V@Dozi~Rpja2# zs%AAHGow<-#M+K-`7Frn$b~!9pi2LPzxveZoB#UE@Wi0#!RH?D9OdyWQVz1rc(_KiqYaQz?x_Yy`8tiYCEckj+g{%@!$OT#hZ_j2A?BrjxQsc}A_PxX3rf zMjaX{63LPGlk`RuiS5No%bS8$%E@0$A2G*JA_2n9W5SA8_c)EYe75!0x6v1+E70U~ z_R_RTgWAibGSEM5Fu89ixCCO{Lh)#hRVzxoh}?Dnw)s+$D357H0*{Q_do(B!CMg#l zkKY5z9!p=hkj>cUoiF~^tB>EaedOnE>@*jOynbJQnCTigDM-U=%@Qa)2XEUHpu%%y zlFq?sMQO+gGpnOPS(5?PV+s)qTo8sedO6g;@|DoK|9)=u zj@R1wS43i+(jqXypHZlV_rBN8E)Bo@)i8LP{wOA~-pXPDMs(ET=I6)D5^cRSN~L|8 z2ODOXLiW(F{o2B{^`dd5xpDgV%J{@qm%is9EO0bcN1_v_QqGp0hpEC#5=(c~pt@~= zHdFmjl6vZSB#EK(%Ollm0xH4maA_-h7Pu^2BVGg&H?n4N!mqfhN#t3zsI1O0!N{%0`lrc_ z1;3&I8$8G*q`GBJ0%{vP1S5^dqfxir_#s=c#PLdkmq*A|cnK(;e2Fa<*dsO32x-pr zQTWO;_PLwpU2IyTsn6-7%Bb1a3)kQc33LGQus z-Er&m#<k&YbmXi%i3PocA1lE9c(A;6oVY^t;IZkOAW zuQ6!468a~v*a%8k98Y46T?#3 z051hJCQZMj`0Pu+-tM(}wf^A78n+y-peMEO^EA8V?_+D#5w;sI4>+zuFN4_%kW2V1 zIaw$dc|11{mz@Mp{m+`sgNhk?gd-9uunCgroBumEBS0sa$L)I*2*o0e*j|oJY(4c6 zJ4eujG~)}aG|e=_i)#oX0=kq0w7n1oQ?|68*=WRurcua-FMiA??G8hw&16(rqFz{K z+eluj24gahQ=2tRa23w~h+RcmXYW4yY}oK79w8Nh!XfQwD@6$MfX&4tZmF|d?ufFD zAmB^cM_5*qtZ*9KfTPDmeD8Voe{z(gfBgpQ^^1J+CT%F;e7#J@U`ct|X-{cl3H=HB zrSwI|H_*fgsQRK>WfJZDr!0*^+)=A5TrqK(fhL{+gD5p8(T~4$uD!do`vKlE?sH!H zdDb_NXZ8Hu(Awb)itgUacljdF5S4VTG0GQVK$|PEt*R0;J$viR#XR*(W*Sy#KD5h2 zAFaXuLOxeH=FEt?vFY7Sb}EUbchU__`iX@T))+g9lO~hE3$F?0Q3+=~y!`_w=^xfZ zM}0&DuGxVKV4LmO6xZ32qqHV?pf5EdVKSvWrmRhy5ng?@3~foEL@|eU&K3N*_ zFhja%NJm=jk|F_Tj&6qh+b`PL_}Yz|2I9-1>P8ri%#VsEBV9Fanwa!Rq|u>Y;$j`g zFd;HedE5F%e9I z*wwFSQ8pl_Ocdv3i&PLW&!|7Zk{XXRsdm}NWRa-IA5kfzn7xIusPtpyF{l_|j4I<| zS`}7!S}Qc)EA_CvqP`*r1Q19GXq~-`%D3JqS&}f!wie(`CG6Kv#TN-YNPWFt-M#lB|Hl$Q`B$&YzQC1I(w zB~M0(=+boQi*{eSgcrXwv`l0y4#F&v^3lJvDCre1Ix*VJB3y}jfnoHkoF_gtvhvBM zH^p-Mrys3<=*BxwT^{z2H5=pqjOFsv(ELF$O~$HuS{_&XG|`ajN3RJ zp9tsAHaeTj01dzjm)0ONN~kw_{ZcRV=zs2_ZJOLXy2w454TLdPA~~cid<}S#k>j1V zy-(?+rN(p`=vDYC#j~P{EDtkuc&sul!oj0tE;E6`Lt8_ZjGM}ssf zSMrm749a+#(#3F63K;@v&9zQwS|Y-3WB3jLvXF93RxC#^|U65Bg)BF=|WNZB7k6uMw~+B4)ua*!uMCP(FrGS|GkFI1Vtv zqHSbaQL2SRXed;fpT&)k~@nJJ+tJS3;(} zX$BQ@if&<=F-oh!5Z$4$tS$uc-q)#SqPLv>r}9#tH#YwQjzFToYgfW)K7Lfs@h_DP zaMLf?rtj)6cb3Ps-CsoF&oo<|pCrlB?(VS0=!d%ixCjwIDqNFjQ6R`h-52eQzq!Ci ztk_<&bCYJ8axZfAyE67pKh9``#0-g)F+dFxw43Z|q7PbZqC**d38zSR&08&0Ods)- z=puNGs{V=yj6uV=x^5Hi7U3^{?_%gMMO6RgdRRH$4yW!t&b*}#p~h;ro7gO6LSXLK z|3`ExN4J$@EU8>EF1pgMMLGm2l~}w(Fs(U|zhWHHV4Qi_3ZD_>GSv)gK37UnDyA3|<JT{c8#7{6(o5DUvmj6v>JVke-xZ zKH0G^hpdp;!Z^ZV*LYjJFicFDPW?bLF+{%#@%R{5{UuKkr~1=UXj-m}8w2-Njd*Ov zrmiMBS;;L1+bA%U)VXXD_+yoX-;_JH3FxTUWm%en3A}L z!2L!TufQl)*4c+_&3PF4Mna`Hr9ZyE#8@OhC>8NYou}IyB>)a!!{LnGlPC(mWnh94 z+ca+>V_qqdP)-HJ@FX%uqC#TM*f`{_J|3Tpis0zcFB4+?(Db4`Ye|EO;!?26JPvRq`evcZ;N&m? zAY&6k^6Ap0kmB5=PpV1v)m19?4Hn8O%?-Aui7z&fD6Nl2+?2RQPDQ`cc-hhzy!0!* z9vSPOM(0FmJkr7^9^<*gR&3=vZDJbFUvX8pGB;r?QBPt`7!^*Chn6<-rgRo9g&n15 zSMjDnFAhgL$FuP#k*PEN-P(@=qMK6|X!7+n4U;;4E!!lzMv3^S?PD6PUFA?;7l<>o zoDC4AE{SKGD939>(EH5Vgm37Se!j3^0< zUVA+&PVIdZ-a;B5*leQ}cA3ii>pyxStQ>2FANz$?SXya?#YJ}PK>T4fslUr9s|ojw zTV*JY7~p(yaviME(g|)RXLOhiE{N&Upt7S&LKlsv*~5cMc2x}r0t~6Jt7#06eiZ0P z1)7X&K6xE%E}$n6{sdUf$D_;cq6c6LPWh;@m(;}M2wjnBIg0&mnEw6EQFy)pML@d0 zf0Hxoi+td39T8rnW5~z_8A?-Gf|K!##bCMp?d~C@4Y~xD8Ih$jk`zxF`D02|fb~IH zQPSkSSBJFkY(+W>Pd#Cn$K2i)8A>Cge2o#97?m}6;+lLEb-=tIIy+}zmiB<`6H}d)?&qsdB@+9CC-{;yGUAsN%^C9^6N-s&v~r6pmo|N zPhj^v!s_^Nid9lriDikd_~KbTnJ5`4Ns3v7hMFEi9UNlgk8Ll zA*6K25Mhk3jNq!q(^SI*Q{wXkZWHHeDnZrcQ|>)5DWDqe?ui{;`b}YQMQQ`h$x%Lp z;CZGSzd;4;mIA6=Z{A$nIkvp{Df*Q6j*8|_kZ8m$xqP}-cjW5}IYNURVXQwvK;$pe zOqwjFLT_-EPMUPJ$GVUbcxj!KM3JT`)T}pZo4SyKZyoNi!@eE1dW)v@;;yEsM=eQ8 zH-ko`m~jE|_({0Ck}W(u{j`j?c#PFs`llB^zZ0%6jKb>C7s8Q~?eM-Id4TVs(ofd* zwW>+wiQW1Tdb%(RVWXw7rMy0U$Pq%dwZR?(?42z>A;=2P)_M%z?b2eHT7d{~X`w(1 z2d&fZX0SL4cm3E-So-!0VdI78!sVx*X3(^2yVsRRoE@1EqbVsFXR&N|iyw0PRFsDc zKAI@d?vw55mB!(n?Z&h!aB@%Lry~^}U&%?h!&a1wvXLTYb3oSRWWe7dV9y{JUw>tz z`@8Gxi<%P9wdZb*yYFbNw`$|Xd{nSAAh72r@L2~0RM~;qi&ZvzMhS6NdFXLb?AtwJlpAaoW_bP%dp;9&qG#{VLaD^P+V* zOs2(>x^@Raj;$k;#`r+tbVg7wX`ioTNWgb{EHu!y+1+MC265ZB5Kx46^A>`My|v9% zKlIW2>@tsUI>^AQMFI(^j{WeVQG}6sWqsdPo4Jz)cV0W~#G3IUB=7f>Riz!b^%md< zZCU6sHt$I|KhIN2!uj)$ny^0fu@eO=OGgI7@js%1&a$22m(doh-R?m5q{3WXPfDdK z2aE(!Z^{m@UB)`?$;;ia%n7jn;CjJ~KXc)xVga;Tu@w5j)X^kE_QPHbJN|X(#QfYXdnUS!nuJeW7CGZpd!Qg)11Uk<-q>NcQyzZw z+$mO?n&H%a+|$lF^cLX~xNUCZkic!M_c(ilAl_gL8}`O^1e1y2t!qQGcdjvC2OoB? zfE`trv+>!EfSf?^;I#G4ML!G_4~+_#+UT$|jQk(^@zt<;tR3F-f%|RqbF0m93k25A z9Esi}yh=IGxKOK)tQY3e%QwQ!E4$(M{@FLe7B9^rn`P9!po%b3J`#lqb5y5OMk0jS z6P|zst%vPX)w&7PG8oM&N#CN`ngMvFyU= zfB)*w_g6bdF2M~p)fF1<^M2F9NGgr)*z^kCCEPmwRCbSt?UdF>HKO@(VV*6srKNV1 zR?`JqlNZ8RVZwf}F>+?W6eisB;$}b%$ml?e$up$1J?L4#&Iv`{$abfTfM#Li22Cx3 zxr1O1c@a05KOG{NTetdAFilfxR)9$&^gw?L9?`8Gs8bFh^n8pbLv?j|nZ1m*F^PCP zY674%?0`=EjZ17WM&oXhpSlE1_GTU=lzYmS0wl`~PFXfME7ah7(RKC~>&3T$s}&x= zvTpaoa=38uT#pI}YOpfu<))-@S6fsbK{B3l0X-DLQb0d;{z>buoG01x7h5~scZ~mC z-W=bJUim3YdhXojZ(sN*yO+;PNDrzi%O8o}YtEg!Fz(-IZZY#h zErn}jbwg!P|5J=~W{L)pp-25VIc#kn=A$UALlL!Z0u+D=CXsT3R8$J9R+Q=tuOhY- zpL{|sLyFrzf=OiT3n!R)MlYK1YXq+*sz-mcyG@hMCYbG;gRq0UOFw2vv#p92)oMQL z(n<`bbTnj%^GM4_TQ>2(#z5=nDV}>f;plxlr(5C3351p1`|4ImXw<}-pi01b!_@`Q z(Gjf>v8*0?J4Lv4xfgC;=KDhot_EmVZ@TA|VgE3liQ-{etw~p-*-}?QRgnr!!q^GC zJ%10X2jwpw%2?M0?SfH*+TdtYb91-eIB&6s|0y*nY%|=CbN>Cpg%Ez_-0y7tKi~Yw z<>7Gc6Y%RSLi9EOn53jbMZwa|KV^r)=C;v#eN_PcxhuS-YVMDqX>2rauY%`dB>+xS z0vx&Eua$3v7B`K=UJ>}o3}}_~wx#jd{VLAm_d~KLUh0yJ)uf6eszhm+<)b<*$6kXq zv^#>dvc?e+Sif>aM@4F3`A7?Yjs7Def0)ruXPK4}TAB6ru5}xp`|>xKGuGU%ST7;9 z=s2<`Llau^Irg@eY1*&-X_u3u!*J$pSHdwg=>tD-4_dUWwwQR%uXhKWFPf3ittQ8L zQP@@)E`FV_a_}wA26XbCM8V&~jEGplRu|Z_Af?|OmNB&$&nof$<$UxdTW;1@jw}~% z-FoGbE9>E@FlPSUP-1(^Ii=7@WgkPO6u1x&mhaR$Mh^GGN2ueNdh9r17zsYBGO&E#k00LZD2lhz^sMG>Olg z?Z%D3sp)Q@eb!Dl>B}X-L_n95pe`+Q=nf6l(itY;B}8i4mzH^_$$!8upnjJyIIdf! zeLi&0#&o?P5M583a0aYM*O)`uVx_CaK|dc{9i|vn7?nrbS+wiX24`FT1<2Xsb~T;5 z_v8P(GzwFz$gkELRAOy*Z_#a|EB=V1Je0jhKp%VTLP^W7KJtm~Z$9x$e_lT^dVX=S z_*wEh!$$gtVR&=AOYvwYAb@I!nnonm#BrLe%V}-?LC#;*!Kls2X4JMwYLevA;Ft#O zFdy0e z-x^JHD?ISf>Coc9T&}qcRXTw7f=LYtO|tEjr~Hak?QlhQdubdNk7~7S95(68>Y5|l zFAa!wg@81{RT2hZaxapnju}1owOirV&E4?8+qqm81>k*A>uv$QpK%SUZi~7vOK5s^ zU$lCs0h?L~btz{vsb2s9KFLW$K~z-fks}GylxHSx7PgW({aTgAv@(|V!f|A+SgGap zV@2NH?k|5y6+3wP>8Dl715IjR=EK3;;>KUSyu%8|CXBesJ9mxjBMB5hm8o)+5{=vH zgP$IvuUS@x9>mYGv6@hHs^6t~P@PYTnpKQ-VX;hrGFutG29MF6@(^{(&-!F3GtXZ_ zDy3GZ-BABc(=&^lf!Fb4HJfdgOk4Cr)x6uJJ3?S*;1N_8Rx2NV>j!c^$NHg`w{lKq zs=7o^EGH+jZO6neec+ufrm!^sD#c&`p7`*#x+QvI`C>k=64h-pHT)X3&<$0On^VEs z+tJ!Sp{e!5n>`woq{cJ#MTG{9I{dAl`{=FiDEoc1;8_&my8vi0-CUCrlopV2hBcr^ z0(*^)I5&%h8_Z{F4Qh>@_Iev4xH<_kLcsKi5TZfb?Axp7UHYue&>Pz-D;kwZz-;o~ z5*c}xy81I4YJLxNyPCkb9iD=AL1ogEk*1S&w)>&IBVD7W(iUY6gO8@Y zl9jeP8Zgf9+-FTX(W> zi;dQ%LBXT0hx0vZ>T1r(U7<%WOotUeJ=!M36r$l4el=`fhAAwH#6-yGj($g+08$h* zTU*Hw5o%#{$xpF>wm!iO%?{JRCRYzX{IDgwpaIWq%sc_z1KwL5j#@j}Rr2fbZKF*J zvItYvAC0$);PAqU*?I;rqi;_f(Hk{oS>#9sw5DE_&KfwMrcrgot#-h~{{&e{Q=w3y zGHyqA6glHjHNqh0|5RInNL#h?B&bZh^SD6F$FhH@bqDDF=Zn3T>Q6$PO3Pg zDC3acYM9FvNkR8@4H?O6!N6hn&v9>z@JXociD*k8ufH;2ABX4bb`?xvMl%laGrFl! zvdqw+oaAlq_Rw5+VD=TzN?$bl#}7O)_+;^sFI;-I`O09c@h41?oXK0YALS+QjNq0E z2SaNnoH*1s?WLopSLi=!r~PqlKh=LC&u+TIuU@paNi_m%@(|w9zEHkyvx5fJ7+?BW zN#a5W3EWhi9yGC?2X0%|lW1JALWD#xQ5YjY>|*#aiW*u^D?c|`G17#I*4i7C%|5QG z)QJusjYk}n-xRMU%_f>_nR(GZ8hJR{GJ8ZD!F!BJfLO^DZ3Ig5mEA2Mxh7*Z8&B&(i+KC}k2LZggg_hv5!r)5u!XB?A9VN7nr$Lpuo25#ys8->hI z;q0|`ao>TtZ6CCPr})|IiQdk2M)F0tO!IRE&S+-a=uf}qRY85lNpF$*qFSG)D`$PV z5@%WR$l16S&+dBWLN%gST4$PxkMJJyPaKc^-u+VuCK|U($}AW2i8Lxv+}A47fGZa@ zaEaxez#rbF(Y=~_Do))q6*AEwD&{?oTeCLhMQ2h19&v}Z336n)rF1-d@+QEASLL00 z!~;@$m^^}YzfmUuGdR#fEJL>PB5(B<=%?I)xt%my7LT7xeNny#KR&vXjciEOf1!;Y+{B?vZAN-D^#%6ikyMmCw++sttA1{?RJ__*krA}&IXPl zD^6opy7=m&Wig>|LR*QWLILfBjiOi9I@VmPLWkPmEg|Lc3a+LVM)fyU4hg3&HP&jB z21>8iSStr&byf6830NyoVUL{BeKM6`^IOhdRJUj0NF+Gn9jWQl6hdem&$9aV&h9PR z)KFvoGY&_TRW!3%S?FOkr~$XuuQ31GxKRun*AUW8HvevuxoyCU8>6i) zVDzOyli)_`?gX>yiP?ZOigv-X{Dj8xoW@rTa<>cEG~^xlQijR0gsLwYuRGD=FN}w| zZFG9#{cHg#PB^JKc%`0Pi{DmJuF1#vgMM$PK`rfLXihn7RR3IHv)-4VUp;m2W_@w- z-y-{Gn~nTG;!RxI(aw8H1p{rArv9Xa>MB$GJ5=-y`cKjp$HAtz!ZlAW^`w3%mB-;{ zMqca-HPiRm5R+F*W`exx=u z>k`_ydBdUiw?(%ZaAUCI26`ljGEt18TLq^|A_FEt$u(`wA2izQD+Nk@wFnFa~0>DP`qv zTI3sR%H+^T@Op64Huk6ns*Z+7qfrO-z;gs{2j|R=WKjy+AT^<5Qq2N|b0) zTkG)Je5{XUnYxL|5C03Ux_0aH*t$F2AicEK%D$nX&awg{X)m0c`kCwbD-On?GvD!@+6JGOw(ZFoielj5@K&enNCs89S57WA<2vcNtL;Ila~gX zHaE1(C<{l9E?G-ZBHhPP)o_|>(mDKvl~GvWBHRJ*HSGkiH@$V55W%`eQ?E_@(;ib1 zyUYZl=1^CUckCShE_tQxdTe;nq`&51)vpy_#S6_Ye!Fl} zEru4C?INPrHXfrvxoLE3c(l8HeCN?euWdc~E76er_xsxi6M_q2fuqj`P8#mZoihyRIlp=d(QhcX?gW?Q3q*PvCLp1-vA z7-4EHa%CjfM>cdsBrUHVKIaH2{L=n&-fMtJXI+Py4$tHy;l?v<79=W%QiWsGiCH^)SaygphiD@j`t;!NsDQ zWBNxNxQ%fpmLLg!zhoZneJf4k$=zqGOphsuO>Np>ZQkY~OQeT$h$n6OkPDoBTG5(3 zf^z-a^vx0eut@n$T|fbFT6NNn{OjLhF96ph{>aZ94JYpDgteoKq-U=}qDw-5J5!An zuWxY_MUVA)(@K;C*ULTOmxoj_C?^m1dWpFUY7&DRkNmmyL5msj!Oej z)RsWP>;@>bFVya?Pw%J-I`0thY9AjFnZ}!!8XmK6(!5{&M|AlM$WQlgZ`u* z;j~>vVv-&ih*uM=X(&zCX;8Mzw!URtV-dO_kp|;J=`VJk`Hf!=d&M0k; zbnAHR$12{1N2#Vv3fL2Ftcevc1wZR46S_mWAuy;)X&IXjg|3a8U4#qGU;`y6Q#*MG zQ`KnNj;EdYyBbmRL4&StV`;!JQ0?5}b}D8G-un|P;V8#OKKPSoxvre!B5O;wT~Dv9 z-s{8WE7H`B*jV2VH?DQVx4+S2M-;6T|HQ)xBb?e_58K*oBWW)# zZ5^so?^uI6@#oViQ1k!6Cw7Z>Kl+)`Li5?txb_dA!aLC#T4uH$CiX~Mh7iR@w$7dV?EKESyPo5Rqwx_$l|Br>n#lJTUBWZh>>J_G z(*Wl4m!-lou~lA9XFwczqcsauzO;`9IXfI;Yp^@1-HykBeP8Hdgh&VGR#sV2q7~`f z!yGX7!;dV56*fYD--By*`0gza9AoExozs}{3LdLy_;?unUQ)NU(dC72T@P1Y*$KC< zvGJKx4l8RE3_h#br>Lb0n23|7j`lRyJkA;B44lB~Wfo#sC&9Fqk5`P7L*u)OVzgU~ z`5qAFpnajdyWhDvf1dpR_Uca9;xu@XU7_e4XfT@ip~zxv%4Qd`)YR`8%}Wq~lMre^ zq&q{aYw}K|7$r~{xk)m4h}aWm0i>zI&2h(sjx^dzYT@FxIE6JpgX*G&IG5;@2=MSm z=p=j#%x$inq>stz&*OKsc-rCQ-Dpk@$E`48mvCxA{?!PjQ=^f)Hkat4i4Bgg=q{>= z&uhdXqaE25#nfI37@#^7BM$o~SgUtKDP}uvR^!K63mRI3p)Tt@*t}{D3Tn%?vh%)w z{&OF_k=^S3J}V<<(R%MjbGCW3^ALr~^eAuA#a5neVPCDqJBr#!s`{d8<%LljmuqZX zUZNw==h69U&0R?g>n{SP%%{pn960!$*f`DaaPp*l%H}z~>JBl1m*mS}$))2Qa;>wX zl=B&sF8eY&T%Mup8fQ=_)gDt7GVKk$=f0!iy7eaV6a|3XFTntV#T`Ix)YOs$R878}m3KzWmk393 zC|kVU+39m#PoL>ADuhLn_z_!mmBjGKjKi>G|F+`b)Se49Np0p$KE2+`2esP0;fM2= z!kKe>^=r_G?$a&>z)bVfyor>4=}Ugeu}}7HmT6}jM}XP zH%H7}r52v39Ht?reI}klq9>tx|L9!DTrg>!=@DyXXFuAHM(BH!obcm)#jA zLr(Y<%Gab1>a?lD%L)@m;)`uw7Ixl;E95$}tx9A2ENr7Ww#hyARiLRtmMD#D@*J~J zlyNP>m>>w&;oWv34rx1zs+~l`P&?Y#GR5i=hqWHBgLLYLYPDxV$RRUMU=ln%nsU04DUWmDJD>~{F(2v~-X-C0(5-IpP21-6>)j?x z=eNz^JJz6%y}BZBu{PR1u{Hc8d+X2gVW}SlrpeWWEmd}>hJuIK7dS$-i6p+yw$?Fd z&~T69h=04JYp<9|s02G2!OJ8odMdw@aCaG&xe%2=b1FrdN*WDi zu(QR>!;HcPyPDeE!Boy4&Z3<~Hse=?MH6k;l&@wPQ+Qm1YEU&`*Z&L8UkX<)?SxN# z;%ZpunsZH6EgaFdaCnFIbpDkEjKs`(Q|N>bWq`w{Vpz*C6R9HVHPr8r`EXpc6OBd6 zzS61nxg=3*Wr8a`a|x(EK-$c9w(h|A0Bg zrFx&+A}P!(t(*(-*=bT|`x*sUU@AmA_H?_wR^HqBCM!w}&I!=hD|BzY7Ct2<_8Z+Q zH?CQu5HIy?tiS2TGr`ROc(~&gvrPxsTtozx*1UC#Z+l##B1@FWNXEde50}f@o z#uR-rnq-!6Uc7kS1oQWP_gOoM+Tf076erwzN`o>90DZR1A%9 zS0iv6J_6&t`mxRkfMR>kkWFyWfW!p<9PUYd7Gl?tS*F}R0zwNy5)>ym9E+dea z3F=dzktXL=C}~cu$?Lq5mYvk(RfUDkXbg>X!c&`>r!}ZEL-xFf;C(fr!wcrH#`6=r zjs(iDGfH|~P!5ah^@20aNxxH5O4pc@Ugt)>t#vw{Xii-VDM2<(R~03~R2Id}d-l_e z4y(k1asM7$g|!TlLxRlaU{(g%5}UEiF>37|=Tzlw%xk7W%REwFLjIQrS9i_~j{YGV zMegf`#*ZVMTH!oO9p@a395Z7RUTpL2c_PlR2HMoytsCxG`)h@Db~bTo7jvRoQQEOx zO|%I#`EFEpH|{QNaSM}ru4T1&eB_*`j!d5TCa#1g0q_#BB&kN~CTsEy_PFXw#1X94 zHo7;$lp349ri=#v63$m%xn{!oFaPhahMRm4;>J~8Yi0;K)W4Q#wR5Uuf)Y*`Vcjc9 zNhL@SW<1OlZy6|UqJIZ)F>`;JK6c(vKvr=Lw!4w8!M&lU20D#UuUj9O^ec4 zrw?+IDW;ngas&Nidu6SOqfi>j>(Q<(F+l<)qO_w)pX}DICiOuh11AlUbm|N*5=&l< z<(PzX@>kW{((tMb_2pQwi~A~BqI3=NYI1!o()4=Toz%Bx{R*1%#WtRCJG!_TiEgr5+GZ_jksC)i zN68(KOEmas&{UlGMo+jjaV64HKoqjQ*b|XZiAop$glFRO(EV+}PBbXZJcMgU zQ;$#WsL7Quxj>2X*VE`cl)4q$eBNfAf!d{4wt3iud`*77I1<~ZD1^pOsIRccO3shM zEZBZtKZ=DuzOu?gd@@T7C>t;H)^Lab+{V1-8r1W8_`(G%I>(p7X74jQ&F)Y9+fX0e z)9Zwvf}(p-oc9iES^e9sY;+5li_LLOT54gJ3t&m9u{<#BYU(1qoS`93bD`==NwB@p zmPr!nq#B5osg~Q_*fBu_DSsuLf{{IKV&yWgK*n;{(VE(wbDb3>we?$@+FQxJOKcLg zZp(D?eSNb69rKw`U7p%>(xFTnRIXgT8MYA4&wcL2aFwri{F{Hpep059R=G!1pR>_1 z5}Cf*cojxoo;~>qsA4?c)r0fFIpPCY53eLO=brGgK#?Bz>KrQuCf1HqliM4E7Z<|Y zKC%_Q`NZ5c`PW^8ikb`O!nm>C+U)Pv*CCJjQNF>1jHwy4bMvUv9o*XAVg*fFR28m1 zXdTg%VsN2!LAp~-C}u~7yEd+d#2C@L*LWO6(9Elu(khb8g)%)R!AX?wP5LTBBrtk3 z0Mf*}j%#f2aj>iOGcR98YhK)8B7T?6AbkXu(Kz3C73-v5GLWgc5TB3L0|jY6>eDWh0i{D!!~`a-w<5Jw?)a9 z7d+xcpwqho3Ns}=o|%Wcf5wh{n+dFX9Wh}-2_o ztG@Izr|;kVqvy}FCV$?6QyM9#H_Dt3P^nhb5Y!t6m>SL z>X%zmR1Fhtw=*u7he;Fh^Gnl7x!J2eZjI`VMv<{GHvE+d@N8bMyMR9VXZ7uCo7}K?mBMk_miZ-Eq_ufY zCR;PF4a#xShUUJA=j44Z)bT}u^5T2w;qBR!=1+mDJ8@|iMuQ_Ys}8HF=N+B(;o0Rw zKx+C`4Q1U6NAhSEKp3@-ubVA)cjGrbx3;NRh z(Xhv57AE`JvBoBEy(k!+))YZTQw-YktGIdPsRFtttcJ;bJG`^7xAQw5>xhX>ai6;G zF>mqd^XBgM-7c6@Xx<0`HQH=ml&mlO=7rub|MPd<==SO#ryF*b52wA0Z_;(1Yi7C5 ziM+yPPx_|&5>ncv*=lp5xr63xqe1DFai3AtP+Ij*SaboYAZQ!?IcuZkjl8{C4 z^4IYVQ2W~KyRgFCC;jHHfAt2V=}iQM*;;M`(KL^QGCt}G=vF^Ik+{u@6Xn_DTc7F{ z++=sV&LmyF+D8D#tOT*F!sS(4?CsIZx5&;T-D_`s+oPsDjh09UO}w_x%`=s^LuK$< zcLDTrdAOI$QF%NC@SrJserT0n31ZqR`N>WU;bZbpU;p6yNu3q$Y+Bel(Oj`t4mmN> z{O4%&)vFBU_)-FQVMFX7%UXSu10SqMn?|UNTwoYU4^>UBP`*kjH2CPzv1b-6B`ajBOkAC%QlVuAjT z20_~5r{eb0beE=mj1sF(BWdoBm&af$5VQVD)NA5&{Ic~pnc|DwIzvf}v<;1A*6Q`< zfBoYP6Hwj==T-LPKYG6Z4?lhXQ{$_{Z`XIjpQ3cm)Z4WWaQ$-U#a2G*Q;4_jaKazE z!+j8oG>J>>zaOAWd)#a+t*QQ>1lW;M(2@}*oCpf#E9YwPK0uy6%pevx#2L$qz>-S%&GhTB&Jtbjg0h1av0f;{Rml{eS*{ePEjn zSeydQI@Hw=Wl?NG5hp3=Ek_Y_4JxtJv=hQirA2Jc61NpvR@_X6?ybUl*pz($fY-a; zf6-xQlo-uxE>b(~t)G}`MFPq#HGBs z^7MQS86X6`A;$A@yPB!ORJM6>4mVXF0P0kd8Pg)XskWlT-q3+BVtdMHzmWoJl(EC# z>VVJVjPmi7?a}DO$60Ayrx_Nn5=j4k8 zyT6DdLM3xzkt@GAt^6@)y2L4LuSSSqr6A0*y-XM3Y^Sza3 zRiSV)5UR3bQ-yKkhRqJ>n7Wyn{1VzIxCx|cd9rF))m@f%7H^g1tT=+b=AR7w!+&8I^YOQL#y% zbZNVu>%(m|P1-^I+~E%+a~+HKYEagvTax#rYCo zK60ZS7%e+E@k&DDV5WRQ9FK5*2gcDj3irG1;Z<94bBj`mn9_`u#J9t1U;vne#xyz| z#TV#`_GrYe>N(~O7f@+V(Q*E~x@1oe|8nDP-&|c>zPVUyeyYo;{+o;SkE}MvOD}bb z(FpSI+uf=!6x=L~2JO)Y)sTc1H7p>on#hm8m69b6&A!2r<&udKppt0fOtF)I(lwhd z>JZ)WshCppmGIHAw<4!=(6m+6l=OMvY_@yCr}0gq9q&v$UWLpRK*Al`>2SZLAd!VT zYR{~at`cOU0@sGdRYv;udM~^Sl z+FkBv#h}Mb{WhIa&5epBI%HR8l%V^Xq+ulCUU0YXv=mA=`?xU8hVSQBp58~4J?{~{ zw|nlCZinBGCWRkV4&e~Y9vq@o;j+`S7ieC>!-WaA;WG%I_^&VL1@;+)0jQG4i0fDZ5Wetka2qv8qH zm7C-B^bY6Y?swbZJh9tEdU{KT$NJLPlkkMW1Lk`@8(XoKM{~m%mIiCbVf{|NGg^Mv zyZ)!GFMjdA*AloQjf(HO1{Iazp{GZSgT?i1RJ+L_gPl(K#x}$DEnc4?FPR1w@r;s0 zGfpizKdQFe^PYn=il-4Nb2W=1USm_uvx?foWjo!9m)reSnE$`MYwL|8xz61^J;Na- zidspOc2}~cESSAOLE?oR1W5p6;a9^8BtZUyk%v6w7w{o(2@oK8^AE_&J}nR+2$C4Y z#(;q&0-VHL#9n40E85kHm*H@RbL(5>`%cyAuIZVfC|lko6BaprPMtb+J9YYWRdsch z;J6U-q87bw0qg#`f|A5+I&;Ha9tsw*>r@<-+WxU<{L^yUHpJ`=8<%giTgg%u50|-H z!lrk7xLFNm_+`5-l$Adj)qflWx7&{fAGg|LeC)Zlg3WM;QT%2fA6ETVXIMm7bUjL6 z!yI`d_&4)9RyQ@!2W53_gOoM5B=K@IZM}{t+)hBiNuB#cOHRkI5$EzEXhxyINZyKG zHH=NemdkH2q2nS(183mkvjkrKpXA55wI8SD>NMYv14d-(j`pfd4~UjuVHxJ~ zEz9R2VPsYea$&JiVHntXI6YA25$ALGT%7PFN{{@Jjg zC=CWpJc?+7Ty7*L=@Gi$Or?ckjxb(?&ge|vB{N%2z1i&TRlhPOt>@xD%A2X%e0b;J>Bz4n zTiD^4yNxs-JeWTHDg2qq=#WjoJQgEoa6CWC9w3Dh)q&s+T^KFq^Q&@9<7h%CzFj~ zldB3>6ntI5VA-4)%VML;SbK3LzZ_qS!^_79pB_A6@Fpx4-I=kVEX;eb`L~j!Kg!J! z21p0v&>RlqsNe}9f$Uq4`A`g!_*RJ(r%(v35P-Y{r|BuwB-Kx-jp5Ty!dXBmE1*~? zk6HZ+%L;is&!w@D#+-1FG#zCUKQ0m#P{S1}-*chFMdwK(!UC3Mv4~nmz4{UvY;#%EPL^2rIAEMw2RXqc885{ zfcel#5wS0wVk?{+KYrzD=R>`^oQP7Si+yY&$DzYeG4xQV@TUADJ0f8l@Id zELV;8LWwgjor5POW&4I?J>4HU>lV>wv?v#^Abz1{a3RdSEJ~U5)5@O-YdUhnU;!*F zDJ*E%&R2QdTjkD<1+`_yjwE6bgAe}Xualqt@%_%TTg?yOGRfWDrQSPnWR}(r2RKm~ zYn+y@1l*~49U8>Ss`GKu)IZIo+%8;2qR@+1aaycO&kOO0ih7~XMH#2;8%hEwh%1Yx zr*6k?obrc=4v@=q(NFt|$-{uw`IH1~BR=pjv4U)O_4aKDylg&2hK8C2NAt zW*@YYjtTzsN27O!gJW#)u!r~Z`?%L~o`f8uRy@|5jup18N%#x=7Dl(iwtYk5FZRd6 z{BnIn6zm1vN!9nQ+&n&JRVmthQNB=dm=TqM#tq; zQ;A4IXXwJd=>7XaL~Hu(Hxje7)E=AU`ffJ4`@5J4UH&}35jRYX&wKb0FD(#^74An7 zFd*?#EPqD232! zkahFNB1A>3L;QTGbwi$2Q>)ak)%{rA4^3AeLF+gISXo z+2Es&Ly^d8)AM=#Rv+v?#J^~v1MY^?YyL`yqV$X#$fB6Bv_~^Yl#DeAyK1=4hQLGfBxUB+FV2k>SYyyU9xcY5l%`_QO z(x#$pi2w3VQ=A8>1a$MlGxJmzl9vXCW;PCEd=497 z;5)&dD#5ek$+$D@Jvs^k**-8h%L-anN0IC>E0Si|8-_&>yW^xVp*hr16xa%Y*9y~k zC&OvcE#g%!g+3o?iyG4BBd&^Ar_W2b&U0!%5|i7Ma84xBe(~~ZilWu?Gw|~)pY=YG zIO5wdmXZ(nLlm~t%qEjoitSp0`=Eay<*dg%YknsQ6#xDowQgqd+n1N`-MM}J-9N*- z+t*Cg!W#&D9avyL8L&WKJ%zOm!3z17Y+eOb>}8lE%+N~)MXHp^tA#~|;xxW0riLqB zTe$MObZhY)wFJtqP}5ZgrEB_1CuA7;!{wO}u`T8LUig|%R94&1iLf(8S-!NH*{SUy3eCY>Yo}Tc`=nAxCv7 z5WTVK70NUeQCU)XCF>$Z)IOd|u8gBdMYmY#cSxxS8leVD{&{rKxLFQTd}Y+AB_|NR zDH9EL#F@UK3}e7jM$%Li+5ik%#4=io$b4xdk+{rI0t!xpDKCETwPt|>+mKsku;;wV z({PN57JM@vHt>=K8x-bQ2aofKDN-KWKFEg$+hIQG9u9UMX5(jr<1aozya!15p@{CB zDQI9?jVx<6Bc3zN%|}ofR9|HZ$XbCuQT(71UsT?*mTs(AMyMkTEudqp6%0>f$rAHITu4TJCkOjCoaIAqn8oBo3A7Df zd{rD`A85<~nsk7;u!r^z8SsWZx_)Q5Ed5Q%fTP0yF5NTi(vbPj6|mmS~IXE-EvjRt(ht;8{RSM zU7_KckNSlT#L}+}4Dj)aLof+Kq`D%zY)fwY#1Pf6S-8#UH9u~|#yHdzLdeQmLIojq zFGE4(3n6C(SuT+iDrfVDie=a%64S)ktrR0`lV&FCL&(_R1%sNxq^TKUa06?Zn|(sW zz&5WYDbk|@ZYVh(?01WFfGtsX`(e&QXW9cSqDR*@#)rF6zITYT!W&TJo7i&tYf#SZ zZ76f)&VzzhrL|bm%$nFGlXoi4NdejlCH15pLa=NNZ5)MUSH<*cq}TnVo!V(+g&I>sFrs&(sNQ_M&cZz7P6$R#VB@`;?A`II|XFN3sM*?S5O!(6dHl>A9jCZk~ei_o_BS$35 zn%es6wem|)84Af*W+l(SMZr^aDUqM6O@^&3`T;1RcY{`!P zqp_AS&&FaI^I~vdXhzedgH_}yY-qPA#@Q&@5sQfB1@|%W3* zU1^Rn5QMPV|6#MZ7ALT(?8T^|j#Z=hp(g|hyQgb@v>ANr29QKu%Jzvn!(S50vO8pf zB~*T-DhY#|eL?)Ok4TFsC4kOhLjmb87Engs%w~ixB9=51*dT$lvHgMA3 zl38D07lqqGVZ?21sRCNKvm@l~@^JVM9OKF0+$gADjs3>Z+%m6V6d#VE5SUSsK9p6= z1&ZUV8}S8fel~M)l{#+%>q<$r350>JX{|1IxalvxG?8(%mSz zOhEgDn!7tUiAN(ykYtQfuy8CY^$>{6A42P})#MO4VsXz15ToTNgyky|Jg_lMgF#_2 zKEUW@lINoiW_FTnbkxCDt|_*!>Xlc=xl*_@LJ8u*?vDsAp!%wAt55N0eDsB0Vkl^+r;W!7&BfWg|+$gAD z^*FwUzB>9zaWTOrVzQk*J6GVb`iC}m?e9ku{P`A8l9-8C5>)F;ScX_cnvH0QNCTsE zgd{>mara*N!K;=%#F|8=H~<}*m+xXsljP~B z14EcJvcnD@=s*s+omJZT?C0oP9wV=xXx~sRVf`am77}hlu4`-75^~@|!s_a3Spi}A ziZ0J-jjyOw^Rv~mn&7?7_&55EyJ744ouGB|&taWz;}LcXN`Q|9Q<);fQhPh^=hAY9 zkgH3q;6U$N`9o;jD8&3>42#Io z@+3vy5Pihn@g7F!94$YU8v(mk+Z*BDJ-lCw&4V?Lo-s&Ph1=S)1-6fK2AyelE-h%V z1(|+poM7U2f`(5`6k@KcIBMe0~(`fnl{oXBcf)QTYhPg$z*)k z!+z{(V{|YGL!Rc&lP#K9J~&J`Zy2RF(g^UV_c1%Bu!xVXMST71EJ$##wTeEXH-EVL zGplIcS*RkVS%r1v^9jzU1r=HEz&dea8H$2oD8}*_&7;lK0*XGW;>|XW^a4SKg32Qi zG1=e*P)LrmbhM0f#qczm z1H-!|?;K&)C+&9j`ay`(Vvl}^zTuF0@=Xf!)V`rwMUXtV@=ftv!o)U_a{h4rQ2ZX} z|4DRl3!c^Lx)t`^d17PZuU4ZQOMeiA&AZK|tKY+9;k77_c(fj#z0iTO329MTRj3)> z%27FSP7ekXGEnK@Ih|rYQC{8Q#LPolLg?T==s2$sgA~$ubj1?lRSLeDjtz$Cb9Yd>Q3B#}*VlwY8<}65shoa^@!{prMFi;|lttJQzf8K3FIYjAXP7 zsywnWHZe!&GbUIEfkh8^hivd@mQ^h9z1 z3kO<9So@rglAqhrvaGgg<&7MJu!y5&Y^_R*I359VwEPGP28(#hT10)f%!={-^7cAL z)pXUH6j4Y}6iV>L<#ZA_&lVJG57vso&OZ$=-TWOGx3{0*u|8_G;>YNZUc$JBN6zC# z6GzLK&I$4_FnXRO*Du6e>jVj$Ukhq06$Tp{Eu3{7twrBz=Sdnb$IYunp2vAKXko;TS^TEVA7aZ! zyV@qjK4cs%_kU{V4?B;jfN(fU3>)g)yT|Fn*x(hO(6<;wSB;h{CAA?J*I%Io&bI}n zMZ-V?zx-(XZ(spsAft@7@oOcUa$

;woYz}+L$sxY4 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 HIRgIyWwibG literal 0 HcmV?d00001 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/i18n-0.7.0.gem b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/cache/i18n-0.7.0.gem new file mode 100644 index 0000000000000000000000000000000000000000..6f8cf7357f5a7442166df9e37c7139d8e634e020 GIT binary patch literal 57856 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®g5{`QmlMIzZla$~>^N5=n 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 + + + Desktop + ~/Desktop + ~/Desktop + + + Flickr + flickr.png + + + My holiday photo + ~/Pictures/My holiday photo.jpg + public.jpeg + + + Home Folder + Home folder ~/ + ~/ + Subtext when shift is pressed + Subtext when fn is pressed + Subtext when ctrl is pressed + Subtext when alt is pressed + Subtext when cmd is pressed + Text when copying + Text for LargeType + + +``` + +### Releasing + +Including `alphred/tasks` in your `Rakefile` will allow access to Alphred's +Rake tasks for releasing a workflow. `release` will tag the current commit with +the provided version and create a .alfredworkflow package with vendored gem +dependencies. + +## TODO + +- Make workflow configuration easier. + +## Development + +After checking out the repo, run `bundle install` to install dependencies. +Then, run `rake test` to run the tests. You can also run `rake console` for an +interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To +release a new version, update the version number in `version.rb`, and then run +`bundle exec rake release`, which will create a git tag for the version, push +git commits and tags, and push the `.gem` file to +[rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at +https://github.com/kejadlen/alphred. This project is intended to be a safe, +welcoming space for collaboration, and contributors are expected to adhere to +the [Contributor Covenant](contributor-covenant.org) code of conduct. + +## License + +The gem is available as open source under the terms of the [MIT +License](http://opensource.org/licenses/MIT). + diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Rakefile b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Rakefile new file mode 100644 index 0000000..96a218b --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/Rakefile @@ -0,0 +1,17 @@ +require "bundler/gem_tasks" +require "rake/testtask" + +Rake::TestTask.new(:test) do |t| + t.libs << "lib" + t.test_files = FileList['test/**/test_*.rb'] +end + +task :console do + require "bundler/setup" + require "alphred" + + require "pry" + Pry.start +end + +task :default => :test diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/alphred.gemspec b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/alphred.gemspec new file mode 100644 index 0000000..c8ffb0d --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/alphred.gemspec @@ -0,0 +1,26 @@ +# coding: utf-8 +lib = File.expand_path("../lib", __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require "alphred/version" + +Gem::Specification.new do |spec| + spec.name = "alphred" + spec.version = Alphred::VERSION + spec.authors = ["Alpha Chen"] + spec.email = ["alpha.chen@gmail.com"] + + spec.summary = %q{Helper utilities for making Alfred workflows.} + spec.homepage = "https://github.com/kejadlen/alph" + spec.license = "MIT" + + spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + spec.bindir = "bin" + spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_dependency "builder", "~> 3.2" + + spec.add_development_dependency "bundler", "~> 1.10" + spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "minitest" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred.rb new file mode 100644 index 0000000..00e3db7 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred.rb @@ -0,0 +1,9 @@ +require "builder" + +require_relative "alphred/version" + +require_relative "alphred/icon" +require_relative "alphred/item" +require_relative "alphred/items" +require_relative "alphred/mods" +require_relative "alphred/text" diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/icon.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/icon.rb new file mode 100644 index 0000000..7a7bcdf --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/icon.rb @@ -0,0 +1,39 @@ +require "builder" + +module Alphred + class Icon + VALID_TYPES = %i[ fileicon filetype ] + + attr_accessor *%i[ value type ] + + def initialize(**kwargs) + raise ArgumentError.new("missing keyword: value") unless kwargs.has_key?(:value) + + @value = kwargs[:value] + self.type = kwargs[:type] if kwargs.has_key?(:type) + end + + def type=(type) + raise ArgumentError.new("`type` must be one of #{VALID_TYPES}") unless type.nil? || VALID_TYPES.include?(type) + + @type = type + end + + def to_xml(xml=nil) + xml ||= Builder::XmlMarkup.new(indent: 2) + attrs = {} + attrs[:type] = self.type unless self.type.nil? + xml.icon self.value, attrs + end + end +end + +module Kernel + def Icon(value) + case value + when Alphred::Icon then value + when String then Alphred::Icon.new(value: value) + when Hash then Alphred::Icon.new(**value) + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/item.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/item.rb new file mode 100644 index 0000000..d986ddb --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/item.rb @@ -0,0 +1,59 @@ +require "builder" + +require_relative "mods" +require_relative "text" + +module Alphred + class Item + VALID_TYPES = %i[ default file file_skipcheck ] + + attr_accessor *%i[ uid arg valid autocomplete title subtitle mods icon text ] + + def initialize(**kwargs) + raise ArgumentError.new("missing keyword: title") unless kwargs.has_key?(:title) + + @title = kwargs[:title] + + %i[ uid arg valid autocomplete subtitle ].each do |attr| + self.instance_variable_set("@#{attr}", kwargs[attr]) if kwargs.has_key?(attr) + end + + @icon = Icon(kwargs[:icon]) if kwargs.has_key?(:icon) + @text = Text.new(kwargs[:text]) if kwargs.has_key?(:text) + @mods = Mods.new(kwargs[:mods]) if kwargs.has_key?(:mods) + + self.type = kwargs[:type] if kwargs.has_key?(:type) + end + + def type=(type) + raise ArgumentError.new("`type` must be one of #{VALID_TYPES}") unless type.nil? || VALID_TYPES.include?(type) + + @type = type + end + + def type + @type && @type.to_s.gsub(?_, ?:) + end + + def to_xml(xml=nil) + xml ||= Builder::XmlMarkup.new(indent: 2) + xml.item self.attrs do + xml.title self.title + xml.subtitle self.subtitle unless self.subtitle.nil? + self.icon.to_xml(xml) unless self.icon.nil? + self.mods.to_xml(xml) unless self.mods.nil? + self.text.to_xml(xml) unless self.text.nil? + end + end + + def attrs + attrs = {} + %i[ uid arg autocomplete type ].each do |attr| + value = self.send(attr) + attrs[attr] = value unless value.nil? + end + attrs[:valid] = (self.valid) ? "yes" : "no" unless self.valid.nil? + attrs + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/items.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/items.rb new file mode 100644 index 0000000..eec3721 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/items.rb @@ -0,0 +1,22 @@ +require "builder" + +module Alphred + class Items < DelegateClass(Array) + attr_reader :items + + def initialize(*items) + @items = items + super(@items) + end + + def to_xml + xml = Builder::XmlMarkup.new(indent: 2) + xml.instruct! :xml + xml.items do + self.items.each do |item| + item.to_xml(xml) + end + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/mods.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/mods.rb new file mode 100644 index 0000000..01da3f0 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/mods.rb @@ -0,0 +1,22 @@ +require "builder" + +module Alphred + class Mods + MODS = %i[ shift fn ctrl alt cmd ] + + attr_accessor *MODS + + def initialize(**kwargs) + MODS.each do |mod| + self.instance_variable_set("@#{mod}", kwargs[mod]) if kwargs.has_key?(mod) + end + end + + def to_xml(xml) + MODS.each do |mod| + value = self.send(mod) + xml.subtitle value, mod: mod unless value.nil? + end + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/tasks.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/tasks.rb new file mode 100644 index 0000000..1e4bde8 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/tasks.rb @@ -0,0 +1,40 @@ +require "rake" + +namespace :alphred do + desc "Prepare a release, named after the directory" + task :release, [:version] => [:tag, :package] + + desc "Tag the current commit in git with VERSION" + task :tag, [:version] do |t, args| + version = args[:version] + + git_status = `git status --porcelain` + fail <<-FAIL unless git_status.empty? +Can't tag #{version}: dirty working directory. + FAIL + + sh "git tag #{version}" + end + + desc "Create an alfredworkflow package with vendored dependencies" + task :package do + restore_bundler_config do + cmd = "bundle install --standalone --path vendor/bundle --without development test" + sh "chruby-exec 2.0.0 -- #{cmd}" + end + sh "zip -r #{application_dir.pathmap("%n.alfredworkflow")} *" + rm_rf "vendor" + end + + def application_dir + Rake.application.original_dir + end + + def restore_bundler_config + path = File.join(application_dir, ".bundle", "config") + config = File.read(path) + yield + ensure + File.write(path, config, mode: ?w) + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/text.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/text.rb new file mode 100644 index 0000000..0f24576 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/text.rb @@ -0,0 +1,17 @@ +require "builder" + +module Alphred + class Text + attr_accessor *%i[ copy largetype ] + + def initialize(copy: nil, largetype: nil) + @copy = copy + @largetype = largetype + end + + def to_xml(xml) + xml.text copy, type: :copy unless self.copy.nil? + xml.text largetype, type: :largetype unless self.largetype.nil? + end + end +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/version.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/version.rb new file mode 100644 index 0000000..19ac83e --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/alphred-1.0.0/lib/alphred/version.rb @@ -0,0 +1,3 @@ +module Alphred + VERSION = "1.0.0" +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/CHANGES b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/CHANGES new file mode 100644 index 0000000..0f608fe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/CHANGES @@ -0,0 +1,107 @@ += Change Log + +== Version 3.2.0 + +* Ruby 2.0 compatibility changes. + +* Allow single quoted attributes. + +== Version 3.1.0 + +* Included the to_xs arity patch needed for weird Rails compatibility + issue. + +* Escaping newlines in attributes now. + +* Allow method caching + +== Version 3.0.0 + +* Ruby 1.9 compatiblity issues. + +== Version 2.2.0 + +* Applied patch from Thijs van der Vossen to allow UTF-8 encoded + output when the encoding is UTF-8 and $KCODE is UTF8. + +== Version 2.1.2 + +* Fixed bug where private methods in kernel could leak through using + tag!(). Thanks to Hagen Overdick for finding and diagnosing this + bug. + +== Version 2.1.1 + +* Fixed typo in XmlMarkup class docs (ident => indent). (from Martin + Fowler). +* Removed extra directory indirection from legacy CVS to SVN move. +* Removed some extraneous tabs from source. +* Fixed test on private methods in blankslate to differentiate between + targetted and untargetted private methods. +* Removed legacy capture of @self in XmlBase (@self was used back when + we used instance eval). +* Added additional tests for global functions (both direct and included). + +== Version 2.1.0 + +* Fixed bug in BlankSlate where including a module into Object could + cause methods to leak into BlankSlate. +* Made BlankSlate available as its own gem. Currently the builder gem + still directly includes the BlankSlate code. +* Added reveal capability to BlankSlate. + +== Version 2.0.0 + +* Added doc directory +* Added unit tests for XmlEvents. +* Added XChar module and used it in the _escape method. +* Attributes are now quoted by default when strings. Use Symbol + attribute values for unquoted behavior. + +== Version 1.2.4 + +* Added a cdata! command to an XML Builder (from Josh Knowles). + +== Version 1.2.3 + +The attributes in the instruction will be ordered: +version, encoding, standalone. + +== Version 1.2.2 + +Another fix for BlankSlate. The Kernal/Object traps added in 1.2.1 +failed when a method was defined late more than once. Since the +method was already marked as removed, another attempt to undefine it +raised an error. The fix was to check the list of instance methods +before attempting the undef operation. Thanks to Florian Gross and +David Heinemeier Hansson for the patch. + +== Version 1.2.1 + +BlankSlate now traps method definitions in Kernel and Object to avoid +late method definitions inadvertently becoming part of the definition +of BlankSlate as well. + +== Version 1.2.0 + +Improved support for entity declarations by allowing nested +declarations and removal of the attribute processing. + +Added namespace support. + +== Version 1.1.0 + +Added support for comments, entity declarations and processing instructions. + +== Version 1.0.0 + +Removed use of instace_eval making the use of XmlMarkup much +less prone to error. + +== Version 0.1.1 + +Bug fix. + +== Version 0.1.0 + +Initial version release. diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/MIT-LICENSE b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/MIT-LICENSE new file mode 100644 index 0000000..7d9be51 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2003-2012 Jim Weirich (jim.weirich@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/README.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/README.md new file mode 100644 index 0000000..81928cc --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/README.md @@ -0,0 +1,258 @@ +# Project: Builder + +## Goal + +Provide a simple way to create XML markup and data structures. + +## Classes + +Builder::XmlMarkup:: Generate XML markup notation +Builder::XmlEvents:: Generate XML events (i.e. SAX-like) + +**Notes:** + +* An Builder::XmlTree class to generate XML tree + (i.e. DOM-like) structures is also planned, but not yet implemented. + Also, the events builder is currently lagging the markup builder in + features. + +## Usage + +```ruby + require 'rubygems' + require_gem 'builder', '~> 2.0' + + builder = Builder::XmlMarkup.new +` xml = builder.person { |b| b.name("Jim"); b.phone("555-1234") } + xml #=> Jim555-1234 +``` + +or + +```ruby + require 'rubygems' + require_gem 'builder' + + builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2) + builder.person { |b| b.name("Jim"); b.phone("555-1234") } + # + # Prints: + # + # Jim + # 555-1234 + # +``` + +## Compatibility + +### Version 2.0.0 Compatibility Changes + +Version 2.0.0 introduces automatically escaped attribute values for +the first time. Versions prior to 2.0.0 did not insert escape +characters into attribute values in the XML markup. This allowed +attribute values to explicitly reference entities, which was +occasionally used by a small number of developers. Since strings +could always be explicitly escaped by hand, this was not a major +restriction in functionality. + +However, it did surprise most users of builder. Since the body text is +normally escaped, everybody expected the attribute values to be +escaped as well. Escaped attribute values were the number one support +request on the 1.x Builder series. + +Starting with Builder version 2.0.0, all attribute values expressed as +strings will be processed and the appropriate characters will be +escaped (e.g. "&" will be translated to "&"). Attribute values +that are expressed as Symbol values will not be processed for escaped +characters and will be unchanged in output. (Yes, this probably counts +as Symbol abuse, but the convention is convenient and flexible). + +Example: + +```ruby + xml = Builder::XmlMarkup.new + xml.sample(:escaped=>"This&That", :unescaped=>:"Here&There") + xml.target! => + +``` + +### Version 1.0.0 Compatibility Changes + +Version 1.0.0 introduces some changes that are not backwards +compatible with earlier releases of builder. The main areas of +incompatibility are: + +* Keyword based arguments to +new+ (rather than positional based). It + was found that a developer would often like to specify indentation + without providing an explicit target, or specify a target without + indentation. Keyword based arguments handle this situation nicely. + +* Builder must now be an explicit target for markup tags. Instead of + writing + +```ruby + xml_markup = Builder::XmlMarkup.new + xml_markup.div { strong("text") } +``` + + you need to write + +```ruby + xml_markup = Builder::XmlMarkup.new + xml_markup.div { xml_markup.strong("text") } +``` + +* The builder object is passed as a parameter to all nested markup + blocks. This allows you to create a short alias for the builder + object that can be used within the block. For example, the previous + example can be written as: + +```ruby + xml_markup = Builder::XmlMarkup.new + xml_markup.div { |xml| xml.strong("text") } +``` + +* If you have both a pre-1.0 and a post-1.0 gem of builder installed, + you can choose which version to use through the RubyGems + +require_gem+ facility. + +```ruby + require_gem 'builder', "~> 0.0" # Gets the old version + require_gem 'builder', "~> 1.0" # Gets the new version +``` + +## Features + +* XML Comments are supported ... + +```ruby + xml_markup.comment! "This is a comment" + #=> +``` + +* XML processing instructions are supported ... + +```ruby + xml_markup.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8" + #=> +``` + + If the processing instruction is omitted, it defaults to "xml". + When the processing instruction is "xml", the defaults attributes + are: + + version: 1.0 + encoding: "UTF-8" + + (NOTE: if the encoding is set to "UTF-8" and $KCODE is set to + "UTF8", then Builder will emit UTF-8 encoded strings rather than + encoding non-ASCII characters as entities.) + +* XML entity declarations are now supported to a small degree. + +```ruby + xml_markup.declare! :DOCTYPE, :chapter, :SYSTEM, "../dtds/chapter.dtd" + #=> +``` + + The parameters to a declare! method must be either symbols or + strings. Symbols are inserted without quotes, and strings are + inserted with double quotes. Attribute-like arguments in hashes are + not allowed. + + If you need to have an argument to declare! be inserted without + quotes, but the argument does not conform to the typical Ruby + syntax for symbols, then use the :"string" form to specify a symbol. + + For example: + +```ruby + xml_markup.declare! :ELEMENT, :chapter, :"(title,para+)" + #=> +``` + + Nested entity declarations are allowed. For example: + +```ruby + @xml_markup.declare! :DOCTYPE, :chapter do |x| + x.declare! :ELEMENT, :chapter, :"(title,para+)" + x.declare! :ELEMENT, :title, :"(#PCDATA)" + x.declare! :ELEMENT, :para, :"(#PCDATA)" + end + + #=> + + + + + ]> +``` + +* Some support for XML namespaces is now available. If the first + argument to a tag call is a symbol, it will be joined to the tag to + produce a namespace:tag combination. It is easier to show this than + describe it. + +```ruby + xml.SOAP :Envelope do ... end +``` + + Just put a space before the colon in a namespace to produce the + right form for builder (e.g. "SOAP:Envelope" => + "xml.SOAP :Envelope") + +* String attribute values are now escaped by default by + Builder (NOTE: this is _new_ behavior as of version 2.0). + + However, occasionally you need to use entities in attribute values. + Using a symbol (rather than a string) for an attribute value will + cause Builder to not run its quoting/escaping algorithm on that + particular value. + + (Note: The +escape_attrs+ option for builder is now + obsolete). + + Example: + +```ruby + xml = Builder::XmlMarkup.new + xml.sample(:escaped=>"This&That", :unescaped=>:"Here&There") + xml.target! => + +``` + +* UTF-8 Support + + Builder correctly translates UTF-8 characters into valid XML. (New + in version 2.0.0). Thanks to Sam Ruby for the translation code. + + You can get UTF-8 encoded output by making sure that the XML + encoding is set to "UTF-8" and that the $KCODE variable is set to + "UTF8". + +```ruby + $KCODE = 'UTF8' + xml = Builder::Markup.new + xml.instruct!(:xml, :encoding => "UTF-8") + xml.sample("Iñtërnâtiônàl") + xml.target! => + "Iñtërnâtiônàl" +``` + +## Links + +| Description | Link | +| :----: | :----: | +| Documents | http://builder.rubyforge.org/ | +| Github Clone | git://github.com/jimweirich/builder.git | +| Issue / Bug Reports | https://github.com/jimweirich/builder/issues?state=open | + +## Contact + +| Description | Value | +| :----: | :----: | +| Author | Jim Weirich | +| Email | jim.weirich@gmail.com | +| Home Page | http://onestepback.org | +| License | MIT Licence (http://www.opensource.org/licenses/mit-license.html) | diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/Rakefile b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/Rakefile new file mode 100644 index 0000000..b082fbe --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/Rakefile @@ -0,0 +1,195 @@ +# Rakefile for rake -*- ruby -*- + +# Copyright 2004, 2005, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. + +require 'rake/clean' +require 'rake/testtask' +begin + require 'rubygems' + require 'rubygems/package_task' + require 'rdoc/task' +rescue Exception + nil +end + +require './lib/builder/version' + +# Determine the current version of the software + +CLOBBER.include('pkg', 'html') +CLEAN.include('pkg/builder-*').include('pkg/blankslate-*').exclude('pkg/*.gem') + +PKG_VERSION = Builder::VERSION + +SRC_RB = FileList['lib/**/*.rb'] + +# The default task is run if rake is given no explicit arguments. + +desc "Default Task" +task :default => :test_all + +# Test Tasks --------------------------------------------------------- + +desc "Run all tests" +task :test_all => [:test_units] +task :ta => [:test_all] + +task :tu => [:test_units] + +Rake::TestTask.new("test_units") do |t| + t.test_files = FileList['test/test*.rb'] + t.libs << "." + t.verbose = false +end + +# Create a task to build the RDOC documentation tree. + +if defined?(RDoc) + rd = RDoc::Task.new("rdoc") { |rdoc| + rdoc.rdoc_dir = 'html' + rdoc.title = "Builder for Markup" + rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README.rdoc' + rdoc.rdoc_files.include('lib/**/*.rb', '[A-Z]*', 'doc/**/*.rdoc').exclude("TAGS") + rdoc.template = 'doc/jamis.rb' + } +else + rd = Struct.new(:rdoc_files).new([]) +end + +# ==================================================================== +# Create a task that will package the Rake software into distributable +# gem files. + +PKG_FILES = FileList[ + '[A-Z]*', + 'doc/**/*', + 'lib/**/*.rb', + 'test/**/*.rb', + 'rakelib/**/*' +] +PKG_FILES.exclude('test/test_cssbuilder.rb') +PKG_FILES.exclude('lib/builder/css.rb') +PKG_FILES.exclude('TAGS') + +BLANKSLATE_FILES = FileList[ + 'lib/blankslate.rb', + 'test/test_blankslate.rb' +] + +if ! defined?(Gem) + puts "Package Target requires RubyGEMs" +else + spec = Gem::Specification.new do |s| + + #### Basic information. + + s.name = 'builder' + s.version = PKG_VERSION + s.summary = "Builders for MarkUp." + s.description = %{\ +Builder provides a number of builder objects that make creating structured data +simple to do. Currently the following builder objects are supported: + +* XML Markup +* XML Events +} + + s.files = PKG_FILES.to_a + s.require_path = 'lib' + + s.test_files = PKG_FILES.select { |fn| fn =~ /^test\/test/ } + + s.has_rdoc = true + s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a + s.rdoc_options << + '--title' << 'Builder -- Easy XML Building' << + '--main' << 'README.rdoc' << + '--line-numbers' + + s.author = "Jim Weirich" + s.email = "jim.weirich@gmail.com" + s.homepage = "http://onestepback.org" + s.license = 'MIT' + end + + blankslate_spec = Gem::Specification.new do |s| + + #### Basic information. + + s.name = 'blankslate' + s.version = PKG_VERSION + s.summary = "Blank Slate base class." + s.description = %{\ +BlankSlate provides a base class where almost all of the methods from Object and +Kernel have been removed. This is useful when providing proxy object and other +classes that make heavy use of method_missing. +} + + s.files = BLANKSLATE_FILES.to_a + s.require_path = 'lib' + + s.test_files = PKG_FILES.select { |fn| fn =~ /^test\/test/ } + + s.has_rdoc = true + s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a + s.rdoc_options << + '--title' << 'BlankSlate -- Base Class for building proxies.' << + '--main' << 'README.rdoc' << + '--line-numbers' + + s.author = "Jim Weirich" + s.email = "jim.weirich@gmail.com" + s.homepage = "http://onestepback.org" + s.license = 'MIT' + end + + namespace 'builder' do + Gem::PackageTask.new(spec) do |t| + t.need_tar = false + end + end + + namespace 'blankslate' do + Gem::PackageTask.new(blankslate_spec) do |t| + t.need_tar = false + end + end + + task :package => [:remove_tags, 'builder:package', 'blankslate:package'] +end + +task :remove_tags do + rm "TAGS" rescue nil +end + +# RCov --------------------------------------------------------------- +begin + require 'rcov/rcovtask' + + Rcov::RcovTask.new do |t| + t.libs << "test" + t.rcov_opts = [ + '-xRakefile', '--text-report' + ] + t.test_files = FileList[ + 'test/test*.rb' + ] + t.output_dir = 'coverage' + t.verbose = true + end +rescue LoadError + # No rcov available +end + +desc "Install the jamis RDoc template" +task :install_jamis_template do + require 'rbconfig' + dest_dir = File.join(Config::CONFIG['rubylibdir'], "rdoc/generators/template/html") + fail "Unabled to write to #{dest_dir}" unless File.writable?(dest_dir) + install "doc/jamis.rb", dest_dir, :verbose => true +end diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/jamis.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/jamis.rb new file mode 100644 index 0000000..a00b583 --- /dev/null +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.0C73DD78-D9BD-4432-A5DE-A5DE970E4A74/vendor/bundle/ruby/2.0.0/gems/builder-3.2.2/doc/jamis.rb @@ -0,0 +1,591 @@ +module RDoc +module Page + +FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif" + +STYLE = < pre { + padding: 0.5em; + border: 1px dotted black; + background: #FFE; +} + +CSS + +XHTML_PREAMBLE = %{ + +} + +HEADER = XHTML_PREAMBLE + < + + %title% + + + + + + + +ENDHEADER + +FILE_PAGE = < + + + + +
File
%short_name%
+ + + + + + + + + +
Path:%full_path% +IF:cvsurl +  (CVS) +ENDIF:cvsurl +
Modified:%dtm_modified%
+
+ +
+HTML + +################################################################### + +CLASS_PAGE = < + %classmod%
%full_name% + + + + + + +IF:parent + + + + +ENDIF:parent +
In: +START:infiles +HREF:full_path_url:full_path: +IF:cvsurl + (CVS) +ENDIF:cvsurl +END:infiles +
Parent: +IF:par_url + +ENDIF:par_url +%parent% +IF:par_url + +ENDIF:par_url +
+ + + +HTML + +################################################################### + +METHOD_LIST = < +IF:diagram +
+ %diagram% +
+ENDIF:diagram + +IF:description +

- dash_keyword_ios + dash_keyword_gems destinationuid @@ -109,7 +109,7 @@ - dash_keyword_md + dash_keyword_ios destinationuid @@ -136,7 +136,7 @@ - dash_keyword_osx + dash_keyword_md destinationuid @@ -163,7 +163,7 @@ - dash_keyword_psql + dash_keyword_osx destinationuid @@ -190,7 +190,7 @@ - dash_keyword_py2 + dash_keyword_psql destinationuid @@ -217,7 +217,7 @@ - dash_keyword_py3 + dash_keyword_py2 destinationuid @@ -244,7 +244,7 @@ - dash_keyword_rails + dash_keyword_py3 destinationuid @@ -271,7 +271,7 @@ - dash_keyword_rb + dash_keyword_rails destinationuid @@ -298,7 +298,7 @@ - dash_keyword_rubygems + dash_keyword_rb destinationuid @@ -778,6 +778,161 @@ That said, you can edit anything else within this workflow (including adding new Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). +That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). + subtext + Please read what's in the "Script:" section below + title + PLEASE README + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_note_readme + version + 0 + + + config + + argumenttype + 0 + escaping + 0 + runningsubtext + Please read what's in the "Script:" section below + script + Dash dynamically updates this workflow with docset and search profile keywords. + +Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). + +That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). + subtext + Please read what's in the "Script:" section below + title + PLEASE README + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_note_readme + version + 0 + + + config + + argumenttype + 0 + escaping + 0 + runningsubtext + Please read what's in the "Script:" section below + script + Dash dynamically updates this workflow with docset and search profile keywords. + +Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). + +That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). + subtext + Please read what's in the "Script:" section below + title + PLEASE README + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_note_readme + version + 0 + + + config + + argumenttype + 0 + escaping + 0 + runningsubtext + Please read what's in the "Script:" section below + script + Dash dynamically updates this workflow with docset and search profile keywords. + +Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). + +That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). + subtext + Please read what's in the "Script:" section below + title + PLEASE README + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_note_readme + version + 0 + + + config + + argumenttype + 0 + escaping + 0 + runningsubtext + Please read what's in the "Script:" section below + script + Dash dynamically updates this workflow with docset and search profile keywords. + +Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). + +That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). + subtext + Please read what's in the "Script:" section below + title + PLEASE README + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_note_readme + version + 0 + + + config + + argumenttype + 0 + escaping + 0 + runningsubtext + Please read what's in the "Script:" section below + script + Dash dynamically updates this workflow with docset and search profile keywords. + +Do not try to change the keywords from within Alfred, as Dash will overwrite your changes. If you want to change a keyword, change it from within Dash (in Preferences > Docsets). + That said, you can edit anything else within this workflow (including adding new triggers/actions/hotkeys). subtext Please read what's in the "Script:" section below @@ -824,6 +979,35 @@ That said, you can edit anything else within this workflow (including adding new version 0 + + config + + argumenttype + 0 + escaping + 110 + keyword + gems + runningsubtext + Searching for "{query}" + script + ./dashAlfredWorkflow "gems:{query}" + subtext + Search sequel and 2 others for "{query}" + title + Search sequel + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + dash_keyword_gems + version + 0 + config @@ -1056,35 +1240,6 @@ That said, you can edit anything else within this workflow (including adding new version 0 - - config - - argumenttype - 0 - escaping - 110 - keyword - rubygems - runningsubtext - Searching for "{query}" - script - ./dashAlfredWorkflow "rubygems:{query}" - subtext - Search sequel and 2 others for "{query}" - title - Search sequel - type - 0 - withspace - - - type - alfred.workflow.input.scriptfilter - uid - dash_keyword_rubygems - version - 0 - config @@ -1187,47 +1342,47 @@ The keyword is either a docset keyword (defined in Preferences > Docsets) or ypos 930 - dash_keyword_ios + dash_keyword_gems ypos 1050 - dash_keyword_md + dash_keyword_ios ypos 1170 - dash_keyword_osx + dash_keyword_md ypos 1290 - dash_keyword_psql + dash_keyword_osx ypos 1410 - dash_keyword_py2 + dash_keyword_psql ypos 1530 - dash_keyword_py3 + dash_keyword_py2 ypos 1650 - dash_keyword_rails + dash_keyword_py3 ypos 1770 - dash_keyword_rb + dash_keyword_rails ypos 1890 - dash_keyword_rubygems + dash_keyword_rb ypos 2010 diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.EBB6171A-6C0B-447C-8BE5-E273C925A74F/info.plist b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.EBB6171A-6C0B-447C-8BE5-E273C925A74F/info.plist index 035ff54..dc51754 100644 --- a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.EBB6171A-6C0B-447C-8BE5-E273C925A74F/info.plist +++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.EBB6171A-6C0B-447C-8BE5-E273C925A74F/info.plist @@ -30,6 +30,17 @@ + 750E1C6D-84B5-4AC1-B727-CA1DA4013008 + + + destinationuid + 39AD610C-ACB2-4BD8-ACCF-966226C3ADA5 + modifiers + 0 + modifiersubtext + + + 960E961A-2EF3-44C4-BFF2-B8BA1466C8EA @@ -459,6 +470,50 @@ version 0 + + config + + action + 0 + argument + 0 + hotkey + 101 + hotmod + 8388608 + hotstring + F9 + leftcursor + + modsmode + 0 + relatedAppsMode + 0 + + type + alfred.workflow.trigger.hotkey + uid + 750E1C6D-84B5-4AC1-B727-CA1DA4013008 + version + 1 + + + config + + paths + + /opt/homebrew-cask/Caskroom/slack/1.1.4/Slack.app + + toggle + + + type + alfred.workflow.action.launchfiles + uid + 39AD610C-ACB2-4BD8-ACCF-966226C3ADA5 + version + 0 + readme Icon by Designify.me @@ -489,6 +544,11 @@ ypos 250 + 39AD610C-ACB2-4BD8-ACCF-966226C3ADA5 + + ypos + 970 + 43DCD79F-94B0-4F0D-B7C2-4F04DC7ECE20 ypos @@ -499,6 +559,11 @@ ypos 610 + 750E1C6D-84B5-4AC1-B727-CA1DA4013008 + + ypos + 970 + 960E961A-2EF3-44C4-BFF2-B8BA1466C8EA ypos