lex-microsoft_teams 0.6.18 → 0.6.19
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/CLAUDE.md +7 -4
- data/README.md +2 -1
- data/lib/legion/extensions/microsoft_teams/cli/auth.rb +3 -3
- data/lib/legion/extensions/microsoft_teams/helpers/browser_auth.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/helpers/permission_guard.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/helpers/session_manager.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/helpers/subscription_registry.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/helpers/token_cache.rb +3 -3
- data/lib/legion/extensions/microsoft_teams/runners/adaptive_cards.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/ai_insights.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/api_ingest.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/auth.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/bot.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/cache_ingest.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/channel_messages.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/channels.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/chats.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/local_cache.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/meetings.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/messages.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/ownership.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/people.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/presence.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/subscriptions.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/teams.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/runners/transcripts.rb +2 -2
- data/lib/legion/extensions/microsoft_teams/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 191314d46175bfd188ec33f1821071dd04522440eb54bb5450093904e27455fd
|
|
4
|
+
data.tar.gz: 461f5f6434c25a94c3715140827b22f6a23bce7705cb1128ddd756bbacb4dafd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0a5cdfb3d45c34f4165dc4af7e2f2195a8d10d6dfe022cfd9531825d1faa34e03e07b63dd4304cd0e43cb452e9478898ef47eaa0a81ad63effddf69d6a09ec2
|
|
7
|
+
data.tar.gz: cd317fd7a7c778065d905019c9648436285e2d00d04baff31cc1278d517412cc7ee2d893b7d4303bc8f00f0ea56a372ecdf32985ac5b2d7891cbc2b9b98eb4df
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.19] - 2026-03-26
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- `TokenCache#vault_path` default now uses `users/` prefix: `users/{USER}/microsoft_teams/delegated_token` (where `{USER}` is `ENV.fetch('USER', 'default')`), aligning with Vault KV v2 policy structure that scopes secrets under per-user subpaths
|
|
7
|
+
|
|
3
8
|
## [0.6.18] - 2026-03-26
|
|
4
9
|
|
|
5
10
|
### Changed
|
data/CLAUDE.md
CHANGED
|
@@ -10,7 +10,7 @@ Legion Extension that connects LegionIO to Microsoft Teams via Graph API and Bot
|
|
|
10
10
|
|
|
11
11
|
**GitHub**: https://github.com/LegionIO/lex-microsoft_teams
|
|
12
12
|
**License**: MIT
|
|
13
|
-
**Version**: 0.6.
|
|
13
|
+
**Version**: 0.6.18
|
|
14
14
|
|
|
15
15
|
## Architecture
|
|
16
16
|
|
|
@@ -61,6 +61,7 @@ Legion::Extensions::MicrosoftTeams
|
|
|
61
61
|
│ ├── BrowserAuth # Delegated OAuth orchestrator (PKCE, headless detection, browser launch, API hook detection)
|
|
62
62
|
│ ├── CallbackServer # Ephemeral TCP server for OAuth redirect callback
|
|
63
63
|
│ ├── PermissionGuard # Circuit breaker for 403 errors with exponential backoff
|
|
64
|
+
│ ├── TraceRetriever # Retrieves memory traces from the shared store for bot context (2000-token budget, strength-ranked dedup)
|
|
64
65
|
│ └── TransformDefinitions # lex-transformer definitions for conversation extraction and person summary
|
|
65
66
|
├── Hooks/
|
|
66
67
|
│ └── Auth # OAuth callback hook (mount '/callback') → /api/hooks/lex/microsoft_teams/auth/callback
|
|
@@ -76,7 +77,7 @@ Opt-in browser-based OAuth for delegated Microsoft Graph permissions. Two flows:
|
|
|
76
77
|
- **Authorization Code + PKCE** (primary): Opens browser for Entra ID login. When the Legion API is running, uses the hook URL (`/api/hooks/lex/microsoft_teams/auth/callback`) with `Legion::Events` for callback notification; otherwise falls back to an ephemeral local port via `CallbackServer`
|
|
77
78
|
- **Device Code** (fallback): Auto-selected in headless/SSH environments (no `DISPLAY`/`WAYLAND_DISPLAY`)
|
|
78
79
|
|
|
79
|
-
Tokens stored in Vault (`
|
|
80
|
+
Tokens stored in Vault at a per-user path (`{USER}/microsoft_teams/delegated_token`, where `{USER}` is the system username) with configurable pre-expiry silent refresh. CLI command: `legion auth teams`. Hook route: `GET|POST /api/hooks/lex/microsoft_teams/auth/callback` for daemon re-auth (routed through Ingress for RBAC/audit).
|
|
80
81
|
|
|
81
82
|
Key files: `Helpers::BrowserAuth` (orchestrator), `Helpers::CallbackServer` (ephemeral TCP), `Runners::Auth` (authorize_url, exchange_code, refresh_delegated_token, auth_callback), `Helpers::TokenCache` (delegated slot), `Hooks::Auth` (hook class with mount path).
|
|
82
83
|
|
|
@@ -128,9 +129,11 @@ User DMs the bot 1:1. Bot responds via legion-llm with multi-turn session contex
|
|
|
128
129
|
|
|
129
130
|
```
|
|
130
131
|
DirectChatPoller (5s) → AMQP exchange → MessageProcessor → Bot::handle_message
|
|
131
|
-
→ SessionManager.get_or_create → llm_session.ask(text) → Graph API reply
|
|
132
|
+
→ TraceRetriever.retrieve → SessionManager.get_or_create → llm_session.ask(text) → Graph API reply
|
|
132
133
|
```
|
|
133
134
|
|
|
135
|
+
`TraceRetriever` (v0.6.17) fetches memory traces from the shared store (sender, teams, chat-scoped domains) before each response. Up to a 2000-token budget; strength-ranked with deduplication. Appended to the resolved system prompt via `PromptResolver#resolve_prompt(trace_context:)`. Degrades gracefully when lex-memory is unavailable.
|
|
136
|
+
|
|
134
137
|
### Mode 2: Conversation Observer
|
|
135
138
|
User subscribes the bot to watch a human 1:1 conversation. Bot passively extracts tasks, context, and relationship data.
|
|
136
139
|
|
|
@@ -252,7 +255,7 @@ Optional framework dependencies (guarded with `defined?`, not in gemspec):
|
|
|
252
255
|
|
|
253
256
|
```bash
|
|
254
257
|
bundle install
|
|
255
|
-
bundle exec rspec #
|
|
258
|
+
bundle exec rspec # ~305 specs across 40 spec files (as of v0.6.18)
|
|
256
259
|
bundle exec rubocop # Clean
|
|
257
260
|
```
|
|
258
261
|
|
data/README.md
CHANGED
|
@@ -115,12 +115,13 @@ gem install lex-microsoft_teams
|
|
|
115
115
|
|
|
116
116
|
**Helpers:**
|
|
117
117
|
- `SessionManager` — Multi-turn LLM session lifecycle with lex-memory persistence
|
|
118
|
-
- `PromptResolver` — Layered system prompt resolution (settings default -> mode -> per-conversation)
|
|
118
|
+
- `PromptResolver` — Layered system prompt resolution (settings default -> mode -> per-conversation -> trace context)
|
|
119
119
|
- `HighWaterMark` — Per-chat message deduplication via legion-cache
|
|
120
120
|
- `TokenCache` — In-memory OAuth token cache with pre-expiry refresh (app + delegated slots)
|
|
121
121
|
- `SubscriptionRegistry` — Conversation observation subscriptions (in-memory + lex-memory)
|
|
122
122
|
- `BrowserAuth` — Delegated OAuth orchestrator (PKCE, headless detection, browser launch)
|
|
123
123
|
- `CallbackServer` — Ephemeral TCP server for OAuth redirect callback
|
|
124
|
+
- `TraceRetriever` — Retrieves and formats memory traces as LLM context (2000-token budget, strength-ranked dedup)
|
|
124
125
|
|
|
125
126
|
### Delegated Authentication (v0.5.0)
|
|
126
127
|
|
|
@@ -8,8 +8,8 @@ module Legion
|
|
|
8
8
|
module MicrosoftTeams
|
|
9
9
|
module CLI
|
|
10
10
|
class Auth
|
|
11
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
12
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
11
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
12
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
13
13
|
|
|
14
14
|
def self.cli_alias
|
|
15
15
|
'teams'
|
|
@@ -74,7 +74,7 @@ module Legion
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
def store_token(result)
|
|
77
|
-
cache = Helpers::TokenCache.
|
|
77
|
+
cache = Helpers::TokenCache.instance
|
|
78
78
|
cache.store_delegated_token(result)
|
|
79
79
|
cache.save_to_vault
|
|
80
80
|
log.info('Token stored successfully')
|
|
@@ -13,8 +13,8 @@ module Legion
|
|
|
13
13
|
module MicrosoftTeams
|
|
14
14
|
module Helpers
|
|
15
15
|
class BrowserAuth
|
|
16
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
17
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
16
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
17
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
18
18
|
|
|
19
19
|
DEFAULT_SCOPES = [
|
|
20
20
|
'offline_access', 'openid', 'profile', 'email',
|
|
@@ -5,8 +5,8 @@ module Legion
|
|
|
5
5
|
module MicrosoftTeams
|
|
6
6
|
module Helpers
|
|
7
7
|
module PermissionGuard
|
|
8
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
9
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
8
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
9
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
10
10
|
|
|
11
11
|
BACKOFF_SCHEDULE = [60, 300, 1800, 7200, 28_800].freeze
|
|
12
12
|
|
|
@@ -8,8 +8,8 @@ module Legion
|
|
|
8
8
|
module Helpers
|
|
9
9
|
class SessionManager
|
|
10
10
|
include PromptResolver
|
|
11
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
12
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
11
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
12
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
13
13
|
|
|
14
14
|
DEFAULT_FLUSH_THRESHOLD = 20
|
|
15
15
|
DEFAULT_IDLE_TIMEOUT = 900
|
|
@@ -7,8 +7,8 @@ module Legion
|
|
|
7
7
|
module MicrosoftTeams
|
|
8
8
|
module Helpers
|
|
9
9
|
class SubscriptionRegistry
|
|
10
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
11
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
10
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
11
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
12
12
|
|
|
13
13
|
MEMORY_KEY = 'teams_bot_subscriptions'
|
|
14
14
|
|
|
@@ -10,8 +10,8 @@ module Legion
|
|
|
10
10
|
module MicrosoftTeams
|
|
11
11
|
module Helpers
|
|
12
12
|
class TokenCache
|
|
13
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
14
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
13
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
14
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
15
15
|
|
|
16
16
|
REFRESH_BUFFER = 60
|
|
17
17
|
DEFAULT_LOCAL_DIR = File.join(Dir.home, '.legionio', 'tokens')
|
|
@@ -274,7 +274,7 @@ module Legion
|
|
|
274
274
|
settings = teams_auth_settings
|
|
275
275
|
delegated = settings[:delegated]
|
|
276
276
|
custom = delegated[:vault_path] if delegated.is_a?(Hash)
|
|
277
|
-
custom || "
|
|
277
|
+
custom || "users/#{ENV.fetch('USER', 'default')}/microsoft_teams/delegated_token"
|
|
278
278
|
end
|
|
279
279
|
|
|
280
280
|
def local_token_path
|
|
@@ -50,8 +50,8 @@ module Legion
|
|
|
50
50
|
}
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
54
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
53
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
54
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
end
|
|
@@ -39,8 +39,8 @@ module Legion
|
|
|
39
39
|
{ result: response.body }
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
43
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
42
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
43
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
|
@@ -101,8 +101,8 @@ module Legion
|
|
|
101
101
|
{ result: { stored: stored || 0, skipped: skipped || 0, error: e.message } }
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
105
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
104
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
105
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
106
106
|
|
|
107
107
|
MAX_CHAT_PAGES = 10
|
|
108
108
|
|
|
@@ -136,8 +136,8 @@ module Legion
|
|
|
136
136
|
HTML
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
140
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
139
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
140
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
141
141
|
end
|
|
142
142
|
end
|
|
143
143
|
end
|
|
@@ -417,8 +417,8 @@ module Legion
|
|
|
417
417
|
nil
|
|
418
418
|
end
|
|
419
419
|
|
|
420
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
421
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
420
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
421
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
422
422
|
end
|
|
423
423
|
end
|
|
424
424
|
end
|
|
@@ -47,8 +47,8 @@ module Legion
|
|
|
47
47
|
{ result: { stored: stored, skipped: skipped, latest_time: latest_time } }
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
51
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
50
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
51
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
52
52
|
|
|
53
53
|
private
|
|
54
54
|
|
|
@@ -43,8 +43,8 @@ module Legion
|
|
|
43
43
|
{ result: response.body }
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
47
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
46
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
47
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -44,8 +44,8 @@ module Legion
|
|
|
44
44
|
{ result: response.body }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
48
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
47
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
48
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -42,8 +42,8 @@ module Legion
|
|
|
42
42
|
{ result: response.body }
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
46
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
45
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
46
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
end
|
|
@@ -34,8 +34,8 @@ module Legion
|
|
|
34
34
|
{ result: extractor.stats }
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
38
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
37
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
38
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
39
39
|
|
|
40
40
|
private
|
|
41
41
|
|
|
@@ -59,8 +59,8 @@ module Legion
|
|
|
59
59
|
{ result: response.body }
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
63
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
62
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
63
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
end
|
|
@@ -39,8 +39,8 @@ module Legion
|
|
|
39
39
|
{ result: response.body }
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
43
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
42
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
43
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
|
@@ -66,8 +66,8 @@ module Legion
|
|
|
66
66
|
(resp.body || {}).fetch('value', [])
|
|
67
67
|
end
|
|
68
68
|
|
|
69
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
70
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
69
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
70
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
end
|
|
@@ -24,8 +24,8 @@ module Legion
|
|
|
24
24
|
{ error: e.message }
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
28
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
27
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
28
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -22,8 +22,8 @@ module Legion
|
|
|
22
22
|
{ availability: 'Offline', activity: 'OffWork', error: e.message, fetched_at: Time.now.utc }
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
26
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
25
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
26
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
|
@@ -67,8 +67,8 @@ module Legion
|
|
|
67
67
|
)
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
71
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
70
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
71
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
74
|
end
|
|
@@ -24,8 +24,8 @@ module Legion
|
|
|
24
24
|
{ result: response.body }
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
28
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
27
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
28
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -36,8 +36,8 @@ module Legion
|
|
|
36
36
|
{ result: response.body }
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
|
|
40
|
-
Legion::Extensions::Helpers.const_defined?(:Lex)
|
|
39
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
40
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
end
|