lws 0.4.2 → 6.1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/lws/ticket.rb CHANGED
@@ -20,7 +20,7 @@ module LWS::Ticket
20
20
  end
21
21
  # :nocov:
22
22
 
23
- #@!visibility private
23
+ # @!visibility private
24
24
  def self.api
25
25
  LWS.setup_api(LWS.config.endpoints[:ticket] ||
26
26
  ENDPOINT[LWS.config.environment])
@@ -33,244 +33,297 @@ module LWS::Ticket
33
33
  use_api LWS::Ticket.api
34
34
  end
35
35
 
36
- # (see Generic::Task)
37
- class Task < LWS::Generic::Task
38
- use_api LWS::Ticket.api
39
- end
40
-
41
36
  ### App specific classes
42
37
 
43
- # = The ticket class
44
- class Ticket < LWS::Generic::Model
38
+ # = The ticket message attachment class
39
+ class Attachment < LWS::Generic::Model
45
40
  use_api LWS::Ticket.api
46
41
 
47
- #@!attribute id [r]
48
- # @return [Fixnum] the (unique) ID of the ticket
49
-
50
- #@!attribute account
51
- # @return [LWS::Auth::Account] the account of the user that created the
52
- # ticket
53
- belongs_to :account, class_name: "LWS::Auth::Account"
54
-
55
- #@!attribute account_id
56
- # @return [Fixnum] the ID of the account of the user that created the
57
- # ticket
58
-
59
- #@!attribute assignee
60
- # @return [LWS::Auth::Account] the account of the user that the ticket
61
- # is assigned to
62
- belongs_to :assignee, class_name: "LWS::Auth::Account"
63
-
64
- #@!attribute assignee_id
65
- # @return [Fixnum] the ID of the account of the user that the ticket
66
- # is assigned to
67
-
68
- #@!attribute company
69
- # @return [LWS::Auth::Company] the company of the user that created
70
- # the ticket
71
- belongs_to :company, class_name: "LWS::Auth::Company"
72
-
73
- #@!attribute company_id
74
- # @return [Fixnum] the ID of the company of the user that created the
75
- # ticket
76
-
77
- #@!attribute description
78
- # @return [String] the description (body) of the ticket
42
+ # @!attribute id [r]
43
+ # @return [Fixnum] the (unique) ID of the ticket message attachment
44
+ attribute :id
79
45
 
80
- #@!attribute display_name
81
- # @return [String] the name of the object the ticket is created for
46
+ # @!attribute av_scanned_at
47
+ # @return [String, nil] the timestamp of when an anti-virus scan on the
48
+ # attached file was performed
49
+ attribute :av_scanned_at
82
50
 
83
- #@!attribute due_date
84
- # @return [String] the timestamp of when the ticket is due
85
-
86
- #@!attribute group
87
- # @return [String] the group (e.g. department/ticket type) the ticket
88
- # belongs to
89
- belongs_to :group
51
+ # @!attribute file_object
52
+ # @return [String] the URL of the attachment file object
53
+ attribute :file_object
90
54
 
91
- #@!attribute group_id
92
- # @return [Fixnum] the ID of the group the ticket belongs to
93
-
94
- #@!attribute messages
95
- # @return [Array<Message>] the messages associated with the ticket
96
- has_many :messages
55
+ # @!attribute message
56
+ # @return [Message] the ticket message associated with the attachment
57
+ belongs_to :message
97
58
 
98
- #@!attribute owner
99
- # @return [LWS::Auth::Company] the company that is currently handling
100
- # the ticket
101
- belongs_to :owner, class_name: "LWS::Auth::Company"
59
+ # @!attribute message_id
60
+ # @return [Fixnum] the ID of the ticket message associated with the
61
+ # attachment
62
+ attribute :message_id
63
+
64
+ # @!attribute name
65
+ # @return [String] the name of the attachment
66
+ attribute :name
67
+
68
+ # @!attribute size
69
+ # @return [Fixnum] the size of the attachment (bytes)
70
+ attribute :size
71
+
72
+ # @!attribute url
73
+ # @return [String] the URL to the attachment that can be used to
74
+ # download it
75
+ attribute :url
76
+
77
+ # @!attribute created_at [r]
78
+ # @return [String] the timestamp of when the ticket message attachment
79
+ # was created
80
+ attribute :created_at
81
+
82
+ # @!attribute updated_at [r]
83
+ # @return [String] the timestamp of when the ticket message attachment
84
+ # was last updated
85
+ attribute :updated_at
86
+ end
102
87
 
