activeadmin_dynamic_fields 0.2.2 → 0.2.6

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
- SHA1:
3
- metadata.gz: a41854a61414d8eb8f8c35556fd0cbfdfa8364ed
4
- data.tar.gz: 85340ca45697226edb75f74a5189c812400e19cd
2
+ SHA256:
3
+ metadata.gz: a0ed5077c7c98c62def46fd92bc4e832c97239af6c5549feb26c9c0190dd9f4c
4
+ data.tar.gz: 6c874a1265046e090b1e1528de0f030a06fc4cf916d1f1625b174323c90be756
5
5
  SHA512:
6
- metadata.gz: 72f93305d28ba3134437e19d062cc03a654113776d8aecfceb78f06d0939caeb8a3e01e4bca0f273db11be3b4358d2a7d72a57fbd838248c4af6108c54a44d42
7
- data.tar.gz: 45231b55baf2d328e05e83d843285858487067f7798859c8b0d5fbfee11663e282c9230a41a8a5efed1a71082f68e1892c31e06fbc09893f9d12f69f6986ddec
6
+ metadata.gz: abb89d40dd388777bad8ec10264358993e3d70c07d45b5ab4720a7ac4bab0caa9ff0032bc312eb9a744e84cb0923dead550a9e9e61dc822846dce5a998ae3c62
7
+ data.tar.gz: adfea763fa7d6ab978a3048d55e0f6a9ab14c5fc2ac743603176512f477fc822524126ca936d816aa3285a87c3c1ec46aae0076f7513e669552bf51cbd2a4a98
@@ -0,0 +1,73 @@
1
+ require:
2
+ - rubocop-rspec
3
+
4
+ Rails:
5
+ Enabled: true
6
+
7
+ AllCops:
8
+ TargetRubyVersion: 2.3.8
9
+ TargetRailsVersion: 5.2
10
+ Exclude:
11
+ - db/schema.rb
12
+ - bin/*
13
+ - node_modules/**/*
14
+ # Temporary files
15
+ - tmp/**/*
16
+
17
+ Rails/InverseOf:
18
+ Enabled: false
19
+
20
+ Style/Documentation:
21
+ Enabled: false
22
+
23
+ Metrics/ClassLength:
24
+ # Default value is 100
25
+ Max: 150
26
+
27
+ Metrics/LineLength:
28
+ # Default is 80
29
+ Max: 120
30
+
31
+ Metrics/ModuleLength:
32
+ # Default is 100
33
+ Max: 150
34
+
35
+ Metrics/ParameterLists:
36
+ # Default is 5
37
+ Max: 6
38
+
39
+ RSpec/ExampleLength:
40
+ # Default is 10
41
+ Max: 20
42
+
43
+ Style/FrozenStringLiteralComment:
44
+ # Deface DOES edit strings in place
45
+ Exclude:
46
+ - 'app/overrides/**/*'
47
+
48
+ RSpec/MultipleExpectations:
49
+ # Default is 3
50
+ Max: 5
51
+
52
+ RSpec/NestedGroups:
53
+ # Default is 3
54
+ Max: 6
55
+
56
+ Metrics/AbcSize:
57
+ Max: 25
58
+
59
+ Metrics/BlockLength:
60
+ # This value double the rubocop default
61
+ Max: 50
62
+
63
+ Metrics/CyclomaticComplexity:
64
+ # This value double the rubocop default
65
+ Max: 12
66
+
67
+ Metrics/MethodLength:
68
+ # This value double the rubocop default
69
+ Max: 20
70
+
71
+ Metrics/PerceivedComplexity:
72
+ # Default is 7
73
+ Max: 10
data/README.md CHANGED
@@ -9,7 +9,7 @@ Features:
9
9
  - inline field editing
10
10
  - create links to load some content in a dialog
11
11
 
