<commit_before>############################################################################################################
module Aethyr

  ############################################################################################################
  module Linux
  
    ############################################################################################################
    module Interface
    
      ##########################################################################################################
      class NetworkInterfaces
  
        ######################################################################################################
        #### class attributes
        @@services = nil
        
        ######################################################################################################
        #### class methods
        class << self
  
          ########################################################################################################
          def find(type = :all, options = {})
            if type.eql?(:first)
            else
              self.find_all
            end
          end
          
        ######################################################################################################
        protected
    
          ##########################################################################################################
          def find_all

            rows = `ifconfig -a`.split("\n")
            rows = rows.collect{|r| r.split(/\s+/)}
            ifaces = []
            row = 0
            until row.eql?(rows.length)
              iface_type = /^(\D+)/.match(rows[row][0]).to_a.last
              iface_type.nil? ? row += 1 : row = self.send("build_#{iface_type}".to_sym, row, rows, ifaces)
            end
            ifaces
          end

          ##########################################################################################################
          def build_eth(row, rows, ifaces) 
p rows[row]
row += 1
          end

          ##########################################################################################################
          def build_lo(row, rows, ifaces) 
p rows[row]
row += 1
          end

          ##########################################################################################################
          def get_attr_value(attr)
            attr.split(":").last
          end

        ######################################################################################################
        end  
        
      ##########################################################################################################
      end
  
    ##########################################################################################################
    end

  ##########################################################################################################
  end
  
##########################################################################################################
end<commit_msg>continuing network interface parsing<commit_after>############################################################################################################
module Aethyr

  ############################################################################################################
  module Linux
  
    ############################################################################################################
    module Interface
    
      ##########################################################################################################
      class NetworkInterfaces
  
        ######################################################################################################
        #### class attributes
        @@services = nil
        
        ######################################################################################################
        #### class methods
        class << self
  
          ########################################################################################################
          def find(type = :all, options = {})
            if type.eql?(:first)
            else
              self.find_all
            end
          end
          
        ######################################################################################################
        protected
    
          ##########################################################################################################
          def find_all

            rows = `ifconfig -a`.split("\n")
            rows = rows.collect{|r| r.split(/\s+/)}
            ifaces = []
            row = 0
            until row.eql?(rows.length)
              iface_type = /^(\D+)/.match(rows[row][0]).to_a.last
              iface_type.nil? ? row += 1 : row = self.send("build_#{iface_type}".to_sym, row, rows, ifaces)
            end
            ifaces
            
          end

          ##########################################################################################################
          def build_eth(row, rows, ifaces) 
            ifaces << build_common(row, rows).merge(:interrrupt => get_attr_value(rows[row+8][1]), 
                                                    :base_address => get_attr_value(rows[row+8][3]))
            row += 9            
          end

          ##########################################################################################################
          def build_lo(row, rows, ifaces) 
            ifaces << build_common(row, rows)
            row += 7
          end

          ##########################################################################################################
          def build_common(row, rows) 
            {
             :link_encapsulation => get_attr_value(rows[row][2]),
             :hw_address         => rows[row][4],
             :ip_address         => get_attr_value(rows[row+1][2]),
             :broadcast_address  => get_attr_value(rows[row+1][3]),
             :mask               => get_attr_value(rows[row+1][4]),
             :ipv6_address       => rows[row+2][3],
             :scope              => get_attr_value(rows[row+2][4]),
             :status             => rows[row+3][0..rows[row+3].length-3].join(' '),
             :mtu                => get_attr_value(rows[row+3][2]),
             :metric             => get_attr_value(rows[row+3][rows[row+3].length-2]),
             :txqueuelen         => get_attr_value(rows[row+6][rows[row+3].length-1]),
            }
          end

          ##########################################################################################################
          def get_attr_value(attr)
            attr.split(":").last
          end

        ######################################################################################################
        end  
        
      ##########################################################################################################
      end
  
    ##########################################################################################################
    end

  ##########################################################################################################
  end
  
##########################################################################################################
end
{'fraction_non_alphanumeric': 0.555224688684353, 'fraction_numerical': 0.005278830536004331, 'mean_word_length': 3.1141425389755013, 'pattern_counts': {'":': 2, '<': 11, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4547951', 'n_tokens_mistral': 1415, 'n_tokens_neox': 1248, 'n_words': 195}