Module: HTM::Sinatra::Helpers

Defined in:
lib/htm/integrations/sinatra.rb

Instance Method Summary collapse

Instance Method Details

#htmHTM

Get current HTM instance

Returns:

  • (HTM)

    HTM instance for this request

Raises:

  • (RuntimeError)

    If HTM not initialized (call init_htm first)



65
66
67
# File 'lib/htm/integrations/sinatra.rb', line 65

def htm
  @htm || raise("HTM not initialized. Call init_htm in a before filter.")
end

#init_htm(robot_name: 'guest', working_memory_size: 128_000) ⇒ HTM

Initialize HTM instance for current request

Parameters:

  • robot_name (String) (defaults to: 'guest')

    Robot identifier (typically user/session ID)

  • working_memory_size (Integer) (defaults to: 128_000)

    Token limit for working memory

Returns:

  • (HTM)

    HTM instance for this request



53
54
55
56
57
58
# File 'lib/htm/integrations/sinatra.rb', line 53

def init_htm(robot_name: 'guest', working_memory_size: 128_000)
  @htm = HTM.new(
    robot_name: robot_name,
    working_memory_size: working_memory_size
  )
end

#json(data) ⇒ String

JSON response helper

Parameters:

  • data (Hash)

    Data to convert to JSON

Returns:

  • (String)

    JSON response



94
95
96
97
# File 'lib/htm/integrations/sinatra.rb', line 94

def json(data)
  content_type :json
  data.to_json
end

#recall(topic) ⇒ Array<Hash>

Recall memories (convenience method)

Parameters:

  • topic (String)

    Topic to search for

  • options (Hash)

    Recall options (timeframe, limit, strategy, etc.)

Returns:

  • (Array<Hash>)

    Matching memories



85
86
87
# File 'lib/htm/integrations/sinatra.rb', line 85

def recall(topic, **)
  htm.recall(topic, **)
end

#remember(content, tags: []) ⇒ Integer

Remember information (convenience method)

Parameters:

  • content (String)

    Content to remember

  • tags (Array<String>) (defaults to: [])

    Optional tags to assign

Returns:

  • (Integer)

    Node ID



75
76
77
# File 'lib/htm/integrations/sinatra.rb', line 75

def remember(content, tags: [])
  htm.remember(content, tags: tags)
end