itg 0.1.4 → 0.1.6

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: 1747d615f401a69abe69ff1e43b40669b2b95ea3234b94ed60320a81330b9dfd
4
- data.tar.gz: 70cf7ac74b3e3f8255dde5d6b041b96897a611ece910f2cf9f45829257929f95
3
+ metadata.gz: afb1a619f9859827f857cc4558a198ae8d753e3f86df4bb0c308df46abecd107
4
+ data.tar.gz: 5969d0683fc63c024cc789f5e3a8fcf39cdb1238ad8b416cb1f1c5222f2839b0
5
5
  SHA512:
6
- metadata.gz: 48686da10f286b532bc92fb86cbed0370ec88341af727c33c532b1d2abb46c3df4498965ac62b732c4855f72a39784efd235a3e8c25c687de1f93be990fab5d6
7
- data.tar.gz: f146427ec24c30c9b45d2788656be245e3ffb856a933fb9095d722a53cc39a3890f31c91e08c43a136f2b1dfaf5de572b0bbaa03e1dc4efbe95e8d9b3b2e0e07
6
+ metadata.gz: 636803d0bbf4672919fc52e95c0cac4c6d4390af1463e304bfe96889b1d6d2ac39516d71ed3492833d83e25c4aabba0412c5a21cb04f77cfdda9f480064e2e40
7
+ data.tar.gz: 1ba56414129bef246771f1b7d401a6a26563af8d6de49e456ba27220f936781ff2b718c0f86412d959295bc82bdc6763da873c6b7fb269aa4ea9aff386e5d9e9
@@ -0,0 +1 @@
1
+ Mongoid.load!("mongoid.yml")
@@ -0,0 +1,110 @@
1
+ <% unless Rails.env.production? %>
2
+ <% raise "[mongoid] Credentials missing! (mongodb, env: #{Rails.env})" if Rails.application.credentials.mongodb.nil? %>
3
+ <% raise "[mongoid] Credentials missing! (mongodb.md, env: #{Rails.env})" if Rails.application.credentials.mongodb.md.nil? %>
4
+ <% raise "[mongoid] Credentials missing! (mongodb.dd, env: #{Rails.env})" if Rails.application.credentials.mongodb.dd.nil? %>
5
+ <% raise "[mongoid] Credentials missing! (mongodb.itg, env: #{Rails.env})" if Rails.application.credentials.mongodb.itg.nil? %>
6
+ <% raise "[mongoid] Credentials missing! (mongodb.test, env: #{Rails.env})" if Rails.application.credentials.mongodb.test.nil? %>
7
+ <% raise "[mongoid] Credentials missing! (mongodb.staging, env: #{Rails.env})" if Rails.application.credentials.mongodb.staging.nil? %>
8
+ <% end %>
9
+ <%# unless Rails.env.production? %>
10
+ # <%# raise "[mongoid] Credentials missing! (mongodb, env: #{Rails.env})" if Rails.application.credentials.mongodb.nil? %>
11
+ # <%# raise "[mongoid] Credentials missing! (mongodb.dd, env: #{Rails.env})" if Rails.application.credentials.mongodb.dd.nil? %>
12
+ # <%# raise "[mongoid] Credentials missing! (mongodb.md, env: #{Rails.env})" if Rails.application.credentials.mongodb.md.nil? %>
13
+ <%# end %>
14
+ development:
15
+ clients:
16
+ default:
17
+ # local server
18
+ database: itg_backend_dev
19
+ hosts:
20
+ - localhost:27017
21
+ options:
22
+ server_selection_timeout: 1
23
+ # MongoDb Atlas server
24
+ # uri: mongodb+srv://<%#= Rails.application.credentials.mongodb.main.user %>:<%#= Rails.application.credentials.mongodb.main.psw %>@<%#= Rails.application.credentials.mongodb.main.cluster %>.mongodb.net/itg_backend?retryWrites=true&w=majority
25
+ # options:
26
+ # server_selection_timeout: 5
27
+ udd:
28
+ # local server
29
+ database: itg_backend_dev
30
+ hosts:
31
+ - localhost:27017
32
+ options:
33
+ server_selection_timeout: 1
34
+ # MongoDb Atlas server
35
+ # uri: mongodb+srv://<%#= Rails.application.credentials.mongodb.dd.user %>:<%#= Rails.application.credentials.mongodb.dd.psw %>@<%#= Rails.application.credentials.mongodb.dd.cluster %>.mongodb.net/udd-main?retryWrites=true&w=majority
36
+ # options:
37
+ # server_selection_timeout: 5
38
+
39
+ itgmain:
40
+ database: itg_main_dev
41
+ hosts:
42
+ - localhost:27017
43
+ options:
44
+ read:
45
+ mode: :primary
46
+ max_pool_size: 1
47
+
48
+ options:
49
+ raise_not_found_error: false
50
+
51
+ test:
52
+ clients:
53
+ default:
54
+ database: itg_backend_test
55
+ hosts:
56
+ - localhost:27017
57
+ options:
58
+ read:
59
+ mode: :primary
60
+ max_pool_size: 1
61
+ udd:
62
+ # local server
63
+ database: itg_backend_dev
64
+ hosts:
65
+ - localhost:27017
66
+ options:
67
+ server_selection_timeout: 1
68
+ # MongoDb Atlas server
69
+ # uri: mongodb+srv://<%#= Rails.application.credentials.mongodb.dd.user %>:<%#= Rails.application.credentials.mongodb.dd.psw %>@<%#= Rails.application.credentials.mongodb.dd.cluster %>.mongodb.net/udd-main?retryWrites=true&w=majority
70
+ # options:
71
+ # server_selection_timeout: 5
72
+
73
+ itgmain:
74
+ database: itg_main_test
75
+ hosts:
76
+ - localhost:27017
77
+ options:
78
+ read:
79
+ mode: :primary
80
+ max_pool_size: 1
81
+
82
+ options:
83
+ raise_not_found_error: false
84
+
85
+ staging:
86
+ clients:
87
+ default:
88
+ # uri: mongodb+srv://<%#= Rails.application.credentials.mongodb.main.user %>:<%#= Rails.application.credentials.mongodb.main.psw %>@<%#= Rails.application.credentials.mongodb.main.cluster %>.mongodb.net/itg_backend?retryWrites=true&w=majority
89
+ uri: mongodb+srv://<%= Rails.application.credentials.mongodb.md.user %>:<%= Rails.application.credentials.mongodb.md.psw %>@<%= Rails.application.credentials.mongodb.md.cluster %>.mongodb.net/md?retryWrites=true&w=majority
90
+ options:
91
+ udd:
92
+ uri: mongodb+srv://<%= Rails.application.credentials.mongodb.dd.user %>:<%= Rails.application.credentials.mongodb.dd.psw %>@<%= Rails.application.credentials.mongodb.dd.cluster %>.mongodb.net/udd-main?retryWrites=true&w=majority
93
+ options:
94
+ options:
95
+ raise_not_found_error: false
96
+
97
+ production:
98
+ clients:
99
+ default:
100
+ # uri: mongodb+srv://<%#= Rails.application.credentials.mongodb.main.user %>:<%#= Rails.application.credentials.mongodb.main.psw %>@<%#= Rails.application.credentials.mongodb.main.cluster %>.mongodb.net/itg_backend?retryWrites=true&w=majority
101
+ uri: mongodb+srv://<%= Rails.application.credentials.mongodb.md.user %>:<%= Rails.application.credentials.mongodb.md.psw %>@<%= Rails.application.credentials.mongodb.md.cluster %>.mongodb.net/md?retryWrites=true&w=majority
102
+ options:
103
+ udd:
104
+ uri: mongodb+srv://<%= Rails.application.credentials.mongodb.dd.user %>:<%= Rails.application.credentials.mongodb.dd.psw %>@<%= Rails.application.credentials.mongodb.dd.cluster %>.mongodb.net/udd-main?retryWrites=true&w=majority
105
+ options:
106
+ itgmain:
107
+ uri: mongodb+srv://<%= Rails.application.credentials.mongodb.itg.user %>:<%= Rails.application.credentials.mongodb.itg.psw %>@<%= Rails.application.credentials.mongodb.itg.cluster %>.mongodb.net/itg-main?retryWrites=true&w=majority
108
+ options:
109
+ options:
110
+ raise_not_found_error: false
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Itg
4
+ # Api Key Authenticatable class
5
+ module ApiKeyAuthenticatable
6
+ include ActionController::HttpAuthentication::Basic::ControllerMethods
7
+ include ActionController::HttpAuthentication::Token::ControllerMethods
8
+
9
+ extend ActiveSupport::Concern
10
+
11
+ attr_reader :current_api_key
12
+ attr_reader :current_bearer
13
+
14
+ # Use this to raise an error and automatically respond with a 401 HTTP status
15
+ # code when API key authentication fails
16
+ def authenticate_with_api_key!
17
+ @current_bearer = authenticate_or_request_with_http_token(&method(:authenticator))
18
+ end
19
+
20
+ # Use this for optional API key authentication
21
+ def authenticate_with_api_key
22
+ @current_bearer = authenticate_with_http_token(&method(:authenticator))
23
+ end
24
+
25
+ private
26
+
27
+ attr_writer :current_api_key
28
+ attr_writer :current_bearer
29
+
30
+ def authenticator(token, options)
31
+ @current_api_key = ApiKey.authenticate_by_token token
32
+
33
+ current_api_key&.bearer
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ItgApiKeyBase module
4
+ module Itg
5
+ module ApiKeyBase
6
+ extend ActiveSupport::Concern
7
+
8
+ # include Itg::MongoBase
9
+ # include Itg::Sec
10
+ # include Mongoid::Fields
11
+ #
12
+ # field :bearer_id, type: Integer
13
+ # field :bearer_type, type: String
14
+ # field :token_digest, type: String
15
+ #
16
+ # index({ bearer_id: 1, bearer_type: 1}, { name: "bearer_id_type_index" })
17
+ # index({ token_digest: 1 }, { unique: true, name: "token_digest_index" })
18
+
19
+ included do
20
+ include Itg::MongoBase
21
+ include Itg::Sec
22
+
23
+ # field :bearer_id, type: Integer
24
+ # field :bearer_type, type: String
25
+ # field :token_digest, type: String
26
+ #
27
+ # index({ bearer_id: 1, bearer_type: 1}, { name: "bearer_id_type_index" })
28
+ # index({ token_digest: 1 }, { unique: true, name: "token_digest_index" })
29
+
30
+ # Virtual attribute for raw token value, allowing us to respond with the
31
+ # API key's non-hashed token value. but only directly after creation.
32
+ # attr_accessor :token
33
+ #
34
+ # belongs_to :bearer, polymorphic: true
35
+
36
+ # Add virtual token attribute to serializable attributes, and exclude
37
+ # the token's HMAC digest
38
+ def serializable_hash(options = nil)
39
+ h = super options.merge(except: 'token_digest')
40
+ h.merge! 'token' => token if token.present?
41
+ h
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ module Itg
2
+ module ModelBase
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ # field :language_code, type: String, default: 'el'
7
+ #
8
+ # scope :published, -> { where(published: true)}
9
+ # # scope :in_context, -> (context) { where(context: context)}
10
+ # scope :in_context, -> (context) { where(context: /#{context}/)}
11
+ # scope :for_locale, -> { where(language_code: '*').or(language_code: I18n.locale) }
12
+ # scope :by_dt_desc, -> { order(updated_at: :desc)}
13
+ # scope :by_importance, -> { order(importance: :desc)}
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,109 @@
1
+ module Itg
2
+ module MongoBase
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ include Mongoid::Document
7
+ include Mongoid::Timestamps
8
+ include Mongoid::Fields
9
+ include Itg::Printable
10
+
11
+ # def self.udd_item
12
+ # # puts '[Mongo::Base.udd_item] start...'
13
+ # unless @udd_item_data
14
+ # udd_item_name = "model_#{model_name.to_s.underscore}"
15
+ # @udd_item_data = Udd.get_item(udd_item_name)
16
+ # if @udd_item_data
17
+ # @flds = @udd_item_data[:items].map { |k, v| k unless v[:is_field] == false}.compact
18
+ # @flds_required = @udd_item_data[:items].map { |k, v| k if v[:required] == true }.compact
19
+ # @sample_pairs = @udd_item_data[:items].map { |k, v| [k, v[:sample_value]] if v[:sample_value] }.compact.to_h
20
+ # @flds_string = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'string' && v[:is_field] != false }.compact
21
+ # @flds_boolean = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'boolean' && v[:is_field] != false }.compact
22
+ # @flds_number = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'number' && v[:is_field] != false }.compact
23
+ # @flds_date = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'date' && v[:is_field] != false }.compact
24
+ # @flds_datetime = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'datetime' && v[:is_field] != false }.compact
25
+ # end
26
+ # end
27
+ # @udd_item_data
28
+ # end
29
+ #
30
+ # def self.udd_add_to_model_class(item_arr)
31
+ # field_name = item_arr.first
32
+ # item = item_arr.last
33
+ # return if item[:kind] == 'reference'
34
+ # # TODO: How can I have access to label and shot it in the form?
35
+ # # field field_name.to_sym, type: item[:kind].classify.constantize, default: item[:default], label: item[:label]
36
+ #
37
+ # # TODO: why the Boolean is not recognised? I have included Mongoid::Fields....
38
+ # field_type = item[:kind] == 'boolean' ? Mongoid::Boolean : item[:kind].classify.constantize
39
+ # field field_name.to_sym, type: field_type, default: item[:default]
40
+ # # field field_name.to_sym, type: Boolean, default: item[:default]
41
+ # if item[:required] == true
42
+ # if item[:validates_presence_msg]
43
+ # validates_presence_of field_name.to_sym, message: I18n.t(item[:validates_presence_msg])
44
+ # else
45
+ # validates_presence_of field_name.to_sym
46
+ # end
47
+ # end
48
+ # validates_uniqueness_of field_name.to_sym if item[:unique] == true
49
+ # end
50
+ #
51
+ # def self.add_fields_to_model
52
+ # udd_item[:items].each(&method(:udd_add_to_model_class))
53
+ # end
54
+ #
55
+ # # cattr_reader :flds, :flds_required, :flds_string, :flds_boolean, :flds_number, :flds_date, :flds_datetime
56
+ # def self.flds
57
+ # udd_item
58
+ # @flds
59
+ # end
60
+ #
61
+ # def self.flds_required
62
+ # udd_item
63
+ # @flds_required
64
+ # end
65
+ #
66
+ # def self.sample_pairs
67
+ # udd_item
68
+ # @sample_pairs
69
+ # end
70
+ #
71
+ # def self.flds_string
72
+ # udd_item
73
+ # @flds_string
74
+ # end
75
+ #
76
+ # def self.flds_boolean
77
+ # udd_item
78
+ # @flds_boolean
79
+ # end
80
+ #
81
+ # def self.flds_number
82
+ # udd_item
83
+ # @flds_number
84
+ # end
85
+ #
86
+ # def self.flds_date
87
+ # udd_item
88
+ # @flds_date
89
+ # end
90
+ #
91
+ # def self.flds_datetime
92
+ # udd_item
93
+ # @flds_datetime
94
+ # end
95
+ #
96
+ # def to_s
97
+ # if (to_string_value = self.class.udd_item[:attrs][:to_string])
98
+ # if self.respond_to?(to_string_value)
99
+ # self.send(to_string_value)
100
+ # else
101
+ # raise "[Mongo::Base.to_s] there is no '#{to_string_value}' in '#{model_name}'"
102
+ # end
103
+ # else
104
+ # super
105
+ # end
106
+ # end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Printable concern class
4
+ module Itg
5
+ module Printable
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ def itg_print(header: nil, prefix: '', allow_nested: true)
10
+ puts header if header
11
+ puts "#{prefix}print item....."
12
+ end
13
+ end
14
+
15
+ class_methods do
16
+ def itg_print_collection(items: nil, prefix: '', header: nil, nested: true)
17
+ items ||= all
18
+ header ||= name.pluralize
19
+ return unless items.count.positive?
20
+
21
+ puts "#{prefix}#{header} (#{items.count})"
22
+ items.each { |item| item.itg_print(prefix: prefix.gsub('-', ' '), allow_nested: nested) }
23
+
24
+ puts '' if nested && prefix.empty?
25
+ end
26
+
27
+ def itg_print_db_info
28
+ puts "Database info: #{[collection_name, database_name, client_name].inspect}"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,7 @@
1
+ module Itg
2
+ module Response
3
+ def json_response(object, status = :ok)
4
+ render json: object, status: status
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Itg
4
+ # ItgSec concern class
5
+ module Sec
6
+ extend ActiveSupport::Concern
7
+
8
+ DB_NAME = begin
9
+ if Rails.env.production?
10
+ "itgsec"
11
+ else
12
+ "itgsecdev"
13
+ end
14
+ rescue StandardError
15
+ # Used only because the gem does not have the Rails initialized!
16
+ "itgsecdev"
17
+ end
18
+ CLIENT_NAME = "itgmain"
19
+
20
+ included do
21
+ begin
22
+ puts ">>>>>> itg_sec - include it....."
23
+ unless Rails.env.test?
24
+ store_in database: DB_NAME, client: CLIENT_NAME
25
+ puts "[itg_sec] set db details: #{DB_NAME}, #{CLIENT_NAME}"
26
+ end
27
+ self.itg_print_db_info
28
+ rescue NameError => e
29
+ # Ignored - Used only because the gem does not have the Rails initialized!
30
+ raise if e.message != "uninitialized constant Itg::Sec::Rails"
31
+ end
32
+ end
33
+
34
+ class_methods do
35
+ end
36
+ end
37
+ end
data/lib/itg/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Itg
4
- VERSION = "0.1.4"
5
- DATE = "15/2/2024"
4
+ VERSION = "0.1.6"
5
+ DATE = "17/2/2024"
6
6
 
