setting_accessors 0.0.8 → 0.0.9

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
  SHA1:
3
- metadata.gz: 69528301e4ae518a751b5e58de3a286a5ae19eb8
4
- data.tar.gz: 77578f0cf78c80f461ff55053fcc998df702cc5b
3
+ metadata.gz: ff68f0a6d47ec46945e83aa4c4f625bec4e7c115
4
+ data.tar.gz: b3d12cf74aac005bf9d0e0f46e4b9b4402127701
5
5
  SHA512:
6
- metadata.gz: d8160afa3694ad0da94ab265f8b43b61a37aac05eb543dcca2fd4586cab6efabfb2241d375105c9c3a2a98d03092b0e919b37fcd9f7d6909571d4cf5e19d26c0
7
- data.tar.gz: 3e56a6f1b6a989f165b7584df75acb4906be2bf9948403ca2d21e0a369945f2d78b32e1baa989e9ef4c4481d62826e043855cadb52b896db32d41b3e69a662a4
6
+ metadata.gz: 399a03eabae5d7b475b0ac0119cec650ad37f6c266d53d86c9d90cbb63431e8b32987f9c5fe8a1ec4b255f5b83df876603beeb6fb178c52bb5b1ae2d9130aea0
7
+ data.tar.gz: aca92f047b34247a2f9b6bcbc1478f36529e6b31e6837758749a99aa81088216a90883ff977c167681618eaf5079acdaf1fb2fcce96dcbcb23092c1600dbc940
@@ -0,0 +1,66 @@
1
+ ---
2
+ engines:
3
+ rubocop:
4
+ enabled: true
5
+ eslint:
6
+ enabled: true
7
+ csslint:
8
+ enabled: true
9
+ ratings:
10
+ paths:
11
+ - "**.rb"
12
+ - "**.js"
13
+ - "**.jsx"
14
+ - "**.css"
15
+ exclude_paths:
16
+ - test/**/*
17
+ # This is a sample .codeclimate.yml configured for Engine analysis on Code
18
+ # Climate Platform. For an overview of the Code Climate Platform, see here:
19
+ # http://docs.codeclimate.com/article/300-the-codeclimate-platform
20
+
21
+ # Under the engines key, you can configure which engines will analyze your repo.
22
+ # Each key is an engine name. For each value, you need to specify enabled: true
23
+ # to enable the engine as well as any other engines-specific configuration.
24
+
25
+ # For more details, see here:
26
+ # http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
27
+
28
+ # For a list of all available engines, see here:
29
+ # http://docs.codeclimate.com/article/296-engines-available-engines
30
+
31
+ engines:
32
+ # to turn on an engine, add it here and set enabled to `true`
33
+ # to turn off an engine, set enabled to `false` or remove it
34
+ rubocop:
35
+ enabled: true
36
+ golint:
37
+ enabled: true
38
+ gofmt:
39
+ enabled: true
40
+ eslint:
41
+ enabled: true
42
+ csslint:
43
+ enabled: true
44
+
45
+ # Engines can analyze files and report issues on them, but you can separately
46
+ # decide which files will receive ratings based on those issues. This is
47
+ # specified by path patterns under the ratings key.
48
+
49
+ # For more details see here:
50
+ # http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
51
+
52
+ # Note: If the ratings key is not specified, this will result in a 0.0 GPA on your dashboard.
53
+
54
+ # ratings:
55
+ # paths:
56
+ # - app/**
57
+ # - lib/**
58
+ # - "**.rb"
59
+ # - "**.go"
60
+
61
+ # You can globally exclude files from being analyzed by any engine using the
62
+ # exclude_paths key.
63
+
64
+ #exclude_paths:
65
+ #- spec/**/*
66
+ #- vendor/**/*
@@ -43,20 +43,25 @@ module SettingAccessors::Integration
43
43
 
44
44
  SettingAccessors::Internal.set_class_setting(self, setting_name, options)
45
45
 
46
+ setting_type = SettingAccessors::Internal.setting_value_type(setting_name, self.new).to_sym
47
+
46
48
  #Create a virtual column in the models column hash.
47
49
  #This is currently not absolutely necessary, but will become important once
48
50
  #Time etc. are supported. Otherwise, Rails won't be able to e.g. automatically
49
51
  #create multi-param fields in forms.
50
- self.columns_hash[setting_name.to_s] = OpenStruct.new(type: SettingAccessors::Internal.setting_value_type(setting_name, self.new).to_sym)
52
+ self.columns_hash[setting_name.to_s] = OpenStruct.new(type: setting_type)
51
53
 
52
54
  #Add the setting's name to the list of setting_accessors for this class
53
55
  SettingAccessors::Internal.add_setting_accessor_name(self, setting_name)
54
56
 
55
- #Getter
57
+ # Getter
56
58
  define_method(setting_name) do
57
59
  settings.get_with_fallback(setting_name, fallback)
58
60
  end
59
61
 
62
+ # Getter alias for boolean settings
63
+ alias_method "#{setting_name}?", setting_name if setting_type == :boolean
64
+
60
65
  # Setter
61
66
  define_method("#{setting_name}=") do |new_value|
62
67
  settings[setting_name] = new_value
@@ -1,3 +1,3 @@
1
1
  module SettingAccessors
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
Binary file
@@ -18,4 +18,23 @@ class UserTest < ActiveSupport::TestCase
18
18
  end
19
19
  end
20
20
  end
21
+
22
+ context 'Boolean getter methods' do
23
+ setup do
24
+ @user = User.new(:a_string => 'test', :a_number => 42, :a_boolean => false)
25
+ end
26
+
27
+ should 'be created for boolean settings' do
28
+ assert @user.respond_to?(:a_boolean?), '?-getter is not defined for boolean settings'
29
+ end
30
+
31
+ should 'return the same value as the original getter' do
32
+ assert_equal @user.a_boolean, @user.a_boolean?
33
+ end
34
+
35
+ should 'not be created for non-boolean settings' do
36
+ assert !@user.respond_to?(:a_number?)
37
+ assert !@user.respond_to?(:a_string?)
38
+ end
39
+ end
21
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setting_accessors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Exner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-01 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,6 +117,7 @@ executables: []
117
117
  extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
+ - ".codeclimate.yml"
120
121
  - ".gitignore"
121
122
  - ".ruby-gemset"
122
123
  - ".ruby-version"