103
- #@!attribute owner_id
104
- # @return [Fixnum] the ID of the company that is currently handling
105
- # the ticket
88
+ # = The ticket group class
89
+ class Group < LWS::Generic::Model
90
+ use_api LWS::Ticket.api
106
91
 
107
- #@!attribute priority
108
- # @return [Fixnum] the priority (ID) of the ticket
92
+ # @!attribute id [r]
93
+ # @return [Fixnum] the (unique) ID of the ticket group
94
+ attribute :id
109
95
 
110
- #@!attribute status
111
- # @return [Fixnum] the current ticket status (ID)
112
-
113
- #@!attribute tags
114
- # @return [Array<Tag>] the tags associated with the ticket
115
- has_many :tags
96
+ # @!attribute name
97
+ # @return [String] the name of the ticket group
98
+ attribute :name
116
99
 
117
- #@!attribute target
118
- # The target is a string that consists of three parts joined by a dot.
119
- # It is the name of the app, followed by the model name, followed
120
- # by the model ID. This can be resolved into the object the ticket
121
- # is created for/on.
122
- #
123
- # @return [String] the target of the ticket
100
+ # @!attribute slug [r]
101
+ # @return [String] the slug of the ticket group
102
+ attribute :slug
124
103
 
125
- #@!attribute title
126
- # @return [String] the title (short description) of the ticket
104
+ # @!attribute tickets
105
+ # @return [Array<Ticket>] the tickets that are assigned to the ticket
106
+ # group
107
+ has_many :tickets
127
108
 
128
- #@!attribute created_at
129
- # @return [String] the timestamp of when the ticket was created
109
+ # @!attribute created_at [r]
110
+ # @return [String] the timestamp of when the ticket group was created
111
+ attribute :created_at
130
112
 
131
- #@!attribute updated_at
132
- # @return [String] the timestamp of when the ticket was last updated
113
+ # @!attribute updated_at [r]
114
+ # @return [String] the timestamp of when the ticket group was last updated
115
+ attribute :updated_at
133
116
  end
134
117
 
135
118
  # = The ticket message class
136
119
  class Message < LWS::Generic::Model
137
120
  use_api LWS::Ticket.api
138
121
 
139
- #@!attribute id [r]
140
- # @return [Fixnum] the (unique) ID of the ticket message
122
+ # @!attribute id [r]
123
+ # @return [Fixnum] the (unique) ID of the ticket message
124
+ attribute :id
141
125
 
142
- #@!attribute account
143
- # @return [LWS::Auth::Account] the account of the user that created the
144
- # ticket message
126
+ # @!attribute account
127
+ # @return [LWS::Auth::Account] the account of the user that created the
128
+ # ticket message
145
129
  belongs_to :account, class_name: "LWS::Auth::Account"
146
130
 
147
- #@!attribute account_id
148
- # @return [Fixnum] the ID of the account of the user that created the
149
- # ticket message
131
+ # @!attribute account_id
132
+ # @return [Fixnum] the ID of the account of the user that created the
133
+ # ticket message
134
+ attribute :account_id
150
135
 
151
- #@!attribute attachments
152
- # @return [Array<Attachment>] the attachments associated with the ticket
153
- # message
136
+ # @!attribute attachments
137
+ # @return [Array<Attachment>] the attachments associated with the ticket
138
+ # message
154
139
  has_many :attachments
155
140
 
156
- #@!attribute company
157
- # @return [LWS::Auth::Company] the company of the user that created
158
- # the ticket message
141
+ # @!attribute company
142
+ # @return [LWS::Auth::Company] the company of the user that created
143
+ # the ticket message
159
144
  belongs_to :company, class_name: "LWS::Auth::Company"
160
145
 
161
- #@!attribute company_id
162
- # @return [Fixnum] the ID of the company of the user that created the
163
- # ticket message
146
+ # @!attribute company_id
147
+ # @return [Fixnum] the ID of the company of the user that created the
148
+ # ticket message
149
+ attribute :company_id
150
+
151
+ # @!attribute internal
152
+ # @return [Boolean] whether the message is internal, i.e. not visible
153
+ # for descendant companies
154
+ attribute :internal
164
155
 
