Class: TimeStreamer::App
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- TimeStreamer::App
- Defined in:
- lib/time_streamer/app.rb
Instance Method Summary collapse
- #adapter ⇒ Object
- #associations_for(parent) ⇒ Object
- #format_time(time) ⇒ Object
- #ignored_associations(model_class) ⇒ Object
- #load_associations(record) ⇒ Object
- #mount_path ⇒ Object
- #versions_to_view_models(versions) ⇒ Object
Instance Method Details
#adapter ⇒ Object
55 56 57 |
# File 'lib/time_streamer/app.rb', line 55 def adapter TimeStreamer.configuration.adapter end |
#associations_for(parent) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/time_streamer/app.rb', line 32 def associations_for(parent) return if parent.nil? associations = load_associations parent associations.transform_values! do |value| Array(value).map { |record| adapter.identifier_for(record) } end associations.reject { |_, value| value.empty? } end |
#format_time(time) ⇒ Object
47 48 49 |
# File 'lib/time_streamer/app.rb', line 47 def format_time(time) time.strftime '%Y-%m-%d %H:%M:%S' end |
#ignored_associations(model_class) ⇒ Object
59 60 61 62 63 |
# File 'lib/time_streamer/app.rb', line 59 def ignored_associations(model_class) global = TimeStreamer.configuration.global_ignored_associations specific = TimeStreamer.configuration.ignored_associations.fetch(model_class.to_s) { [] } global | specific end |
#load_associations(record) ⇒ Object
42 43 44 45 |
# File 'lib/time_streamer/app.rb', line 42 def load_associations(record) associations = record.class.reflections.keys - ignored_associations(record.class) associations.map { |key| [key, record.send(key)] }.to_h end |
#mount_path ⇒ Object
65 66 67 |
# File 'lib/time_streamer/app.rb', line 65 def mount_path TimeStreamer.configuration.mount_path end |
#versions_to_view_models(versions) ⇒ Object
51 52 53 |
# File 'lib/time_streamer/app.rb', line 51 def versions_to_view_models(versions) versions.map { |version| VersionViewModel.new(**adapter.version_data(version)) } end |