7
7
  def self.version_info
8
8
  "Itg gem v.#{VERSION} #{DATE}"
data/lib/itg.rb CHANGED
@@ -1,9 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "itg/version"
4
- require_relative "itg/model_base"
5
- require_relative "itg/mongo_base"
6
- require_relative "itg/printable"
4
+ require_relative "itg/itg_model_base"
5
+ require_relative "itg/itg_mongo_base"
6
+ require_relative "itg/itg_printable"
7
+ # require_relative "itg/itg_sec"
8
+ require_relative "itg/itg_api_key_base"
9
+ require_relative "itg/itg_api_key_authenticatable"
10
+ require_relative "itg/itg_response"
11
+ require_relative "itg/itg_sec"
7
12
 
8
13
  module Itg
9
14
  class Error < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - aAon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-15 00:00:00.000000000 Z
11
+ date: 2024-02-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -25,11 +25,17 @@ files:
25
25
  - LICENSE.txt
26
26
  - README.md
27
27
  - Rakefile
28
+ - config/intializers/mongoid.rb
29
+ - config/mongoid.yml
28
30
  - itg.gemspec
29
31
  - lib/itg.rb
30
- - lib/itg/model_base.rb
31
- - lib/itg/mongo_base.rb
32
- - lib/itg/printable.rb
32
+ - lib/itg/itg_api_key_authenticatable.rb
33
+ - lib/itg/itg_api_key_base.rb
34
+ - lib/itg/itg_model_base.rb
35
+ - lib/itg/itg_mongo_base.rb
36
+ - lib/itg/itg_printable.rb
37
+ - lib/itg/itg_response.rb
38
+ - lib/itg/itg_sec.rb
33
39
  - lib/itg/version.rb
