Ruby4Skype 0.2.3 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. data/LICENSE +3 -0
  2. data/README +14 -0
  3. data/Rakefile +67 -0
  4. data/lib/skypeapi.rb +570 -509
  5. data/lib/skypeapi/application.rb +79 -77
  6. data/lib/skypeapi/call.rb +243 -230
  7. data/lib/skypeapi/chat.rb +162 -172
  8. data/lib/skypeapi/chatmember.rb +26 -28
  9. data/lib/skypeapi/chatmessage.rb +81 -65
  10. data/lib/skypeapi/error.rb +8 -0
  11. data/lib/skypeapi/event.rb +25 -26
  12. data/lib/skypeapi/filetransfer.rb +47 -28
  13. data/lib/skypeapi/group.rb +72 -73
  14. data/lib/skypeapi/menuitem.rb +44 -44
  15. data/lib/skypeapi/message.rb +39 -41
  16. data/lib/skypeapi/object.rb +246 -82
  17. data/lib/skypeapi/os/etc.rb +48 -98
  18. data/lib/skypeapi/os/mac.rb +92 -4
  19. data/lib/skypeapi/os/notifier.rb +31 -0
  20. data/lib/skypeapi/os/window_event_queue.rb +198 -0
  21. data/lib/skypeapi/os/window_messagehandler.rb +120 -0
  22. data/lib/skypeapi/os/windows.rb +170 -306
  23. data/lib/skypeapi/profile.rb +190 -120
  24. data/lib/skypeapi/sharefunctions.rb +31 -23
  25. data/lib/skypeapi/sms.rb +87 -67
  26. data/lib/skypeapi/user.rb +159 -99
  27. data/lib/skypeapi/version.rb +3 -3
  28. data/lib/skypeapi/voicemail.rb +59 -52
  29. data/spec/matcher_be_boolean.rb +10 -0
  30. data/spec/skypeapi/application_spec.rb +76 -0
  31. data/spec/skypeapi/chat_spec.rb +356 -0
  32. data/spec/skypeapi/chatmember_spec.rb +42 -0
  33. data/spec/skypeapi/chatmessage_spec.rb +89 -0
  34. data/spec/skypeapi/event_spec.rb +31 -0
  35. data/spec/skypeapi/filetransfer_spec.rb +67 -0
  36. data/spec/skypeapi/group_spec.rb +16 -0
  37. data/spec/skypeapi/menuitem_spec.rb +37 -0
  38. data/spec/skypeapi/os/windows_spec.rb +305 -0
  39. data/spec/skypeapi/profile_spec.rb +22 -0
  40. data/spec/skypeapi/user_spec.rb +25 -0
  41. data/spec/skypeapi_spec.rb +528 -0
  42. metadata +32 -12
  43. data/lib/skypeapi/os/timer.rb +0 -108
@@ -1,127 +1,197 @@
1
1
  module SkypeAPI
