lib/ciri/rlp/encode.rb in ciri-rlp-0.1.1 vs lib/ciri/rlp/encode.rb in ciri-rlp-0.2.1

- old
+ new

@@ -1,26 +1,20 @@ # frozen_string_literal: true -# Copyright (c) 2018, by Jiang Jinyang. <https://justjjy.com> +# Copyright 2018 Jiang Jinyang <https://justjjy.com> # -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. +# http://www.apache.org/licenses/LICENSE-2.0 # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. module Ciri module RLP module Encode @@ -74,15 +68,21 @@ type.rlp_encode(item) elsif type.is_a?(Array) if type.size == 1 # array type encode_list(item) {|i| encode_with_type(i, type[0])} else # unknown - raise RLP::InvalidValueError.new "type size should be 1, got #{type}" + raise RLP::InvalidError.new "type size should be 1, got #{type}" end elsif type == Raw encode_raw(item) + elsif type == RawString + raise RLP::InvalidError.new "expect String, got #{item.class}" unless item.is_a?(String) + encode_raw(item) + elsif type == RawList + raise RLP::InvalidError.new "expect Array, got #{item.class}" unless item.is_a?(Array) + encode_raw(item) else - raise RLP::InvalidValueError.new "unknown type #{type}" + raise RLP::InvalidError.new "unknown type #{type}" end rescue STDERR.puts "when encoding #{Utils.to_hex item.to_s} into #{type}" raise end \ No newline at end of file