Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (eval):1: syntax error, unexpected end-of-input, expecting '}' {:redirect=>true ^
- begin
- hash = eval(string)
- rescue SyntaxError
- # It's not valid
- end
- def valid_hash?(string)
- eval(string).is_a?(Hash)
- rescue SyntaxError
- false
- end
- string = "{:key=>true}"
- valid_hash?(string)
- #=> true
- string = "I am not hash"
- valid_hash?(string)
- #=> false
- string1 = "{:key_1=>true,key_2:false}"
- string2 = "{:key=>true}"
- string3 = "no hash"
- def valid_hash?(string)
- begin
- string = string.gsub(/(w+):s*([^},])/, '"1":2')
- #=> "{:key_1=>true,"key_2":false}"
- string = string.gsub(/:(w+)s*=>/, '"1":')
- #=> "{"key_1":true,"key_2":false}"
- my_hash = JSON.parse(string, {symbolize_names: true})
- #=> {:key_1=>true, :key_2=>false}
- my_hash.is_a? Hash # or do whatever you want with your Hash
- rescue JSON::ParserError
- false
- end
- end
- valid_hash? string1
- #=> true
- valid_hash? string2
- #=> true
- valid_hash? string3
- #=> false
Add Comment
Please, Sign In to add comment