2
- module Object
3
- class Profile < AbstractObject
4
- OBJECT_NAME = "PROFILE"
5
-
6
- def initialize(id=nil)
7
- super nil
8
- end
9
-
10
- def self.new
11
- super nil
12
- end
13
-
14
- def self.notified msg
15
- if msg =~ /^([^ ]+) (.*)$/m
16
- property = P2M[$1]
17
- value = V2O[property] ? V2O[property].call($2) : $2
18
- instance = new
19
- instance.notified instance, property,value #if @@instance[self][id]
20
-
21
- #p [property,value,instance,@notify]
22
- #if @notify[nil]
23
- # @notify[nil][nil].call instance, property, value if @notify[nil][nil]
24
- # @notify[nil][value].call instance, property if @notify[nil][value]
25
- #end
26
- #if @notify[property]
27
- # @notify[property][nil].call instance, value if @notify[property][nil]
28
- # @notify[property][value].call instance if @notify[property][value]
29
- #end
30
- end
31
- end
32
-
33
- getter :PSTNBalance, 'PSTN_BALANCE' do |str|
34
- str._int
35
- end
36
- getter :PSTNBalanceCurrency, 'PSTN_BALANCE_CURRENCY'
37
- getter :Fullname, 'FULLNAME'
38
- getter :Birthday, 'BIRTHDAY' do |yyyymmdd|
39
- (yyyymmdd =~ /(\d\d\d\d)(\d\d)(\d\d)/) ? Date.new($1.to_i,$2.to_i,$3.to_i) : nil
40
- end
41
- getter :Sex, 'SEX'
42
- getter :Languages, 'LANGUAGES' do |str|
43
- str.split(' ')
44
- end
45
- getter :Country, 'COUNTRY' do |str|
46
- str.empty? ? str : str.split(' ', 2)[0]
47
- end
48
- getter :IPCountry, 'IPCOUNTRY'
49
- getter :Province, 'PROVINCE'
50
- getter :City, 'CITY'
51
- getter :PhoneHome, 'PHONE_HOME'
52
- getter :PhoneOffice, 'PHONE_OFFICE'
53
- getter :PhoneMobile, 'PHONE_MOBILE'
54
- getter :Homepage, 'HOMEPAGE'
55
- getter :About, 'ABOUT'
56
- getter :MoodText, 'MOOD_TEXT'
57
- getter :RichMoodText, 'RICH_MOOD_TEXT'
58
- getter :Timezone, 'TIMEZONE' do |str|
59
- str._int
60
- end
61
- getter :CallApplyCF, 'CALL_APPLY_CF' do |str|
62
- str._flag
63
- end
64
- getter :CallNoanswerTimeout, 'CALL_NOANSWER_TIMEOUT' do |str|
65
- str._int
66
- end
67
- getter :CallForwardRules, 'CALL_FORWARD_RULES' do |str|
68
- cfs = str.split ' '
69
- cfs = cfs.map do |cf|
70
- cf = cf.split ','
71
- cf[2] = @@skypeApi.user(cf[2]) unless cf[2] =~ /^\+/
72
- [cf[0].to_i, cf[1].to_i, (cf[2] =~ /^\+/ ? cf[2] : @@skypeApi.user(cf[2]))]
73
- end
74
- end
75
- getter :CallSendToVM, 'CALL_SEND_TO_VM' do |str|
76
- str._flag
77
- end
78
- getter :SMSValidatedNumbers, 'SMS_VALIDATED_NUMBERS' do |str|
79
- str.split(', ')
80
- end
81
-
82
- def setFullname(name) invoke_set('FULLNAME', name); end
83
- def setBirthday(dateOrYear=nil, month=nil, day=nil)
84
- if dateOrYear.nil?
85
- val = ''
86
- else
87
- val = dateOrYear.class == Date ? dateOrYear.strftime('%Y%m%d') : sprintf("%04d%02d%02d",dateOrYear,month,day)
88
- end
89
- invoke_set('BIRTHDAY', val)
90
- end
91
- def setSex(sex) invoke_set('SEX', sex); end
92
- def setLanguages(*langs)
93
- invoke_set('LANGUAGES', langs.join(' '))
94
- end
95
- def setCountry(iso) invoke_set('COUNTRY', iso); end
96
- #def setIpcountry(val) invoke_set('IPCOUNTRY', val); end
97
- def setProvince(province) invoke_set('PROVINCE', province); end
98
- def setCity(city) invoke_set('CITY', city); end
99
- def setPhoneHome(numbers) invoke_set('PHONE_HOME', numbers); end
100
- def setPhoneOffice(numbers) invoke_set('PHONE_OFFICE', numbers); end
101
- def setPhoneMobile(numbers) invoke_set('PHONE_MOBILE', numbers); end
102
- def setHomepage(url) invoke_set('HOMEPAGE', url); end
103
- def setAbout(text) invoke_set('ABOUT', text); end
104
- def setMoodText(text) invoke_set('MOOD_TEXT', text); end
105
- def setRichMoodText(text) invoke_set('RICH_MOOD_TEXT', text); end
106
- def setTimezone(timezone) invoke_set('TIMEZONE', timezone); end
107
- def setCallApplyCF(flag)
108
- invoke_set('CALL_APPLY_CF', flag._str)
2
+ class Profile < AbstractObject
3
+ OBJECT_NAME = "PROFILE"
4
+
5
+ def initialize(id=nil)
6
+ super nil
7
+ end
8
+
9
+ def self.new
10
+ super nil
11
+ end
12
+
13
+ def self.notified msg
14
+ if msg =~ /^([^ ]+) (.*)$/m
15
+ property = P2M[$1]
16
+ value = V2O[property] ? V2O[property].call($2) : $2
17
+ instance = new
18
+ instance.notified instance, property,value #if @@instance[self][id]
19
+
20
+ #p [property,value,instance,@notify]
21
+ #if @notify[nil]
22
+ # @notify[nil][nil].call instance, property, value if @notify[nil][nil]
23
+ # @notify[nil][value].call instance, property if @notify[nil][value]
24
+ #end
25
+ #if @notify[property]
26
+ # @notify[property][nil].call instance, value if @notify[property][nil]
27
+ # @notify[property][value].call instance if @notify[property][value]
28
+ #end
109
29
  end
