ssm_config 1.2.0 → 1.2.1

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: 89d121720c2b6cfaf01bc67c184f32be74f0eaa3ad217a667d760047680b6491
4
- data.tar.gz: bc4eda9aa3c1b28475e3aee34fa6b7453a3992d27fc46eab06e6ce8f69314849
3
+ metadata.gz: fc2240e68acd1bb76a701e1101dfb2a457e33fdbad0e444a134284746e9fd2fa
4
+ data.tar.gz: a993b5e09f224a107e44dc5a612bf49fcd6455e604d9a1613d6485f589a6271e
5
5
  SHA512:
6
- metadata.gz: 05afa978a2d8c57db17e1dbf66d9cf443096a2de2b6caed961d69dffafefd6fdda0434eba7d7046ec95346f9bfffd240f794359045e9890153c17994411815f6
7
- data.tar.gz: df7370fa1b13356b249f5726b0dd203c246323d41b39d73711f0284e3f6151269e30f0261c24eac1c5945f6122480a3ca6a968a2c5e538793a9f6ad4d3f4857e
6
+ metadata.gz: 1fe7b998ecc23dffdba9c74ecd7c8ac9b3d54f02e8a7efec6d8692e2ef9dbab56b904d320fce5b284c2fa2fb8f5a95a5be81d1fdab99367390bac22500b428d7
7
+ data.tar.gz: 952104e797a51ad680b80f0f4f5745f5f946583cbca450041d1fbfd58188c9d0bc9bc8f188795ebf068ac62b8549d7f34d621eb27a8a5191b399a139bd5c6e18
data/README.md CHANGED
@@ -87,7 +87,18 @@ This search will be exclusive: i.e., if any row exists in the table then the gem
87
87
 
88
88
  To migrate a YAML file in the `config` directory into `SsmConfigRecord`, the class `SsmConfig::MigrationHelper` can be used. `MigrationHelper` takes in the file name, and has `up` and `down` methods.
89
89
 
90
- The `up` method will migrate the file into the table: if any validations are violated, then all rows that were added in the current call will be deleted, returning the table to the initial state.
90
+ The `up` method will migrate the file into the table: if any validations are violated, then all rows that were added in the current call will be deleted, returning the table to the initial state. The following is a custom validation for datatype (which can be added in the corresponding model file):
91
+
92
+ ```ruby
93
+ class SsmConfigRecord < ApplicationRecord
94
+ validate :datatype_support
95
+
96
+ def datatype_support
97
+ errors.add(:datatype, "is not a valid datatype (#{datatype})") unless SsmConfig::SsmStorage::Db::VALID_DATATYPES.include? datatype.downcase[0]
98
+ end
99
+ end
100
+ ```
101
+
91
102
 
92
103
  The `down` method will remove _all_ rows in the table that match the file name. A sample migration is as follows:
93
104
 
@@ -3,6 +3,7 @@ module SsmConfig
3
3
  class Db
4
4
  TABLE_NAME = 'ssm_config_records'.freeze
5
5
  ACTIVE_RECORD_MODEL = 'SsmConfigRecord'.freeze
6
+ VALID_DATATYPES = ['s', 'i', 'b', 'f'].freeze
6
7
  def initialize(file_name)
7
8
  @file_name = file_name
8
9
  end
@@ -40,8 +41,7 @@ module SsmConfig
40
41
  end
41
42
 
42
43
  def transform_class(value, type)
43
- possible_types = ['s', 'i', 'b', 'f']
44
- raise SsmConfig::UnsupportedDatatype, 'Not a valid class: must be one of string, integer, boolean, or float' unless possible_types.include? type.to_s.downcase[0]
44
+ raise SsmConfig::UnsupportedDatatype, 'Not a valid class: must be one of string, integer, boolean, or float' unless VALID_DATATYPES.include? type.to_s.downcase[0]
45
45
  return value.send("to_#{type.to_s.downcase[0]}") unless type[0] == 'b'
46
46
  convert_boolean(value)
47
47
  end
data/lib/ssm_config.rb CHANGED
@@ -1,13 +1,13 @@
1
- require './lib/ssm_config/ssm_storage/db.rb'
2
- require './lib/ssm_config/ssm_storage/yml.rb'
3
- require './lib/ssm_config/ssm_storage/empty.rb'
4
- require './lib/ssm_config/errors.rb'
5
- require './lib/ssm_config/migration_helper.rb'
1
+ require 'ssm_config/ssm_storage/db.rb'
2
+ require 'ssm_config/ssm_storage/yml.rb'
3
+ require 'ssm_config/ssm_storage/empty.rb'
4
+ require 'ssm_config/errors.rb'
5
+ require 'ssm_config/migration_helper.rb'
6
6
  require 'active_support/core_ext/hash/indifferent_access'
7
7
  require 'active_support/time'
8
8
 
9
9
  module SsmConfig
10
- VERSION = '1.2.0'.freeze
10
+ VERSION = '1.2.1'.freeze
11
11
  REFRESH_TIME = (30.minutes).freeze
12
12
 
13
13
  class << self
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssm_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Santiago Herrera
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-17 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler