llmed 0.3.1 → 0.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a90029f77fd962cbec07534801ea73ed440c9e1f2e2d87a1d62827af44baf3e
4
- data.tar.gz: 1e4d31b1dae583581d8fc9716419490a2901180862e03618cd09f189945a2384
3
+ metadata.gz: de4af1bcbd459b42e93cad731da1334f599065200111aa13363367c07d715477
4
+ data.tar.gz: 7b64d48d886baa7a9c7d7ea1882248032e0b380fdc8438d4b025ca23783a6948
5
5
  SHA512:
6
- metadata.gz: 7d39d323d49f5952335372842244d532cf31129cf3bda5ebd19e2a4abe46510f6479927036a523aad50ec1373808311290f41a1da43940e4ab2b30bfbd16db53
7
- data.tar.gz: e9b52e1af2fceca9d6ae84cc7882b9a34ca281f7558546e959f6cdac9ff2a95e93262e211c086151194613392620795cf5b781473d60db6f20a44923f5660199
6
+ metadata.gz: 3b6c12c3c7cc03b333fbf849f6692bddbd423ef203a8a2e51b37ae6dc6b7e6257e43f0008c66f1b02fea5752e350ac6785612cc26bd176f5145ecb4607fa2021
7
+ data.tar.gz: 8ded8e1efef05559f9bc6ff14d5cbb23abc6fb76aac73f550aa46fc804c9b890d22c8b6848a318aefdff56d9b890a90109ebc52e8f2addf6cea77a8380fe0f12
@@ -77,7 +77,7 @@ class LLMed
77
77
  if @release && File.exist?(release_source_code) && !release_contexts.empty?
78
78
  output_release = Release.load(File.read(release_source_code), code_comment)
79
79
  input_release = Release.load(output, code_comment)
80
- output_content = output_release.merge!(input_release).content
80
+ output_content = output_release.merge!(input_release, user_contexts).content
81
81
  output_release.changes do |change|
82
82
  action, ctx = change
83
83
  case action
@@ -107,7 +107,9 @@ class LLMed
107
107
  !digests_of_context_to_update.tap do |digests|
108
108
  digests.each do |digest|
109
109
  context_by_digest = release_contexts.invert
110
+
110
111
  if context_by_digest[digest].nil?
112
+
111
113
  @logger.info("APPLICATION #{@name} ADDING CONTEXT #{user_contexts.invert[digest]}")
112
114
  else
113
115
  @logger.info("APPLICATION #{@name} REBUILDING CONTEXT #{context_by_digest[digest]}")
@@ -158,7 +160,7 @@ class LLMed
158
160
  @contexts.each do |ctx|
159
161
  release_context = release_instance.context_by(ctx.name)
160
162
 
161
- if update_rest
163
+ if update_rest && release_context.digest?
162
164
  update_context_digest << release_context.digest
163
165
  next
164
166
  end
@@ -170,6 +172,7 @@ class LLMed
170
172
  elsif release_context.digest? && !ctx.same_digest?(release_context.digest)
171
173
  update_rest = true
172
174
  update_context_digest << release_context.digest
175
+ next
173
176
  elsif release_context.digest?
174
177
  # maybe the context is not connected to the source code
175
178
  next
data/lib/llmed/release.rb CHANGED
@@ -25,7 +25,7 @@ class LLMed
25
25
  end
26
26
 
27
27
  def content
28
- out = ''
28
+ out = String.new
29
29
 
30
30
  @contexts.each do |ctx|
31
31
  out += ctx.to_llmed_code(@code_comment)
@@ -61,7 +61,7 @@ class LLMed
61
61
  context_by(name).digest?
62
62
  end
63
63
 
64
- def merge!(release)
64
+ def merge!(release, user_contexts)
65
65
  contexts = []
66
66
 
67
67
  # updates
@@ -97,6 +97,12 @@ class LLMed
97
97
  @changes << [:added, new_ctx]
98
98
  end
99
99
 
100
+ # fix user contexts digest
101
+ contexts.each do |ctx|
102
+ user_context_digest = user_contexts[ctx.name]
103
+ ctx.digest = user_context_digest unless user_context_digest.nil?
104
+ end
105
+
100
106
  @contexts = contexts
101
107
  self
102
108
  end
@@ -110,8 +116,14 @@ class LLMed
110
116
  @code_comment = code_comment
111
117
  @contexts = []
112
118
 
113
- @origin.scan(%r{<llmed-code context='(.+?)' digest='(.+?)' after='(.*?)'>(.+?)#{@code_comment}+\s*</llmed-code>}im).each do |match|
114
- name, digest, after, code = match
119
+ @origin.scan(%r{<llmed-code context='(.+?)' digest='(.+?)'\s*(after='.*?')?>(.+?)#{@code_comment}+\s*</llmed-code>}im).each do |match|
120
+ name, digest, after_block, code = match
121
+ after = if after_block.nil?
122
+ ''
123
+ else
124
+ after_block[/after='(.*?)'/, 1]
125
+ end
126
+
115
127
  @contexts << ContextCode.new(name, digest, code, after)
116
128
  end
117
129
  end
data/lib/llmed.rb CHANGED
@@ -71,6 +71,7 @@ class LLMed
71
71
 
72
72
  llm_response = llm.chat(messages: messages)
73
73
  @logger.info("APPLICATION #{app.name} TOTAL TOKENS #{llm_response.total_tokens}")
74
+
74
75
  app.patch_or_create(llm_response.source_code)
75
76
  app.write_statistics(llm_response)
76
77
  app.notify("COMPILE DONE #{llm_response.duration_seconds}")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llmed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jovany Leandro G.C