Class: Legion::Extensions::Agentic::Social::Apprenticeship::Helpers::ApprenticeshipEngine
- Inherits:
-
Object
- Object
- Legion::Extensions::Agentic::Social::Apprenticeship::Helpers::ApprenticeshipEngine
- Defined in:
- lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb
Instance Method Summary collapse
- #active_apprenticeships ⇒ Object
- #by_apprentice(apprentice_id:) ⇒ Object
- #by_domain(domain:) ⇒ Object
- #by_mentor(mentor_id:) ⇒ Object
- #conduct_session(apprenticeship_id:, method:, success:) ⇒ Object
- #count ⇒ Object
- #create_apprenticeship(skill_name:, domain:, mentor_id:, apprentice_id:) ⇒ Object
- #decay_all ⇒ Object
- #get(apprenticeship_id) ⇒ Object
- #graduated_apprenticeships ⇒ Object
-
#initialize ⇒ ApprenticeshipEngine
constructor
A new instance of ApprenticeshipEngine.
- #recommend_method(apprenticeship_id:) ⇒ Object
- #sessions ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize ⇒ ApprenticeshipEngine
Returns a new instance of ApprenticeshipEngine.
10 11 12 13 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 10 def initialize @apprenticeships = {} @sessions = [] end |
Instance Method Details
#active_apprenticeships ⇒ Object
48 49 50 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 48 def active_apprenticeships @apprenticeships.values.reject(&:graduated?) end |
#by_apprentice(apprentice_id:) ⇒ Object
56 57 58 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 56 def by_apprentice(apprentice_id:) @apprenticeships.values.select { |a| a.apprentice_id == apprentice_id } end |
#by_domain(domain:) ⇒ Object
60 61 62 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 60 def by_domain(domain:) @apprenticeships.values.select { |a| a.domain == domain } end |
#by_mentor(mentor_id:) ⇒ Object
52 53 54 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 52 def by_mentor(mentor_id:) @apprenticeships.values.select { |a| a.mentor_id == mentor_id } end |
#conduct_session(apprenticeship_id:, method:, success:) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 28 def conduct_session(apprenticeship_id:, method:, success:) appr = @apprenticeships[apprenticeship_id] return nil unless appr appr.learn!(method: method, success: success) record_session(apprenticeship_id: apprenticeship_id, method: method, success: success) appr end |
#count ⇒ Object
73 74 75 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 73 def count @apprenticeships.size end |
#create_apprenticeship(skill_name:, domain:, mentor_id:, apprentice_id:) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 15 def create_apprenticeship(skill_name:, domain:, mentor_id:, apprentice_id:) return nil if @apprenticeships.size >= ApprenticeshipModel::MAX_APPRENTICESHIPS appr = Apprenticeship.new( skill_name: skill_name, domain: domain, mentor_id: mentor_id, apprentice_id: apprentice_id ) @apprenticeships[appr.id] = appr appr end |
#decay_all ⇒ Object
64 65 66 67 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 64 def decay_all @apprenticeships.each_value(&:decay!) @apprenticeships.size end |
#get(apprenticeship_id) ⇒ Object
69 70 71 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 69 def get(apprenticeship_id) @apprenticeships[apprenticeship_id] end |
#graduated_apprenticeships ⇒ Object
44 45 46 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 44 def graduated_apprenticeships @apprenticeships.values.select(&:graduated?) end |
#recommend_method(apprenticeship_id:) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 37 def recommend_method(apprenticeship_id:) appr = @apprenticeships[apprenticeship_id] return nil unless appr appr.recommended_method end |
#sessions ⇒ Object
77 78 79 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 77 def sessions @sessions.dup end |
#to_h ⇒ Object
81 82 83 84 85 86 87 88 |
# File 'lib/legion/extensions/agentic/social/apprenticeship/helpers/apprenticeship_engine.rb', line 81 def to_h { total: @apprenticeships.size, active: active_apprenticeships.size, graduated: graduated_apprenticeships.size, sessions: @sessions.size } end |