Class: Kibuvits_krl171bt4_ProgFTE

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/kibuvits_ruby_library_krl171bt4_.rb

Overview


The ProgFTE is a text format for serializing hashtables that contain only strings and use only strings for keys. The ProgFTE stands for Programmer Friendly text Exchange.

Specifications reside at: longterm.softf1.com/specifications/progfte/

This implementation has a full support for ProgFTE_v0 and ProgFTE_v1

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeKibuvits_krl171bt4_ProgFTE

Returns a new instance of Kibuvits_krl171bt4_ProgFTE.



2860
2861
# File 'lib/kibuvits_ruby_library_krl171bt4_.rb', line 2860

def initialize
end

Class Method Details

.from_ht(ht_in, i_specification_version = 1) ⇒ Object

from_ht



2892
2893
2894
2895
# File 'lib/kibuvits_ruby_library_krl171bt4_.rb', line 2892

def Kibuvits_krl171bt4_ProgFTE.from_ht(ht_in, i_specification_version=1)
   s_progfte=Kibuvits_krl171bt4_ProgFTE.instance.from_ht(ht_in,i_specification_version)
   return s_progfte;
end

.to_ht(s_in) ⇒ Object

to_ht



2948
2949
2950
2951
# File 'lib/kibuvits_ruby_library_krl171bt4_.rb', line 2948

def Kibuvits_krl171bt4_ProgFTE.to_ht(s_in)
   ht_out=Kibuvits_krl171bt4_ProgFTE.instance.to_ht(s_in)
   return ht_out
end

Instance Method Details

#from_ht(ht_in, i_specification_version = 1) ⇒ Object



2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
# File 'lib/kibuvits_ruby_library_krl171bt4_.rb', line 2869

def from_ht(ht_in, i_specification_version=1)
   if KIBUVITS_krl171bt4_RUBY_LIBRARY_IS_AVAILABLE
      bn=binding()
      kibuvits_krl171bt4_typecheck bn, Hash, ht_in
      kibuvits_krl171bt4_typecheck bn, [Fixnum,Bignum], i_specification_version
      kibuvits_krl171bt4_assert_is_among_values(bn,[0,1],i_specification_version)
   end # if
   s_progfte=nil
   if(i_specification_version==1)
      s_progfte=Kibuvits_krl171bt4_ProgFTE_v1.from_ht(ht_in)
   else
      if(i_specification_version==0)
         s_progfte=Kibuvits_krl171bt4_ProgFTE_v0.from_ht(ht_in)
      else
         msg="\nThis implementation does not yet support the ProgFTE_v"+
         i_specification_version.to_s
         "\n GUID='b2cbd23c-fe94-41b6-83e2-c13290a118e7'\n"
         kibuvits_krl171bt4_progfte_throw(msg)
      end # if
   end # if
   return s_progfte;
end

#to_ht(s_in) ⇒ Object



2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
# File 'lib/kibuvits_ruby_library_krl171bt4_.rb', line 2898

def to_ht(s_in)
   if KIBUVITS_krl171bt4_RUBY_LIBRARY_IS_AVAILABLE
      bn=binding()
      kibuvits_krl171bt4_typecheck bn, String, s_in
      kibuvits_krl171bt4_assert_string_min_length(bn,s_in,3,
      " GUID='8edaaf1a-6175-434f-b2a2-c13290a118e7'\n")
   end # if
   ht_out=nil
   begin
      md=s_in.match(/^v[\d]+[|]/)
      if md!=nil
         if md[0]=="v1|"
            ht_out=Kibuvits_krl171bt4_ProgFTE_v1.to_ht(s_in)
         else
            if md[0]=="v0|"
               msg="\nStrings that conform to version 0 of the "+
               "ProgFTE format specification \n"+
               "start with a digit, not a character.\n"
               "GUID='5cf747c1-0f9a-4ba2-bb82-c13290a118e7'\n"+
               "s_in=="+s_in+"\n"
               kibuvits_krl171bt4_progfte_throw(msg)
            else
               msg="\nThis implementation does not yet "+
               "support the ProgFTE_v"+md[0][1..-1]+
               "\n GUID='49d7dc36-c671-4db9-b152-c13290a118e7'\n"+
               "s_in=="+s_in+"\n"
               kibuvits_krl171bt4_progfte_throw(msg)
            end # if
         end # if
      else
         md=s_in.match(/^[\d]+[|]/)
         if md==nil
            msg="\nProgFTE string candidate does not conform to any "+
            "ProgFTE specification, where \nthe format version "+
            "is greater than 0, but the ProgFTE string "+
            "candidate does not \nconform to ProgFTE_v0 either.\n "+
            "GUID='146f29d5-8ec7-40fa-8332-c13290a118e7'\n"+
            "s_in=="+s_in+"\n"
            kibuvits_krl171bt4_progfte_throw(msg)
         end # if
         ht_out=Kibuvits_krl171bt4_ProgFTE_v0.to_ht(s_in)
      end # if
   rescue Exception => e
      msg="\nProgFTE string candidate deserialization failed. \n"+
      "GUID='e75ffe28-8f5c-49cd-8202-c13290a118e7'\n"+e.to_s+"\n"
      kibuvits_krl171bt4_progfte_throw(msg)
   end # try-catch
   return ht_out
end