165
- #@!attribute message
166
- # @return [String] the ticket message body
156
+ # @!attribute message
157
+ # @return [String] the ticket message body
158
+ attribute :message
167
159
 
168
- #@!attribute status
169
- # @return [Fixnum] the new ticket status (ID) set by the message
160
+ # @!attribute status
161
+ # @return [Fixnum] the new ticket status (ID) set by the message
162
+ attribute :status
170
163
 
171
- #@!attribute ticket
172
- # @return [Ticket] the ticket associated with the message
164
+ # @!attribute ticket
165
+ # @return [Ticket] the ticket associated with the message
173
166
  belongs_to :ticket
174
167
 
175
- #@!attribute ticket_id
176
- # @return [Fixnum] the ID of the ticket associated with the message
177
-
178
- #@!attribute created_at
179
- # @return [String] the timestamp of when the ticket message was created
168
+ # @!attribute ticket_id
169
+ # @return [Fixnum] the ID of the ticket associated with the message
170
+ attribute :ticket_id
180
171
 
181
- #@!attribute updated_at
182
- # @return [String] the timestamp of when the ticket message was last
183
- # updated
172
+ # @!attribute created_at [r]
173
+ # @return [String] the timestamp of when the ticket message was created
174
+ attribute :created_at
175
+
176
+ # @!attribute updated_at [r]
177
+ # @return [String] the timestamp of when the ticket message was last
178
+ # updated
179
+ attribute :updated_at
184
180
  end
185
181
 
186
- # = The ticket message attachment class
187
- class Attachment < LWS::Generic::Model
182
+ # = The ticket tag class
183
+ class Tag < LWS::Generic::Model
188
184
  use_api LWS::Ticket.api
189
185
 
190
- #@!attribute id [r]
191
- # @return [Fixnum] the (unique) ID of the ticket message attachment
186
+ # @!attribute id [r]
187
+ # @return [Fixnum] the (unique) ID of the ticket tag
188
+ attribute :id
192
189
 
193
- #@!attribute av_scanned_at
194
- # @return [String] the timestamp of when an anti-virus scan on the attached
195
- # file was performed
190
+ # @!attribute description
191
+ # @return [String, nil] the description of the ticket tag
192
+ attribute :description
196
193
 
197
- #@!attribute message
198
- # @return [Message] the ticket message associated with the attachment
199
- belongs_to :message
194
+ # @!attribute dev_issue_id
195
+ # @return [Fixnum, nil] the ID of the issue in LeftClick's internal bug
196
+ # tracking system
197
+ attribute :dev_issue_id
200
198
 
201
- #@!attribute message_id
202
- # @return [Fixnum] the ID of the ticket message associated with the
203
- # attachment
199
+ # @!attribute name
200
+ # @return [String] the name of the ticket tag
201
+ attribute :name
204
202
 
205
- #@!attribute name
206
- # @return [String] the name of the attachment
203
+ # @!attribute slug [r]
204
+ # @return [String] the slug of the ticket tag
205
+ attribute :slug
207
206
 
208
- #@!attribute size
209
- # @return [Fixnum] the size of the attachment (bytes)
207
+ # @!attribute tickets
208
+ # @return [Array<Ticket>] the ticket associated with the tag
209
+ has_many :tickets
210
210
 
211
- #@!attribute text
212
- # @return [String] the file object attached
213
-
214
- #@!attribute created_at
215
- # @return [String] the timestamp of when the ticket message attachment
216
- # was created
211
+ # @!attribute created_at [r]
212
+ # @return [String] the timestamp of when the ticket tag was created
213
+ attribute :created_at
217
214
 
218
- #@!attribute updated_at
219
- # @return [String] the timestamp of when the ticket message attachment
220
- # was last updated
215
+ # @!attribute updated_at [r]
216
+ # @return [String] the timestamp of when the ticket tag was last updated
217
+ attribute :updated_at
221
218
  end
222
219
 
223
- # = The ticket group class
224
- class Group < LWS::Generic::Model
220
+ # = The ticket class
221
+ class Ticket < LWS::Generic::Model
225
222
  use_api LWS::Ticket.api
226
223
 
227
- #@!attribute id [r]
228
- # @return [Fixnum] the (unique) ID of the ticket group
224
+ # @!attribute id [r]
225
+ # @return [Fixnum] the (unique) ID of the ticket
226
+ attribute :id
229
227
 
