rich_enums 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f6b109c5069cabe1da55839403d6f9efee399e46b5939be951a9604156911d2
4
- data.tar.gz: 97582e336b09b8d5d2376bf73bc1b65522b9cd93f60daf17642bba5d9f02196a
3
+ metadata.gz: 15ff8f1970f8dfcea0ea54020b43e39e9a2107978e1cc432e38797698e8b5262
4
+ data.tar.gz: d1f1cfd235a02224c8b92d9847daf799512ea9c34d5cf847e128d6a9473b8322
5
5
  SHA512:
6
- metadata.gz: a1d592ab62bf202968448bcc4833a5b4abddd1b42a919834fcc730216a130fac8294bf997fe772422b1e36e0d9730c95abec7d008fd30f3a763c66356f7e3978
7
- data.tar.gz: '049113830f6ab99a5870e7f41125f8544bdcca86cbf6947643059d1e265b957aa27de48d46bd49a8db9cee91d0040cd3777fb71e837dc082cca2ac199481e911'
6
+ metadata.gz: 61f4cd02dab095f81082e66daafb43709edb159a7dbbd906362e5d31458fef82064855b8ebe1e32eed8143818b0cf96974aa571012d53e9fac80539b3b6653e8
7
+ data.tar.gz: 50305e6f7e0377be49cb7289dd52aaf0c00263bf5d45f472a8d4e86b9f67789613740c2359d411ae6d6f51932530fd6049bd408a2082353af9b1e18311ca6372
@@ -0,0 +1,54 @@
1
+ env:
2
+ RUBY_VERSION: 3.2.2
3
+
4
+ name: RichEnums CI
5
+ on:
6
+ pull_request:
7
+ paths-ignore:
8
+ - .gitignore
9
+ - CHANGELOG.md
10
+ - CONTRIBUTING.md
11
+ - README.md
12
+ push:
13
+ paths-ignore:
14
+ - .gitignore
15
+ - CHANGELOG.md
16
+ - CONTRIBUTING.md
17
+ - README.md
18
+
19
+ jobs:
20
+ rspec-test:
21
+ name: Run tests (ruby ${{ matrix.ruby }}, rails ${{ matrix.rails }})
22
+ runs-on: ubuntu-22.04
23
+ strategy:
24
+ matrix:
25
+ include:
26
+ - ruby: '3.2'
27
+ rails: '7.1'
28
+ - ruby: '3.2'
29
+ rails: '7.0'
30
+ - ruby: '3.2'
31
+ rails: '6.1'
32
+ - ruby: '3.1'
33
+ rails: '6.1'
34
+ env:
35
+ BUNDLE_GEMFILE: gemfiles/activerecord_${{ matrix.rails }}.gemfile
36
+ steps:
37
+ - name: Checkout
38
+ uses: actions/checkout@v4
39
+ - name: Install Ruby
40
+ uses: ruby/setup-ruby@v1
41
+ with:
42
+ ruby-version: ${{ matrix.ruby }}
43
+ - name: Gem cache
44
+ uses: actions/cache@v4
45
+ with:
46
+ path: vendor/bundle
47
+ key: ${{ runner.os }}-gem-use-ruby-${{ hashFiles('**/Gemfile.lock') }}
48
+ - name: Install dependencies
49
+ run: |
50
+ gem install bundler --version 2.3.25 --no-document
51
+ bundle config path vendor/bundle
52
+ bundle install --jobs 4 --retry 3
53
+ - name: Run tests
54
+ run: bundle exec rake spec
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.1
data/Gemfile.lock CHANGED
@@ -1,12 +1,29 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rich_enums (0.1.3)
4
+ rich_enums (0.1.4)
5
+ activerecord (>= 6.1, < 8.0)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
10
+ activemodel (6.1.7.7)
11
+ activesupport (= 6.1.7.7)
12
+ activerecord (6.1.7.7)
13
+ activemodel (= 6.1.7.7)
14
+ activesupport (= 6.1.7.7)
15
+ activesupport (6.1.7.7)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ zeitwerk (~> 2.3)
21
+ concurrent-ruby (1.2.3)
9
22
  diff-lcs (1.5.0)
23
+ i18n (1.14.4)
24
+ concurrent-ruby (~> 1.0)
25
+ mini_portile2 (2.8.6)
26
+ minitest (5.22.3)
10
27
  rake (12.3.3)
11
28
  rspec (3.11.0)
12
29
  rspec-core (~> 3.11.0)
@@ -21,6 +38,14 @@ GEM
21
38
  diff-lcs (>= 1.2.0, < 2.0)
22
39
  rspec-support (~> 3.11.0)
23
40
  rspec-support (3.11.0)
41
+ sqlite3 (1.7.3)
42
+ mini_portile2 (~> 2.8.0)
43
+ temping (4.1.1)
44
+ activerecord (>= 6.0, < 7.2)
45
+ activesupport (>= 6.0, < 7.2)
46
+ tzinfo (2.0.6)
47
+ concurrent-ruby (~> 1.0)
48
+ zeitwerk (2.6.13)
24
49
 
25
50
  PLATFORMS
26
51
  ruby
@@ -29,6 +54,8 @@ DEPENDENCIES
29
54
  rake (~> 12.0)
30
55
  rich_enums!
