effective_resources 0.7.10 → 0.7.11

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: e7c20435511222c5ce79dd666f0316afd80725d7
4
- data.tar.gz: 70f5d6058d90bc1a1d0e0464c33b0169066769ba
3
+ metadata.gz: 2e44162d953de99661aac288c2e8669aa08a5087
4
+ data.tar.gz: 596ef36a05b5da9e203b63ca8d7238f07adc8d7f
5
5
  SHA512:
6
- metadata.gz: 1f42d5f5d8bc2818e92e7f242546bdb795a7a62a9d780825e775a49876dc42a515da003e00c9391a22cc72eb5fd404a3ec91d5de2582e86196ab143d9e09fe35
7
- data.tar.gz: a5dfe04ab6f0cee8360208feacba38c4c202160ee53efbd5fbaf5564bff6612cfa31a3ac089f47eed9a3a0b8e3c9f589989721f39cde23858daba92bbe33e98d
6
+ metadata.gz: 43c8affec3f9c374ce8b360ca99af890f4ae15396f2fa0c9a4a7129ac707056e56b21a121dbdea040721f1c5519821fe003b49c13570c102ca7dd476b16fffd3
7
+ data.tar.gz: c349c0453fb2839f3c38ccad102dc247cdac31dae701c1ed3c8359a02c13d784e3ce2d42b995bf62802d2eaca76003dcbe84668319390b1b7e65068b83b21ab7
@@ -37,7 +37,7 @@ module EffectiveResourcesHelper
37
37
  end
38
38
 
39
39
  # I think this is a bug. I can't override default button class when passing my own class: variable. it merges them.
40
- if (btn_class = SimpleForm.button_class).present?
40
+ if defined?(SimpleForm) && (btn_class = SimpleForm.button_class).present?
41
41
  buttons = buttons.map { |button| button.sub(btn_class, '') }
42
42
  end
43
43
 
@@ -85,54 +85,7 @@ module EffectiveResourcesHelper
85
85
  ].compact.join
86
86
  end
87
87
 
88
- ### Icon Helpers for actions_column or elsewhere
89
- def show_icon_to(path, options = {})
90
- glyphicon_to('eye-open', path, {title: 'Show'}.merge(options))
91
- end
92
-
93
- def edit_icon_to(path, options = {})
94
- glyphicon_to('edit', path, {title: 'Edit'}.merge(options))
95
- end
96
-
97
- def destroy_icon_to(path, options = {})
98
- defaults = {title: 'Destroy', data: {method: :delete, confirm: 'Delete this item?'}}
99
- glyphicon_to('trash', path, defaults.merge(options))
100
- end
101
-
102
- def settings_icon_to(path, options = {})
103
- glyphicon_to('cog', path, {title: 'Settings'}.merge(options))
104
- end
105
-
106
- def ok_icon_to(path, options = {})
107
- glyphicon_to('ok', path, {title: 'OK'}.merge(options))
108
- end
109
-
110
- def approve_icon_to(path, options = {})
111
- glyphicon_to('ok', path, {title: 'Approve'}.merge(options))
112
- end
113
-
114
- def remove_icon_to(path, options = {})
115
- glyphicon_to('remove', path, {title: 'Remove'}.merge(options))
116
- end
117
-
118
- def glyphicon_tag(icon, options = {})
119
- if icon.to_s.start_with?('glyphicon-')
120
- content_tag(:span, '', {class: "glyphicon #{icon}"}.merge(options))
121
- else
122
- content_tag(:span, '', {class: "glyphicon glyphicon-#{icon}"}.merge(options))
123
- end
124
- end
125
-
126
- def glyphicon_to(icon, path, options = {})
127
- content_tag(:a, options.merge(href: path)) do
128
- glyphicon_tag(icon)
129
- end
130
- end
131
- alias_method :bootstrap_icon_to, :glyphicon_to
132
- alias_method :glyph_icon_to, :glyphicon_to
133
-
134
88
  ### Tableize attributes
135
-
136
89
  # This is used by effective_orders, effective_logging, effective_trash and effective_mergery
137
90
  def tableize_hash(obj, table: 'table', th: true, sub_table: 'table', sub_th: true, flatten: true)
138
91
  case obj
@@ -43,7 +43,7 @@ module Effective
43
43
  when :text ; :text
44
44
  when :time ; :time
45
45
  when FalseClass ; :boolean
46
- when Fixnum ; :integer
46
+ when (defined?(Integer) ? Integer : Fixnum) ; :integer
47
47
  when Float ; :decimal
48
48
  when NilClass ; :nil
49
49
  when String ; :string
@@ -22,31 +22,31 @@ module Effective
22
22
  case sql_type
23
23
  when :belongs_to
24
24
  relation
25
- .order("#{is_null(sql_column)} ASC")
25
+ .order(Arel.sql("#{is_null(sql_column)} ASC"))
26
26
  .order(order_by_associated_conditions(association, sort: sort, direction: direction, limit: limit))
27
27
  when :belongs_to_polymorphic
28
28
  relation
29
- .order("#{sql_column}_type #{sql_direction}")
30
- .order("#{sql_column}_id #{sql_direction}")
29
+ .order(Arel.sql("#{sql_column}_type #{sql_direction}"))
30
+ .order(Arel.sql("#{sql_column}_id #{sql_direction}"))
31
31
  when :has_and_belongs_to_many, :has_many, :has_one
32
32
  relation
33
33
  .order(order_by_associated_conditions(association, sort: sort, direction: direction, limit: limit))
