godmin 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +2 -2
  4. data/.travis.yml +12 -5
  5. data/Appraisals +7 -0
  6. data/CHANGELOG.md +18 -2
  7. data/README.md +3 -3
  8. data/Rakefile +2 -1
  9. data/app/assets/javascripts/godmin/batch-actions.js +10 -1
  10. data/app/views/godmin/resource/_batch_actions.html.erb +1 -1
  11. data/app/views/godmin/resource/_export_actions.html.erb +2 -2
  12. data/app/views/godmin/resource/_pagination.html.erb +5 -5
  13. data/app/views/godmin/resource/_scopes.html.erb +1 -1
  14. data/app/views/godmin/resource/_table.html.erb +3 -3
  15. data/app/views/godmin/resource/columns/_actions.html.erb +20 -4
  16. data/app/views/layouts/godmin/login.html.erb +1 -1
  17. data/config/locales/en.yml +3 -0
  18. data/config/locales/pt-BR.yml +3 -0
  19. data/config/locales/sv.yml +3 -0
  20. data/gemfiles/rails_4.gemfile +9 -0
  21. data/gemfiles/rails_5.gemfile +9 -0
  22. data/godmin.gemspec +19 -18
  23. data/lib/godmin/application_controller.rb +11 -0
  24. data/lib/godmin/authorization.rb +1 -1
  25. data/lib/godmin/helpers/application.rb +9 -2
  26. data/lib/godmin/helpers/batch_actions.rb +1 -9
  27. data/lib/godmin/helpers/filters.rb +17 -10
  28. data/lib/godmin/helpers/forms.rb +3 -1
  29. data/lib/godmin/helpers/tables.rb +1 -1
  30. data/lib/godmin/resources/resource_controller/batch_actions.rb +1 -1
  31. data/lib/godmin/resources/resource_service/batch_actions.rb +14 -0
  32. data/lib/godmin/version.rb +1 -1
  33. data/template.rb +4 -24
  34. data/test/dummy/admin/admin.gemspec +1 -1
  35. data/test/dummy/app/services/article_service.rb +18 -3
  36. data/test/dummy/config/environments/test.rb +8 -2
  37. data/test/dummy/db/schema.rb +0 -1
  38. data/test/fakes/article_service.rb +1 -1
  39. data/test/integration/batch_actions_test.rb +30 -1
  40. data/test/integration/filters_test.rb +15 -0
  41. data/test/integration/scopes_test.rb +1 -1
  42. data/test/lib/godmin/helpers/filters_test.rb +32 -6
  43. data/test/lib/godmin/resources/resource_service/batch_actions_test.rb +1 -1
  44. metadata +88 -63
  45. data/test/dummy/admin/Rakefile +0 -24
  46. data/test/dummy/admin/app/helpers/admin/application_helper.rb +0 -4
  47. data/test/dummy/app/controllers/concerns/.keep +0 -0
  48. data/test/dummy/app/helpers/application_helper.rb +0 -2
  49. data/test/dummy/app/models/concerns/.keep +0 -0
@@ -1,7 +1,7 @@
1
1
  module Godmin
2
2
  module Helpers
3
3
  module Filters
4
- def filter_form(url: params)
4
+ def filter_form(url: params.to_unsafe_h)
5
5
  bootstrap_form_tag url: url, method: :get, layout: :inline, builder: FormBuilders::FilterFormBuilder do |f|
6
6
  yield(f)
7
7
  end
@@ -47,7 +47,9 @@ module Godmin
47
47
 
48
48
  def multiselect_filter_field(name, options, html_options = {})
