Skip to content

Commit 0cc7d43

Browse files
committed
Fix message iterator each without given block.
1 parent 0178153 commit 0cc7d43

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
## Unreleased
44

5-
- Fix file each message without given block.
5+
- Fix file each message method and message iterator each method
6+
without given block.
67

78
## CRuby and mruby version 0.3.0 - 2026-03-17
89

mrblib/mrb_gettextpo_common.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ def self.new # :nodoc:
4545
"please use other methods instead, such as GettextPO::File#message_iterator"
4646
end
4747

48-
def each # yields: message
48+
# call-seq:
49+
# each { |message| ... }
50+
# each -> Enumerator
51+
def each
52+
block_given? or return enum_for
53+
4954
while true
5055
begin
5156
yield self.next

test/message_iterator.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,15 @@
3333

3434
assert 'each' do
3535
path = File.expand_path(File.join(__FILE__, "../../test.cruby/resources/ok.po"))
36-
iterator = GettextPO::File.read(path).message_iterator
36+
file = GettextPO::File.read(path)
37+
iterator = file.message_iterator
3738
messages = []
3839
iterator.each { |message| messages << message }
3940
assert_equal 2, messages.size
41+
42+
iterator = file.message_iterator
43+
assert_equal ["", "msgid1"], iterator.each.map { |message| message.msgid }
44+
4045
true
4146
end
4247

0 commit comments

Comments
 (0)