godmin 1.2.0 → 1.3.0

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.
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: