better_record 0.8.1 → 0.8.2

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: 7cc7df8cadc6ee7f40396d5d405c281fc3d08ac10182db8fb8725b14cfb947b0
4
- data.tar.gz: a000455e51c4008ec65661ddc6de35e44b624e72e73a96f2cea03638119877e6
3
+ metadata.gz: 20b9f20b5d31a8e1182dd09ca27d6c09551eafa48bb1a0a722681a9194ccf85a
4
+ data.tar.gz: 8b4604c103762493e13a49b13c142b31e4da585a0b4d2932025e23a1b162d3c1
5
5
  SHA512:
6
- metadata.gz: ad4e3ea2a8e85df2c45725f01c673cd0679766c53ac78d622ccd54f26225aa7ea7ec1905f37d059ba737dc5eed44f902a649803315a5a7ca3d0d08caa49984d1
7
- data.tar.gz: 9e326014afcae6785bc3d17c8313e4551af0669f0d7653bd766fb31835e3b7fcc9e4abe61de4c2604881dc85a38333fb548101cf0282ef0795cf28eb6e810d78
6
+ metadata.gz: '08ac2e82687f68237f666a8f5c4e4768dbc043cfce5ce60960ee7710827334664128e37e88d30abe4b1202aed9fb9b6f78478fe33621f37897550cc70e56ec54'
7
+ data.tar.gz: ca3e3094b2133e4750d3dc9bb08d12b357ae42e894dada66c3631d857d0a9625c0ee4cf0922da71f66212e1cff12e421e2fb6c9ce369abae9c2d0cd364b74461
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support'
2
4
  require 'active_record'
5
+ require 'active_record/type'
3
6
  require 'csv'
4
7
 
5
8
  Dir.glob("#{File.expand_path(__dir__)}/core_ext/*.rb").each do |d|
@@ -8,6 +11,7 @@ end
8
11
 
9
12
  module BetterRecord
10
13
  ATTRIBUTE_METHODS = [
14
+ :strict_booleans,
11
15
  :default_polymorphic_method,
12
16
  :db_audit_schema,
13
17
  :has_auditing_relation_by_default,
@@ -37,9 +41,10 @@ module BetterRecord
37
41
  end
38
42
  end
39
43
 
44
+ self.strict_booleans = Boolean.strict_parse((ENV.fetch('BR_STRICT_BOOLEANS') { false }))
40
45
  self.default_polymorphic_method = (ENV.fetch('BR_DEFAULT_POLYMORPHIC_METHOD') { :polymorphic_name }).to_sym
41
46
  self.db_audit_schema = ENV.fetch('BR_DB_AUDIT_SCHEMA') { 'auditing' }
42
- self.has_auditing_relation_by_default = ActiveRecord::Type::Boolean.new.cast(ENV.fetch('BR_ADD_HAS_MANY') { true })
47
+ self.has_auditing_relation_by_default = Boolean.strict_parse(ENV.fetch('BR_ADD_HAS_MANY') { true })
43
48
  self.audit_relation_name = (ENV.fetch('BR_AUDIT_RELATION_NAME') { 'logged_actions' }).to_sym
44
49
  self.layout_template = (ENV.fetch('BR_LAYOUT_TEMPLATE') { 'better_record/layout' }).to_s
45
50
  self.app_domain_name = (ENV.fetch('APP_DOMAIN_NAME') { 'non_existant_domain.com' }).to_s
@@ -20,7 +20,7 @@ module BetterRecord
20
20
  when ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Jsonb
21
21
  value.presence || {}
22
22
  when ActiveRecord::Type::Boolean
23
- Boolean.parse(value)
23
+ BetterRecord.strict_booleans ? Boolean.strict_parse(value) : Boolean.parse(value)
24
24
  else
25
25
  value.presence
26
26
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.8.1'
4
+ VERSION = '0.8.2'
5
5
  end
@@ -1,9 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_record'
4
+
3
5
  class Boolean
4
6
  def self.parse(value)
5
7
  ActiveRecord::Type::Boolean.new.cast(value)
6
8
  end
9
+
10
+ def self.strict_parse(value)
11
+ !!parse(value)
12
+ end
7
13
  end
8
14
 
9
15
  class Object
@@ -4,6 +4,7 @@ module BetterRecord
4
4
  ##########################################################################
5
5
  # THE FOLLOWING SETTINGS CAN ALSO BE SET THROUGH ENVIRONMENT VARIABLES #
6
6
  # #
7
+ # strict_booleans: BR_STRICT_BOOLEANS #
7
8
  # default_polymorphic_method: BR_DEFAULT_POLYMORPHIC_METHOD #
8
9
  # db_audit_schema: BR_DB_AUDIT_SCHEMA #
9
10
  # has_auditing_relation_by_default: BR_ADD_HAS_MANY #
@@ -17,6 +18,10 @@ module BetterRecord
17
18
  # certificate_session_user_method: BR_CERTIFICATE_SESSION_USER_METHOD #
18
19
  ##########################################################################
19
20
 
21
+ # uncomment the following line to disable three-state booleans in models
22
+
23
+ # self.strict_booleans = true
24
+
20
25
  # uncomment the following line to use table_names instead of model names
21
26
  # as the 'type' value in polymorphic relationships
22
27
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-22 00:00:00.000000000 Z
11
+ date: 2018-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -245,7 +245,6 @@ files:
245
245
  - app/views/layouts/better_record/application.html.erb
246
246
  - config/initializers/active_record/money_type.rb
247
247
  - config/initializers/concerns.rb
248
- - config/initializers/core_ext/boolean.rb
249
248
  - config/initializers/core_ext/date.rb
250
249
  - config/initializers/core_ext/integer.rb
251
250
  - config/initializers/core_ext/string.rb
@@ -288,6 +287,7 @@ files:
288
287
  - lib/better_record/tasks/better_record/install.rake
289
288
  - lib/better_record/tasks/spec/attributes.rake
290
289
  - lib/better_record/version.rb
290
+ - lib/core_ext/boolean.rb
291
291
  - lib/generators/better_record/eject_rspec_extensions/USAGE
292
292
  - lib/generators/better_record/eject_rspec_extensions/eject_rspec_extensions_generator.rb
293
293
  - lib/generators/better_record/setup/USAGE