230
- #@!attribute name
231
- # @return [String] the name of the ticket group
228
+ # @!attribute account
229
+ # @return [LWS::Auth::Account] the account of the user that created the
230
+ # ticket
231
+ belongs_to :account, class_name: "LWS::Auth::Account"
232
232
 
233
- #@!attribute slug
234
- # @return [String] the slug of the ticket group
235
-
236
- #@!attribute created_at
237
- # @return [String] the timestamp of when the ticket group was created
233
+ # @!attribute account_id
234
+ # @return [Fixnum] the ID of the account of the user that created the
235
+ # ticket
236
+ attribute :account_id
237
+
238
+ # @!attribute assignee
239
+ # @return [LWS::Auth::Account, nil] the account of the user that the
240
+ # ticket is assigned to
241
+ belongs_to :assignee, class_name: "LWS::Auth::Account",
242
+ uri: "accounts/:id"
243
+
244
+ # @!attribute assignee_id
245
+ # @return [Fixnum, nil] the ID of the account of the user that the
246
+ # ticket is assigned to
247
+ attribute :assignee_id
248
+
249
+ # @!attribute company
250
+ # @return [LWS::Auth::Company] the company of the user that created
251
+ # the ticket
252
+ belongs_to :company, class_name: "LWS::Auth::Company"
238
253
 
239
- #@!attribute updated_at
240
- # @return [String] the timestamp of when the ticket group was last updated
254
+ # @!attribute company_id
255
+ # @return [Fixnum] the ID of the company of the user that created the
256
+ # ticket
257
+ attribute :company_id
241
258
 
242
- self # To ensure that YARD does not skip the attributes of this class
243
- end
259
+ # @!attribute description
260
+ # @return [String, nil] the description (body) of the ticket
261
+ attribute :description
244
262
 
245
- # = The ticket tag class
246
- class Tag < LWS::Generic::Model
247
- use_api LWS::Ticket.api
263
+ # @!attribute display_name
264
+ # @return [String] the name of the object the ticket is created for
265
+ attribute :display_name
248
266
 
249
- #@!attribute id [r]
250
- # @return [Fixnum] the (unique) ID of the ticket tag
267
+ # @!attribute due_date
268
+ # @return [String, nil] the timestamp of when the ticket is due
269
+ attribute :due_date
251
270
 
252
- #@!attribute description
253
- # @return [String] the description of the ticket tag
271
+ # @!attribute group
272
+ # @return [Group] the group (e.g. department/ticket type) the ticket
273
+ # belongs to
274
+ belongs_to :group
254
275
 
255
- #@!attribute dev_issue_id
256
- # @return [Fixnum] the ID of the issue in LeftClick's internal bug
257
- # tracking system
276
+ # @!attribute group_id
277
+ # @return [Fixnum] the ID of the group the ticket belongs to
278
+ attribute :group_id
258
279
 
259
- #@!attribute name
260
- # @return [String] the name of the ticket tag
280
+ # @!attribute messages
281
+ # @return [Array<Message>] the messages associated with the ticket
282
+ has_many :messages
261
283
 
262
- #@!attribute slug
263
- # @return [String] the slug of the ticket tag
284
+ # @!attribute owner
285
+ # @return [LWS::Auth::Company] the company that is currently handling
286
+ # the ticket
287
+ belongs_to :owner, class_name: "LWS::Auth::Company",
288
+ uri: "companies/:id"
264
289
 
265
- #@!attribute ticket
266
- # @return [Ticket] the ticket associated with the tag
267
- belongs_to :ticket
268
-
269
- #@!attribute created_at
270
- # @return [String] the timestamp of when the ticket tag was created
290
+ # @!attribute owner_id
291
+ # @return [Fixnum] the ID of the company that is currently handling
292
+ # the ticket
293
+ attribute :owner_id
294
+
295
+ # @!attribute priority
296
+ # @return [Fixnum] the priority (ID) of the ticket
297
+ attribute :priority
298
+
299
+ # @!attribute status
300
+ # @return [Fixnum] the current ticket status (ID)
301
+ attribute :status
302
+
303
+ # @!attribute tags
304
+ # @return [Array<Tag>] the tags associated with the ticket
305
+ has_many :tags
306
+
307
+ # @!attribute target
308
+ # The target is a string that consists of three parts joined by a dot.
309
+ # It is the name of the app, followed by the model name, followed
310
+ # by the model ID. This can be resolved into the object the ticket
311
+ # is created for/on.
312
+ #
313
+ # @return [String] the target of the ticket
314
+ attribute :target
315
+
316
+ # @!attribute title
317
+ # @return [String] the title (short description) of the ticket
318
+ attribute :title
319
+
320
+ # @!attribute created_at [r]
321
+ # @return [String] the timestamp of when the ticket was created
322
+ attribute :created_at
271
323
 