34
- .order("#{sql_column(klass.primary_key)} #{sql_direction}")
34
+ .order(Arel.sql("#{sql_column(klass.primary_key)} #{sql_direction}"))
35
35
  when :effective_addresses
36
36
  relation
37
37
  .order(order_by_associated_conditions(associated(:addresses), sort: sort, direction: direction, limit: limit))
38
- .order("#{sql_column(klass.primary_key)} #{sql_direction}")
38
+ .order(Arel.sql("#{sql_column(klass.primary_key)} #{sql_direction}"))
39
39
  when :effective_roles
40
- relation.order("#{sql_column(:roles_mask)} #{sql_direction}")
40
+ relation.order(Arel.sql("#{sql_column(:roles_mask)} #{sql_direction}"))
41
41
  when :string, :text
42
42
  relation
43
- .order(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column}='' ASC, #{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s)
43
+ .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column}='' ASC, #{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
44
44
  when :time
45
45
  relation
46
- .order(("ISNULL(#{sql_column}), " if mysql?).to_s + "EXTRACT(hour from #{sql_column}) #{sql_direction}, EXTRACT(minute from #{sql_column}) #{sql_direction}" + (" NULLS LAST" if postgres?).to_s)
46
+ .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "EXTRACT(hour from #{sql_column}) #{sql_direction}, EXTRACT(minute from #{sql_column}) #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
47
47
  else
48
48
  relation
49
- .order(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s)
49
+ .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
50
50
  end
51
51
  end
52
52
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '0.7.10'.freeze
2
+ VERSION = '0.7.11'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 0.7.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-25 00:00:00.000000000 Z
11
+ date: 2018-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -37,7 +37,6 @@ files:
37
37
  - app/assets/javascripts/effective_resources/effective_ujs.js
38
38
  - app/controllers/concerns/effective/crud_controller.rb
39
39
  - app/controllers/concerns/effective/flash_messages.rb
40
- - app/helpers/effective_bootstrap3_helper.rb
41
40
  - app/helpers/effective_resources_helper.rb
42
41
  - app/models/effective/access_denied.rb
43
42
  - app/models/effective/attribute.rb
@@ -1,75 +0,0 @@
1
- module EffectiveBootstrap3Helper
2
-
3
- # An effective Bootstrap3 menu DSL
4
- # Automatically puts in the 'active' class based on request path
5
-
6
- # %ul.nav.navbar-nav.navbar-right
7
- # = nav_link_to 'Sign In', new_user_session_path
8
- # = nav_dropdown 'Settings' do
9
- # = nav_link_to 'Account Settings', user_settings_path
10
- # %li.divider
11
- # = nav_link_to 'Sign In', new_user_session_path, method: :delete
12
- def nav_link_to(label, path, opts = {})
13
- content_tag(:li, class: ('active' if request.fullpath.include?(path))) do
14
- link_to(label, path, opts)
15
- end
16
- end
17
-
18
- def nav_dropdown(label, link_class: [], list_class: [], &block)
19
- raise 'expected a block' unless block_given?
20
-
21
- content_tag(:li, class: 'dropdown') do
22
- content_tag(:a, class: 'dropdown-toggle', href: '#', 'data-toggle': 'dropdown', role: 'button', 'aria-haspopup': 'true', 'aria-expanded': 'false') do
23
- label.html_safe + content_tag(:span, '', class: 'caret')
24
- end + content_tag(:ul, class: 'dropdown-menu') { yield }
25
- end
26
- end
27
-
28
- # An effective Bootstrap3 tabpanel DSL
29
- # Inserts both the tablist and the tabpanel
30
-
31
- # = tabs do
32
- # = tab 'Imports' do
33
- # %p Imports
34
-
35
- # = tab 'Exports' do
36
- # %p Exports
37
-
38
- # If you pass active 'label' it will make that tab active. Otherwise first.
39
- def tabs(active: nil, panel: {}, list: {}, content: {}, &block)
40
- raise 'expected a block' unless block_given?
41
-
42
- @_tab_mode = :panel
43
- @_tab_active = (active || :first)
44
-
45
- content_tag(:div, {role: 'tabpanel'}.merge(panel)) do
46
- content_tag(:ul, {class: 'nav nav-tabs', role: 'tablist'}.merge(list)) { yield } # Yield to tab the first time
47
- end + content_tag(:div, {class: 'tab-content'}.merge(content)) do
48
- @_tab_mode = :content
49
- @_tab_active = (active || :first)
50
- yield # Yield tot ab the second time
51
- end
52
- end
53
-
54
- def tab(label, controls = nil, &block)
55
- controls ||= label.to_s.parameterize.gsub('_', '-')
56
- controls = controls[1..-1] if controls[0] == '#'
57
-
58
- active = (@_tab_active == :first || @_tab_active == label)
59
-
60
- @_tab_active = nil if @_tab_active == :first
61
-
62
- if @_tab_mode == :panel # Inserting the label into the tabpanel top
63
- content_tag(:li, role: 'presentation', class: ('active' if active)) do
64
- content_tag(:a, href: '#' + controls, 'aria-controls': controls, 'data-toggle': 'tab', role: 'tab') do
65
- label
66
- end
67
- end
68
- else # Inserting the content into the tab itself
69
- content_tag(:div, id: controls, class: "tab-pane#{' active' if active}", role: 'tabpanel') do
70
- yield
71
- end
72
- end
73
- end
74
-
75
- end