Add puts
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Ruby
- Star
- 32
- Fork
- 24
- Merge trung bình
- 13 giờ 2 phút
- Pull request đã merge (30 ngày)
- 1
Mô tả
Why
Hello. 👋
I keep running into situations where I'd like to use puts when swapping out an IO-like object (i.e. IO, StringIO, File, Kernel, Pathname, and so forth) and can't find any mention as to why Pathname#puts isn't supported as found in similar IO-like objects.
Allowing the use of Pathname#puts would make injecting IO-like dependencies behave similarly in terms of writing with a newline. This would allow anyone to more easily swap these objects out while still quacking like a duck so-to-speak. I bring this up because Pathname#write is supported but am confused as to why Pathname#puts is not.
How
Would it be possible to add Pathname#puts or is there some other reason why this isn't exposed? The workaround is to use Pathname#write by manually adding a new line each time. Example:
path = Pathname "test.txt"
path.write "Hi\n"
This achieves the same functionality but is tedious especially if you are not using a string literal each time. Example:
path = Pathname "test.txt"
# Tedious
path.write "#{some_computed_result}\n"
# Nicer (proposed solution) because you don't have to do the extra work of string concatenation.
path.puts some_computed_result
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách xác định Pathname#write và so sánh hành vi của nó với puts trên các đối tượng tương tự IO được nêu trong issue. Công việc được xem là hoàn tất khi Pathname cung cấp puts để bên gọi có thể ghi các giá trị kèm ký tự xuống dòng mà không cần tự thêm ký tự đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- ruby
- Lĩnh vực
- operating-systems
- Loại issue
- Tính năng
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 38/100