Class: Kibuvits_krl171bt4_ProgFTE
- Inherits:
-
Object
- Object
- Kibuvits_krl171bt4_ProgFTE
- 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
- #from_ht(ht_in, i_specification_version = 1) ⇒ Object
-
#initialize ⇒ Kibuvits_krl171bt4_ProgFTE
constructor
A new instance of Kibuvits_krl171bt4_ProgFTE.
- #to_ht(s_in) ⇒ Object
Constructor Details
#initialize ⇒ Kibuvits_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 |