31
56
  rspec (~> 3.0)
57
+ sqlite3 (~> 1.4)
58
+ temping (~> 4.1)
32
59
 
33
60
  BUNDLED WITH
34
61
  2.4.15
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activerecord", "~> 6.1"
4
+ gem "rake", "~> 12.0"
5
+ gem "rspec", "~> 3.0"
6
+
7
+ # Specify your gem's dependencies in rich_enums.gemspec
8
+ gemspec path: "../"
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activerecord", "~> 7.0"
4
+ gem "rake", "~> 12.0"
5
+ gem "rspec", "~> 3.0"
6
+
7
+ # Specify your gem's dependencies in rich_enums.gemspec
8
+ gemspec path: "../"
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activerecord", "~> 7.1"
4
+ gem "rake", "~> 12.0"
5
+ gem "rspec", "~> 3.0"
6
+
7
+ # Specify your gem's dependencies in rich_enums.gemspec
8
+ gemspec path: "../"
@@ -1,3 +1,3 @@
1
1
  module RichEnums
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
data/lib/rich_enums.rb CHANGED
@@ -38,22 +38,30 @@ module RichEnums
38
38
  # e.learner_payment_path_name --> "P.O. / Check" -> our custom method that returns the string/description
39
39
  # TODO: explore if enum options in Array format instead of Hash format will need to be handled
40
40
 
41
- raise 'rich_enum error' unless column_symbol_value_string_options.keys.count.positive?
41
+ unless column_symbol_value_string_options.is_a? Hash
42
+ raise RichEnums::Error
43
+ end
44
+ if column_symbol_value_string_options.keys.count.zero?
45
+ raise RichEnums::Error
46
+ end
42
47
 
43
48
  # extract out the column
44
49
  column = column_symbol_value_string_options.keys.first
45
50
 
46
51
  # extract the Enum options for the column which may be in standard enum hash format or our custom format
47
52
  symbol_value_string = column_symbol_value_string_options.delete(column)
53
+
54
+ raise RichEnums::Error unless symbol_value_string.is_a? Hash
55
+
48
56
  # at this point, only the enum options like _prefix etc. are present in the original argument
49
57
  options = column_symbol_value_string_options
50
58
  # we allow for an option called alt: to allow the users to tag the alternate mapping. Defaults to 'alt_name'
51
- alt = options.delete(:alt) || 'alt_name'
59
+ alt = options.delete(:alt).to_s || 'alt_name'
52
60
 
53
61
  # create two hashes from the provided input - 1 to be used to define the enum and the other for the name map
54
62
  split_hash = symbol_value_string.each_with_object({ for_enum: {}, for_display: {} }) do |(symbol, value_string), obj|
55
- obj[:for_enum][symbol] = value_string.is_a?(Array) ? value_string.first : value_string
56
- obj[:for_display][symbol.to_s] = value_string.is_a?(Array) ? value_string.second : symbol.to_s
63
+ obj[:for_enum][symbol] = value_string.is_a?(Array) ? value_string[0] : value_string
64
+ obj[:for_display][symbol.to_s] = value_string.is_a?(Array) ? value_string[1] : symbol.to_s
57
65
  end
58
66
 
59
67
  # 1. Define the Enum
data/rich_enums.gemspec CHANGED
@@ -22,6 +22,9 @@ DESC
22
22
  spec.metadata['source_code_uri'] = 'https://github.com/betacraft/rich_enums'
23
23
  spec.metadata['changelog_uri'] = 'https://github.com/betacraft/rich_enums/README.md'
24
24
 
25
+ spec.add_development_dependency 'sqlite3', '~> 1.4'
26
+ spec.add_development_dependency 'temping', '~> 4.1'
27
+ spec.add_runtime_dependency 'activerecord', '>= 6.1', '< 8.0'
25
28
  # Specify which files should be added to the gem when it is released.
26
29
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
30
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rich_enums
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - harunkumars
@@ -9,8 +9,56 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-07-10 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2024-04-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sqlite3
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.4'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.4'
28
+ - !ruby/object:Gem::Dependency
29
+ name: temping
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '4.1'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '4.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: activerecord
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '6.1'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '8.0'
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '6.1'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '8.0'
14
62
  description: "With Enums we are able to map a label to a value on the database. \nUse
15
63
  Rich Enum if you need to maintain an additional mapping at the point of enum definition,
16
64
  \nfor e.g. for presentation purposes or for mapping to a different value on a different
@@ -22,8 +70,10 @@ executables: []
22
70
  extensions: []
23
71
  extra_rdoc_files: []
24
72
  files:
73
+ - ".github/workflows/ci.yml"
25
74
  - ".gitignore"
26
75
  - ".rspec"
76
+ - ".ruby-version"
27
77
  - ".travis.yml"
28
78
  - CODE_OF_CONDUCT.md
29
79
  - Gemfile
@@ -33,6 +83,9 @@ files:
33
83
  - Rakefile
34
84
  - bin/console
35
85
  - bin/setup
86
+ - gemfiles/activerecord_6.1.gemfile
87
+ - gemfiles/activerecord_7.0.gemfile
88
+ - gemfiles/activerecord_7.1.gemfile
36
89
  - lib/rich_enums.rb
37
90
  - lib/rich_enums/version.rb
38
91
  - rich_enums.gemspec