class OpenSecret::Show

Show the mini dictionary of key-value pairs within the logged in book at the opened chapter and verse.

If no dictionary exists at the opened chapter and verse a suitable message is pushed out to the console.

Constants

SECRET_MASK_STRING

Public Instance Methods

execute() click to toggle source
# File lib/usecase/show.rb, line 16
    def execute

      return unless ops_key_exists?
      master_db = OpenKey::KeyApi.read_master_db()

      return if unopened_envelope?( master_db )

      chapter_id = ENVELOPE_KEY_PREFIX + master_db[ ENV_PATH ]
      has_chapter = OpenKey::KeyApi.db_envelope_exists?( master_db[ chapter_id ] )
      chapter_data = get_chapter_data( master_db[ chapter_id ] ) if has_chapter
      has_verse = has_chapter && chapter_data.has_key?( master_db[ KEY_PATH ] )


##global_variables - DONE
##local_variables - DONE
##instance_variables - DONE
##class_variables - tough nut to crack with very little benefit (method class_variables not defined)

=begin
      puts ""
      puts "QQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQ ~~~~~~~~~~~~~ Global Variable Array List ~~~~~~~~~~~~~~~~ QQQQQ"
      puts "QQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"

      puts global_variables.inspect

      puts "QQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQ ~~~~~~~~~~~~~ Global Variable Values Printed ~~~~~~~~~~~~~~~~ QQQQQ"
      puts "QQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"

      global_variables.sort.each do |name|

        puts "<<< ------------------------------------------------------------------->>>"
        puts "<<< #{name.to_s} >>>"
        puts "<<< ------------------------------------------------------------------->>>"
        next if name.to_s.eql?( "$FILENAME" )
        global_variable_value = eval "#{name}.inspect"
        puts "<<< #{global_variable_value}"

      end

      puts ""
      puts "QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts ""
      puts "QQQQQQQQQQQ QQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQ Bug Finder QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQ QQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts ""
      self.instance_variables.map do |attribute|
        puts "=============================================="
        puts "----------------------------------------------"
        puts attribute
        pp self.instance_variable_get(attribute)
      end
      puts "=============================================="
      puts "QQQQQQQQQQQ QQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQ QQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts ""
      puts "### ------------------------------------"
      puts "### Inspect View"
      puts "### ------------------------------------"
      pp self.inspect
      puts "### ------------------------------------"
      puts "QQQQQQQQQQQ QQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQ Local Variables QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
      puts "QQQQQQQQQQQ QQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"

      local_variables.map do |attribute|
        puts "=============================================="
        puts "----------------------------------------------"
        puts attribute
        pp binding.local_variable_get(attribute.to_sym)
      end
      puts "QQQQQQQQQQQ QQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"

      puts ""
=end


      return unless has_verse

      line_dictionary = chapter_data[ master_db[ KEY_PATH ] ]

      puts ""
      puts "### ##################################\n"
      puts "### chapter =>> #{master_db[ ENV_PATH ]}\n"
      puts "### & verse =>> #{master_db[ KEY_PATH ]}\n"
      puts "### # lines =>> #{line_dictionary.length}\n"
      puts "### ##################################\n"
      puts "--- ----------------------------------\n"
      puts ""

      showable_content = {}
      line_dictionary.each do | key_str, value_object |

        is_file = key_str.start_with? FILE_KEY_PREFIX
        value_object.store( FILE_CONTENT_KEY, SECRET_MASK_STRING ) if is_file
        showable_content.store( key_str[ FILE_KEY_PREFIX.length .. -1 ], value_object ) if is_file
        next if is_file

        is_secret = key_str.start_with? "@"
        showable_val = SECRET_MASK_STRING if is_secret
        showable_val = value_object unless is_secret
        showable_content.store( key_str, showable_val )

      end

      puts JSON.pretty_generate( showable_content )
      puts "--- ----------------------------------\n"
      puts "### ##################################\n"
      puts ""

    end
get_chapter_data( chapter_key ) click to toggle source
# File lib/usecase/show.rb, line 12
def get_chapter_data( chapter_key )
  return OpenKey::KeyDb.from_json( OpenKey::KeyApi.content_unlock( chapter_key ) )
end