272
- #@!attribute updated_at
273
- # @return [String] the timestamp of when the ticket tag was last updated
324
+ # @!attribute updated_at [r]
325
+ # @return [String] the timestamp of when the ticket was last updated
326
+ attribute :updated_at
274
327
  end
275
328
 
276
329
  end
data/lib/lws/version.rb CHANGED
@@ -12,7 +12,7 @@
12
12
  module LWS
13
13
 
14
14
  # The LWS library version.
15
- # @note This is not the API version!
16
- VERSION = '0.4.2'
15
+ # @note The major and minor version parts match the LWS API version!
16
+ VERSION = '6.1.0.beta1'
17
17
 
18
18
  end
data/lib/lws.rb CHANGED
@@ -11,8 +11,8 @@
11
11
 
12
12
  require "faraday_middleware"
13
13
  require "hashie"
14
- require "her"
15
14
  require "multi_json"
15
+ require "spyke"
16
16
  require "pp"
17
17
  require "webmock"
18
18
 
@@ -31,23 +31,43 @@ module LWS
31
31
 
32
32
  # The list of supported apps (web service libraries) loaded by
33
33
  # {.setup}.
34
- SUPPORTED_APPS = [:generic, :auth, :corporate_website, :maps, :presence,
35
- :ticket]
34
+ SUPPORTED_APPS = [:generic, :auth, :corporate_website, :digital_signage,
35
+ :maps, :presence, :ticket]
36
+
37
+ # @private
38
+ # @!visibility private
39
+ class JSONParser < Faraday::Response::Middleware
40
+ def parse(body)
41
+ data = MultiJson.load(body, symbolize_keys: true)
42
+ metadata = data.delete(:metadata)
43
+ errors = data.delete(:errors)
44
+
45
+ # If there are errors, discard the data.
46
+ data = nil if errors.present?
47
+
48
+ { data: data,
49
+ metadata: metadata,
50
+ errors: errors }
51
+ end
52
+ end
36
53
 
37
54
  # @private
38
55
  # @!visibility private
39
56
  class HTTPLogger < Faraday::Response::Middleware
40
57
 
41
- def initialize(app, logger)
58
+ def initialize(app, logger, show_headers)
42
59
  raise "cannot log HTTP requests without a logger" if logger.nil?
43
60
  @logger = logger
61
+ @show_headers = show_headers
44
62
  super(app)
45
63
  end
46
64
 
47
65
  def call(env)
48
66
  @logger.debug ">>> #{env[:method].upcase} #{env[:url].to_s}"
49
- env[:request_headers].each do |hdr, val|
50
- @logger.debug " #{hdr}: #{val}"
67
+ if @show_headers
68
+ env[:request_headers].each do |hdr, val|
69
+ @logger.debug " #{hdr}: #{val}"
70
+ end
51
71
  end
52
72
  @logger.debug ">>> #{env[:body] || "nil"}"
53
73
  super
@@ -56,8 +76,10 @@ module LWS
56
76
  def on_complete(env)
57
77
  super
58
78
  @logger.debug "<<< HTTP #{env[:status].to_s}"
59
- env[:response_headers].each do |hdr, val|
60
- @logger.debug " #{hdr}: #{val}"
79
+ if @show_headers
80
+ env[:response_headers].each do |hdr, val|
81
+ @logger.debug " #{hdr}: #{val}"
82
+ end
61
83
  end
62
84
  @logger.debug "<<< #{env[:body] || "nil"}"
63
85
  end
@@ -75,7 +97,7 @@ module LWS
75
97
  end
76
98
 
77
99
  def on_complete(env)
78
- dump = MultiJson.dump(env[:body], pretty: true)
100
+ dump = JSON.pretty_generate(env[:body])
79
101
  dump.split("\n").each { |line| @logger.debug "||| #{line}" }
80
102
  end