110
- def setCallNoanswerTimeout(sec) invoke_set('CALL_NOANSWER_TIMEOUT', sec); end
111
- def setCallForwardRules(*rules)
112
- if rules[0] == nil
113
- invoke_set('CALL_FORWARD_RULES', '')
114
- else
115
- rules.map! do |rule|
116
- rule.join ','
117
- end
118
- rules = rules.join ' '
119
- invoke_set('CALL_FORWARD_RULES', rules)
30
+ end
31
+
32
+ def get_pstn_balance() parse :pstn_balance, invoke_get("PSTN_BALANCE") end
33
+ def_parser(:pstn_balance){|str| str._int}
34
+ alias getPSTNBalance get_pstn_balance
35
+
36
+ def get_pstn_balance_currency() invoke_get("PSTN_BALANCE_CURRENCY") end
37
+ def_parser(:pstn_balance_currency)
38
+ alias getPSTNBalanceCurrency get_pstn_balance_currency
39
+
40
+ def get_fullname() invoke_get("FULLNAME") end
41
+ def_parser(:fullname)
42
+ alias getFullname get_fullname
43
+
44
+ def get_birthday() parse :birthday, invoke_get("BIRTHDAY") end
45
+ def_parser(:birthday){|yyyymmdd| (yyyymmdd =~ /(\d\d\d\d)(\d\d)(\d\d)/) ? Date.new($1.to_i,$2.to_i,$3.to_i) : nil}
46
+ alias getBirthday get_birthday
47
+
48
+ def get_sex() invoke_get("SEX") end
49
+ def_parser(:sex)
50
+ alias getSex get_sex
51
+
52
+ def get_languages() parse :languages, invoke_get("LANGUAGES") end
53
+ def_parser(:languages){|str| str.split(' ')}
54
+ alias getLanguages get_languages
55
+
56
+ def get_country() parse :country, invoke_get("COUNTRY") end
57
+ def_parser(:country){|str| str.empty? ? str : str.split(' ', 2)[0]}
58
+ alias getCountry get_country
59
+
60
+ def get_ip_country() invoke_get("IPCOUNTRY") end
61
+ def_parser(:ip_country,"IPCOUNTRY")
62
+ alias getIPCountry get_ip_country
63
+
64
+ def get_province() invoke_get("PROVINCE") end
65
+ def_parser(:province)
66
+ alias getProvince get_province
67
+
68
+ def get_city() invoke_get("CITY") end
69
+ def_parser(:city)
70
+ alias getCity get_city
71
+
72
+ def get_phone_home() invoke_get("PHONE_HOME") end
73
+ def_parser(:phone_home)
74
+ alias getPhoneHome get_phone_home
75
+
76
+ def get_phone_office() invoke_get("PHONE_OFFICE") end
77
+ def_parser(:phone_office)
78
+ alias getPhoneOffice get_phone_office
79
+
80
+ def get_phone_mobile() invoke_get("PHONE_MOBILE") end
81
+ def_parser(:phone_mobile)
82
+ alias getPhoneMobile get_phone_mobile
83
+
84
+ def get_homepage() invoke_get("HOMEPAGE") end
85
+ def_parser(:homepage)
86
+ alias getHomepage get_homepage
87
+
88
+ def get_about() invoke_get("ABOUT") end
89
+ def_parser(:about)
90
+ alias getAbout get_about
91
+
92
+ def get_mood_text() invoke_get("MOOD_TEXT") end
93
+ def_parser(:mood_text)
94
+ alias getMoodText get_mood_text
95
+
96
+ def get_rich_mood_text() invoke_get("RICH_MOOD_TEXT") end
97
+ def_parser(:rich_mood_text)
98
+ alias getRichMoodText get_rich_mood_text
99
+
100
+ def get_timezone() parse :timezone, invoke_get("TIMEZONE") end
101
+ def_parser(:timezone){|str| str._int}
102
+ alias getTimezone get_timezone
103
+
104
+ def get_call_apply_cf() parse :call_apply_cf, invoke_get("CALL_APPLY_CF") end
105
+ def_parser(:call_apply_c_f){|str| str._flag}
106
+ alias getCallApplyCF get_call_apply_cf
107
+
108
+ def get_call_noanswer_timeout() parse :call_noanswer_timeout, invoke_get("CALL_NOANSWER_TIMEOUT") end
109
+ def_parser(:call_noanswer_timeout){|str| str._int}
110
+ alias getCallNoanswerTimeout get_call_noanswer_timeout
111
+
112
+ def get_call_forward_rules() parse :call_forward_rules, invoke_get("CALL_FORWARD_RULES") end
113
+ def_parser(:call_forward_rules){|str|
114
+ cfs = str.split ' '
115
+ cfs = cfs.map{ |cf|
116
+ cf = cf.split ','
117
+ cf[2] = SkypeAPI::User.new(cf[2]) unless cf[2] =~ /^\+/
118
+ [cf[0].to_i, cf[1].to_i, (cf[2] =~ /^\+/ ? cf[2] : SkypeAPI::User.new(cf[2]))]
119
+ }
120
+ }
121
+ alias getCallForwardRules get_call_forward_rules
122
+
123
+ def get_call_send_to_vm() parse :call_send_to_vm, invoke_get("CALL_SEND_TO_VM") end
124
+ def_parser(:call_send_to_vm,"CALL_SEND_TO_VM"){|str| str._flag}
125
+ alias getCallSendToVM get_call_send_to_vm
126
+
127
+ def get_sms_validated_numbers() parse :sms_validated_numbers, invoke_get("SMS_VALIDATED_NUMBERS") end
128
+ def_parser(:sms_validated_numbers){|str| str.split(', ')}
129
+ alias getSMSValidatedNumbers get_sms_validated_numbers
130
+
131
+ def setFullname(name) invoke_set('FULLNAME', name); end
132
+ def setBirthday(dateOrYear=nil, month=nil, day=nil)
133
+ if dateOrYear.nil?
134
+ val = ''
135
+ else
136
+ val = dateOrYear.class == Date ? dateOrYear.strftime('%Y%m%d') : sprintf("%04d%02d%02d",dateOrYear,month,day)
137
+ end
138
+ invoke_set('BIRTHDAY', val)
139
+ end
140
+ def setSex(sex) invoke_set('SEX', sex); end
141
+ def setLanguages(*langs)
142
+ invoke_set('LANGUAGES', langs.join(' '))
143
+ end
144
+ def setCountry(iso) invoke_set('COUNTRY', iso); end
145
+ #def setIpcountry(val) invoke_set('IPCOUNTRY', val); end
146
+ def setProvince(province) invoke_set('PROVINCE', province); end
147
+ def setCity(city) invoke_set('CITY', city); end
148
+ def setPhoneHome(numbers) invoke_set('PHONE_HOME', numbers); end
149
+ def setPhoneOffice(numbers) invoke_set('PHONE_OFFICE', numbers); end
150
+ def setPhoneMobile(numbers) invoke_set('PHONE_MOBILE', numbers); end
151
+ def setHomepage(url) invoke_set('HOMEPAGE', url); end
152
+ def setAbout(text) invoke_set('ABOUT', text); end
153
+ def setMoodText(text) invoke_set('MOOD_TEXT', text); end
154
+ def setRichMoodText(text) invoke_set('RICH_MOOD_TEXT', text); end
155
+ def setTimezone(timezone) invoke_set('TIMEZONE', timezone); end
156
+ def setCallApplyCF(flag)
157
+ invoke_set('CALL_APPLY_CF', flag._str)
158
+ end
159
+ def setCallNoanswerTimeout(sec) invoke_set('CALL_NOANSWER_TIMEOUT', sec); end
160
+ def setCallForwardRules(*rules)
161
+ if rules[0] == nil
162
+ invoke_set('CALL_FORWARD_RULES', '')
163
+ else
164
+ rules.map! do |rule|
165
+ rule.join ','
120
166
  end
