Skip to content

Commit

Permalink
Support adding group members with GroupItem.members.add (#322)
Browse files Browse the repository at this point in the history
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
  • Loading branch information
jimtng authored Aug 20, 2024
1 parent 62e7ccd commit e23b905
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
20 changes: 20 additions & 0 deletions lib/openhab/core/items/group_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,26 @@ def initialize(group_item)
@group = group_item
end

#
# Adds a member to the group
#
# @param [Item, String] member The item to add to the group
# @return [Members] self
#
def add(member)
if member.is_a?(String)
member = items[member]
raise ArgumentError, "Item not found: #{member}" if member.nil?
end

member = member.__getobj__ if member.is_a?(Proxy)
raise ArgumentError, "Member must be an Item" unless member.is_a?(Item)

group.add_member(member)
self
end
alias_method :<<, :add

# Explicit conversion to Array
#
# @return [Array]
Expand Down
12 changes: 12 additions & 0 deletions spec/openhab/core/items/group_item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,18 @@
Den_Temp,
LivingRoom]
end

describe "#add" do
it "can be used to add a new member" do
expect(Temperatures.members.count).to be 3
items.build do
number_item "Kitchen_Temp"
end
Temperatures.members.add Kitchen_Temp
expect(Temperatures.members.count).to be 4
expect(Temperatures.members).to include Kitchen_Temp
end
end
end

describe "#all_members" do
Expand Down

0 comments on commit e23b905

Please sign in to comment.