12
- The easiest way to show how this plugin works is looking the examples [below](#examples-of-dynamic-fields).
12
+ The easiest way to show how this plugin works is looking the examples [below](#examples).
13
13
 
14
14
  ## Install
15
15
 
@@ -46,22 +46,22 @@ Options are passed to fields using *input_html* parameter as *data* attributes:
46
46
 
47
47
  ### Dynamic fields examples
48
48
 
49
- - A checkbox that hides other fields if false (ex. model *Article*):
49
+ - A checkbox that hides other fields if is checked (ex. model *Article*):
50
50
 
51
51
  ```rb
52
52
  form do |f|
53
53
  f.inputs 'Article' do
54
- f.input :published, input_html: { data: { if: 'not_checked', action: 'hide', target: '.grp1' } }
54
+ f.input :published, input_html: { data: { if: 'checked', action: 'hide', target: '.grp1' } }
55
55
  f.input :online_date, wrapper_html: { class: 'grp1' }
56
- f.input :position, wrapper_html: { class: 'grp1' }
56
+ f.input :draft_notes, wrapper_html: { class: 'grp1' }
57
57
  end
58
58
  f.actions
59
59
  end
60
60
  ```
61
61
 
62
- - Add 3 classes (*first*, *second*, *third*) if a checkbox is true:
62
+ - Add 3 classes (*first*, *second*, *third*) if a checkbox is not checked:
63
63
 
64
- `f.input :published, input_html: { data: { if: 'checked', action: 'addClass first second third', target: '.grp1' } }`
64
+ `f.input :published, input_html: { data: { if: 'not_checked', action: 'addClass first second third', target: '.grp1' } }`
65
65
 
66
66
  - Set another field value if a string field is blank:
67
67
 
@@ -184,6 +184,8 @@ The link url is loaded via AJAX before opening the dialog.
184
184
 
185
185
  If you use this component just star it. A developer is more motivated to improve a project when there is some interest.
186
186
 
187
+ Take a look at [other ActiveAdmin components](https://github.com/blocknotes?utf8=✓&tab=repositories&q=activeadmin&type=source) that I made if you are curious.
188
+
187
189
  ## Contributors
188
190
 
189
191
  - [Mattia Roccoberton](http://blocknot.es) - creator, maintainer
data/Rakefile CHANGED
@@ -1,3 +1,3 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
3
+ require 'bundler/gem_tasks'
@@ -1,4 +1,6 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'activeadmin/dynamic_fields/version'
4
6
 
@@ -15,5 +17,5 @@ Gem::Specification.new do |spec|
15
17
  spec.files = `git ls-files -z`.split("\x0")
16
18
  spec.require_paths = ['lib']
17
19
 
18
- spec.add_runtime_dependency 'activeadmin', '~> 1.0'
20
+ spec.add_runtime_dependency 'activeadmin', '>= 1.0'
19
21
  end
@@ -1,117 +1,117 @@
1
1
  // Evaluate a condition
2
- function dfEvalCondition( el, args, on_change ) {
3
- if( args.fn ) {
4
- if( args.fn && window[args.fn] ) return !window[args.fn]( el );
5
- else console.log( 'Warning - activeadmin_dynamic_fields: ' + args.fn + '() not available [1]' );
2
+ function dfEvalCondition(el, args, on_change) {
3
+ if(args.fn) {
4
+ if(args.fn && window[args.fn]) return !window[args.fn](el);
5
+ else console.log('Warning - activeadmin_dynamic_fields: ' + args.fn + '() not available [1]');
6
6
  }
7
- else if( args.if == 'checked' ) {
7
+ else if(args.if == 'checked') {
8
8
  return el.is(':checked');
9
9
  }
10
- else if( args.if == 'not_checked' ) {
10
+ else if(args.if == 'not_checked') {
11
11
  return !el.is(':checked');
12
12
  }
13
- else if( args.if == 'blank' ) {
13
+ else if(args.if == 'blank') {
14
14
  return el.val().length === 0 || !el.val().trim();
15
15
  }
16
- else if( args.if == 'not_blank' ) {
16
+ else if(args.if == 'not_blank') {
17
17
  return el.val().length !== 0 && el.val().trim();
18
18
  }
19
- else if( args.if == 'changed' ) {
19
+ else if(args.if == 'changed') {
20
20
  return on_change;
21
21
  }
22
- else if( args.eq ) {
22
+ else if(args.eq) {
23
23
  return el.val() == args.eq;
24
24
  }
25
- else if( args.not ) {
25
+ else if(args.not) {
26
26
  return el.val() != args.not;
27
27
  }
28
28
  return undefined;
29
29
  }
30
30
 
31
31
  // Prepare a field
32
- function dfSetupField( el ) {
33
- var action = el.data( 'action' );
32
+ function dfSetupField(el) {
33
+ var action = el.data('action');
34
34
  var target, args = {};
35
- args.if = el.data( 'if' );
36
- args.eq = el.data( 'eq' );
37
- args.not = el.data( 'not' );
38
- args.fn = el.data( 'function' );
39
- if( el.data( 'target' ) ) target = el.closest( 'fieldset' ).find( el.data( 'target' ) ); // closest find for has many associations
40
- else if( el.data( 'gtarget' ) ) target = $( el.data( 'gtarget' ) );
41
- if( action == 'hide' ) {
42
- if( dfEvalCondition( el, args, false ) ) target.hide();
35
+ args.if = el.data('if');
36
+ args.eq = el.data('eq');
37
+ args.not = el.data('not');
38
+ args.fn = el.data('function');
39
+ if(el.data('target')) target = el.closest('fieldset').find(el.data('target')); // closest find for has many associations
40
+ else if(el.data('gtarget')) target = $(el.data('gtarget'));
41
+ if(action == 'hide') {
42
+ if(dfEvalCondition(el, args, false)) target.hide();
43
43
  else target.show();
44
- el.on( 'change', function( event ) {
45
- if( dfEvalCondition( $(this), args, true ) ) target.hide();
44
+ el.on('change', function(event) {
45
+ if(dfEvalCondition($(this), args, true)) target.hide();
46
46
  else target.show();
47
47
  });
48
48
  }
49
- else if( action == 'slide' ) {
50
- if( dfEvalCondition( el, args, false ) ) target.slideDown();
49
+ else if(action == 'slide') {
50
+ if(dfEvalCondition(el, args, false)) target.slideDown();
51
51
  else target.slideUp();
52
- el.on( 'change', function( event ) {
53
- if( dfEvalCondition( $(this), args, true ) ) target.slideDown();
52
+ el.on('change', function(event) {
53
+ if(dfEvalCondition($(this), args, true)) target.slideDown();
54
54
  else target.slideUp();
55
55
  });
56
56
  }
57
- else if( action == 'fade' ) {
58
- if( dfEvalCondition( el, args, false ) ) target.fadeIn();
57
+ else if(action == 'fade') {
58
+ if(dfEvalCondition(el, args, false)) target.fadeIn();
59
59
  else target.fadeOut();
60
- el.on( 'change', function( event ) {
61
- if( dfEvalCondition( $(this), args, true ) ) target.fadeIn();
60
+ el.on('change', function(event) {
61
+ if(dfEvalCondition($(this), args, true)) target.fadeIn();
62
62
  else target.fadeOut();
63
63
  });
64
64
  }
65
- else if( action.substr( 0, 8 ) == 'setValue' ) {
66
- var val = action.substr( 8 ).trim();
67
- if( dfEvalCondition( el, args, false ) ) dfSetValue( target, val );
68
- el.on( 'change', function( event ) {
69
- if( dfEvalCondition( $(this), args, true ) ) dfSetValue( target, val );
65
+ else if(action.substr(0, 8) == 'setValue') {
66
+ var val = action.substr(8).trim();
67
+ if(dfEvalCondition(el, args, false)) dfSetValue(target, val);
68
+ el.on('change', function(event) {
69
+ if(dfEvalCondition($(this), args, true)) dfSetValue(target, val);
70
70
  });
71
71
  }
72
- else if( action.substr( 0, 8 ) == 'callback' ) {
73
- var cb = action.substr( 8 ).trim();
74
- if( cb && window[cb] ) {
75
- if( dfEvalCondition( el, args, false ) ) window[cb]( el.data( 'args' ) );
76
- el.on( 'change', function( event ) {
77
- if( dfEvalCondition( $(this), args, true ) ) window[cb]( el.data( 'args' ) );
72
+ else if(action.substr(0, 8) == 'callback') {
73
+ var cb = action.substr(8).trim();
74
+ if(cb && window[cb]) {
75
+ if(dfEvalCondition(el, args, false)) window[cb](el.data('args'));
76
+ el.on('change', function(event) {
77
+ if(dfEvalCondition($(this), args, true)) window[cb](el.data('args'));
78
78
  });
79
79
  }
80
- else console.log( 'Warning - activeadmin_dynamic_fields: ' + cb + '() not available [2]' );
81
- }
82
- else if( action.substr( 0, 8 ) == 'addClass' ) {
83
- var classes = action.substr( 8 ).trim();
84
- if( dfEvalCondition( el, args, false ) ) target.removeClass( classes );
85
- else target.addClass( classes );
86
- el.on( 'change', function( event ) {
87
- if( dfEvalCondition( $(this), args, true ) ) target.removeClass( classes );
88
- else target.addClass( classes );
80
+ else console.log('Warning - activeadmin_dynamic_fields: ' + cb + '() not available [2]');
81
+ }
82
+ else if(action.substr(0, 8) == 'addClass') {
83
+ var classes = action.substr(8).trim();
84
+ if(dfEvalCondition(el, args, false)) target.removeClass(classes);
85
+ else target.addClass(classes);
86
+ el.on('change', function(event) {
87
+ if(dfEvalCondition($(this), args, true)) target.removeClass(classes);
88
+ else target.addClass(classes);
89
89
  });
90
90
  }
91
- else if( args.fn ) { // function without action
92
- dfEvalCondition( el, args, false );
93
- el.on( 'change', function( event ) {
94
- dfEvalCondition( el, args, true );
91
+ else if(args.fn) { // function without action
92
+ dfEvalCondition(el, args, false);
93
+ el.on('change', function(event) {
94
+ dfEvalCondition(el, args, true);
95
95
  });
96
96
  }
97
97
  }
98
98
 
99
99
  // Set the value of an element
100
- function dfSetValue( el, val ) {
101
- if( el.attr('type') != 'checkbox' ) el.val( val );
100
+ function dfSetValue(el, val) {
101
+ if(el.attr('type') != 'checkbox') el.val(val);
102
102
  else el.prop('checked', val == '1');
103
- el.trigger( 'change' );
103
+ el.trigger('change');
104
104
  }
105
105
 
106
106
  // Inline update - must be called binded on the editing element
107
107
  function dfUpdateField() {
108
- if( $(this).data( 'loading' ) != '1' ) {
109
- $(this).data( 'loading', '1' );
108
+ if($(this).data('loading') != '1') {
109
+ $(this).data('loading', '1');
110
110
  var _this = $(this);
111
- var type = $(this).data( 'field-type' );
111
+ var type = $(this).data('field-type');
112
112
  var new_value;
113
- if( type == 'boolean' ) new_value = !$(this).data( 'field-value' );
114
- else if( type == 'select' ) new_value = $(this).val();
113
+ if(type == 'boolean') new_value = !$(this).data('field-value');
114
+ else if(type == 'select') new_value = $(this).val();
115
115
  else new_value = $(this).text();
116
116
  var data = {};
117
117
  data[$(this).data('field')] = new_value;
@@ -119,94 +119,91 @@ function dfUpdateField() {
119
119
  context: _this,
120
120
  data: { data: data },
121
121
  method: 'POST',
122
- url: $(this).data( 'save-url' ),
123
- complete: function( req, status ) {
124
- $(this).data( 'loading', '0' );
122
+ url: $(this).data('save-url'),
123
+ complete: function(req, status) {
124
+ $(this).data('loading', '0');
125
125
  },
126
- success: function( data, status, req ) {
127
- if( data.status == 'error' ) {
128
- if( $(this).data( 'show-errors' ) ) {
126
+ success: function(data, status, req) {
127
+ if(data.status == 'error') {
128
+ if($(this).data('show-errors')) {
129
129
  var result = '';
130
130
  var message = data.message;
131
- for( var key in message ) {
132
- if( typeof( message[key] ) === 'object' ) {
133
- if( result ) result += ' - ';
134
- result += key + ': ' + message[key].join( '; ' );
131
+ for(var key in message) {
132
+ if(typeof(message[key]) === 'object') {
133
+ if(result) result += ' - ';
134
+ result += key + ': ' + message[key].join('; ');
135
135
  }
136
136
  }
137
- if( result ) alert( result );
137
+ if(result) alert(result);
138
138
  }
139
139
  }
140
140
  else {
141
- $(this).data( 'field-value', new_value );
142
- if( $(this).data('content') ) {
141
+ $(this).data('field-value', new_value);
142
+ if($(this).data('content')) {
143
143
  var old_text = $(this).text();
144
- var old_class = $(this).attr( 'class' );
144
+ var old_class = $(this).attr('class');
145
145
  var content = $($(this).data('content'));
146
- $(this).text( content.text() );
147
- $(this).attr( 'class', content.attr( 'class' ) );
148
- content.text( old_text );
149
- content.attr( 'class', old_class );
150
- $(this).data( 'content', content );
146
+ $(this).text(content.text());
147
+ $(this).attr('class', content.attr('class'));
148
+ content.text(old_text);
149
+ content.attr('class', old_class);
150
+ $(this).data('content', content);
151
151
  }
152
152
  }
153
- },
154
- // error: function( req, status, error ) {
155
- // // if( $(this).data( 'show-errors' ) && req.responseJSON.message ) { }
156
- // },
153
+ }
157
154
  });
158
155
  }
159
156
  }
160
157
 
161
158
  // Init
162
- $(document).ready( function() {
159
+ $(document).ready(function() {
163
160
  // Setup dynamic fields
164
- $('.active_admin .input [data-if], .active_admin .input [data-function], .active_admin .input [data-eq], .active_admin .input [data-not]').each( function() {
165
- dfSetupField( $(this) );
161
+ $('.active_admin .input [data-if], .active_admin .input [data-function], .active_admin .input [data-eq], .active_admin .input [data-not]').each(function() {
162
+ dfSetupField($(this));
166
163
  });
167
164
  // Setup dynamic fields for has many associations
168
- $('.active_admin .has_many_container').on( 'has_many_add:after', function( e, fieldset, container ) {
169
- $('.active_admin .input [data-if], .active_admin .input [data-function], .active_admin .input [data-eq], .active_admin .input [data-not]').each( function() {
170
- dfSetupField( $(this) );
165
+ $('.active_admin .has_many_container').on('has_many_add:after', function(e, fieldset, container) {
166
+ $('.active_admin .input [data-if], .active_admin .input [data-function], .active_admin .input [data-eq], .active_admin .input [data-not]').each(function() {
167
+ dfSetupField($(this));
171
168
  });
172
169
  });
173
170
  // Set dialog icon link
174
- $('.active_admin [data-df-icon]').each( function() {
175
- $(this).append( ' »' ); // ' •'
171
+ $('.active_admin [data-df-icon]').each(function() {
172
+ $(this).append(' »'); // ' •'
176
173
  });
177
174
  // Open content in dialog
178
- $('.active_admin [data-df-dialog]').on( 'click', function( event ) {
175
+ $('.active_admin [data-df-dialog]').on('click', function(event) {
179
176
  event.preventDefault();
180
177
  $(this).blur();
181
- if( $('#df-dialog').data( 'loading' ) != '1' ) {
182
- $('#df-dialog').data( 'loading', '1' );
183
- if( $('#df-dialog').length == 0 ) $('body').append( '<div id="df-dialog"></div>' );
184
- var title = $(this).attr( 'title' );
178
+ if($('#df-dialog').data('loading') != '1') {
179
+ $('#df-dialog').data('loading', '1');
180
+ if($('#df-dialog').length == 0) $('body').append('<div id="df-dialog"></div>');
181
+ var title = $(this).attr('title');
185
182
  $.ajax({
186
- url: $(this).attr( 'href' ),
187
- complete: function( req, status ) {
188
- $('#df-dialog').data( 'loading', '0' );
183
+ url: $(this).attr('href'),
184
+ complete: function(req, status) {
185
+ $('#df-dialog').data('loading', '0');
189
186
  },
190
- success: function( data, status, req ) {
191
- if( title ) $('#df-dialog').attr( 'title', title );
192
- $('#df-dialog').html( data );
187
+ success: function(data, status, req) {
188
+ if(title) $('#df-dialog').attr('title', title);
189
+ $('#df-dialog').html(data);
193
190
  $('#df-dialog').dialog({ modal: true });
194
191
  },
195
192
  });
196
193
  }
197
194
  });
198
195
  // Inline editing
199
- $('[data-field][data-field-type="boolean"][data-save-url]').each( function() {
200
- $(this).on( 'click', $.proxy( dfUpdateField, $(this) ) );
196
+ $('[data-field][data-field-type="boolean"][data-save-url]').each(function() {
197
+ $(this).on('click', $.proxy(dfUpdateField, $(this)));
201
198
  });
202
- $('[data-field][data-field-type="string"][data-save-url]' ).each( function() {
203
- $(this).data( 'field-value', $(this).text() );
204
- var fnUpdate = $.proxy( dfUpdateField, $(this) );
205
- $(this).on( 'blur', function() {
206
- if( $(this).data( 'field-value' ) != $(this).text() ) fnUpdate();
199
+ $('[data-field][data-field-type="string"][data-save-url]').each(function() {
200
+ $(this).data('field-value', $(this).text());
201
+ var fnUpdate = $.proxy(dfUpdateField, $(this));
202
+ $(this).on('blur', function() {
203
+ if($(this).data('field-value') != $(this).text()) fnUpdate();
207
204
  });
208
205
  });
209
- $('[data-field][data-field-type="select"][data-save-url]').each( function() {
210
- $(this).on( 'change', $.proxy( dfUpdateField, $(this) ) );
206
+ $('[data-field][data-field-type="select"][data-save-url]').each(function() {
207
+ $(this).on('change', $.proxy(dfUpdateField, $(this)));
211
208
  });
212
209
  });
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'activeadmin/dynamic_fields/engine'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_admin'
2
4
 
3
5
  module ActiveAdmin
@@ -6,21 +8,39 @@ module ActiveAdmin
6
8
  engine_name 'activeadmin_dynamic_fields'
7
9
  end
8
10
 
9
- def self.edit_boolean( field, url, value )
10
- { 'data-field': field, 'data-field-type': 'boolean', 'data-field-value': value, 'data-content': "<span class=\"status_tag changed\">#{value ? 'no' : 'yes'}</span>", 'data-save-url': url, 'data-show-errors': '1' }
11
+ def self.edit_boolean(field, url, value)
12
+ {
13
+ 'data-field': field,
14
+ 'data-field-type': 'boolean',
15
+ 'data-field-value': value,
16
+ 'data-content': "<span class=\"status_tag changed\">#{value ? 'no' : 'yes'}</span>",
17
+ 'data-save-url': url,
18
+ 'data-show-errors': '1'
19
+ }
11
20
  end
12
21
 
13
- def self.edit_select( field, url )
14
- { 'data-field': field, 'data-field-type': 'select', 'data-save-url': url, 'data-show-errors': '1' }
22
+ def self.edit_select(field, url)
23
+ {
24
+ 'data-field': field,
25
+ 'data-field-type': 'select',
26
+ 'data-save-url': url,
27
+ 'data-show-errors': '1'
28
+ }
15
29
  end
16
30
 
17
- def self.edit_string( field, url )
18
- { contenteditable: true, 'data-field': field, 'data-field-type': 'string', 'data-save-url': url, 'data-show-errors': '1' }
31
+ def self.edit_string(field, url)
32
+ {
33
+ contenteditable: true,
34
+ 'data-field': field,
35
+ 'data-field-type': 'string',
36
+ 'data-save-url': url,
37
+ 'data-show-errors': '1'
38
+ }
19
39
  end
20
40
 
21
- def self.update( resource, params, permit_params = nil )
41
+ def self.update(resource, params, permit_params = nil)
22
42
  if params[:data]
23
- if resource.update( permit_params ? params[:data].permit( permit_params ) : params[:data].permit! )
43
+ if resource.update(permit_params ? params[:data].permit(permit_params) : params[:data].permit!)
24
44
  { json: { status: 'ok' } }
25
45
  else
26
46
  { json: { status: 'error', message: resource.errors } }
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveAdmin
2
4
  module DynamicFields
3
- VERSION = '0.2.2'
5
+ VERSION = '0.2.6'
4
6
  end
5
7
  end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'activeadmin/dynamic_fields'
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin_dynamic_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Roccoberton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-24 00:00:00.000000000 Z
11
+ date: 2019-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
27
  description: An Active Admin plugin to add dynamic behaviors to fields
@@ -31,6 +31,7 @@ extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
33
  - ".gitignore"
34
+ - ".rubocop.yml"
34
35
  - Gemfile
35
36
  - LICENSE.txt
36
37
  - README.md
@@ -60,8 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
61
  - !ruby/object:Gem::Version
61
62
  version: '0'
62
63
  requirements: []
63
- rubyforge_project:
64
- rubygems_version: 2.6.14
64
+ rubygems_version: 3.0.2
65
65
  signing_key:
66
66
  specification_version: 4
67
67
  summary: Dynamic fields for ActiveAdmin