167
+ rules = rules.join ' '
168
+ invoke_set('CALL_FORWARD_RULES', rules)
121
169
  end
122
- def setCallSendToVM(flag)
123
- invoke_set('CALL_SEND_TO_VM', flag._str)
124
- end
125
170
  end
171
+ def setCallSendToVM(flag)
172
+ invoke_set('CALL_SEND_TO_VM', flag._str)
173
+ end
174
+
175
+ alias set_fullname setFullname
176
+ alias set_birthday setBirthday
177
+ alias set_sex setSex
178
+ alias set_languages setLanguages
179
+ alias set_country setCountry
180
+ #alias set_ipcountry setIpcountry
181
+ alias set_province setProvince
182
+ alias set_city setCity
183
+ alias set_phone_home setPhoneHome
184
+ alias set_phone_office setPhoneOffice
185
+ alias set_phone_mobile setPhoneMobile
186
+ alias set_homepage setHomepage
187
+ alias set_about setAbout
188
+ alias set_mood_text setMoodText
189
+ alias set_rich_mood_text setRichMoodText
190
+ alias set_timezone setTimezone
191
+ alias set_call_apply_cf setCallApplyCF
192
+ alias set_call_noanswer_timeout setCallNoanswerTimeout
193
+ alias set_call_forward_rules setCallForwardRules
194
+ alias set_call_send_to_vm setCallSendToVM
195
+
126
196
  end
