binnacle 0.4.8
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 +7 -0
- data/.gitignore +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +138 -0
- data/LICENSE.txt +22 -0
- data/README.asc +264 -0
- data/Rakefile +48 -0
- data/bin/binnacle +5 -0
- data/binnacle.gemspec +49 -0
- data/lib/binnacle.rb +112 -0
- data/lib/binnacle/client.rb +115 -0
- data/lib/binnacle/commands/commands.rb +20 -0
- data/lib/binnacle/commands/help.rb +21 -0
- data/lib/binnacle/commands/tail.rb +187 -0
- data/lib/binnacle/configuration.rb +278 -0
- data/lib/binnacle/connection.rb +66 -0
- data/lib/binnacle/errors.rb +4 -0
- data/lib/binnacle/http_logging/adapters/ethon.rb +44 -0
- data/lib/binnacle/http_logging/adapters/excon.rb +62 -0
- data/lib/binnacle/http_logging/adapters/http.rb +63 -0
- data/lib/binnacle/http_logging/adapters/httpclient.rb +93 -0
- data/lib/binnacle/http_logging/adapters/net_http.rb +54 -0
- data/lib/binnacle/http_logging/adapters/patron.rb +24 -0
- data/lib/binnacle/http_logging/adapters/typhoeus.rb +20 -0
- data/lib/binnacle/http_logging/http_logger.rb +83 -0
- data/lib/binnacle/logging/formatter.rb +62 -0
- data/lib/binnacle/logging/logging.rb +36 -0
- data/lib/binnacle/logging/request_log_subscriber.rb +120 -0
- data/lib/binnacle/resource.rb +54 -0
- data/lib/binnacle/resources/event.rb +100 -0
- data/lib/binnacle/trap/backtrace.rb +130 -0
- data/lib/binnacle/trap/exception_event.rb +176 -0
- data/lib/binnacle/trap/middleware.rb +45 -0
- data/lib/binnacle/trap/railtie.rb +28 -0
- data/lib/binnacle/version.rb +3 -0
- data/lib/generators/binnacle/binnacle_generator.rb +78 -0
- data/lib/generators/binnacle/templates/firebase-messaging-sw.js.erb +35 -0
- data/spec/adapters/ethon_adapter.rb +19 -0
- data/spec/adapters/excon_adapter.rb +10 -0
- data/spec/adapters/faraday_adapter.rb +46 -0
- data/spec/adapters/http_adapter.rb +14 -0
- data/spec/adapters/http_base_adapter.rb +37 -0
- data/spec/adapters/httparty_adapter.rb +10 -0
- data/spec/adapters/httpclient_adapter.rb +21 -0
- data/spec/adapters/net_http_adapter.rb +14 -0
- data/spec/adapters/open_uri_adapter.rb +17 -0
- data/spec/adapters/patron_adapter.rb +29 -0
- data/spec/adapters/typhoeus_adapter.rb +25 -0
- data/spec/backtrace_spec.rb +197 -0
- data/spec/binnacle_spec.rb +33 -0
- data/spec/client_spec.rb +128 -0
- data/spec/commands_spec.rb +91 -0
- data/spec/configuration_spec.rb +139 -0
- data/spec/connection_spec.rb +34 -0
- data/spec/exception_event_spec.rb +72 -0
- data/spec/http_logger_spec.rb +77 -0
- data/spec/logger_spec.rb +60 -0
- data/spec/spec_helper.rb +117 -0
- data/spec/support/index.html +8 -0
- data/spec/support/index.html.gz +0 -0
- data/spec/support/test.bin +0 -0
- data/spec/support/test_server.rb +31 -0
- data/spec/support/utf8-invalid.html +0 -0
- data/spec/support/utf8.html +8 -0
- data/spec/vcr/binnacle/configure_can_be_configured_via_a_hash_of_options.yml +42 -0
- data/spec/vcr/binnacle/configure_creates_a_module_level_instance_of_a_binnacle_client.yml +42 -0
- data/spec/vcr/binnacle_client/events_invokes_the_events_api.yml +124 -0
- data/spec/vcr/binnacle_client/events_returns_a_collection_of_event_objects.yml +124 -0
- data/spec/vcr/binnacle_client/recents_invokes_the_events_api_recents.yml +83 -0
- data/spec/vcr/binnacle_client/recents_returns_a_collection_of_event_objects.yml +83 -0
- data/spec/vcr/binnacle_client/report_exception_invokes_the_events_api_signal.yml +121 -0
- data/spec/vcr/binnacle_client/signal_asynch_invokes_the_events_api_signal.yml +74 -0
- data/spec/vcr/binnacle_client/signal_invokes_the_events_api_signal.yml +74 -0
- data/spec/vcr/binnacle_client_ready_/returns_true_if_a_connection_has_been_successfully_established.yml +42 -0
- data/spec/vcr/binnacle_command/tail_command_with_n_flag_returns_recent_events.yml +81 -0
- data/spec/vcr/binnacle_connection/initialize_fails_with_incorrect_credentials.yml +40 -0
- data/spec/vcr/binnacle_connection/initialize_retrieves_available_endpoints_upon_successful_connection.yml +42 -0
- data/spec/vcr/binnacle_http_logger/_htt_party_adapter_should_log__ge_t_requests.yml +122 -0
- data/spec/vcr/binnacle_http_logger/_http_adapter_should_log__ge_t_requests.yml +165 -0
- data/spec/vcr/binnacle_http_logger/_http_client_adapter_should_log__ge_t_requests.yml +274 -0
- data/spec/vcr/binnacle_http_logger/ethon_adapter_should_log__ge_t_requests.yml +87 -0
- data/spec/vcr/binnacle_http_logger/excon_adapter_should_log__ge_t_requests.yml +204 -0
- data/spec/vcr/binnacle_http_logger/faraday_adapter_should_log__ge_t_requests.yml +200 -0
- data/spec/vcr/binnacle_http_logger/net_http_adapter_should_log__ge_t_requests.yml +827 -0
- data/spec/vcr/binnacle_http_logger/open_uri_adapter_should_log__ge_t_requests.yml +751 -0
- data/spec/vcr/binnacle_http_logger/patron_adapter_should_log__ge_t_requests.yml +124 -0
- data/spec/vcr/binnacle_http_logger/typhoeus_adapter_should_log__ge_t_requests.yml +124 -0
- data/spec/vcr/binnacle_logging/logging_allows_passing_other_parameters_using_a_hash.yml +119 -0
- data/spec/vcr/binnacle_logging/logging_invokes_the_events_api_signal.yml +75 -0
- data/spec/vcr/binnacle_logging/logging_respects_the_logger_severity.yml +81 -0
- data/vendor/assets/javascripts/atmosphere/atmosphere.js +3487 -0
- data/vendor/assets/javascripts/base64/base64.js +61 -0
- data/vendor/assets/javascripts/binnacle.js +5 -0
- data/vendor/assets/javascripts/binnacle/binnacle.js +9090 -0
- data/vendor/assets/javascripts/firebase/firebase-app-externs.js +261 -0
- data/vendor/assets/javascripts/firebase/firebase-app.js +35 -0
- data/vendor/assets/javascripts/firebase/firebase-auth-externs.js +1300 -0
- data/vendor/assets/javascripts/firebase/firebase-auth.js +241 -0
- data/vendor/assets/javascripts/firebase/firebase-database-externs.js +1700 -0
- data/vendor/assets/javascripts/firebase/firebase-database.js +260 -0
- data/vendor/assets/javascripts/firebase/firebase-messaging-externs.js +164 -0
- data/vendor/assets/javascripts/firebase/firebase-messaging.js +35 -0
- data/vendor/assets/javascripts/firebase/firebase-storage-externs.js +663 -0
- data/vendor/assets/javascripts/firebase/firebase-storage.js +52 -0
- data/vendor/assets/javascripts/firebase/firebase.js +611 -0
- data/vendor/assets/javascripts/moment/locale/af.js +73 -0
- data/vendor/assets/javascripts/moment/locale/ar-dz.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar-kw.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar-ly.js +126 -0
- data/vendor/assets/javascripts/moment/locale/ar-ma.js +60 -0
- data/vendor/assets/javascripts/moment/locale/ar-sa.js +105 -0
- data/vendor/assets/javascripts/moment/locale/ar-tn.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar.js +142 -0
- data/vendor/assets/javascripts/moment/locale/az.js +105 -0
- data/vendor/assets/javascripts/moment/locale/be.js +134 -0
- data/vendor/assets/javascripts/moment/locale/bg.js +90 -0
- data/vendor/assets/javascripts/moment/locale/bn.js +119 -0
- data/vendor/assets/javascripts/moment/locale/bo.js +119 -0
- data/vendor/assets/javascripts/moment/locale/br.js +108 -0
- data/vendor/assets/javascripts/moment/locale/bs.js +143 -0
- data/vendor/assets/javascripts/moment/locale/ca.js +88 -0
- data/vendor/assets/javascripts/moment/locale/cs.js +172 -0
- data/vendor/assets/javascripts/moment/locale/cv.js +63 -0
- data/vendor/assets/javascripts/moment/locale/cy.js +81 -0
- data/vendor/assets/javascripts/moment/locale/da.js +60 -0
- data/vendor/assets/javascripts/moment/locale/de-at.js +79 -0
- data/vendor/assets/javascripts/moment/locale/de-ch.js +78 -0
- data/vendor/assets/javascripts/moment/locale/de.js +78 -0
- data/vendor/assets/javascripts/moment/locale/dv.js +100 -0
- data/vendor/assets/javascripts/moment/locale/el.js +100 -0
- data/vendor/assets/javascripts/moment/locale/en-au.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-ca.js +63 -0
- data/vendor/assets/javascripts/moment/locale/en-gb.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-ie.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-nz.js +67 -0
- data/vendor/assets/javascripts/moment/locale/eo.js +73 -0
- data/vendor/assets/javascripts/moment/locale/es-do.js +82 -0
- data/vendor/assets/javascripts/moment/locale/es.js +83 -0
- data/vendor/assets/javascripts/moment/locale/et.js +80 -0
- data/vendor/assets/javascripts/moment/locale/eu.js +66 -0
- data/vendor/assets/javascripts/moment/locale/fa.js +107 -0
- data/vendor/assets/javascripts/moment/locale/fi.js +107 -0
- data/vendor/assets/javascripts/moment/locale/fo.js +60 -0
- data/vendor/assets/javascripts/moment/locale/fr-ca.js +74 -0
- data/vendor/assets/javascripts/moment/locale/fr-ch.js +78 -0
- data/vendor/assets/javascripts/moment/locale/fr.js +83 -0
- data/vendor/assets/javascripts/moment/locale/fy.js +75 -0
- data/vendor/assets/javascripts/moment/locale/gd.js +76 -0
- data/vendor/assets/javascripts/moment/locale/gl.js +77 -0
- data/vendor/assets/javascripts/moment/locale/gom-latn.js +122 -0
- data/vendor/assets/javascripts/moment/locale/he.js +99 -0
- data/vendor/assets/javascripts/moment/locale/hi.js +124 -0
- data/vendor/assets/javascripts/moment/locale/hr.js +145 -0
- data/vendor/assets/javascripts/moment/locale/hu.js +109 -0
- data/vendor/assets/javascripts/moment/locale/hy-am.js +95 -0
- data/vendor/assets/javascripts/moment/locale/id.js +83 -0
- data/vendor/assets/javascripts/moment/locale/is.js +127 -0
- data/vendor/assets/javascripts/moment/locale/it.js +70 -0
- data/vendor/assets/javascripts/moment/locale/ja.js +80 -0
- data/vendor/assets/javascripts/moment/locale/jv.js +83 -0
- data/vendor/assets/javascripts/moment/locale/ka.js +89 -0
- data/vendor/assets/javascripts/moment/locale/kk.js +87 -0
- data/vendor/assets/javascripts/moment/locale/km.js +58 -0
- data/vendor/assets/javascripts/moment/locale/kn.js +126 -0
- data/vendor/assets/javascripts/moment/locale/ko.js +69 -0
- data/vendor/assets/javascripts/moment/locale/ky.js +88 -0
- data/vendor/assets/javascripts/moment/locale/lb.js +137 -0
- data/vendor/assets/javascripts/moment/locale/lo.js +70 -0
- data/vendor/assets/javascripts/moment/locale/lt.js +117 -0
- data/vendor/assets/javascripts/moment/locale/lv.js +97 -0
- data/vendor/assets/javascripts/moment/locale/me.js +111 -0
- data/vendor/assets/javascripts/moment/locale/mi.js +64 -0
- data/vendor/assets/javascripts/moment/locale/mk.js +90 -0
- data/vendor/assets/javascripts/moment/locale/ml.js +81 -0
- data/vendor/assets/javascripts/moment/locale/mr.js +159 -0
- data/vendor/assets/javascripts/moment/locale/ms-my.js +83 -0
- data/vendor/assets/javascripts/moment/locale/ms.js +82 -0
- data/vendor/assets/javascripts/moment/locale/my.js +96 -0
- data/vendor/assets/javascripts/moment/locale/nb.js +63 -0
- data/vendor/assets/javascripts/moment/locale/ne.js +123 -0
- data/vendor/assets/javascripts/moment/locale/nl-be.js +88 -0
- data/vendor/assets/javascripts/moment/locale/nl.js +88 -0
- data/vendor/assets/javascripts/moment/locale/nn.js +60 -0
- data/vendor/assets/javascripts/moment/locale/pa-in.js +124 -0
- data/vendor/assets/javascripts/moment/locale/pl.js +107 -0
- data/vendor/assets/javascripts/moment/locale/pt-br.js +61 -0
- data/vendor/assets/javascripts/moment/locale/pt.js +65 -0
- data/vendor/assets/javascripts/moment/locale/ro.js +75 -0
- data/vendor/assets/javascripts/moment/locale/ru.js +183 -0
- data/vendor/assets/javascripts/moment/locale/sd.js +98 -0
- data/vendor/assets/javascripts/moment/locale/se.js +61 -0
- data/vendor/assets/javascripts/moment/locale/si.js +71 -0
- data/vendor/assets/javascripts/moment/locale/sk.js +150 -0
- data/vendor/assets/javascripts/moment/locale/sl.js +162 -0
- data/vendor/assets/javascripts/moment/locale/sq.js +70 -0
- data/vendor/assets/javascripts/moment/locale/sr-cyrl.js +110 -0
- data/vendor/assets/javascripts/moment/locale/sr.js +110 -0
- data/vendor/assets/javascripts/moment/locale/ss.js +89 -0
- data/vendor/assets/javascripts/moment/locale/sv.js +69 -0
- data/vendor/assets/javascripts/moment/locale/sw.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ta.js +130 -0
- data/vendor/assets/javascripts/moment/locale/te.js +89 -0
- data/vendor/assets/javascripts/moment/locale/tet.js +68 -0
- data/vendor/assets/javascripts/moment/locale/th.js +67 -0
- data/vendor/assets/javascripts/moment/locale/tl-ph.js +62 -0
- data/vendor/assets/javascripts/moment/locale/tlh.js +120 -0
- data/vendor/assets/javascripts/moment/locale/tr.js +90 -0
- data/vendor/assets/javascripts/moment/locale/tzl.js +91 -0
- data/vendor/assets/javascripts/moment/locale/tzm-latn.js +58 -0
- data/vendor/assets/javascripts/moment/locale/tzm.js +58 -0
- data/vendor/assets/javascripts/moment/locale/uk.js +151 -0
- data/vendor/assets/javascripts/moment/locale/ur.js +99 -0
- data/vendor/assets/javascripts/moment/locale/uz-latn.js +58 -0
- data/vendor/assets/javascripts/moment/locale/uz.js +58 -0
- data/vendor/assets/javascripts/moment/locale/vi.js +79 -0
- data/vendor/assets/javascripts/moment/locale/x-pseudo.js +68 -0
- data/vendor/assets/javascripts/moment/locale/yo.js +60 -0
- data/vendor/assets/javascripts/moment/locale/zh-cn.js +111 -0
- data/vendor/assets/javascripts/moment/locale/zh-hk.js +105 -0
- data/vendor/assets/javascripts/moment/locale/zh-tw.js +104 -0
- data/vendor/assets/javascripts/moment/min/locales.js +9252 -0
- data/vendor/assets/javascripts/moment/min/moment-with-locales.js +13700 -0
- data/vendor/assets/javascripts/moment/min/moment.min.js +7 -0
- data/vendor/assets/javascripts/moment/min/tests.js +78265 -0
- data/vendor/assets/javascripts/moment/moment.js +4463 -0
- data/vendor/assets/javascripts/moment/src/lib/create/check-overflow.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/create/date-from-array.js +21 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-anything.js +110 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-array.js +140 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-object.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string-and-array.js +50 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string-and-format.js +113 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string.js +202 -0
- data/vendor/assets/javascripts/moment/src/lib/create/local.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/create/parsing-flags.js +26 -0
- data/vendor/assets/javascripts/moment/src/lib/create/utc.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/create/valid.js +49 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/abs.js +18 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/add-subtract.js +21 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/as.js +61 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/bubble.js +61 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/constructor.js +44 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/create.js +122 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/duration.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/get.js +25 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/humanize.js +85 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/iso-string.js +56 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/prototype.js +50 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/valid.js +35 -0
- data/vendor/assets/javascripts/moment/src/lib/format/format.js +92 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/base-config.js +44 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/calendar.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/constructor.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/en.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/formats.js +23 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/invalid.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/lists.js +93 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/locale.js +39 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/locales.js +186 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/ordinal.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/pre-post-format.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/prototype.js +69 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/relative.js +30 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/set.js +49 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/add-subtract.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/calendar.js +26 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/clone.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/compare.js +59 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/constructor.js +77 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/creation-data.js +9 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/diff.js +62 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/format.js +57 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/from.js +17 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/get-set.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/locale.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/min-max.js +63 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/moment.js +28 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/now.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/prototype.js +150 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/start-end-of.js +59 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/to-type.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/to.js +17 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/valid.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/parse/regex.js +54 -0
- data/vendor/assets/javascripts/moment/src/lib/parse/token.js +33 -0
- data/vendor/assets/javascripts/moment/src/lib/units/aliases.js +30 -0
- data/vendor/assets/javascripts/moment/src/lib/units/constants.js +9 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-month.js +39 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-week.js +364 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-year.js +36 -0
- data/vendor/assets/javascripts/moment/src/lib/units/hour.js +144 -0
- data/vendor/assets/javascripts/moment/src/lib/units/millisecond.js +69 -0
- data/vendor/assets/javascripts/moment/src/lib/units/minute.js +29 -0
- data/vendor/assets/javascripts/moment/src/lib/units/month.js +283 -0
- data/vendor/assets/javascripts/moment/src/lib/units/offset.js +235 -0
- data/vendor/assets/javascripts/moment/src/lib/units/priorities.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/units/quarter.js +32 -0
- data/vendor/assets/javascripts/moment/src/lib/units/second.js +29 -0
- data/vendor/assets/javascripts/moment/src/lib/units/timestamp.js +20 -0
- data/vendor/assets/javascripts/moment/src/lib/units/timezone.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/units/units.js +20 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week-calendar-utils.js +65 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week-year.js +107 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week.js +67 -0
- data/vendor/assets/javascripts/moment/src/lib/units/year.js +75 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-ceil.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-floor.js +8 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-round.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/compare-arrays.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/defaults.js +10 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/deprecate.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/extend.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/has-own-prop.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/hooks.js +13 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/index-of.js +18 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-array.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-date.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-function.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-number.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-object-empty.js +8 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-object.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-undefined.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/keys.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/map.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/some.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/to-int.js +12 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/zero-fill.js +7 -0
- data/vendor/assets/javascripts/moment/src/locale/af.js +63 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-dz.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-kw.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-ly.js +112 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-ma.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-sa.js +95 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-tn.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ar.js +128 -0
- data/vendor/assets/javascripts/moment/src/locale/az.js +96 -0
- data/vendor/assets/javascripts/moment/src/locale/be.js +125 -0
- data/vendor/assets/javascripts/moment/src/locale/bg.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/bn.js +109 -0
- data/vendor/assets/javascripts/moment/src/locale/bo.js +110 -0
- data/vendor/assets/javascripts/moment/src/locale/br.js +99 -0
- data/vendor/assets/javascripts/moment/src/locale/bs.js +133 -0
- data/vendor/assets/javascripts/moment/src/locale/ca.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/cs.js +163 -0
- data/vendor/assets/javascripts/moment/src/locale/cv.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/cy.js +72 -0
- data/vendor/assets/javascripts/moment/src/locale/da.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/de-at.js +69 -0
- data/vendor/assets/javascripts/moment/src/locale/de-ch.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/de.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/dv.js +89 -0
- data/vendor/assets/javascripts/moment/src/locale/el.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/en-au.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-ca.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/en-gb.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-ie.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-nz.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/eo.js +64 -0
- data/vendor/assets/javascripts/moment/src/locale/es-do.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/es.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/et.js +71 -0
- data/vendor/assets/javascripts/moment/src/locale/eu.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/fa.js +97 -0
- data/vendor/assets/javascripts/moment/src/locale/fi.js +98 -0
- data/vendor/assets/javascripts/moment/src/locale/fo.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/fr-ca.js +65 -0
- data/vendor/assets/javascripts/moment/src/locale/fr-ch.js +69 -0
- data/vendor/assets/javascripts/moment/src/locale/fr.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/fy.js +66 -0
- data/vendor/assets/javascripts/moment/src/locale/gd.js +67 -0
- data/vendor/assets/javascripts/moment/src/locale/gl.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/gom-latn.js +112 -0
- data/vendor/assets/javascripts/moment/src/locale/he.js +90 -0
- data/vendor/assets/javascripts/moment/src/locale/hi.js +115 -0
- data/vendor/assets/javascripts/moment/src/locale/hr.js +135 -0
- data/vendor/assets/javascripts/moment/src/locale/hu.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/hy-am.js +86 -0
- data/vendor/assets/javascripts/moment/src/locale/id.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/is.js +118 -0
- data/vendor/assets/javascripts/moment/src/locale/it.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/ja.js +71 -0
- data/vendor/assets/javascripts/moment/src/locale/jv.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/ka.js +80 -0
- data/vendor/assets/javascripts/moment/src/locale/kk.js +77 -0
- data/vendor/assets/javascripts/moment/src/locale/km.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/kn.js +116 -0
- data/vendor/assets/javascripts/moment/src/locale/ko.js +60 -0
- data/vendor/assets/javascripts/moment/src/locale/ky.js +78 -0
- data/vendor/assets/javascripts/moment/src/locale/lb.js +128 -0
- data/vendor/assets/javascripts/moment/src/locale/lo.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/lt.js +108 -0
- data/vendor/assets/javascripts/moment/src/locale/lv.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/me.js +101 -0
- data/vendor/assets/javascripts/moment/src/locale/mi.js +54 -0
- data/vendor/assets/javascripts/moment/src/locale/mk.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/ml.js +72 -0
- data/vendor/assets/javascripts/moment/src/locale/mr.js +150 -0
- data/vendor/assets/javascripts/moment/src/locale/ms-my.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/ms.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/my.js +86 -0
- data/vendor/assets/javascripts/moment/src/locale/nb.js +54 -0
- data/vendor/assets/javascripts/moment/src/locale/ne.js +114 -0
- data/vendor/assets/javascripts/moment/src/locale/nl-be.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/nl.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/nn.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/pa-in.js +115 -0
- data/vendor/assets/javascripts/moment/src/locale/pl.js +97 -0
- data/vendor/assets/javascripts/moment/src/locale/pt-br.js +52 -0
- data/vendor/assets/javascripts/moment/src/locale/pt.js +56 -0
- data/vendor/assets/javascripts/moment/src/locale/ro.js +66 -0
- data/vendor/assets/javascripts/moment/src/locale/ru.js +173 -0
- data/vendor/assets/javascripts/moment/src/locale/sd.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/se.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/si.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/sk.js +141 -0
- data/vendor/assets/javascripts/moment/src/locale/sl.js +152 -0
- data/vendor/assets/javascripts/moment/src/locale/sq.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/sr-cyrl.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/sr.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/ss.js +80 -0
- data/vendor/assets/javascripts/moment/src/locale/sv.js +60 -0
- data/vendor/assets/javascripts/moment/src/locale/sw.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ta.js +120 -0
- data/vendor/assets/javascripts/moment/src/locale/te.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/tet.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/th.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/tl-ph.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/tlh.js +110 -0
- data/vendor/assets/javascripts/moment/src/locale/tr.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/tzl.js +82 -0
- data/vendor/assets/javascripts/moment/src/locale/tzm-latn.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/tzm.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/uk.js +142 -0
- data/vendor/assets/javascripts/moment/src/locale/ur.js +89 -0
- data/vendor/assets/javascripts/moment/src/locale/uz-latn.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/uz.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/vi.js +70 -0
- data/vendor/assets/javascripts/moment/src/locale/x-pseudo.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/yo.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-cn.js +102 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-hk.js +95 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-tw.js +94 -0
- data/vendor/assets/javascripts/moment/src/moment.js +82 -0
- data/vendor/assets/javascripts/moment/templates/default.js +5 -0
- data/vendor/assets/javascripts/moment/templates/locale-header.js +6 -0
- data/vendor/assets/javascripts/moment/templates/test-header.js +6 -0
- metadata +943 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: ac88903228fc74fc1b88017ad2b8a5c61432bb5d
|
|
4
|
+
data.tar.gz: 5faf3822abed8fe7e29efc915821fd376015476f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e1fdc27769de722bf9f258b42aadca2cf4ce4497a01a7caa156b067ddc890f7ce1f0e2e556dbf90ea2d72e87614fd6e53d39e43a7a7965ba751ce76efd33ffc8
|
|
7
|
+
data.tar.gz: f06922bca53b26e5e60b27b923665d6a1a517036f8ec0fedb353b424c461c0adc28cba825c74b459dbad2beb3ef781f171b2d2d20c1e642e83e9977d960638e2
|
data/.gitignore
ADDED
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
binnacle-ruby
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.3.3
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
binnacle (0.4.8)
|
|
5
|
+
addressable (~> 2.5)
|
|
6
|
+
colorize (~> 0.8.1)
|
|
7
|
+
faraday (~> 0.11)
|
|
8
|
+
faye-websocket (~> 0.10, >= 0.10.4)
|
|
9
|
+
httpclient (~> 2.8, >= 2.8.0)
|
|
10
|
+
rack-timeout (~> 0.4, >= 0.4.2)
|
|
11
|
+
trollop (~> 2.1, >= 2.1.2)
|
|
12
|
+
|
|
13
|
+
GEM
|
|
14
|
+
remote: https://rubygems.org/
|
|
15
|
+
remote: https://rails-assets.org/
|
|
16
|
+
specs:
|
|
17
|
+
addressable (2.5.1)
|
|
18
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
|
19
|
+
codeclimate-test-reporter (1.0.7)
|
|
20
|
+
simplecov
|
|
21
|
+
colorize (0.8.1)
|
|
22
|
+
crack (0.4.3)
|
|
23
|
+
safe_yaml (~> 1.0.0)
|
|
24
|
+
daemons (1.2.4)
|
|
25
|
+
diff-lcs (1.3)
|
|
26
|
+
docile (1.1.5)
|
|
27
|
+
domain_name (0.5.20170404)
|
|
28
|
+
unf (>= 0.0.5, < 1.0.0)
|
|
29
|
+
ethon (0.10.1)
|
|
30
|
+
ffi (>= 1.3.0)
|
|
31
|
+
eventmachine (1.2.3)
|
|
32
|
+
excon (0.55.0)
|
|
33
|
+
faraday (0.12.0.1)
|
|
34
|
+
multipart-post (>= 1.2, < 3)
|
|
35
|
+
faye-websocket (0.10.7)
|
|
36
|
+
eventmachine (>= 0.12.0)
|
|
37
|
+
websocket-driver (>= 0.5.1)
|
|
38
|
+
ffi (1.9.18)
|
|
39
|
+
fivemat (1.3.3)
|
|
40
|
+
hashdiff (0.3.2)
|
|
41
|
+
http (2.2.1)
|
|
42
|
+
addressable (~> 2.3)
|
|
43
|
+
http-cookie (~> 1.0)
|
|
44
|
+
http-form_data (~> 1.0.1)
|
|
45
|
+
http_parser.rb (~> 0.6.0)
|
|
46
|
+
http-cookie (1.0.3)
|
|
47
|
+
domain_name (~> 0.5)
|
|
48
|
+
http-form_data (1.0.1)
|
|
49
|
+
http_parser.rb (0.6.0)
|
|
50
|
+
httparty (0.14.0)
|
|
51
|
+
multi_xml (>= 0.5.2)
|
|
52
|
+
httpclient (2.8.3)
|
|
53
|
+
json (2.0.4)
|
|
54
|
+
multi_xml (0.6.0)
|
|
55
|
+
multipart-post (2.0.0)
|
|
56
|
+
patron (0.8.0)
|
|
57
|
+
public_suffix (2.0.5)
|
|
58
|
+
rack (2.0.1)
|
|
59
|
+
rack-timeout (0.4.2)
|
|
60
|
+
rails-assets-atmosphere (2.3.2)
|
|
61
|
+
rails-assets-base64 (1.0.0)
|
|
62
|
+
rails-assets-binnacle (0.2.5)
|
|
63
|
+
rails-assets-atmosphere (= 2.3.2)
|
|
64
|
+
rails-assets-base64 (= 1.0.0)
|
|
65
|
+
rails-assets-firebase (= 3.7.1)
|
|
66
|
+
rails-assets-moment (= 2.18.0)
|
|
67
|
+
rails-assets-firebase (3.7.1)
|
|
68
|
+
rails-assets-moment (2.18.0)
|
|
69
|
+
rake (10.5.0)
|
|
70
|
+
rspec (3.5.0)
|
|
71
|
+
rspec-core (~> 3.5.0)
|
|
72
|
+
rspec-expectations (~> 3.5.0)
|
|
73
|
+
rspec-mocks (~> 3.5.0)
|
|
74
|
+
rspec-collection_matchers (1.1.3)
|
|
75
|
+
rspec-expectations (>= 2.99.0.beta1)
|
|
76
|
+
rspec-core (3.5.4)
|
|
77
|
+
rspec-support (~> 3.5.0)
|
|
78
|
+
rspec-expectations (3.5.0)
|
|
79
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
80
|
+
rspec-support (~> 3.5.0)
|
|
81
|
+
rspec-mocks (3.5.0)
|
|
82
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
83
|
+
rspec-support (~> 3.5.0)
|
|
84
|
+
rspec-support (3.5.0)
|
|
85
|
+
rspec-wait (0.0.9)
|
|
86
|
+
rspec (>= 3, < 4)
|
|
87
|
+
safe_yaml (1.0.4)
|
|
88
|
+
simplecov (0.14.1)
|
|
89
|
+
docile (~> 1.1.0)
|
|
90
|
+
json (>= 1.8, < 3)
|
|
91
|
+
simplecov-html (~> 0.10.0)
|
|
92
|
+
simplecov-html (0.10.0)
|
|
93
|
+
thin (1.7.0)
|
|
94
|
+
daemons (~> 1.0, >= 1.0.9)
|
|
95
|
+
eventmachine (~> 1.0, >= 1.0.4)
|
|
96
|
+
rack (>= 1, < 3)
|
|
97
|
+
trollop (2.1.2)
|
|
98
|
+
typhoeus (1.1.2)
|
|
99
|
+
ethon (>= 0.9.0)
|
|
100
|
+
unf (0.1.4)
|
|
101
|
+
unf_ext
|
|
102
|
+
unf_ext (0.0.7.3)
|
|
103
|
+
vcr (3.0.3)
|
|
104
|
+
webmock (2.3.2)
|
|
105
|
+
addressable (>= 2.3.6)
|
|
106
|
+
crack (>= 0.3.2)
|
|
107
|
+
hashdiff
|
|
108
|
+
websocket-driver (0.6.5)
|
|
109
|
+
websocket-extensions (>= 0.1.0)
|
|
110
|
+
websocket-extensions (0.1.2)
|
|
111
|
+
|
|
112
|
+
PLATFORMS
|
|
113
|
+
ruby
|
|
114
|
+
|
|
115
|
+
DEPENDENCIES
|
|
116
|
+
binnacle!
|
|
117
|
+
bundler (~> 1.10)
|
|
118
|
+
codeclimate-test-reporter (~> 1.0, >= 1.0.7)
|
|
119
|
+
ethon (~> 0.10)
|
|
120
|
+
excon (~> 0.55)
|
|
121
|
+
fivemat (~> 1.3, >= 1.3.2)
|
|
122
|
+
http (~> 2.2)
|
|
123
|
+
httparty (~> 0.14)
|
|
124
|
+
patron (~> 0.8)
|
|
125
|
+
rack (~> 2.0)
|
|
126
|
+
rails-assets-binnacle (>= 0.2.5)!
|
|
127
|
+
rake (~> 10.5)
|
|
128
|
+
rspec (~> 3.5, >= 3.2.0)
|
|
129
|
+
rspec-collection_matchers (~> 1.1, >= 1.1.2)
|
|
130
|
+
rspec-wait (~> 0.0.9)
|
|
131
|
+
simplecov (~> 0.14)
|
|
132
|
+
thin (~> 1.7)
|
|
133
|
+
typhoeus (~> 1.1)
|
|
134
|
+
vcr (~> 3.0)
|
|
135
|
+
webmock (~> 2.3)
|
|
136
|
+
|
|
137
|
+
BUNDLED WITH
|
|
138
|
+
1.14.6
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2015 Brian Sam-Bodden
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.asc
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
== Binnacle Ruby Client
|
|
2
|
+
|
|
3
|
+
#### Ruby Client for the RESTful Multi-channel Push Service Binnacle (see binnacle.io)
|
|
4
|
+
|
|
5
|
+
....
|
|
6
|
+
__/\\\______________________________________________________________________________/\\\\\\____________________
|
|
7
|
+
_\/\\\_____________________________________________________________________________\////\\\____________________
|
|
8
|
+
_\/\\\__________/\\\__________________________________________________________________\/\\\____________________
|
|
9
|
+
_\/\\\_________\///____/\\/\\\\\\_____/\\/\\\\\\_____/\\\\\\\\\_________/\\\\\\\\_____\/\\\_________/\\\\\\\\__
|
|
10
|
+
_\/\\\\\\\\\____/\\\__\/\\\////\\\___\/\\\////\\\___\////////\\\______/\\\//////______\/\\\_______/\\\/////\\\_
|
|
11
|
+
_\/\\\////\\\__\/\\\__\/\\\__\//\\\__\/\\\__\//\\\____/\\\\\\\\\\____/\\\_____________\/\\\______/\\\\\\\\\\\__
|
|
12
|
+
_\/\\\__\/\\\__\/\\\__\/\\\___\/\\\__\/\\\___\/\\\___/\\\/////\\\___\//\\\____________\/\\\_____\//\\///////___
|
|
13
|
+
_\/\\\\\\\\\___\/\\\__\/\\\___\/\\\__\/\\\___\/\\\__\//\\\\\\\\/\\___\///\\\\\\\\___/\\\\\\\\\___\//\\\\\\\\\\_
|
|
14
|
+
_\/////////____\///___\///____\///___\///____\///____\////////\//______\////////___\/////////_____\//////////__
|
|
15
|
+
....
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Send events and log messages to Binnacle
|
|
20
|
+
|
|
21
|
+
Drop in replacement for Ruby's Logger (See http://www.ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger.html)
|
|
22
|
+
|
|
23
|
+
### Status
|
|
24
|
+
|
|
25
|
+
image:https://www.codeship.io/projects/495e6480-8fb0-0132-ebb3-32b8c1ae92e1/status?branch=master[CI Status]
|
|
26
|
+
image:https://codeclimate.com/repos/560031456956807b70002199/badges/ffe8465d2f620cea4d4e/gpa.svg[
|
|
27
|
+
"Code Climate",link="https://codeclimate.com/repos/560031456956807b70002199/feed"]
|
|
28
|
+
image:https://codeclimate.com/repos/560031456956807b70002199/badges/ffe8465d2f620cea4d4e/coverage.svg[
|
|
29
|
+
"Test Coverage",link="https://codeclimate.com/repos/560031456956807b70002199/coverage"]
|
|
30
|
+
|
|
31
|
+
## Building
|
|
32
|
+
|
|
33
|
+
- Pull the JS assets (after bundling) from Rails Assets (https://rails-assets.org/#/?query=binnacle)
|
|
34
|
+
- `rake binnacle:install_binnacle_js`
|
|
35
|
+
- Build the Gem: `gem build binnacle.gemspec`
|
|
36
|
+
- Install the Gem Locally: `gem install ./binnacle-M.m.P.gem`
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
### Rails 3.x/4.x/5.x
|
|
41
|
+
|
|
42
|
+
Add the binnacle gem to your Gemfile. In Gemfile:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
gem 'binnacle'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Then from your project's RAILS_ROOT, and in your development environment, run:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
bundle install
|
|
52
|
+
rails generate binnacle
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The generator creates a file under `config/initializers/binnacle.rb`. Although you
|
|
56
|
+
can configure all aspects of the binnacle client via this initializer we recommend
|
|
57
|
+
that you configure any credentials and account/app/channel ids via Environment
|
|
58
|
+
variables (using something like the dotenv gem in development and ENV values in
|
|
59
|
+
production/staging)
|
|
60
|
+
|
|
61
|
+
## Configuration
|
|
62
|
+
|
|
63
|
+
### Rails 3.x
|
|
64
|
+
|
|
65
|
+
In config/environments/production.rb:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
RailsApplication::Application.configure do
|
|
69
|
+
config.logger = Binnacle::Logging.build(API_KEY, API_SECRET, BINNACLE_URL, BINNACLE_APP_LOG_CHANNEL)
|
|
70
|
+
end
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### In Rails 4.x - 5.x
|
|
74
|
+
|
|
75
|
+
The Binnacle Ruby client integrate seamlessly with the Ruby on Rails to:
|
|
76
|
+
|
|
77
|
+
- Provide a Pub-Sub client to interact with Binnacle's Push Service
|
|
78
|
+
- Intercepts Rails Logger to log to a Binnacle Channel
|
|
79
|
+
- Intercepts Errors and Exceptions and logs them to a Binnacle Channel
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
# ==============================================================================
|
|
83
|
+
# Binnacle Configuration
|
|
84
|
+
# ==============================================================================
|
|
85
|
+
# Available parameters (some are also configurable via ENV variables, see parens):
|
|
86
|
+
# ==============================================================================
|
|
87
|
+
# - url: The Binnacle Endpoint URL (BINNACLE_URL)
|
|
88
|
+
# - logging_channel: The application logger Binnacle Channel (BINNACLE_APP_LOG_CHANNEL)
|
|
89
|
+
# - error_channel: The application error Binnacle Channel (BINNACLE_APP_ERR_CHANNEL)
|
|
90
|
+
# - api_key: An approved publisher API key for the App (BINNACLE_API_KEY)
|
|
91
|
+
# - api_secret: The API secret for the given API key (BINNACLE_API_SECRET)
|
|
92
|
+
# - intercept_rails_logging: Redirect rails logging to logging_channel in Binnacle (BINNACLE_RAILS_LOG)
|
|
93
|
+
# - report_exceptions: Trap exceptions are log them to error_channel (BINNACLE_REPORT_EXCEPTIONS)
|
|
94
|
+
# - ignored_exceptions: List of Exceptions that do not get reported to Binnacle (BINNACLE_IGNORED_EXCEPTIONS)
|
|
95
|
+
# - ignore_cascade_pass: Whether to skip reporting exceptions where the headers['X-Cascade'] is set to 'pass'.
|
|
96
|
+
# In Rails typically it means route was not found (404 error).
|
|
97
|
+
# ==============================================================================
|
|
98
|
+
Binnacle.configure do |config|
|
|
99
|
+
config.intercept_rails_logging = true
|
|
100
|
+
config.report_exceptions = true
|
|
101
|
+
end
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Usage
|
|
105
|
+
|
|
106
|
+
### Rails
|
|
107
|
+
|
|
108
|
+
Once configured the Binnacle client is available to send signals. In the example
|
|
109
|
+
below from a Rails controller:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
def create
|
|
113
|
+
logger.info "PostsController#create"
|
|
114
|
+
@post = Post.new(post_params)
|
|
115
|
+
if @post.save
|
|
116
|
+
client = Binnacle::Client.new(publisher.api_key, publisher.api_secret)
|
|
117
|
+
client.signal_asynch('channel', 'event_name', 'new_post', 'rails-app', session.id, 'INFO', [], @post.to_json)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Available methods are: signal, signal_asynch, recents, report_exception
|
|
123
|
+
|
|
124
|
+
### Direct Via Ruby Client
|
|
125
|
+
|
|
126
|
+
Build an instance of Logging Adapter passing the following Binnacle configuration
|
|
127
|
+
values (get them from you App page on the Binnacle Website):
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
require 'binnacle'
|
|
131
|
+
|
|
132
|
+
client = Binnacle::Client.new(api_key, api_secret, endpoint)
|
|
133
|
+
client.signal('5ujzd7gwk8ikmvnqv1w7', 'event_from_client', 'binnacle-ruby', '001', 'INFO')
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Parameters to Client.new:
|
|
137
|
+
|
|
138
|
+
- api_key: An approved publisher API key for the App (`BINNACLE_API_KEY`)
|
|
139
|
+
- api_secret: The API secret for the given API key (`BINNACLE_API_SECRET`)
|
|
140
|
+
- endpoint: The Binnacle Endpoint (host) (`BINNACLE_ENDPOINT`)
|
|
141
|
+
|
|
142
|
+
All these values can be configured as ENV variables (variable name in parenthesis)
|
|
143
|
+
|
|
144
|
+
Parameters to signal:
|
|
145
|
+
|
|
146
|
+
- channel_id: Your default Binnacle Channel ID
|
|
147
|
+
- event_name: The name of the event
|
|
148
|
+
- client_id: Use for system/subsystem/component id/name
|
|
149
|
+
- session_id: Use to track a user session across requests/processes
|
|
150
|
+
- log_level: UNKNOWN, FATAL, ERROR, WARN, INFO, DEBUG
|
|
151
|
+
- tags (optional): An Array of tags, e.g. `['accounts', 'refunds', 'dispute']`
|
|
152
|
+
- json (optional): A Ruby Hash, e.g. `{ message: "there you are!" }`
|
|
153
|
+
|
|
154
|
+
### Via Ruby/Rails Logging
|
|
155
|
+
|
|
156
|
+
Build an instance of Logging Adapter (which wraps the Binnacle Client):
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
require 'binnacle'
|
|
160
|
+
|
|
161
|
+
logger = Binnacle::Logging.build(API_KEY, API_SECRET, '5ujzd7gwk8ikmvnqv1w7', 'localhost')
|
|
162
|
+
|
|
163
|
+
logger.info("This is an info message")
|
|
164
|
+
logger.debug("This is an debug message")
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Parameters to Logging.new:
|
|
168
|
+
|
|
169
|
+
- api_key: An approved publisher API key for the App (`BINNACLE_API_KEY`)
|
|
170
|
+
- api_secret: The API secret for the given API key (`BINNACLE_API_SECRET`)
|
|
171
|
+
- logging_channel_id: A Binnacle Channel ID
|
|
172
|
+
- endpoint: The Binnacle Endpoint (host) (`BINNACLE_ENDPOINT`)
|
|
173
|
+
|
|
174
|
+
The following log statement:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
logger.info("hey")
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
results in the following message being sent to Binnacle:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
{
|
|
184
|
+
"channelId": "5ujzd7gwk8ikmvnqv1w7",
|
|
185
|
+
"sessionId": "",
|
|
186
|
+
"clientEventTime": "2015-01-31T08:55:19-0700",
|
|
187
|
+
"eventName": "log",
|
|
188
|
+
"clientId": "",
|
|
189
|
+
"logLevel": "INFO",
|
|
190
|
+
"tags": [],
|
|
191
|
+
"json": {"message":"hey"}
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
#### Switching channel and passing other parameters
|
|
196
|
+
|
|
197
|
+
We override Ruby's logger 'progname' parameter to pass a Hash where you can specify
|
|
198
|
+
Binnacle's signal remaining parameters (session_id, event_name, client_id, tags)
|
|
199
|
+
|
|
200
|
+
For example, the following log statement:
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
logger.info(channel_id: 'xxx', session_id: '8675309', event_name: 'failed_transfer') { 'transfer failed, bad RTN' }
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Will post to Binnacle under the event name `failed_transfer`, to the channel with id `xxx`
|
|
207
|
+
and with `session_id` equal to `8675309`.
|
|
208
|
+
|
|
209
|
+
In the hash you can pass `channel_id`, `session_id`, `event_name`, `client_id`, `tags`, `json`
|
|
210
|
+
|
|
211
|
+
If instead of a Hash you pass a String the `event_name` will be assigned its value.
|
|
212
|
+
|
|
213
|
+
## Binnacle Executable
|
|
214
|
+
|
|
215
|
+
Installing the client gem provides the `binnacle` executable which provides the following features:
|
|
216
|
+
|
|
217
|
+
### Live Tail
|
|
218
|
+
|
|
219
|
+
Use `tail -f` (follow) subcommand to live tail a binnacle channel or app.
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
binnacle tail -f --host=localhost --channel=ylhcn28x7skv6av8q93m --api-key=jzr5d5kgj4j3l8fm90tr --api-secret=bz3e3w44o3323dypp8d7 --encrypted=false
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
The tail subcommand has the following options:
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
SUBCOMMAND
|
|
229
|
+
tail -- listen to a Binnacle channel or app
|
|
230
|
+
|
|
231
|
+
Usage:
|
|
232
|
+
binnacle tail
|
|
233
|
+
|
|
234
|
+
where [options] are:
|
|
235
|
+
-h, --host=<s> Binnacle Host (default: localhost)
|
|
236
|
+
-c, --channel=<s> Binnacle Channel
|
|
237
|
+
-a, --app=<s> Binnacle App
|
|
238
|
+
-u, --api-key=<s> Binnacle API Key
|
|
239
|
+
-p, --api-secret=<s> Binnacle API Secret
|
|
240
|
+
-f, --follow Monitors a Binnacle Channel or App
|
|
241
|
+
-n, --lines=<i> Get the last n events on the Channel
|
|
242
|
+
-s, --since=<i> Number of minutes in the past to search for events
|
|
243
|
+
-e, --encrypted, --no-encrypted Use SSL/HTTPS (default: true)
|
|
244
|
+
-l, --help Show this message
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Recent Events
|
|
248
|
+
|
|
249
|
+
Use `tail -n` subcommand to get the last N events in the last M minutes'
|
|
250
|
+
|
|
251
|
+
`lines` : maximum number of events to retrieve
|
|
252
|
+
`since` : number of minutes in the past (defaults to 5 minutes)
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
binnacle tail -n 2 -s 60 --host=localhost --channel=ylhcn28x7skv6av8q93m --api-key=jzr5d5kgj4j3l8fm90tr --api-secret=bz3e3w44o3323dypp8d7 --no-encrypted
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Testing
|
|
259
|
+
|
|
260
|
+
We use RSpec. When developing outgoing HTTP logging adaptors you can pass SERVE_TEST_ASSETS=true to rspec to run an embedded thin server to server test files:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
SERVE_TEST_ASSETS=true rspec
|
|
264
|
+
```
|