needle_in_a_haystack 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|