mournful_settings 0.1.2 → 0.1.3
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 +8 -8
- data/README.rdoc +6 -0
- data/lib/active_admin/admin/settings.rb +1 -1
- data/lib/mournful_settings.rb +13 -0
- data/lib/mournful_settings/setting_methods.rb +4 -0
- data/lib/mournful_settings/version.rb +8 -1
- data/test/dummy/db/test.sqlite3.db +0 -0
- data/test/dummy/lib/setting_without_table.rb +6 -0
- data/test/dummy/test/setting_without_table_test.rb +24 -0
- data/test/test_helper.rb +5 -0
- metadata +17 -13
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTkwNTdkNWM5OTM1MjIwMzUzM2YxOTFlYTVjMmU1YzllYmI0ZmQ4ZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTY5MzRiNzhkYjNiZmI0MDRkOGNlN2EzMDQ5YTIwNzBhZDk0NzM0ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzZmYjczNGQzOWQwN2FkYzYzZGNjZjQ5ODQ5ZDc4ZDcwMmU2NjU2N2NjZjVj
|
10
|
+
MmY3OTQ5NjMwZmMwMTk4ZWVhMWJjYmQ5NzU0MWVlYTE5OWRjM2YzYWI0Yjli
|
11
|
+
MjJjYTJhMjZjNmZlN2ZiNDliYjczZWFkYWE3NTY0YTVlNTNkMjE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Njc3ZWNlNmUxNDM2NjlmOWUzYWI1NGQ1ZjliYWU0NTA2ZTRlOGNmYzhiYjU5
|
14
|
+
ZTJiYzgxOWRjMThhMTU1YjkwOTg2ZGQyZjc1NjU1OTAzMWUwNDg2ZTE3OTlj
|
15
|
+
NDZjNmQzZTUzNTYyNTZjYjk2ZWZkZWI1NWNjY2VlOTc1M2I2NzQ=
|
data/README.rdoc
CHANGED
@@ -154,6 +154,12 @@ To add mournful_settings migrations to the host app run this rake task:
|
|
154
154
|
|
155
155
|
Then run 'rake db:migrate' to create the 'mournful_settings_settings' table.
|
156
156
|
|
157
|
+
==== Settings before the database is created
|
158
|
+
|
159
|
+
If the database table is not present, it will be assumed that the default
|
160
|
+
setting (or nil) should be used until the table is created and the matching
|
161
|
+
setting stored.
|
162
|
+
|
157
163
|
=== Updating inherited Setting to use acts_as_mournful_setting
|
158
164
|
|
159
165
|
The class Setting above could be modified to work with acts_as_mournful_setting,
|
@@ -22,7 +22,7 @@ ActiveAdmin.register Setting do
|
|
22
22
|
:checked => (setting.encrypted == false ? false : true)
|
23
23
|
}
|
24
24
|
)
|
25
|
-
f.input :value_type, collection
|
25
|
+
f.input :value_type, :collection => MournfulSettings::SettingMethods::VALUE_TYPES
|
26
26
|
end
|
27
27
|
f.buttons
|
28
28
|
end
|
data/lib/mournful_settings.rb
CHANGED
@@ -2,11 +2,24 @@ require 'active_record'
|
|
2
2
|
require_relative "mournful_settings/railtie" if defined?(Rails) # needed for rake tasks to be loaded into host app
|
3
3
|
require_relative 'active_record/acts/mournful_setting'
|
4
4
|
require_relative 'mournful_settings/setting'
|
5
|
+
require 'logger'
|
5
6
|
|
6
7
|
module MournfulSettings
|
7
8
|
|
8
9
|
def self.active_admin_load_path
|
9
10
|
File.expand_path("active_admin/admin", File.dirname(__FILE__))
|
10
11
|
end
|
12
|
+
|
13
|
+
def self.logger
|
14
|
+
defined?(Rails) ? Rails.logger : local_logger
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.logger=(alternative_logger)
|
18
|
+
@logger = alternative_logger
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.local_logger
|
22
|
+
@logger ||= Logger.new('log/mournful_settings.log')
|
23
|
+
end
|
11
24
|
|
12
25
|
end
|
@@ -21,7 +21,11 @@ module MournfulSettings
|
|
21
21
|
|
22
22
|
def for(name, default = nil)
|
23
23
|
setting = find_by_name(name.to_s) # values should be passed to AR as strings
|
24
|
+
MournfulSettings.logger.debug "MornfulSetting for #{name} called"
|
24
25
|
setting ? setting.value : default
|
26
|
+
rescue ActiveRecord::StatementInvalid => e
|
27
|
+
MournfulSettings.logger.warn "Default MournfulSetting for '#{name}' forced because: #{e.message}"
|
28
|
+
return default
|
25
29
|
end
|
26
30
|
|
27
31
|
def recrypt_all &do_while_unencrypted
|
@@ -1,10 +1,17 @@
|
|
1
1
|
module MournfulSettings
|
2
|
-
VERSION = "0.1.
|
2
|
+
VERSION = "0.1.3"
|
3
3
|
end
|
4
4
|
|
5
5
|
# History
|
6
6
|
# =======
|
7
7
|
#
|
8
|
+
# 0.1.3: Handles lack of database on initial use
|
9
|
+
# ----------------------------------------------
|
10
|
+
# In a rails app, if a setting is used in an initializer before the settings
|
11
|
+
# table is created, the app could not be run to build the table. In this
|
12
|
+
# version, it is assumed that if the database is not present, the default
|
13
|
+
# setting should be used.
|
14
|
+
#
|
8
15
|
# 0.1.2: Add facility to select value type via active_admin form
|
9
16
|
# --------------------------------------------------------------
|
10
17
|
# Lack of value type was preventing new settings to be created via active admin
|
Binary file
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
require 'setting_without_table'
|
3
|
+
|
4
|
+
# If an application is moved to a new location and settings are used in the
|
5
|
+
# application configuration, it is impossible to create the Settings table
|
6
|
+
# via the normal rake tasks if MournfulSetting.for returns a
|
7
|
+
# 'Could not find table' error. That leave the app in the loop - need a
|
8
|
+
# settings table to start the app, but can't create the tables without starting
|
9
|
+
# the app.
|
10
|
+
#
|
11
|
+
# So MournfulSetting.for needs to be handle the lack of table.
|
12
|
+
#
|
13
|
+
class SettingWithoutTableTest < Test::Unit::TestCase
|
14
|
+
|
15
|
+
def test_for_without_default
|
16
|
+
assert_equal nil, SettingWithoutTable.for(:foo)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_for_with_default
|
20
|
+
default = 'bar'
|
21
|
+
assert_equal default, SettingWithoutTable.for(:foo, default)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
2
|
$:.unshift File.join(File.dirname(__FILE__),'dummy','lib')
|
3
3
|
|
4
|
+
unless defined?(Rails)
|
5
|
+
MournfulSettings.logger = Logger.new('log/test.log')
|
6
|
+
MournfulSettings.logger.level = Logger::INFO
|
7
|
+
end
|
8
|
+
|
4
9
|
require 'test/unit'
|
5
10
|
|
6
11
|
require 'active_record'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mournful_settings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Nichols
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -46,24 +46,26 @@ executables: []
|
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
|
+
- MIT-LICENSE
|
50
|
+
- README.rdoc
|
51
|
+
- Rakefile
|
52
|
+
- lib/active_admin/admin/settings.rb
|
49
53
|
- lib/active_record/acts/mournful_setting.rb
|
50
|
-
- lib/mournful_settings
|
54
|
+
- lib/mournful_settings.rb
|
55
|
+
- lib/mournful_settings/railtie.rb
|
51
56
|
- lib/mournful_settings/setting.rb
|
52
|
-
- lib/mournful_settings/setting_methods/cipher.rb
|
53
57
|
- lib/mournful_settings/setting_methods.rb
|
54
|
-
- lib/mournful_settings/
|
55
|
-
- lib/mournful_settings.rb
|
56
|
-
- lib/active_admin/admin/settings.rb
|
58
|
+
- lib/mournful_settings/setting_methods/cipher.rb
|
59
|
+
- lib/mournful_settings/version.rb
|
57
60
|
- lib/tasks/mournful_settings.rake
|
58
|
-
- MIT-LICENSE
|
59
|
-
- Rakefile
|
60
|
-
- README.rdoc
|
61
|
-
- test/dummy/lib/setting_actor.rb
|
62
|
-
- test/dummy/lib/setting.rb
|
63
61
|
- test/dummy/db/development.sqlite3.db
|
64
62
|
- test/dummy/db/test.sqlite3.db
|
63
|
+
- test/dummy/lib/setting.rb
|
64
|
+
- test/dummy/lib/setting_actor.rb
|
65
|
+
- test/dummy/lib/setting_without_table.rb
|
65
66
|
- test/dummy/test/setting_actor_test.rb
|
66
67
|
- test/dummy/test/setting_test.rb
|
68
|
+
- test/dummy/test/setting_without_table_test.rb
|
67
69
|
- test/test_helper.rb
|
68
70
|
homepage: https://github.com/reggieb/mournful_settings
|
69
71
|
licenses:
|
@@ -85,15 +87,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
87
|
version: '0'
|
86
88
|
requirements: []
|
87
89
|
rubyforge_project:
|
88
|
-
rubygems_version: 2.
|
90
|
+
rubygems_version: 2.2.2
|
89
91
|
signing_key:
|
90
92
|
specification_version: 4
|
91
93
|
summary: Tool for adding encrypted settings to an app.
|
92
94
|
test_files:
|
93
95
|
- test/dummy/lib/setting_actor.rb
|
94
96
|
- test/dummy/lib/setting.rb
|
97
|
+
- test/dummy/lib/setting_without_table.rb
|
95
98
|
- test/dummy/db/development.sqlite3.db
|
96
99
|
- test/dummy/db/test.sqlite3.db
|
100
|
+
- test/dummy/test/setting_without_table_test.rb
|
97
101
|
- test/dummy/test/setting_actor_test.rb
|
98
102
|
- test/dummy/test/setting_test.rb
|
99
103
|
- test/test_helper.rb
|