127
197
  end
@@ -1,4 +1,4 @@
1
- class NilClass
1
+ class NilClass #:nodoc: all
2
2
  def _flag
3
3
  nil
4
4
  end
@@ -16,7 +16,7 @@ class NilClass
16
16
  end
17
17
  end
18
18
 
19
- class String
19
+ class String #:nodoc: all
20
20
  def _flag
21
21
  case self
22
22
  when /^(TRUE)|(ON)$/i
@@ -37,7 +37,7 @@ class String
37
37
  end
38
38
  end
39
39
 
40
- class TrueClass
40
+ class TrueClass #:nodoc: all
41
41
  def _swi
42
42
  "ON"
43
43
  end
@@ -47,7 +47,7 @@ class TrueClass
47
47
  end
48
48
  end
49
49
 
50
- class FalseClass
50
+ class FalseClass #:nodoc: all-
51
51
  def _swi
52
52
  "OFF"
53
53
  end
@@ -59,21 +59,22 @@ end
59
59
 
60
60
  module SkypeAPI
61
61
 
62
- module ShareFunctions
62
+ module ShareFunctions #:nodoc: all
63
63
  #private
64
64
 
65
- #ex
66
65
  #invoke_echo "CREATE APPLICATION #{@appName}"
67
66
  #CREATE APPLICATION #{@appName} -> CREATE APPLICATION #{@appName}
68
67
  def invoke_echo cmd
69
68
  begin
70
69
  invoke(cmd) == cmd
71
- rescue SkypeAPIError
72
- raise $!, caller(1)
73
- end
70
+ rescue SkypeAPI::APIError => e
71
+ e.backtrace.shift
72
+ e.backtrace.shift
73
+ raise e
74
74
  end
75
- #ex
76
- #invoke_one "GET CHATMESSAGE #{@id} BODY","CHATMESSAGE #{@id} BODY"
75
+ end
76
+
77
+ #invoke_one "GET CHATMESSAGE #{@id} BODY", "CHATMESSAGE #{@id} BODY"
77
78
  #GET CHATMESSAGE #{@id} BODY -> CHATMESSAGE #{@id} BODY (.+)
78
79
  def invoke_one cmd, regExp=cmd
79
80
  regExp.gsub!(/[\^$.\\\[\]*+{}?|()]/) do |char|
@@ -81,13 +82,14 @@ module SkypeAPI
81
82
  end
82
83
  begin
83
84
  invoke(cmd) =~ /^#{regExp} (.*)$/m
84
- return $1
85
- rescue SkypeAPIError => e
86
- raise $!, caller
85
+ rescue SkypeAPI::APIError => e
86
+ e.backtrace.shift
87
+ e.backtrace.shift
88
+ raise e
87
89
  end
90
+ return $1
88
91
  end
89
92
 
90
- #ex
91
93
  #invoke_get("GET USER #{@handle} SkypeOut")
92
94
  #GET USER #{@handle} SkypeOut -> USER #{@handle} SkypeOut (.+)
93
95
  def invoke_get prop, value=nil
@@ -97,10 +99,12 @@ module SkypeAPI
97
99
  end
98
100
  begin
99
101
  invoke(cmd) =~ /^#{reg} (.*)$/m
100
- return $1
101
- rescue SkypeAPIError
102
- raise $!, caller
102
+ rescue SkypeAPI::APIError => e
103
+ e.backtrace.shift
104
+ e.backtrace.shift
105
+ raise e
103
106
  end
107
+ return $1
104
108
  end