34
40
  - sig/itg.rbs
35
41
  homepage: https://aaon.aggate.gr
@@ -1,14 +0,0 @@
1
- module ModelBase
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- # field :language_code, type: String, default: 'el'
6
- #
7
- # scope :published, -> { where(published: true)}
8
- # # scope :in_context, -> (context) { where(context: context)}
9
- # scope :in_context, -> (context) { where(context: /#{context}/)}
10
- # scope :for_locale, -> { where(language_code: '*').or(language_code: I18n.locale) }
11
- # scope :by_dt_desc, -> { order(updated_at: :desc)}
12
- # scope :by_importance, -> { order(importance: :desc)}
13
- end
14
- end
@@ -1,107 +0,0 @@
1
- module MongoBase
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- include Mongoid::Document
6
- include Mongoid::Timestamps
7
- include Mongoid::Fields
8
- include Printable
9
-
10
- # def self.udd_item
11
- # # puts '[Mongo::Base.udd_item] start...'
12
- # unless @udd_item_data
13
- # udd_item_name = "model_#{model_name.to_s.underscore}"
14
- # @udd_item_data = Udd.get_item(udd_item_name)
15
- # if @udd_item_data
16
- # @flds = @udd_item_data[:items].map { |k, v| k unless v[:is_field] == false}.compact
17
- # @flds_required = @udd_item_data[:items].map { |k, v| k if v[:required] == true }.compact
18
- # @sample_pairs = @udd_item_data[:items].map { |k, v| [k, v[:sample_value]] if v[:sample_value] }.compact.to_h
19
- # @flds_string = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'string' && v[:is_field] != false }.compact
20
- # @flds_boolean = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'boolean' && v[:is_field] != false }.compact
21
- # @flds_number = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'number' && v[:is_field] != false }.compact
22
- # @flds_date = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'date' && v[:is_field] != false }.compact
23
- # @flds_datetime = @udd_item_data[:items].map { |k, v| k if v[:kind] == 'datetime' && v[:is_field] != false }.compact
24
- # end
25
- # end
26
- # @udd_item_data
27
- # end
28
- #
29
- # def self.udd_add_to_model_class(item_arr)
30
- # field_name = item_arr.first
31
- # item = item_arr.last
32
- # return if item[:kind] == 'reference'
33
- # # TODO: How can I have access to label and shot it in the form?
34
- # # field field_name.to_sym, type: item[:kind].classify.constantize, default: item[:default], label: item[:label]
35
- #
36
- # # TODO: why the Boolean is not recognised? I have included Mongoid::Fields....
37
- # field_type = item[:kind] == 'boolean' ? Mongoid::Boolean : item[:kind].classify.constantize
38
- # field field_name.to_sym, type: field_type, default: item[:default]
39
- # # field field_name.to_sym, type: Boolean, default: item[:default]
40
- # if item[:required] == true
41
- # if item[:validates_presence_msg]
42
- # validates_presence_of field_name.to_sym, message: I18n.t(item[:validates_presence_msg])
43
- # else
44
- # validates_presence_of field_name.to_sym
45
- # end
46
- # end
47
- # validates_uniqueness_of field_name.to_sym if item[:unique] == true
48
- # end
49
- #
50
- # def self.add_fields_to_model
51
- # udd_item[:items].each(&method(:udd_add_to_model_class))
52
- # end
53
- #
54
- # # cattr_reader :flds, :flds_required, :flds_string, :flds_boolean, :flds_number, :flds_date, :flds_datetime
55
- # def self.flds
56
- # udd_item
57
- # @flds
58
- # end
59
- #
60
- # def self.flds_required
61
- # udd_item
62
- # @flds_required
63
- # end
64
- #
65
- # def self.sample_pairs
66
- # udd_item
67
- # @sample_pairs
68
- # end
69
- #
70
- # def self.flds_string
71
- # udd_item
72
- # @flds_string
73
- # end
74
- #
75
- # def self.flds_boolean
76
- # udd_item
77
- # @flds_boolean
78
- # end
79
- #
80
- # def self.flds_number
81
- # udd_item
82
- # @flds_number
83
- # end
84
- #
85
- # def self.flds_date
86
- # udd_item
87
- # @flds_date
88
- # end
89
- #
90
- # def self.flds_datetime
91
- # udd_item
92
- # @flds_datetime
93
- # end
94
- #
95
- # def to_s
96
- # if (to_string_value = self.class.udd_item[:attrs][:to_string])
97
- # if self.respond_to?(to_string_value)
98
- # self.send(to_string_value)
99
- # else
100
- # raise "[Mongo::Base.to_s] there is no '#{to_string_value}' in '#{model_name}'"
101
- # end
102
- # else
103
- # super
104
- # end
105
- # end
106
- end
107
- end
data/lib/itg/printable.rb DELETED
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Printable concern class
4
- module Printable
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- def itg_print(header: nil, prefix: '', allow_nested: true)
9
- puts header if header
10
- puts "#{prefix}print item....."
11
- end
12
- end
13
-
14
- class_methods do
15
- def itg_print_collection(items: nil, prefix: '', header: nil, nested: true)
16
- items ||= all
17
- header ||= name.pluralize
18
- return unless items.count.positive?
19
-
20
- puts "#{prefix}#{header} (#{items.count})"
21
- items.each { |item| item.itg_print(prefix: prefix.gsub('-', ' '), allow_nested: nested) }
22
-
23
- puts '' if nested && prefix.empty?
24
- end
25
-
26
- def itg_print_db_info
27
- puts "Database info: #{[collection_name, database_name, client_name].inspect}"
28
- end
29
- end
30
- end