jets 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codebuild/scripts/install-java.sh +7 -5
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +2 -2
- data/README.md +1 -1
- data/jets.gemspec +3 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/dotenv.rb +1 -1
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -1
- data/lib/jets/version.rb +1 -1
- data/vendor/dynomite/CHANGELOG.md +34 -0
- data/vendor/dynomite/Gemfile +6 -0
- data/vendor/dynomite/README.md +141 -0
- data/vendor/dynomite/Rakefile +2 -0
- data/vendor/dynomite/bin/console +14 -0
- data/vendor/dynomite/bin/setup +8 -0
- data/vendor/dynomite/docs/migrations/long-example.rb +123 -0
- data/vendor/dynomite/docs/migrations/short-example.rb +36 -0
- data/vendor/dynomite/dynomite.gemspec +29 -0
- data/vendor/dynomite/lib/dynomite.rb +23 -0
- data/vendor/dynomite/lib/dynomite/core.rb +25 -0
- data/vendor/dynomite/lib/dynomite/db_config.rb +101 -0
- data/vendor/dynomite/lib/dynomite/erb.rb +53 -0
- data/vendor/dynomite/lib/dynomite/item.rb +291 -0
- data/vendor/dynomite/lib/dynomite/log.rb +15 -0
- data/vendor/dynomite/lib/dynomite/migration.rb +27 -0
- data/vendor/dynomite/lib/dynomite/migration/common.rb +86 -0
- data/vendor/dynomite/lib/dynomite/migration/dsl.rb +172 -0
- data/vendor/dynomite/lib/dynomite/migration/dsl/base_secondary_index.rb +72 -0
- data/vendor/dynomite/lib/dynomite/migration/dsl/global_secondary_index.rb +4 -0
- data/vendor/dynomite/lib/dynomite/migration/dsl/local_secondary_index.rb +8 -0
- data/vendor/dynomite/lib/dynomite/migration/executor.rb +30 -0
- data/vendor/dynomite/lib/dynomite/migration/generator.rb +68 -0
- data/vendor/dynomite/lib/dynomite/migration/templates/create_table.rb +32 -0
- data/vendor/dynomite/lib/dynomite/migration/templates/update_table.rb +26 -0
- data/vendor/dynomite/lib/dynomite/version.rb +3 -0
- data/vendor/dynomite/spec/fixtures/app_root/config/dynamodb.yml +7 -0
- data/vendor/dynomite/spec/lib/dynomite/item_spec.rb +89 -0
- data/vendor/dynomite/spec/lib/dynomite/migration/dsl/global_secondary_index_spec.rb +106 -0
- data/vendor/dynomite/spec/lib/dynomite/migration/dsl/local_secondary_index_spec.rb +72 -0
- data/vendor/dynomite/spec/lib/dynomite/migration/dsl_spec.rb +76 -0
- data/vendor/dynomite/spec/lib/dynomite/migration/generator_spec.rb +23 -0
- data/vendor/dynomite/spec/lib/dynomite/migration_spec.rb +60 -0
- data/vendor/dynomite/spec/spec_helper.rb +110 -0
- data/vendor/lambdagem/CHANGELOG.md +24 -0
- data/vendor/lambdagem/Gemfile +6 -0
- data/vendor/lambdagem/Gemfile.lock +73 -0
- data/vendor/lambdagem/Guardfile +12 -0
- data/vendor/lambdagem/LICENSE.txt +22 -0
- data/vendor/lambdagem/README.md +143 -0
- data/vendor/lambdagem/Rakefile +6 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem.build_complete +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem_make.out +19 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/LICENSE +23 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/exe/byebug +6 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/Makefile +263 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.c +517 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.c +905 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.h +143 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.c +673 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/extconf.rb +12 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.c +96 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.c +230 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug.rb +3 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/attacher.rb +48 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/breakpoint.rb +111 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command.rb +111 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command_list.rb +34 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands.rb +39 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/break.rb +116 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/catch.rb +82 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/condition.rb +57 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/continue.rb +50 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/debug.rb +38 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/delete.rb +57 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable.rb +33 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/breakpoints.rb +42 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/display.rb +43 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/display.rb +66 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/down.rb +45 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/edit.rb +68 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable.rb +33 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/breakpoints.rb +42 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/display.rb +43 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/finish.rb +57 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/frame.rb +57 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb +64 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/history.rb +39 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info.rb +37 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/breakpoints.rb +67 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/display.rb +51 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/file.rb +82 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/line.rb +35 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/program.rb +49 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/interrupt.rb +34 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/irb.rb +52 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/kill.rb +47 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/list.rb +159 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/method.rb +53 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/next.rb +40 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/pry.rb +43 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/quit.rb +42 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/restart.rb +64 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/save.rb +72 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/set.rb +79 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/show.rb +45 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/source.rb +42 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/step.rb +40 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread.rb +34 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/current.rb +37 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/list.rb +43 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/resume.rb +47 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/stop.rb +43 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/switch.rb +46 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/tracevar.rb +57 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/undisplay.rb +52 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/untracevar.rb +36 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/up.rb +45 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var.rb +37 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/all.rb +41 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/args.rb +39 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/const.rb +51 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/global.rb +37 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/instance.rb +39 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/local.rb +39 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/where.rb +53 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/context.rb +157 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/core.rb +114 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/errors.rb +29 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/frame.rb +185 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/bin.rb +47 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/eval.rb +126 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/file.rb +63 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/frame.rb +75 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/parse.rb +77 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/path.rb +40 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/reflection.rb +19 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/string.rb +36 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/thread.rb +67 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/toggle.rb +64 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/var.rb +54 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/history.rb +130 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interface.rb +146 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/local_interface.rb +44 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/remote_interface.rb +50 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/script_interface.rb +32 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/test_interface.rb +67 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/option_setter.rb +95 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/base.rb +69 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/plain.rb +44 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/base.yml +115 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/plain.yml +33 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/command_processor.rb +173 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/control_processor.rb +24 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/post_mortem_processor.rb +18 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/script_processor.rb +49 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote.rb +85 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/client.rb +55 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/server.rb +47 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/runner.rb +198 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/setting.rb +79 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autoirb.rb +29 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autolist.rb +29 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autopry.rb +29 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autosave.rb +17 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/basename.rb +16 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/callstyle.rb +20 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/fullpath.rb +16 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histfile.rb +20 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histsize.rb +20 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/linetrace.rb +22 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/listsize.rb +21 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/post_mortem.rb +27 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/savefile.rb +20 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/stack_on_error.rb +15 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/width.rb +20 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/source_file_formatter.rb +71 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/subcommands.rb +54 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/version.rb +8 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/specifications/byebug-10.0.0.gemspec +39 -0
- data/vendor/lambdagem/exe/lambdagem +14 -0
- data/vendor/lambdagem/lambdagem.gemspec +32 -0
- data/vendor/lambdagem/lib/lambdagem.rb +16 -0
- data/vendor/lambdagem/lib/lambdagem/base.rb +51 -0
- data/vendor/lambdagem/lib/lambdagem/build.rb +202 -0
- data/vendor/lambdagem/lib/lambdagem/clean.rb +8 -0
- data/vendor/lambdagem/lib/lambdagem/cli.rb +62 -0
- data/vendor/lambdagem/lib/lambdagem/command.rb +38 -0
- data/vendor/lambdagem/lib/lambdagem/exist.rb +50 -0
- data/vendor/lambdagem/lib/lambdagem/extract.rb +8 -0
- data/vendor/lambdagem/lib/lambdagem/extract/base.rb +62 -0
- data/vendor/lambdagem/lib/lambdagem/extract/class_methods.rb +50 -0
- data/vendor/lambdagem/lib/lambdagem/extract/gem.rb +95 -0
- data/vendor/lambdagem/lib/lambdagem/extract/ruby.rb +62 -0
- data/vendor/lambdagem/lib/lambdagem/help.rb +9 -0
- data/vendor/lambdagem/lib/lambdagem/help/all.md +11 -0
- data/vendor/lambdagem/lib/lambdagem/help/build.md +14 -0
- data/vendor/lambdagem/lib/lambdagem/help/clean.md +5 -0
- data/vendor/lambdagem/lib/lambdagem/help/extract_gem.md +5 -0
- data/vendor/lambdagem/lib/lambdagem/help/extract_ruby.md +5 -0
- data/vendor/lambdagem/lib/lambdagem/help/package.md +20 -0
- data/vendor/lambdagem/lib/lambdagem/help/upload.md +7 -0
- data/vendor/lambdagem/lib/lambdagem/package.rb +33 -0
- data/vendor/lambdagem/lib/lambdagem/upload.rb +39 -0
- data/vendor/lambdagem/lib/lambdagem/version.rb +3 -0
- data/vendor/lambdagem/spec/lib/build_spec.rb +32 -0
- data/vendor/lambdagem/spec/lib/cli_spec.rb +24 -0
- data/vendor/lambdagem/spec/lib/upload_spec.rb +25 -0
- data/vendor/lambdagem/spec/spec_helper.rb +24 -0
- metadata +212 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class <%= @migration_class_name %> < Dynomite::Migration
|
|
2
|
+
def up
|
|
3
|
+
create_table :<%= @table_name %> do |t|
|
|
4
|
+
t.partition_key "<%= @partition_key %>" # required
|
|
5
|
+
<% if @sort_key # so extra spaces are not added when generated -%>
|
|
6
|
+
t.sort_key "<%= @sort_key %>" # optional
|
|
7
|
+
<% end -%>
|
|
8
|
+
t.provisioned_throughput(<%= @provisioned_throughput %>) # sets both read and write, defaults to 5 when not set
|
|
9
|
+
|
|
10
|
+
# Instead of using partition_key and sort_key you can set the
|
|
11
|
+
# key schema directly also
|
|
12
|
+
# t.key_schema([
|
|
13
|
+
# {attribute_name: "id", :key_type=>"HASH"},
|
|
14
|
+
# {attribute_name: "created_at", :key_type=>"RANGE"}
|
|
15
|
+
# ])
|
|
16
|
+
# t.attribute_definitions([
|
|
17
|
+
# {attribute_name: "id", attribute_type: "N"},
|
|
18
|
+
# {attribute_name: "created_at", attribute_type: "S"}
|
|
19
|
+
# ])
|
|
20
|
+
|
|
21
|
+
# other ways to set provisioned_throughput
|
|
22
|
+
# t.provisioned_throughput(:read, 10)
|
|
23
|
+
# t.provisioned_throughput(:write, 10)
|
|
24
|
+
# t.provisioned_throughput(
|
|
25
|
+
# read_capacity_units: 5,
|
|
26
|
+
# write_capacity_units: 5
|
|
27
|
+
# )
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# More examples: https://github.com/tongueroo/dynomite/tree/master/docs
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class <%= @migration_class_name %> < Dynomite::Migration
|
|
2
|
+
def up
|
|
3
|
+
update_table :<%= @table_name %> do |t|
|
|
4
|
+
t.gsi(:create) do |i|
|
|
5
|
+
i.partition_key "<%= @partition_key %>" # required
|
|
6
|
+
<% if @sort_key # so extra spaces are not added when generated -%>
|
|
7
|
+
t.sort_key "<%= @sort_key %>" # optional
|
|
8
|
+
<% end -%>
|
|
9
|
+
|
|
10
|
+
i.provisioned_throughput(5)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Examples:
|
|
14
|
+
# t.gsi(:update, "update-me-index") do |i|
|
|
15
|
+
# i.provisioned_throughput(10)
|
|
16
|
+
# end
|
|
17
|
+
|
|
18
|
+
# t.gsi(:delete, "delete-me-index")
|
|
19
|
+
|
|
20
|
+
# Must use :create, :update, :delete one at a time in separate migration files.
|
|
21
|
+
# DynamoDB imposes this.
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# More examples: https://github.com/tongueroo/dynomite/tree/master/docs
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
class Post < Dynomite::Item
|
|
4
|
+
end
|
|
5
|
+
class Comment < Dynomite::Item
|
|
6
|
+
partition_key "post_id" # defaults to id
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe Dynomite::Item do
|
|
10
|
+
describe "general" do
|
|
11
|
+
it "loads attributes" do
|
|
12
|
+
post = Post.new(title: "my title", desc: "my desc")
|
|
13
|
+
expect(post.attrs).to eq("title" => "my title", "desc" => "my desc")
|
|
14
|
+
|
|
15
|
+
post.attrs(title: "my title2")
|
|
16
|
+
expect(post.attrs).to eq("title" => "my title2", "desc" => "my desc")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "table_name" do
|
|
20
|
+
expect(Post.table_name).to eq "testnamespace-posts"
|
|
21
|
+
expect(Comment.table_name).to eq "testnamespace-comments"
|
|
22
|
+
# hack to quickly test blank and namespaces
|
|
23
|
+
old_namespace = Comment.instance_variable_get(:@table_namespace)
|
|
24
|
+
Comment.instance_variable_set(:@table_namespace, '')
|
|
25
|
+
expect(Comment.table_name).to eq "comments"
|
|
26
|
+
Comment.instance_variable_set(:@table_namespace, old_namespace)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "partition_key" do
|
|
30
|
+
expect(Post.partition_key).to eq "id"
|
|
31
|
+
expect(Comment.partition_key).to eq "post_id"
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe "CRUD-ish" do
|
|
36
|
+
before(:each) { Post.db = db }
|
|
37
|
+
let(:db) { double(:db) }
|
|
38
|
+
|
|
39
|
+
let(:find_resp) do
|
|
40
|
+
fake_attributes = {"id" => "myid", "title" => "my title"}
|
|
41
|
+
resp = double(:resp)
|
|
42
|
+
expect(resp).to receive(:item).and_return(fake_attributes)
|
|
43
|
+
resp
|
|
44
|
+
end
|
|
45
|
+
it "find" do
|
|
46
|
+
expect(Post.db).to receive(:get_item).and_return(find_resp)
|
|
47
|
+
|
|
48
|
+
post = Post.find("myid")
|
|
49
|
+
|
|
50
|
+
expect(post.attrs).to eq("id" => "myid", "title" => "my title")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "replace" do
|
|
54
|
+
# Not returning a resp with receive because it is not useful
|
|
55
|
+
# Dynanmodb doesnt provide much useful info there.
|
|
56
|
+
expect(Post.db).to receive(:put_item)
|
|
57
|
+
|
|
58
|
+
post = Post.new(title: "my title")
|
|
59
|
+
post.replace
|
|
60
|
+
attrs = post.attrs
|
|
61
|
+
|
|
62
|
+
expect(attrs[:title]).to eq "my title"
|
|
63
|
+
expect(attrs[:id].size).to eq 40 # generated unique id
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "delete" do
|
|
67
|
+
allow(Post.db).to receive(:delete_item)
|
|
68
|
+
|
|
69
|
+
Post.delete("myid")
|
|
70
|
+
|
|
71
|
+
expect(Post.db).to have_received(:delete_item)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
let(:scan_resp) do
|
|
75
|
+
fake_attributes = [{"id" => "myid", "title" => "my title"}]
|
|
76
|
+
resp = double(:resp)
|
|
77
|
+
expect(resp).to receive(:items).and_return(fake_attributes)
|
|
78
|
+
resp
|
|
79
|
+
end
|
|
80
|
+
it "scan" do
|
|
81
|
+
allow(Post.db).to receive(:scan).and_return(scan_resp)
|
|
82
|
+
|
|
83
|
+
post = Post.scan
|
|
84
|
+
|
|
85
|
+
expect(Post.db).to have_received(:scan)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
GSI = Dynomite::Migration::Dsl::GlobalSecondaryIndex
|
|
4
|
+
|
|
5
|
+
describe GSI do
|
|
6
|
+
context "create index" do
|
|
7
|
+
let(:index) do
|
|
8
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
9
|
+
GSI.new(:create)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Supports this DSL, the `i` variable passed to the block is the
|
|
13
|
+
# Dsl::GlobalSecondaryIndex instance
|
|
14
|
+
#
|
|
15
|
+
# class UpdateCommentsMigration < Dynomite::Migration
|
|
16
|
+
# def up
|
|
17
|
+
# update_table :comments do |t|
|
|
18
|
+
# t.partition_key "post_id:string" # required
|
|
19
|
+
# t.sort_key "created_at:string" # optional
|
|
20
|
+
# t.provisioned_throughput(5) # sets both read and write
|
|
21
|
+
# end
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
it "build up the dsl in memory" do
|
|
25
|
+
index.partition_key "id:string" # required
|
|
26
|
+
index.sort_key "created_at:string" # optional
|
|
27
|
+
index.provisioned_throughput(30)
|
|
28
|
+
|
|
29
|
+
expect(index.key_schema).to eq([
|
|
30
|
+
{:attribute_name=>"id", :key_type=>"HASH"},
|
|
31
|
+
{:attribute_name=>"created_at", :key_type=>"RANGE"}])
|
|
32
|
+
expect(index.attribute_definitions).to eq([
|
|
33
|
+
{:attribute_name=>"id", :attribute_type=>"S"},
|
|
34
|
+
{:attribute_name=>"created_at", :attribute_type=>"S"}])
|
|
35
|
+
expect(index.provisioned_throughput).to eq(
|
|
36
|
+
:read_capacity_units=>30,
|
|
37
|
+
:write_capacity_units=>30
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context "parititon_key provided only" do
|
|
42
|
+
it "index_name" do
|
|
43
|
+
index.partition_key "post_id:string" # required
|
|
44
|
+
expect(index.params[:index_name]).to eq("post_id-index")
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context "parititon_key and sort_key provided" do
|
|
49
|
+
it "index_name" do
|
|
50
|
+
index.partition_key "post_id:string" # required
|
|
51
|
+
index.sort_key "created_at:string" # optional
|
|
52
|
+
expect(index.params[:index_name]).to eq("post_id-created_at-index")
|
|
53
|
+
|
|
54
|
+
expect(index.params).to eq({
|
|
55
|
+
:index_name=>"post_id-created_at-index",
|
|
56
|
+
:key_schema=>[
|
|
57
|
+
{:attribute_name=>"post_id", :key_type=>"HASH"},
|
|
58
|
+
{:attribute_name=>"created_at", :key_type=>"RANGE"}],
|
|
59
|
+
:projection=>{:projection_type=>"ALL"},
|
|
60
|
+
:provisioned_throughput=> {:read_capacity_units=>5, :write_capacity_units=>5}
|
|
61
|
+
})
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "execute uses what the dsl methods built up in memory and translates it dynmaodb params that then get used to execute and run the command" do
|
|
66
|
+
index.partition_key "id:string" # required
|
|
67
|
+
index.sort_key "created_at:string" # optional
|
|
68
|
+
index.provisioned_throughput(30)
|
|
69
|
+
# index.execute # TODO: index.execute in here
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context "update index" do
|
|
74
|
+
let(:index) do
|
|
75
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
76
|
+
GSI.new(:update) do |i|
|
|
77
|
+
i.index_name = "update-me-index"
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "only sets the index_name and provisioned_throughput params keys" do
|
|
82
|
+
index.provisioned_throughput(8)
|
|
83
|
+
params = index.params
|
|
84
|
+
expect(params[:provisioned_throughput]).to eq({:read_capacity_units=>8, :write_capacity_units=>8})
|
|
85
|
+
expect(params[:index_name]).not_to be nil
|
|
86
|
+
expect(params[:key_schema]).to be nil
|
|
87
|
+
expect(params[:projection]).to be nil
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
context "delete index" do
|
|
92
|
+
let(:index) do
|
|
93
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
94
|
+
GSI.new(:delete, "delete-me-index")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "only sets the index_name" do
|
|
98
|
+
index.provisioned_throughput(8)
|
|
99
|
+
params = index.params
|
|
100
|
+
expect(params[:index_name]).not_to be nil
|
|
101
|
+
expect(params[:provisioned_throughput]).to be nil
|
|
102
|
+
expect(params[:key_schema]).to be nil
|
|
103
|
+
expect(params[:projection]).to be nil
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
LSI = Dynomite::Migration::Dsl::LocalSecondaryIndex
|
|
4
|
+
|
|
5
|
+
describe LSI do
|
|
6
|
+
context "create index" do
|
|
7
|
+
let(:index) do
|
|
8
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
9
|
+
LSI.new
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Supports this DSL, the `i` variable passed to the block is the
|
|
13
|
+
# Dsl::GlobalSecondaryIndex instance
|
|
14
|
+
#
|
|
15
|
+
# class UpdateCommentsMigration < Dynomite::Migration
|
|
16
|
+
# def up
|
|
17
|
+
# update_table :comments do |t|
|
|
18
|
+
# t.partition_key "post_id:string" # required
|
|
19
|
+
# t.sort_key "created_at:string" # optional
|
|
20
|
+
# t.provisioned_throughput(5) # sets both read and write
|
|
21
|
+
# end
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
it "build up the dsl in memory" do
|
|
25
|
+
index.partition_key "id:string" # required
|
|
26
|
+
index.sort_key "created_at:string" # optional
|
|
27
|
+
index.provisioned_throughput(30)
|
|
28
|
+
|
|
29
|
+
expect(index.key_schema).to eq([
|
|
30
|
+
{:attribute_name=>"id", :key_type=>"HASH"},
|
|
31
|
+
{:attribute_name=>"created_at", :key_type=>"RANGE"}])
|
|
32
|
+
expect(index.attribute_definitions).to eq([
|
|
33
|
+
{:attribute_name=>"id", :attribute_type=>"S"},
|
|
34
|
+
{:attribute_name=>"created_at", :attribute_type=>"S"}])
|
|
35
|
+
expect(index.provisioned_throughput).to eq(
|
|
36
|
+
:read_capacity_units=>30,
|
|
37
|
+
:write_capacity_units=>30
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context "parititon_key provided only" do
|
|
42
|
+
it "index_name" do
|
|
43
|
+
index.partition_key "post_id:string" # required
|
|
44
|
+
expect(index.params[:index_name]).to eq("post_id-index")
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context "parititon_key and sort_key provided" do
|
|
49
|
+
it "index_name" do
|
|
50
|
+
index.partition_key "post_id:string" # required
|
|
51
|
+
index.sort_key "created_at:string" # optional
|
|
52
|
+
expect(index.params[:index_name]).to eq("post_id-created_at-index")
|
|
53
|
+
|
|
54
|
+
expect(index.params).to eq({
|
|
55
|
+
:index_name=>"post_id-created_at-index",
|
|
56
|
+
:key_schema=>[
|
|
57
|
+
{:attribute_name=>"post_id", :key_type=>"HASH"},
|
|
58
|
+
{:attribute_name=>"created_at", :key_type=>"RANGE"}],
|
|
59
|
+
:projection=>{:projection_type=>"ALL"},
|
|
60
|
+
:provisioned_throughput=> {:read_capacity_units=>5, :write_capacity_units=>5}
|
|
61
|
+
})
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "execute uses what the dsl methods built up in memory and translates it dynmaodb params that then get used to execute and run the command" do
|
|
66
|
+
index.partition_key "id:string" # required
|
|
67
|
+
index.sort_key "created_at:string" # optional
|
|
68
|
+
index.provisioned_throughput(30)
|
|
69
|
+
# index.execute # TODO: index.execute in here
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Dynomite::Migration::Dsl do
|
|
4
|
+
# Supports this DSL, the `t` variable passed to the block is the Dsl instance
|
|
5
|
+
#
|
|
6
|
+
# class CreateCommentsMigration < Dynomite::Migration
|
|
7
|
+
# def up
|
|
8
|
+
# create_table :comments do |t|
|
|
9
|
+
# t.partition_key "post_id:string" # required
|
|
10
|
+
# t.sort_key "created_at:string" # optional
|
|
11
|
+
# t.provisioned_throughput(5) # sets both read and write, defaults to 5 when not set
|
|
12
|
+
# end
|
|
13
|
+
# end
|
|
14
|
+
# end
|
|
15
|
+
context "create_table" do
|
|
16
|
+
let(:dsl) do
|
|
17
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
18
|
+
Dynomite::Migration::Dsl.new(:create_table, "posts")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "build up the dsl in memory" do
|
|
22
|
+
dsl.partition_key "id:string" # required
|
|
23
|
+
dsl.sort_key "created_at:string" # optional
|
|
24
|
+
dsl.provisioned_throughput(25)
|
|
25
|
+
|
|
26
|
+
expect(dsl.key_schema).to eq([
|
|
27
|
+
{:attribute_name=>"id", :key_type=>"HASH"},
|
|
28
|
+
{:attribute_name=>"created_at", :key_type=>"RANGE"}])
|
|
29
|
+
expect(dsl.attribute_definitions).to eq([
|
|
30
|
+
{:attribute_name=>"id", :attribute_type=>"S"},
|
|
31
|
+
{:attribute_name=>"created_at", :attribute_type=>"S"}])
|
|
32
|
+
expect(dsl.provisioned_throughput).to eq(
|
|
33
|
+
:read_capacity_units=>25,
|
|
34
|
+
:write_capacity_units=>25
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context "update_table" do
|
|
40
|
+
let(:dsl) do
|
|
41
|
+
Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
42
|
+
Dynomite::Migration::Dsl.new(:update_table, "comments")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "builds up the gsi index params" do
|
|
46
|
+
dsl.provisioned_throughput(18)
|
|
47
|
+
|
|
48
|
+
dsl.gsi(:create) do |i|
|
|
49
|
+
i.partition_key "post_id:string"
|
|
50
|
+
i.sort_key "updated_at:string" # optional
|
|
51
|
+
end
|
|
52
|
+
dsl.gsi(:update, "another-index") do |i|
|
|
53
|
+
i.provisioned_throughput(8)
|
|
54
|
+
end
|
|
55
|
+
dsl.gsi(:delete, "old-index")
|
|
56
|
+
|
|
57
|
+
params = dsl.params
|
|
58
|
+
# pp params # uncomment out to inspect params
|
|
59
|
+
# attribute_definitions is a Double because we've mocked out:
|
|
60
|
+
# Dynomite::Migration::Dsl.db = double("db").as_null_object
|
|
61
|
+
expect(params.key?(:attribute_definitions)).to be true
|
|
62
|
+
expect(params.key?(:global_secondary_index_updates)).to be true
|
|
63
|
+
global_secondary_index_updates = params[:global_secondary_index_updates]
|
|
64
|
+
index_actions = global_secondary_index_updates.map {|hash| hash.keys.first }
|
|
65
|
+
expect(index_actions.sort).to eq([:create, :update, :delete].sort)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# it "execute uses what the dsl methods built up in memory and translates it dynmaodb params that then get used to execute and run the command" do
|
|
70
|
+
# dsl.partition_key "id:string" # required
|
|
71
|
+
# dsl.sort_key "created_at:string" # optional
|
|
72
|
+
# dsl.provisioned_throughput(25)
|
|
73
|
+
# # dsl.execute # TODO: dsl.execute in here
|
|
74
|
+
# end
|
|
75
|
+
end
|
|
76
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Dynomite::Migration::Generator do
|
|
4
|
+
before(:each) do
|
|
5
|
+
FileUtils.rm_rf("#{Dynomite.app_root}dynamodb/migrate")
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
let(:generator) do
|
|
9
|
+
Dynomite::Migration::Generator.new("comments",
|
|
10
|
+
partition_key: "post_id:string",
|
|
11
|
+
sort_key: "created_at:string",
|
|
12
|
+
quiet: true
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "generates migration file in dynamodb/migrate" do
|
|
17
|
+
generator.generate
|
|
18
|
+
|
|
19
|
+
migration_path = Dir.glob("#{Dynomite.app_root}dynamodb/migrate/*").first
|
|
20
|
+
migration_exist = File.exist?(migration_path)
|
|
21
|
+
expect(migration_exist).to be true
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
class CreateCommentsMigration < Dynomite::Migration
|
|
4
|
+
def up
|
|
5
|
+
create_table :comments do |t|
|
|
6
|
+
t.partition_key "post_id:string" # required
|
|
7
|
+
t.sort_key "created_at:string" # optional
|
|
8
|
+
t.provisioned_throughput(5) # sets both read and write, defaults to 5 when not set
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class UpdateCommentsMigration < Dynomite::Migration
|
|
14
|
+
def up
|
|
15
|
+
update_table :comments do |t|
|
|
16
|
+
# NOTE: You cannot update provisioned_throughput at the same time as creating
|
|
17
|
+
# an GSI
|
|
18
|
+
# t.provisioned_throughput(7) # sets both read and write, defaults to 5 when not set
|
|
19
|
+
t.gsi(:create) do |i|
|
|
20
|
+
i.partition_key "post_id:string"
|
|
21
|
+
i.sort_key "updated_at:string" # optional
|
|
22
|
+
i.provisioned_throughput(8)
|
|
23
|
+
end
|
|
24
|
+
# t.gsi(:update, "update-me-index") do |i|
|
|
25
|
+
# i.provisioned_throughput(9)
|
|
26
|
+
# end
|
|
27
|
+
# t.gsi(:delete, "delete-me-index")
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
describe Dynomite::Migration do
|
|
33
|
+
context "mocked db" do
|
|
34
|
+
before(:each) { Dynomite::Migration::Dsl.db = db }
|
|
35
|
+
let(:db) { double(:db) }
|
|
36
|
+
let(:null) { double(:null).as_null_object }
|
|
37
|
+
|
|
38
|
+
it "executes the migration" do
|
|
39
|
+
allow(db).to receive(:create_table).and_return(null)
|
|
40
|
+
|
|
41
|
+
CreateCommentsMigration.new.up
|
|
42
|
+
|
|
43
|
+
expect(db).to have_received(:create_table)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# To test dynamodb endpoint configured in config/dynamodb.yml uncomment the code
|
|
48
|
+
# you want to test and run:
|
|
49
|
+
#
|
|
50
|
+
# LIVE=1 rspec spec/lib/dynomite/migration_spec.rb -e 'live db'
|
|
51
|
+
#
|
|
52
|
+
context "live db" do
|
|
53
|
+
before(:each) { Dynomite::Item.db = nil } # setting to nil will clear out mock and force it to load AWS
|
|
54
|
+
it "executes the migration" do
|
|
55
|
+
CreateCommentsMigration.new.up # uncomment to test
|
|
56
|
+
# UpdateCommentsMigration.new.up # uncomment to test
|
|
57
|
+
end
|
|
58
|
+
end if ENV['LIVE']
|
|
59
|
+
end
|
|
60
|
+
|