Sha256: 024ad4bc314252d2789aa22225d84e3f805361b2776afb4e0e106625783a1b11

Contents?: true

Size: 1.16 KB

Versions: 161

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Entries
    module Jobs
      class VariablesSource
        class ReadEntry
          enable_method_class
          common_constructor :variables_source, :path, :options, default: [{}]
          delegate :instance, :job, to: :variables_source

          def result
            return result_from_job if result_from_job?
            return result_from_instance_method if result_from_instance_method?

            result_from_instance_entry
          end

          private

          def path_method_name
            path.gsub('.', '_').underscore
          end

          def result_from_instance_entry
            instance.read_entry(path, options)
          end

          def result_from_instance_method
            instance.send(path_method_name)
          end

          def result_from_instance_method?
            instance.respond_to?(path_method_name, true)
          end

          def result_from_job
            job.send(path_method_name)
          end

          def result_from_job?
            job.respond_to?(path_method_name, true)
          end
        end
      end
    end
  end
end

Version data entries

161 entries across 161 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.98.0 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.94.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.94.0 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.93.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.92.0 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.92.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.91.0 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.90.1 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.87.1 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.90.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.87.0 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.89.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.86.12 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.88.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.86.11 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.87.0 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.86.8 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb
avm-0.86.2 lib/avm/entries/jobs/variables_source/read_entry.rb
eac_tools-0.86.7 sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb