needle_in_a_haystack 1.0.0
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 +7 -0
- data/Rakefile +6 -0
- data/config/initializers/application_controller_renderer.rb +8 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/config.rb +5 -0
- data/config/initializers/cors.rb +16 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/lograge.rb +0 -0
- data/config/initializers/mime_types.rb +4 -0
- data/config/initializers/redis.rb +2 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/en.yml +33 -0
- data/lib/concerns/taggable.rb +26 -0
- data/lib/needle_in_a_haystack/application_record.rb +5 -0
- data/lib/needle_in_a_haystack/configuration.rb +9 -0
- data/lib/needle_in_a_haystack/engine.rb +11 -0
- data/lib/needle_in_a_haystack/haystack_ontology.rb +68 -0
- data/lib/needle_in_a_haystack/haystack_tag.rb +69 -0
- data/lib/needle_in_a_haystack/haystack_tagging.rb +8 -0
- data/lib/needle_in_a_haystack/version.rb +3 -0
- data/lib/needle_in_a_haystack.rb +17 -0
- data/lib/tasks/location_create.rake +7 -0
- data/spec/factories/haystack_tags.rb +16 -0
- metadata +319 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4866e9ea873340add03eadd30959c1394cd0168c03ebeeb7e28c37047d4eff29
|
4
|
+
data.tar.gz: 1764b64f7a33a738335b446faa2340887d95ad9e0d1c12ddc208eadee921f6c1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e535c31af08738c6064e8bb3c818080ebf4dae98add9a4aa35b19d6485051b2aee6ed8cc474446007773d557f7f2870b9e85963115b6d342c7ad8af101a35c9d
|
7
|
+
data.tar.gz: 68baca7aacb408a164a8c020c8beda399f9d86955aef9d857a5f6d67ac300943047c21e37732b94130e64efc83bf18689c054488f5da2418fc5ef5f858479a66
|
data/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
4
|
+
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
5
|
+
|
6
|
+
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
7
|
+
# Rails.backtrace_cleaner.remove_silencers!
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Avoid CORS issues when API is called from the frontend app.
|
4
|
+
# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests.
|
5
|
+
|
6
|
+
# Read more: https://github.com/cyu/rack-cors
|
7
|
+
|
8
|
+
# Rails.application.config.middleware.insert_before 0, Rack::Cors do
|
9
|
+
# allow do
|
10
|
+
# origins 'example.com'
|
11
|
+
#
|
12
|
+
# resource '*',
|
13
|
+
# headers: :any,
|
14
|
+
# methods: [:get, :post, :put, :patch, :delete, :options, :head]
|
15
|
+
# end
|
16
|
+
# end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Add new inflection rules using the following format. Inflections
|
4
|
+
# are locale specific, and you may define rules for as many different
|
5
|
+
# locales as you wish. All of these examples are active by default:
|
6
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
7
|
+
# inflect.plural /^(ox)$/i, '\1en'
|
8
|
+
# inflect.singular /^(ox)en/i, '\1'
|
9
|
+
# inflect.irregular 'person', 'people'
|
10
|
+
# inflect.uncountable %w( fish sheep )
|
11
|
+
# end
|
12
|
+
|
13
|
+
# These inflection rules are supported but not enabled by default:
|
14
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
15
|
+
# inflect.acronym 'RESTful'
|
16
|
+
# end
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# This file contains settings for ActionController::ParamsWrapper which
|
4
|
+
# is enabled by default.
|
5
|
+
|
6
|
+
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
wrap_parameters format: [:json]
|
9
|
+
end
|
10
|
+
|
11
|
+
# To enable root element in JSON for ActiveRecord objects.
|
12
|
+
# ActiveSupport.on_load(:active_record) do
|
13
|
+
# self.include_root_in_json = true
|
14
|
+
# end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t 'hello'
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t('hello') %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# The following keys must be escaped otherwise they will not be retrieved by
|
20
|
+
# the default I18n backend:
|
21
|
+
#
|
22
|
+
# true, false, on, off, yes, no
|
23
|
+
#
|
24
|
+
# Instead, surround them with single quotes.
|
25
|
+
#
|
26
|
+
# en:
|
27
|
+
# 'true': 'foo'
|
28
|
+
#
|
29
|
+
# To learn more, please read the Rails Internationalization guide
|
30
|
+
# available at https://guides.rubyonrails.org/i18n.html.
|
31
|
+
|
32
|
+
en:
|
33
|
+
hello: "Hello world"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# app/models/concerns/taggable.rb
|
2
|
+
module Taggable
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
serialize :tags, JSON
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_haystack_marker(marker)
|
10
|
+
self.tags ||= {}
|
11
|
+
self.tags[marker] = true
|
12
|
+
save!
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_haystack_tag(key, value)
|
16
|
+
self.tags ||= {}
|
17
|
+
self.tags[key] = value
|
18
|
+
save!
|
19
|
+
end
|
20
|
+
|
21
|
+
def add_multiple_tags(tags_hash)
|
22
|
+
self.tags ||= {}
|
23
|
+
self.tags.merge!(tags_hash)
|
24
|
+
save!
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module NeedleInAHaystack
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
isolate_namespace NeedleInAHaystack
|
4
|
+
end
|
5
|
+
|
6
|
+
raise "Gem 'needle_in_a_haystack' is not loaded" unless Gem.loaded_specs["needle_in_a_haystack"]
|
7
|
+
|
8
|
+
Gem.loaded_specs["needle_in_a_haystack"].dependencies.each do |d|
|
9
|
+
require d.name
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module NeedleInAHaystack
|
2
|
+
class HaystackOntology < ApplicationRecord
|
3
|
+
def self.tags
|
4
|
+
@tags ||= YAML.load_file(Rails.root.join("config/haystack_ontology.yml"))
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.find_tag(path)
|
8
|
+
return nil if path.nil?
|
9
|
+
|
10
|
+
path.include?(".") ? find_tag_in_hierarchy(tags, path.split(".").last) : find_tag_in_hierarchy(tags, path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.find_tag_in_hierarchy(current_hash, target_key, path = [])
|
14
|
+
return nil unless current_hash.is_a?(Hash)
|
15
|
+
|
16
|
+
result = current_hash[target_key]
|
17
|
+
return result.is_a?(Hash) ? result.merge("path" => path.push(target_key).join(".")) : result if result
|
18
|
+
|
19
|
+
children = current_hash["children"]
|
20
|
+
if children.is_a?(Hash)
|
21
|
+
children.each do |key, value|
|
22
|
+
new_path = path + [key]
|
23
|
+
return value.merge("path" => new_path.join(".")) if key == target_key
|
24
|
+
|
25
|
+
result = find_tag_in_hierarchy(value, target_key, new_path)
|
26
|
+
return result if result
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
current_hash.each do |key, value|
|
31
|
+
next if %w[description children].include?(key) || !value.is_a?(Hash)
|
32
|
+
|
33
|
+
new_path = path + [key]
|
34
|
+
result = find_tag_in_hierarchy(value, target_key, new_path)
|
35
|
+
return result if result
|
36
|
+
end
|
37
|
+
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.create_tags
|
42
|
+
create_tag_hierarchy(tags)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.create_tag_hierarchy(tag_hash, parent_tag = nil)
|
46
|
+
tag_hash.each do |name, data|
|
47
|
+
next if %w[description children].include?(name)
|
48
|
+
|
49
|
+
tag = HaystackTag.find_or_create_by(name: name.to_s)
|
50
|
+
tag.update(description: data["description"], parent_tag_id: parent_tag&.id, haystack_marker: data["marker"])
|
51
|
+
|
52
|
+
Rails.logger.info("Created tag: #{tag.name}, Parent: #{parent_tag&.name}")
|
53
|
+
|
54
|
+
create_tag_hierarchy(data["children"], tag) if data["children"]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.find_or_create_tag(name)
|
59
|
+
tag_data = find_tag(name)
|
60
|
+
return nil if tag_data.nil?
|
61
|
+
|
62
|
+
tag = HaystackTag.find_or_create_by(name: name)
|
63
|
+
tag.update(description: tag_data["description"], haystack_marker: tag_data["marker"])
|
64
|
+
Rails.logger.info("Tag aangemaakt of gevonden: #{tag.name}")
|
65
|
+
tag
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module NeedleInAHaystack
|
2
|
+
class HaystackTag < ApplicationRecord
|
3
|
+
self.table_name = "haystack_tags"
|
4
|
+
|
5
|
+
belongs_to :parent_tag, class_name: "NeedleInAHaystack::HaystackTag", optional: true
|
6
|
+
has_many :children, class_name: "NeedleInAHaystack::HaystackTag", foreign_key: "parent_tag_id", dependent: :destroy, inverse_of: :parent_tag
|
7
|
+
has_many :haystack_taggings, dependent: :destroy
|
8
|
+
has_many :taggables, through: :haystack_taggings
|
9
|
+
|
10
|
+
if NeedleInAHaystack.respond_to?(:configuration) && NeedleInAHaystack.configuration.taggable_models
|
11
|
+
NeedleInAHaystack.configuration.taggable_models.each do |model|
|
12
|
+
has_many "taggable_#{model.name.underscore.pluralize}".to_sym, through: :haystack_taggings, source: :taggable, source_type: model.name
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
validates :name, presence: true, uniqueness: true
|
17
|
+
validates :description, presence: true
|
18
|
+
validate :prevent_circular_reference
|
19
|
+
|
20
|
+
def ancestors
|
21
|
+
ancestors = []
|
22
|
+
current = self
|
23
|
+
while current.parent_tag
|
24
|
+
ancestors << current.parent_tag
|
25
|
+
current = current.parent_tag
|
26
|
+
end
|
27
|
+
ancestors
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.find_by_path(path)
|
31
|
+
keys = path.split(".")
|
32
|
+
current = nil
|
33
|
+
keys.each do |key|
|
34
|
+
current = current ? current.child_tags.find_by(name: key) : find_by(name: key)
|
35
|
+
return nil unless current
|
36
|
+
end
|
37
|
+
current
|
38
|
+
end
|
39
|
+
|
40
|
+
def descendants
|
41
|
+
children = child_tags
|
42
|
+
children + children.flat_map(&:descendants)
|
43
|
+
end
|
44
|
+
|
45
|
+
def siblings
|
46
|
+
parent_tag ? parent_tag.child_tags.where.not(id: id) : self.class.where(parent_tag_id: nil).where.not(id: id)
|
47
|
+
end
|
48
|
+
|
49
|
+
def root?
|
50
|
+
parent_tag.nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
def leaf?
|
54
|
+
child_tags.empty?
|
55
|
+
end
|
56
|
+
|
57
|
+
def depth
|
58
|
+
ancestors.size
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def prevent_circular_reference
|
64
|
+
return unless parent_tag == self || ancestors.include?(self)
|
65
|
+
|
66
|
+
errors.add(:parent_tag, "kan geen circulaire referentie bevatten")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "needle_in_a_haystack/version"
|
2
|
+
require "needle_in_a_haystack/engine"
|
3
|
+
require "needle_in_a_haystack/application_record"
|
4
|
+
require "needle_in_a_haystack/configuration"
|
5
|
+
require "needle_in_a_haystack/haystack_tag"
|
6
|
+
require "needle_in_a_haystack/haystack_tagging"
|
7
|
+
|
8
|
+
module NeedleInAHaystack
|
9
|
+
class << self
|
10
|
+
attr_accessor :configuration
|
11
|
+
|
12
|
+
def configure
|
13
|
+
self.configuration ||= Configuration.new
|
14
|
+
yield(configuration)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :haystack_tag, class: "NeedleInAHaystack::HaystackTag" do
|
3
|
+
sequence(:name) { |n| "Tag #{n}" }
|
4
|
+
sequence(:description) { |n| "Description #{n}" }
|
5
|
+
|
6
|
+
trait :root do
|
7
|
+
name { "root" }
|
8
|
+
description { "Root tag" }
|
9
|
+
parent_tag { nil }
|
10
|
+
end
|
11
|
+
|
12
|
+
trait :child do
|
13
|
+
association :parent_tag, factory: :haystack_tag
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,319 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: needle_in_a_haystack
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Frans Verberne
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-11-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bcrypt_pbkdf
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: capistrano
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: capistrano-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: connection_pool
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: dotenv-rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ed25519
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: factory_bot_rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: hiredis
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: kodachroma
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mysql2
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rails
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '7.1'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '7.1'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: redis
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '5.0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '5.0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: redis-objects
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 2.0.0.beta
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 2.0.0.beta
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rspec-rails
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: sentry-rails
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: sentry-ruby
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: sentry-sidekiq
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: sidekiq
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "<"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '8.0'
|
258
|
+
type: :runtime
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - "<"
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '8.0'
|
265
|
+
description: haystack ontology implementation for FourIQ projects.
|
266
|
+
email:
|
267
|
+
- frans.verberne@fouriq.nl
|
268
|
+
executables: []
|
269
|
+
extensions: []
|
270
|
+
extra_rdoc_files: []
|
271
|
+
files:
|
272
|
+
- Rakefile
|
273
|
+
- config/initializers/application_controller_renderer.rb
|
274
|
+
- config/initializers/backtrace_silencers.rb
|
275
|
+
- config/initializers/config.rb
|
276
|
+
- config/initializers/cors.rb
|
277
|
+
- config/initializers/filter_parameter_logging.rb
|
278
|
+
- config/initializers/inflections.rb
|
279
|
+
- config/initializers/lograge.rb
|
280
|
+
- config/initializers/mime_types.rb
|
281
|
+
- config/initializers/redis.rb
|
282
|
+
- config/initializers/wrap_parameters.rb
|
283
|
+
- config/locales/en.yml
|
284
|
+
- lib/concerns/taggable.rb
|
285
|
+
- lib/needle_in_a_haystack.rb
|
286
|
+
- lib/needle_in_a_haystack/application_record.rb
|
287
|
+
- lib/needle_in_a_haystack/configuration.rb
|
288
|
+
- lib/needle_in_a_haystack/engine.rb
|
289
|
+
- lib/needle_in_a_haystack/haystack_ontology.rb
|
290
|
+
- lib/needle_in_a_haystack/haystack_tag.rb
|
291
|
+
- lib/needle_in_a_haystack/haystack_tagging.rb
|
292
|
+
- lib/needle_in_a_haystack/version.rb
|
293
|
+
- lib/tasks/location_create.rake
|
294
|
+
- spec/factories/haystack_tags.rb
|
295
|
+
homepage: https://www.fouriq.nl
|
296
|
+
licenses:
|
297
|
+
- Nonstandard
|
298
|
+
metadata:
|
299
|
+
homepage_uri: https://www.fouriq.nl
|
300
|
+
post_install_message:
|
301
|
+
rdoc_options: []
|
302
|
+
require_paths:
|
303
|
+
- lib
|
304
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
305
|
+
requirements:
|
306
|
+
- - ">="
|
307
|
+
- !ruby/object:Gem::Version
|
308
|
+
version: 3.3.0
|
309
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
requirements: []
|
315
|
+
rubygems_version: 3.5.22
|
316
|
+
signing_key:
|
317
|
+
specification_version: 4
|
318
|
+
summary: Models and dependencies shared across our projects.
|
319
|
+
test_files: []
|