105
109
 
106
110
  def invoke_set prop,value=nil
@@ -108,8 +112,10 @@ module SkypeAPI
108
112
  reg = "#{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}"
109
113
  begin
110
114
  str = invoke_one cmd, reg
111
- rescue SkypeAPIError
112
- raise $!, caller
115
+ rescue SkypeAPI::APIError => e
116
+ e.backtrace.shift
117
+ e.backtrace.shift
118
+ raise e
113
119
  end
114
120
  if self.class == Module
115
121
  self::V2O[prop] ? self::V2O[prop].call(str) : str
@@ -118,7 +124,7 @@ module SkypeAPI
118
124
  end
119
125
  end
120
126
 
121
- #true�����Ԃ��Ȃ��B������ςȂ��B����ȊO�̕Ԃ茌������悤�Ȃ̂͂�invoke�Ŏ�������B
127
+ #true�����Ԃ��Ȃ��B������ςȂ��B����ȊO�̕Ԃ茌������悤�Ȃ̂͂�invoke�Ŏ�������B
122
128
  def invoke_alter prop, value=nil
123
129
  cmd = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}#{value ? ' '+value.to_s : '' }"
124
130
  #res = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{@id ? @id.to_s + ' ' : ''}#{prop}"
@@ -128,8 +134,10 @@ module SkypeAPI
128
134
  #res = "ALTER #{defined?(self.class::OBJECT_NAME) ? self.class::OBJECT_NAME + ' ' : ''}#{prop}"
129
135
  begin
130
136
  invoke(cmd)# == res
131
- rescue SkypeAPIError
132
- raise $!, caller
137
+ rescue SkypeAPI::APIError => e
138
+ e.backtrace.shift
139
+ e.backtrace.shift
140
+ raise e
133
141
  end
134
142
  true
135
143
  end
data/lib/skypeapi/sms.rb CHANGED
@@ -1,84 +1,104 @@
1
1
  module SkypeAPI
2
- module Object
3
- class SMS< AbstractObject
4
- OBJECT_NAME = "SMS"
5
-
6
- def self.create target, type="OUTGOING"
7
- res = @@skypeApi.invoke "CREATE SMS #{type} #{target}"
2
+ class SMS< AbstractObject
3
+ OBJECT_NAME = "SMS"
4
+ class << self
5
+ def create target, type="OUTGOING"
6
+ res = SkypeAPI.invoke "CREATE SMS #{type} #{target}"
8
7
  res =~ /^SMS (\d+) STATUS (.+)$/
9
8
  id, status = $1, $2
10
9
  return id, status
11
10
  end
12
-
13
- def self.createConfirmationCodeRequest target
11
+
12
+ def createConfirmationCodeRequest target
14
13
  create target, 'CONFIRMATION_CODE_REQUEST'
15
14
  end
16
-
17
- def self.createConfirmationCodeSubmit target
18
- create target, 'CONFIRMATION_CODE_SUBMIT'
19
- end
20
-
21
- def self.delete id
22
- @@skypeApi.invoke_echo "DELETE SMS #{id}"
23
- end
24
-
25
- getter :Body, 'BODY'
26
- getter :Type, 'TYPE'
27
- getter :Status, 'STATUS'
28
- getter :FailureReason, 'FAILUREREASON'
29
- getter :FailedUnseen?, 'IS_FAILED_UNSEEN'
30
- getter :Timestamp, 'TIMESTAMP' do |str|
31
- if str.empty? then nil else Time.at(str.to_i) end
32
- end
33
- getter :Price, 'PRICE' do |str|
34
- str.to_i
35
- end
36
- getter :PricePrecision, 'PRICE_PRECISION' do |str|
37
- str.to_i
38
- end
39
- getter :PriceCurrency, 'PRICE_CURRENCY'
40
- getter :ReplyToNumber, 'REPLY_TO_NUMBER'
41
- getter :TargetNumbers, 'TARGET_NUMBERS' do |str|
42
- str.split(', ')
43
- end
44
- getter :TargetStatuses, 'TARGET_STATUSES' do |str|
45
- hash = Hash.new
46
- str.split(', ').each do |lump|
47
- pstn, status = lump.split('=')
48
- hash[pstn] = status
49
- end
50
- hash
15
+ alias create_confirmation_code_request createConfirmationCodeRequest
16
+
17
+ def delete id
18
+ SkypeAPI.invoke_echo "DELETE SMS #{id}"
51
19
  end
