Class: Line::Bot::Builder::MultipleMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/line/bot/builder/multiple_message.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ MultipleMessage

Returns a new instance of MultipleMessage.



8
9
10
11
# File 'lib/line/bot/builder/multiple_message.rb', line 8

def initialize client
  @messages ||= []
  @client = client
end

Instance Method Details

#add_audio(attrs = {}) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/line/bot/builder/multiple_message.rb', line 42

def add_audio(attrs = {})
  tap {
    message = Message::Audio.new(
      audio_url: attrs[:audio_url],
      duration: attrs[:duration],
    )
    push_message(message)
  }
end

#add_image(attrs = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/line/bot/builder/multiple_message.rb', line 22

def add_image(attrs = {})
  tap {
    message = Message::Image.new(
      image_url: attrs[:image_url],
      preview_url: attrs[:preview_url],
    )
    push_message(message)
  }
end

#add_location(attrs = {}) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/line/bot/builder/multiple_message.rb', line 52

def add_location(attrs = {})
  tap {
    message = Message::Location.new(
      title: attrs[:title],
      latitude: attrs[:latitude],
      longitude: attrs[:longitude],
    )
    push_message(message)
  }
end

#add_sticker(attrs = {}) ⇒ Object



63
64
65
66
67
68
69
70
71
72
# File 'lib/line/bot/builder/multiple_message.rb', line 63

def add_sticker(attrs = {})
  tap {
    message = Message::Sticker.new(
      stkpkgid: attrs[:stkpkgid],
      stkid: attrs[:stkid],
      stkver: attrs[:stkver],
    )
    push_message(message)
  }
end

#add_text(attrs = {}) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/line/bot/builder/multiple_message.rb', line 13

def add_text(attrs = {})
  tap {
    message = Message::Text.new(
      text: attrs[:text],
    )
    push_message(message)
  }
end

#add_video(attrs = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/line/bot/builder/multiple_message.rb', line 32

def add_video(attrs = {})
  tap {
    message = Message::Video.new(
      video_url: attrs[:video_url],
      preview_url: attrs[:preview_url],
    )
    push_message(message)
  }
end

#contentObject



88
89
90
91
92
93
# File 'lib/line/bot/builder/multiple_message.rb', line 88

def content
  {
    messageNotified: 0,
    messages: @messages
  }
end

#event_typeObject



84
85
86
# File 'lib/line/bot/builder/multiple_message.rb', line 84

def event_type
  140177271400161403
end

#push_message(message) ⇒ Object

Raises:

  • (ArgumentError)


74
75
76
77
# File 'lib/line/bot/builder/multiple_message.rb', line 74

def push_message(message)
  raise ArgumentError, "Invalid arguments" unless message.valid?
  @messages << message.content
end

#send(attrs = {}) ⇒ Object



79
80
81
82
# File 'lib/line/bot/builder/multiple_message.rb', line 79

def send(attrs = {})
  to_mid = attrs.instance_of?(Hash) ? attrs[:to_mid] : attrs
  @client.send_message(to_mid, self)
end

#valid?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/line/bot/builder/multiple_message.rb', line 95

def valid?
  @messages.size > 0
end