81
103
 
@@ -135,6 +157,10 @@ module LWS
135
157
  # @return [Boolean] whether to show HTTP debug messages
136
158
  property :http_debug, default: false
137
159
 
160
+ #@!attribute http_debug_headers
161
+ # @return [Boolean] whether to show HTTP headers in the debug messages
162
+ property :http_debug_headers, default: false
163
+
138
164
  #@!attribute json_debug
139
165
  # @return [Boolean] whether to show JSON debug messages
140
166
  property :json_debug, default: false
@@ -161,6 +187,10 @@ module LWS
161
187
  # config.logger = Rails.logger
162
188
  # end
163
189
  #
190
+ # A default value for the API token can be set using the
191
+ # +LC_LWS_API_TOKEN+ environment variable. The default environment can
192
+ # be overriden using the +LC_LWS_ENV+ environment variable.
193
+ #
164
194
  # @yieldparam [Config] config an API configuration object that can be
165
195
  # configured
166
196
  # @raise if API token is not configured
@@ -169,8 +199,10 @@ module LWS
169
199
  @@config = Config.new
170
200
  yield @@config
171
201
 
172
- if config.api_token.blank? and config.api_token_middleware.blank?
173
- raise "API token or API token middleware is required"
202
+ # Override the API token if needed (and no custom API token middleware
203
+ # is used)
204
+ if ENV["LC_LWS_API_TOKEN"].present?
205
+ @@config.api_token = ENV["LC_LWS_API_TOKEN"]
174
206
  end
175
207
 
176
208
  # Override the environment if needed
@@ -178,6 +210,10 @@ module LWS
178
210
  @@config.environment = ENV["LC_LWS_ENV"].to_sym
179
211
  end
180
212
 
213
+ if config.api_token.blank? and config.api_token_middleware.blank?
214
+ raise "API token or API token middleware is required"
215
+ end
216
+
181
217
  load_app_modules
182
218
  load_stubbing
183
219
 
@@ -186,30 +222,43 @@ module LWS
186
222
 
187
223
  # @private
188
224
  # @!visibility private
225
+ #
226
+ # Sets up the Faraday API object with the current LWS configuration for
227
+ # the given API URL.
228
+ #
229
+ # @param api_url The endpoint URL of the API
230
+ # @return [Faraday] A Faraday connection that makes requests to the API
189
231
  def self.setup_api(api_url)
190
- api = Her::API.new
191
- api.setup(url: api_url) do |c|
232
+ api = Faraday.new(url: api_url) do |c|
192
233
  # Request
193
234
  if config.caching_object
194
235
  c.use FaradayMiddleware::Caching, config.caching_object
195
236
  end
196
237
  c.use RequestHeaders, config.api_token
197
238
  c.use config.api_token_middleware if config.api_token_middleware.present?
198
- c.use Faraday::Request::UrlEncoded
239
+ c.request :json
199
240
 
200
241
  # Response
201
242
  c.use JSONLogger, config.logger if config.json_debug
202
- c.use Her::Middleware::DefaultParseJSON
243
+ c.use JSONParser
203
244
  c.use FaradayMiddleware::FollowRedirects, limit: 3
204
- c.use HTTPLogger, config.logger if config.http_debug
245
+ c.use HTTPLogger, config.logger, config.http_debug_headers if config.http_debug
205
246
 
206
247
  # Adapter
207
- c.use Faraday::Adapter::NetHttp
248
+ c.adapter Faraday.default_adapter
208
249
  end
209
250
 
210
251
  return api
211
252
  end
212
253
 
254
+ # Returns the app module for the given app name.
255
+ #
256
+ # @param app_name [String, Symbol] the app name
257
+ # @return [Module] the app module
258
+ def self.app_module(app_name)
259
+ @app_modules[app_name.to_sym]
260
+ end
261
+
213
262
  # (Re)loads the app modules (usually done by {.setup}).
214
263
  #
215
264
  # @return [Array<Symbol>] the apps that were loaded
@@ -235,12 +284,4 @@ module LWS
235
284
  end
236
285
  end
237
286
 
238
- # Returns the app module for the given app name.
239
- #
240
- # @param app_name [String, Symbol] the app name
241
- # @return [Module] the app module
242
- def self.app_module(app_name)
243
- @app_modules[app_name.to_sym]
244
- end
245
-
246
287
  end # module LWS