20
+ end
21
+
22
+ def get_body() invoke_get("BODY") end
23
+ def_parser(:body)
24
+ alias getBody get_body
25
+
26
+ def get_type() invoke_get("TYPE") end
27
+ def_parser(:type)
28
+ alias getType get_type
29
+
30
+ def get_status() invoke_get("STATUS") end
31
+ def_parser(:status)
32
+ alias getStatus get_status
33
+
34
+ def get_failure_reason() invoke_get("FAILUREREASON") end
35
+ def_parser(:failure_reason,"FAILUREREASON")
36
+ alias getFailureReason get_failure_reason
37
+
38
+ def get_is_failed_unseen?() invoke_get("IS_FAILED_UNSEEN") end
39
+ def_parser(:is_failed_unseen)
40
+ alias getIsFailedUnseen? get_is_failed_unseen?
41
+
42
+ def get_timestamp() parse :timestamp, invoke_get("TIMESTAMP") end
43
+ def_parser(:timestamp){|str| str.empty? ? nil : Time.at(str.to_i)}
44
+ alias getTimestamp get_timestamp
45
+
46
+ def get_price() parse :price, invoke_get("PRICE") end
47
+ def_parser(:price){|str| str.to_i}
48
+ alias getPrice get_price
49
+
50
+ def get_price_precision() parse :price_precision, invoke_get("PRICE_PRECISION") end
51
+ def_parser(:price_precision){|str| str.to_i}
52
+ alias getPricePrecision get_price_precision
53
+
54
+ def get_price_currency() invoke_get("PRICE_CURRENCY") end
55
+ def_parser(:price_currency)
56
+ alias getPriceCurrency get_price_currency
57
+
58
+ def get_reply_to_number() invoke_get("REPLY_TO_NUMBER") end
59
+ def_parser(:reply_to_number)
60
+ alias getReplyToNumber get_reply_to_number
61
+
62
+ def get_target_numbers() parse :target_numbers, invoke_get("TARGET_NUMBERS") end
63
+ def_parser(:target_numbers){|str| str.split(', ')}
64
+ alias getTargetNumbers get_target_numbers
65
+
66
+ def get_target_statuses() parse :target_statuses, invoke_get("TARGET_STATUSES") end
67
+ def_parser(:target_statuses){|str|
68
+ hash = Hash.new
69
+ str.split(', ').each{ |lump|
70
+ pstn, status = lump.split('=')
71
+ hash[pstn] = status
72
+ }
73
+ hash
74
+ }
75
+ alias getTargetStatuses get_target_statuses
76
+
77
+ #send?
78
+ def get_chunk noOfChunks
79
+ res = invoke "CHUNK #{noOfChunks}"
80
+ return noOfChunks, res
81
+ end
82
+ alias getChunk get_chunk
52
83
 
53
- def getChunk noOfChunks
54
- res = send"CHUNK #{noOfChunks}"
55
- return noOfChunks, res
56
- end
84
+ def set_body(text) invoke_set "BODY", text end
85
+ alias setBody set_body
57
86
 
58
- def setBody text
59
- invoke_set "BODY", text
60
- end
87
+ def send() invoke_alter "SEND" end
61
88
 
62
- def send
63
- invoke_alter "SEND"
64
- end
89
+ def delete() invoke_echo "DLETE SMS #{@id}" end
65
90
 
66
- def delete
67
- invoke_echo "DLETE SMS #{@id}"
68
- end
91
+ def set_target_number *nums
92
+ nums = nums[0] if nums[0].class == Array
93
+ invoke_set "TARGET_NUMBERS", nums.join(', ')
94
+ end
95
+ alias setTargetNumber set_target_number
69
96
 
70
- def setTargetNumber *nums
71
- nums = nums[0] if nums[0].class == Array
72
- invoke_set "TARGET_NUMBERS", nums.join(', ')
73
- end
97
+ def set_seen() invoke_set "SEEN" end
98
+ alias setSeen set_seen
74
99
 
75
- def setSeen
76
- invoke_set "SEEN"
77
- end
100
+ def set_reply_to_number(pstn) invoke_set "REPLY_TO_NUMBER", pstn end
101
+ alias setReplyToNumber set_reply_to_number
78
102
 
79
- def setReplyToNumber pstn
80
- invoke_set "REPLY_TO_NUMBER", pstn
81
- end
82
- end
83
103
  end
84
104
  end