49
49
  filter_select(
50
- name, options, {
50
+ name, {
51
+ include_hidden: false
52
+ }.deep_merge(options), {
51
53
  name: "filter[#{name}][]",
52
54
  multiple: true,
53
55
  data: {
@@ -65,7 +67,7 @@ module Godmin
65
67
  @template.link_to(
66
68
  @template.translate_scoped("filters.buttons.clear"),
67
69
  @template.url_for(
68
- @template.params.slice(:scope, :order)
70
+ @template.params.to_unsafe_h.slice(:scope, :order)
69
71
  ),
70
72
  class: "btn btn-default"
71
73
  )
@@ -75,17 +77,22 @@ module Godmin
75
77
 
76
78
  def filter_select(name, options, html_options)
77
79
  unless options[:collection].is_a? Proc
78
- fail "A collection proc must be specified for select filters"
80
+ raise "A collection proc must be specified for select filters"
79
81
  end
80
82
 
81
- collection = options[:collection].call
83
+ # We need to dup this here because we later delete some properties
84
+ # from the hash. We should consider adding an additional options
85
+ # param to separate filter params from select tag params.
86
+ options = options.dup
87
+
88
+ collection = options.delete(:collection).call
82
89
 
83
90
  choices =
84
91
  if collection.is_a? ActiveRecord::Relation
85
92
  @template.options_from_collection_for_select(
86
93
  collection,
87
- options[:option_value],
88
- options[:option_text],
94
+ options.delete(:option_value),
95
+ options.delete(:option_text),
89
96
  selected: default_filter_value(name)
90
97
  )
91
98
  else
@@ -97,12 +104,12 @@ module Godmin
97
104
 
98
105
  select(
99
106
  name, choices, {
100
- wrapper_class: "filter",
101
107
  label: @template.translate_scoped("filters.labels.#{name}", default: name.to_s.titleize),
102
108
  include_hidden: true,
103
109
  include_blank: true
104
- }, {
105
- data: { behavior: "select-box" }
110
+ }.deep_merge(options), {
111
+ data: { behavior: "select-box" },
112
+ wrapper_class: "filter"
106
113
  }.deep_merge(html_options)
107
114
  )
108
115
  end
@@ -52,7 +52,9 @@ module Godmin
52
52
  private
53
53
 
54
54
  def attribute_type(attribute)
55
- @object.column_for_attribute(attribute).try(:type)
55
+ if @object.has_attribute?(attribute)
56
+ @object.column_for_attribute(attribute).type
57
+ end
56
58
  end
57
59
 
58
60
  def association_type(attribute)
@@ -15,7 +15,7 @@ module Godmin
15
15
  else
16
16
  "desc"
17
17
  end
18
- link_to @resource_class.human_attribute_name(attribute.to_s), url_for(params.merge(order: "#{attribute}_#{direction}"))
18
+ link_to @resource_class.human_attribute_name(attribute.to_s), url_for(params.to_unsafe_h.merge(order: "#{attribute}_#{direction}"))
19
19
  else
20
20
  @resource_class.human_attribute_name(attribute.to_s)
21
21
  end
@@ -33,7 +33,7 @@ module Godmin
33
33
  end
34
34
  end
35
35
 
36
- redirect_to :back
36
+ redirect_back
37
37
  end
38
38
 
39
39
  def batch_action_ids
@@ -19,6 +19,20 @@ module Godmin
19
19
  batch_action_map.key?(action.to_sym)
20
20
  end
21
21
 
22
+ def include_batch_action?(action)
23
+ options = batch_action_map[action.to_sym]
24
+
25
+ (options[:only].nil? && options[:except].nil?) ||
26
+ (options[:only] && options[:only].include?(scope.to_sym)) ||
27
+ (options[:except] && !options[:except].include?(scope.to_sym))
28
+ end
29
+
30
+ def include_batch_actions?
31
+ batch_action_map.keys.any? do |action|
32
+ include_batch_action?(action)
33
+ end
34
+ end
35
+
22
36
  module ClassMethods
23
37
  def batch_action_map
24
38
  @batch_action_map ||= {}
@@ -1,3 +1,3 @@
1
1
  module Godmin
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require "active_support/all"
2
2
 
3
3
  def install_standalone
4
- gem "godmin", "> 0.12"
4
+ gem "godmin", "1.2.0"
5
5
 
6
6
  after_bundle do
7
7
  generate_model
@@ -9,7 +9,6 @@ def install_standalone
9
9
  generate("godmin:resource", "article")
10
10
  generate("godmin:resource", "author")
11
11
 
12
- modify_menu
13
12
  modify_rakefile
14
13
  modify_routes
15
14
  modify_locales
@@ -48,7 +47,6 @@ def install_engine
48
47
  END
49
48
  end
50
49
 
51
- modify_menu("admin")
52
50
  modify_rakefile
53
51
  modify_routes("admin")
54
52
  modify_locales
@@ -65,6 +63,8 @@ def generate_model
65
63
  generate(:model, "author name:string")
66
64
  generate(:model, "article title:string body:text author:references published:boolean published_at:datetime")
67
65
 
66
+ gsub_file Dir.glob("db/migrate/*_create_articles.rb").first, "t.boolean :published", "t.boolean :published, default: false"
67
+
68
68
  append_to_file "db/seeds.rb" do
69
69
  <<-END.strip_heredoc
70
70
  def title
@@ -98,27 +98,6 @@ def generate_model
98
98
  end
99
99
  end
100
100
 
101
- def modify_menu(namespace = nil)
102
- navigation_file =
103
- if namespace
104
- "admin/app/views/admin/shared/_navigation_aside.html.erb"
105
- else
106
- "app/views/shared/_navigation_aside.html.erb"
107
- end
108
-
109
- create_file navigation_file do
110
- <<-END.strip_heredoc
111
- <%= navbar_dropdown "Take me places" do %>
112
- <%= navbar_item "Godmin on Github", "https://github.com/varvet/godmin" %>
113
- <%= navbar_item "The source of this page!", "https://github.com/varvet/godmin-sandbox" %>
114
- <%= navbar_item "The blog post", "https://www.varvet.se/blog/update/2015/11/13/introducing-godmin-1-0.html" %>
115
- <%= navbar_divider %>
116
- <%= navbar_item "Please retweet ;)", "https://twitter.com/varvet/status/665092299995676672" %>
117
- <% end %>
118
- END
119
- end
120
- end
121
-
122
101
  def modify_rakefile
123
102
  append_to_file "RakeFile" do
124
103
  <<-END.strip_heredoc
@@ -130,6 +109,7 @@ def modify_rakefile
130
109
  Rake::Task["db:schema:load"].invoke
131
110
  Rake::Task["db:seed"].invoke
132
111
  end
112
+
133
113
  desc "Reset the database"
134
114
  task reset: :environment do
135
115
  ActiveRecord::Base.connection.tables.each do |table|
@@ -11,5 +11,5 @@ Gem::Specification.new do |s|
11
11
  s.email = ["admin@example.com"]
12
12
  s.summary = "admin"
13
13
 
14
- s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]
14
+ s.files = Dir["{app,config,db,lib}/**/*"]
15
15
  end
@@ -9,8 +9,14 @@ class ArticleService
9
9
  resources.joins(:admin_users).order("admin_users.email #{direction}")
10
10
  end
11
11
 
12
+ scope :all
12
13
  scope :unpublished
13
14
  scope :published
15
+ scope :no_batch_actions
16
+
17
+ def scope_all(articles)
18
+ articles
19
+ end
14
20
 
15
21
  def scope_unpublished(articles)
16
22
  articles.where(published: false)
@@ -20,15 +26,24 @@ class ArticleService
20
26
  articles.where(published: true)
21
27
  end
22
28
 
29
+ def scope_no_batch_actions(articles)
30
+ articles
31
+ end
32
+
23
33
  filter :title
34
+ filter :status, as: :select, collection: -> { [["Published", :published], ["Unpublished", :unpublished]] }
24
35
 
25
36
  def filter_title(articles, value)
26
37
  articles.where(title: value)
27
38
  end
28
39
 
29
- batch_action :destroy
30
- batch_action :publish
31
- batch_action :unpublish
40
+ def filter_status(articles, value)
41
+ articles.where(published: value == "published")
42
+ end
43
+
44
+ batch_action :publish, except: [:published, :no_batch_actions]
45
+ batch_action :unpublish, except: [:unpublished, :no_batch_actions]
46
+ batch_action :destroy, except: [:no_batch_actions]
32
47
 
33
48
  def batch_action_destroy(articles)
34
49
  articles.destroy_all
@@ -13,8 +13,14 @@ Dummy::Application.configure do
13
13
  config.eager_load = false
14
14
 
15
15
  # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_files = true
17
- config.static_cache_control = "public, max-age=3600"
16
+ case Rails::VERSION::MAJOR
17
+ when 4
18
+ config.serve_static_files = true
19
+ config.static_cache_control = "public, max-age=3600"
20
+ when 5
21
+ config.public_file_server.enabled = true
22
+ config.public_file_server.headers = { "Cache-Control" => "public, max-age=3600" }
23
+ end
18
24
 
19
25
  # Show full error reports and disable caching.
20
26
  config.consider_all_requests_local = true
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -17,7 +17,7 @@ module Fakes
17
17
  filter :tags, as: :multiselect, collection: %w(Apple Banana)
18
18
 
19
19
  batch_action :unpublish
20
- batch_action :publish, confirm: true, only: :unpublished, except: :published
20
+ batch_action :publish, confirm: true, only: [:unpublished], except: [:published]
21
21
 
22
22
  def initialize(*)
23
23
  super
@@ -26,7 +26,7 @@ class BatchActionsTest < ActionDispatch::IntegrationTest
26
26
 
27
27
  Article.create! title: "foo"
28
28
 
29
- visit articles_path
29
+ visit articles_path(scope: :unpublished)
30
30
 
31
31
  all("[data-behavior~=batch-actions-checkbox]").each(&:click)
32
32
  within "#actions" do
@@ -39,6 +39,35 @@ class BatchActionsTest < ActionDispatch::IntegrationTest
39
39
  Capybara.use_default_driver
40
40
  end
41
41
 
42
+ def test_batch_action_scopes
43
+ Capybara.current_driver = Capybara.javascript_driver
44
+
45
+ Article.create! title: "foo"
46
+
47
+ visit articles_path(scope: :unpublished)
48
+
49
+ all("[data-behavior~=batch-actions-checkbox]").each(&:click)
50
+ within "#actions" do
51
+ assert page.has_content? "Publish"
52
+ assert page.has_no_content? "Unpublish"
53
+ end
54
+
55
+ Capybara.use_default_driver
56
+ end
57
+
58
+ def test_batch_action_scopes_when_no_batch_actions
59
+ Capybara.current_driver = Capybara.javascript_driver
60
+
61
+ Article.create! title: "foo"
62
+
63
+ visit articles_path(scope: :no_batch_actions)
64
+
65
+ assert page.has_no_content?("Select all")
66
+ assert page.has_no_css?("[data-behavior~=batch-actions-checkbox]")
67
+
68
+ Capybara.use_default_driver
69
+ end
70
+
42
71
  private
43
72
 
44
73
  def current_path_with_params
@@ -18,4 +18,19 @@ class FiltersTest < ActionDispatch::IntegrationTest
18
18
  assert page.has_content? "foo"
19
19
  assert page.has_content? "bar"
20
20
  end
21
+
22
+ def test_select_filter
23
+ Article.create! title: "foo", published: true
24
+ Article.create! title: "bar"
25
+
26
+ visit articles_path
27
+
28
+ within "#filters" do
29
+ find("select").select("Published")
30
+ end
31
+ click_button "Filter"
32
+ assert_equal 200, page.status_code
33
+ assert page.has_content? "foo"
34
+ assert page.has_no_content? "bar"
35
+ end
21
36
  end
@@ -6,7 +6,7 @@ class ScopesTest < ActionDispatch::IntegrationTest
6
6
  Article.create! title: "bar"
7
7
  Article.create! title: "baz", published: true
8
8
 
9
- visit articles_path
9
+ visit articles_path(scope: :unpublished)
10
10
 
11
11
  assert page.has_content? "foo"
12
12
  assert page.has_content? "bar"
@@ -13,13 +13,39 @@ module Godmin
13
13
  end
14
14
  end
15
15
 
16
- # TODO: actually implement this test properly, apparently
17
- # assert_select can be used if the helper output is parsed
18
- # with HTML::Document first...
19
- def test_string_filter_field
20
- form = filter_form url: "/" do |f|
21
- f.filter_field :foo, as: :string
16
+ def test_filter_field_as_string
17
+ @output_buffer = filter_form url: "/" do |f|
18
+ f.filter_field :foo, { as: :string }, value: "Foobar"
22
19
  end
20
+
21
+ assert_select "label[for=foo]", 1, "No label was found"
22
+ assert_select "input[type=text][name=?]", "filter[foo]", 1, "No text input found with name foo" do |element|
23
+ assert_equal "Foo", element.attr("placeholder").text
24
+ assert_equal "Foobar", element.attr("value").text
25
+ end
26
+ end
27
+
28
+ def test_filter_field_as_select
29
+ @output_buffer = filter_form url: "/" do |f|
30
+ f.filter_field :foo, as: :select, collection: -> { %w(Foo Bar) }
31
+ end
32
+
33
+ assert_select "label[for=foo]", 1, "No label was found"
34
+ assert_select "select[name=?]", "filter[foo]", 1, "No select found with name foo" do
35
+ assert_select "option", 3
36
+ end
37
+ end
38
+
39
+ def test_filter_field_as_multiselect
40
+ @output_buffer = filter_form url: "/" do |f|
41
+ f.filter_field :foo, as: :multiselect, collection: -> { %w(Foo Bar) }
42
+ end
43
+
44
+ assert_select "label[for=foo]", 1, "No label was found"
45
+ assert_select "select[name=?]", "filter[foo][]", 1, "No select found with name foo" do
46
+ assert_select "option", 3
47
+ end
48
+ assert_select "input[type=hidden][name=?]", "filter[foo][]", 0
23
49
  end
24
50
  end
25
51
  end
@@ -31,7 +31,7 @@ module Godmin
31
31
  end
32
32
 
33
33
  def test_batch_action_map_with_custom_options
34
- expected_batch_action_map = { only: :unpublished, except: :published, confirm: true }
34
+ expected_batch_action_map = { only: [:unpublished], except: [:published], confirm: true }
35
35
  assert_equal expected_batch_action_map, @article_service.batch_action_map[:publish]
36
36
  end
37
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: godmin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Ljungblad
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-02-02 00:00:00.000000000 Z
13
+ date: 2016-07-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bcrypt
@@ -18,42 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 3.1.7
21
+ version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 3.1.7
28
+ version: '3.1'
29
29
  - !ruby/object:Gem::Dependency
30
- name: bootstrap-sass
30
+ name: bootstrap_form
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: 3.3.3
35
+ version: '2.4'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: 3.3.3
42
+ version: '2.4'
43
43
  - !ruby/object:Gem::Dependency
44
- name: bootstrap_form
44
+ name: bootstrap-sass
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 2.2.0
49
+ version: '3.3'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 2.2.0
56
+ version: '3.3'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: coffee-rails
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '4.0'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '4.2'
66
+ version: '6.0'
67
67
  type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
@@ -73,21 +73,21 @@ dependencies:
73
73
  version: '4.0'
74
74
  - - "<"
75
75
  - !ruby/object:Gem::Version
76
- version: '4.2'
76
+ version: '6.0'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: csv_builder
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 2.1.1
83
+ version: '2.1'
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 2.1.1
90
+ version: '2.1'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: jquery-rails
93
93
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +95,9 @@ dependencies:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '3.0'
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: '5.0'
98
101
  type: :runtime
99
102
  prerelease: false
100
103
  version_requirements: !ruby/object:Gem::Requirement
@@ -102,34 +105,43 @@ dependencies:
102
105
  - - ">="
103
106
  - !ruby/object:Gem::Version
104
107
  version: '3.0'
108
+ - - "<"
109
+ - !ruby/object:Gem::Version
110
+ version: '5.0'
105
111
  - !ruby/object:Gem::Dependency
106
112
  name: momentjs-rails
107
113
  requirement: !ruby/object:Gem::Requirement
108
114
  requirements:
109
- - - ">="
115
+ - - "~>"
110
116
  - !ruby/object:Gem::Version
111
- version: 2.8.1
117
+ version: '2.8'
112
118
  type: :runtime
113
119
  prerelease: false
114
120
  version_requirements: !ruby/object:Gem::Requirement
115
121
  requirements:
116
- - - ">="
122
+ - - "~>"
117
123
  - !ruby/object:Gem::Version
118
- version: 2.8.1
124
+ version: '2.8'
119
125
  - !ruby/object:Gem::Dependency
120
126
  name: rails
121
127
  requirement: !ruby/object:Gem::Requirement
122
128
  requirements:
123
- - - "~>"
129
+ - - ">="
124
130
  - !ruby/object:Gem::Version
125
131
  version: '4.0'
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: '6.0'
126
135
  type: :runtime
127
136
  prerelease: false
128
137
  version_requirements: !ruby/object:Gem::Requirement
129
138
  requirements:
130
- - - "~>"
139
+ - - ">="
131
140
  - !ruby/object:Gem::Version
132
141
  version: '4.0'
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: '6.0'
133
145
  - !ruby/object:Gem::Dependency
134
146
  name: sass-rails
135
147
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +149,9 @@ dependencies:
137
149
  - - ">="
138
150
  - !ruby/object:Gem::Version
139
151
  version: '4.0'
152
+ - - "<"
153
+ - !ruby/object:Gem::Version
154
+ version: '6.0'
140
155
  type: :runtime
141
156
  prerelease: false
142
157
  version_requirements: !ruby/object:Gem::Requirement
@@ -144,119 +159,137 @@ dependencies:
144
159
  - - ">="
145
160
  - !ruby/object:Gem::Version
146
161
  version: '4.0'
162
+ - - "<"
163
+ - !ruby/object:Gem::Version
164
+ version: '6.0'
147
165
  - !ruby/object:Gem::Dependency
148
166
  name: selectize-rails
149
167
  requirement: !ruby/object:Gem::Requirement
150
168
  requirements:
151
169
  - - "~>"
152
170
  - !ruby/object:Gem::Version
153
- version: 0.12.0
171
+ version: '0.12'
154
172
  type: :runtime
155
173
  prerelease: false
156
174
  version_requirements: !ruby/object:Gem::Requirement
157
175
  requirements:
158
176
  - - "~>"
159
177
  - !ruby/object:Gem::Version
160
- version: 0.12.0
178
+ version: '0.12'
179
+ - !ruby/object:Gem::Dependency
180
+ name: appraisal
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '2.1'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '2.1'
161
193
  - !ruby/object:Gem::Dependency
162
194
  name: capybara
163
195
  requirement: !ruby/object:Gem::Requirement
164
196
  requirements:
165
- - - ">="
197
+ - - "~>"
166
198
  - !ruby/object:Gem::Version
167
- version: '0'
199
+ version: '2.4'
168
200
  type: :development
169
201
  prerelease: false
170
202
  version_requirements: !ruby/object:Gem::Requirement
171
203
  requirements:
172
- - - ">="
204
+ - - "~>"
173
205
  - !ruby/object:Gem::Version
174
- version: '0'
206
+ version: '2.4'
175
207
  - !ruby/object:Gem::Dependency
176
208
  name: m
177
209
  requirement: !ruby/object:Gem::Requirement
178
210
  requirements:
179
- - - ">="
211
+ - - "~>"
180
212
  - !ruby/object:Gem::Version
181
- version: '0'
213
+ version: '1.3'
182
214
  type: :development
183
215
  prerelease: false
184
216
  version_requirements: !ruby/object:Gem::Requirement
185
217
  requirements:
186
- - - ">="
218
+ - - "~>"
187
219
  - !ruby/object:Gem::Version
188
- version: '0'
220
+ version: '1.3'
189
221
  - !ruby/object:Gem::Dependency
190
222
  name: minitest-reporters
191
223
  requirement: !ruby/object:Gem::Requirement
192
224
  requirements:
193
- - - ">="
225
+ - - "~>"
194
226
  - !ruby/object:Gem::Version
195
- version: '0'
227
+ version: '1.0'
196
228
  type: :development
197
229
  prerelease: false
198
230
  version_requirements: !ruby/object:Gem::Requirement
199
231
  requirements:
200
- - - ">="
232
+ - - "~>"
201
233
  - !ruby/object:Gem::Version
202
- version: '0'
234
+ version: '1.0'
203
235
  - !ruby/object:Gem::Dependency
204
236
  name: minitest
205
237
  requirement: !ruby/object:Gem::Requirement
206
238
  requirements:
207
- - - ">="
239
+ - - "~>"
208
240
  - !ruby/object:Gem::Version
209
- version: '0'
241
+ version: '5.5'
210
242
  type: :development
211
243
  prerelease: false
212
244
  version_requirements: !ruby/object:Gem::Requirement
213
245
  requirements:
214
- - - ">="
246
+ - - "~>"
215
247
  - !ruby/object:Gem::Version
216
- version: '0'
248
+ version: '5.5'
217
249
  - !ruby/object:Gem::Dependency
218
250
  name: poltergeist
219
251
  requirement: !ruby/object:Gem::Requirement
220
252
  requirements:
221
- - - ">="
253
+ - - "~>"
222
254
  - !ruby/object:Gem::Version
223
- version: '0'
255
+ version: '1.7'
224
256
  type: :development
225
257
  prerelease: false
226
258
  version_requirements: !ruby/object:Gem::Requirement
227
259
  requirements:
228
- - - ">="
260
+ - - "~>"
229
261
  - !ruby/object:Gem::Version
230
- version: '0'
262
+ version: '1.7'
231
263
  - !ruby/object:Gem::Dependency
232
264
  name: pry
233
265
  requirement: !ruby/object:Gem::Requirement
234
266
  requirements:
235
- - - ">="
267
+ - - "~>"
236
268
  - !ruby/object:Gem::Version
237
- version: '0'
269
+ version: '0.10'
238
270
  type: :development
239
271
  prerelease: false
240
272
  version_requirements: !ruby/object:Gem::Requirement
241
273
  requirements:
242
- - - ">="
274
+ - - "~>"
243
275
  - !ruby/object:Gem::Version
244
- version: '0'
276
+ version: '0.10'
245
277
  - !ruby/object:Gem::Dependency
246
278
  name: sqlite3
247
279
  requirement: !ruby/object:Gem::Requirement
248
280
  requirements:
249
- - - ">="
281
+ - - "~>"
250
282
  - !ruby/object:Gem::Version
251
- version: '0'
283
+ version: '1.3'
252
284
  type: :development
253
285
  prerelease: false
254
286
  version_requirements: !ruby/object:Gem::Requirement
255
287
  requirements:
256
- - - ">="
288
+ - - "~>"
257
289
  - !ruby/object:Gem::Version
258
- version: '0'
259
- description: Godmin is an admin framework for Rails 4+
290
+ version: '1.3'
291
+ description: Godmin is an admin framework for Rails 4+. Use it to build dedicated
292
+ admin sections for your apps, or stand alone admin apps such as internal tools.
260
293
  email:
261
294
  - info@varvet.se
262
295
  executables: []
@@ -267,6 +300,7 @@ files:
267
300
  - ".gitignore"
268
301
  - ".rubocop.yml"
269
302
  - ".travis.yml"
303
+ - Appraisals
270
304
  - CHANGELOG.md
271
305
  - CODE_OF_CONDUCT.md
272
306
  - Gemfile
@@ -311,6 +345,8 @@ files:
311
345
  - config/locales/pt-BR.yml
312
346
  - config/locales/sv.yml
313
347
  - config/routes.rb
348
+ - gemfiles/rails_4.gemfile
349
+ - gemfiles/rails_5.gemfile
314
350
  - godmin.gemspec
315
351
  - lib/generators/godmin/authentication/authentication_generator.rb
316
352
  - lib/generators/godmin/authentication/templates/sessions_controller.rb
@@ -354,13 +390,11 @@ files:
354
390
  - screenshot.png
355
391
  - template.rb
356
392
  - test/dummy/Rakefile
357
- - test/dummy/admin/Rakefile
358
393
  - test/dummy/admin/admin.gemspec
359
394
  - test/dummy/admin/app/assets/javascripts/admin/application.js
360
395
  - test/dummy/admin/app/assets/stylesheets/admin/application.css
361
396
  - test/dummy/admin/app/controllers/admin/application_controller.rb
362
397
  - test/dummy/admin/app/controllers/admin/articles_controller.rb
363
- - test/dummy/admin/app/helpers/admin/application_helper.rb
364
398
  - test/dummy/admin/app/services/admin/article_service.rb
365
399
  - test/dummy/admin/app/views/admin/articles/.keep
366
400
  - test/dummy/admin/app/views/admin/articles/columns/.keep
@@ -380,13 +414,10 @@ files:
380
414
  - test/dummy/app/controllers/articles_controller.rb
381
415
  - test/dummy/app/controllers/authenticated_articles_controller.rb
382
416
  - test/dummy/app/controllers/authorized_articles_controller.rb
383
- - test/dummy/app/controllers/concerns/.keep
384
417
  - test/dummy/app/controllers/sessions_controller.rb
385
- - test/dummy/app/helpers/application_helper.rb
386
418
  - test/dummy/app/models/.keep
387
419
  - test/dummy/app/models/admin_user.rb
388
420
  - test/dummy/app/models/article.rb
389
- - test/dummy/app/models/concerns/.keep
390
421
  - test/dummy/app/policies/article_policy.rb
391
422
  - test/dummy/app/services/article_service.rb
392
423
  - test/dummy/app/views/articles/.keep
@@ -471,19 +502,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
471
502
  version: '0'
472
503
  requirements: []
473
504
  rubyforge_project:
474
- rubygems_version: 2.2.3
505
+ rubygems_version: 2.4.5
475
506
  signing_key:
476
507
  specification_version: 4
477
508
  summary: Godmin is an admin framework for Rails 4+
478
509
  test_files:
479
510
  - test/dummy/Rakefile
480
- - test/dummy/admin/Rakefile
481
511
  - test/dummy/admin/admin.gemspec
482
512
  - test/dummy/admin/app/assets/javascripts/admin/application.js
483
513
  - test/dummy/admin/app/assets/stylesheets/admin/application.css
484
514
  - test/dummy/admin/app/controllers/admin/application_controller.rb
485
515
  - test/dummy/admin/app/controllers/admin/articles_controller.rb
486
- - test/dummy/admin/app/helpers/admin/application_helper.rb
487
516
  - test/dummy/admin/app/services/admin/article_service.rb
488
517
  - test/dummy/admin/app/views/admin/articles/.keep
489
518
  - test/dummy/admin/app/views/admin/articles/columns/.keep
@@ -503,13 +532,10 @@ test_files:
503
532
  - test/dummy/app/controllers/articles_controller.rb
504
533
  - test/dummy/app/controllers/authenticated_articles_controller.rb
505
534
  - test/dummy/app/controllers/authorized_articles_controller.rb
506
- - test/dummy/app/controllers/concerns/.keep
507
535
  - test/dummy/app/controllers/sessions_controller.rb
508
- - test/dummy/app/helpers/application_helper.rb
509
536
  - test/dummy/app/models/.keep
510
537
  - test/dummy/app/models/admin_user.rb
511
538
  - test/dummy/app/models/article.rb
512
- - test/dummy/app/models/concerns/.keep
513
539
  - test/dummy/app/policies/article_policy.rb
514
540
  - test/dummy/app/services/article_service.rb
515
541
  - test/dummy/app/views/articles/.keep
@@ -572,4 +598,3 @@ test_files:
572
598
  - test/lib/godmin/resources/resource_service/scopes_test.rb
573
599
  - test/lib/godmin/resources/resource_service_test.rb
574
600
  - test/test_helper.rb
575
- has_rdoc: