glib-web 0.4.10 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +5 -5
  2. data/app/controllers/concerns/application/json/libs.rb +0 -0
  3. data/app/controllers/concerns/application/json/transformation.rb +0 -0
  4. data/app/controllers/concerns/application/json/ui.rb +0 -0
  5. data/app/controllers/concerns/application/json/validation.rb +0 -0
  6. data/app/controllers/concerns/glib/auth/policy.rb +0 -0
  7. data/app/controllers/concerns/glib/json/libs.rb +4 -0
  8. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +3 -0
  9. data/app/controllers/concerns/glib/json/traversal.rb +0 -4
  10. data/app/controllers/glib/home_controller.rb +0 -0
  11. data/app/helpers/glib/dynamic_texts_helper.rb +3 -2
  12. data/app/helpers/glib/json_ui/abstract_builder.rb +0 -0
  13. data/app/helpers/glib/json_ui/action_builder.rb +0 -0
  14. data/app/helpers/glib/json_ui/list_builders.rb +0 -0
  15. data/app/helpers/glib/json_ui/menu_builder.rb +0 -0
  16. data/app/helpers/glib/json_ui/page_helper.rb +17 -18
  17. data/app/helpers/glib/json_ui/response_helper.rb +0 -0
  18. data/app/helpers/glib/json_ui/split_builders.rb +0 -0
  19. data/app/helpers/glib/json_ui/styling_helper.rb +0 -0
  20. data/app/helpers/glib/json_ui/table_builders.rb +0 -0
  21. data/app/helpers/glib/json_ui/view_builder.rb +0 -0
  22. data/app/helpers/glib/json_ui/view_builder/banners.rb +0 -0
  23. data/app/helpers/glib/json_ui/view_builder/fields.rb +0 -0
  24. data/app/helpers/glib/json_ui/view_builder/panels.rb +0 -0
  25. data/app/models/glib/active_storage/attachment.rb +0 -0
  26. data/app/models/glib/active_storage/blob.rb +0 -0
  27. data/app/models/glib/dynamic_text_record.rb +0 -0
  28. data/app/models/glib/text.rb +0 -0
  29. data/app/policies/glib/application_policy.rb +148 -148
  30. data/app/views/app/views/json_ui/vue/renderer.html.erb +0 -0
  31. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +0 -0
  32. data/app/views/json_ui/garage/actions/index.json.jbuilder +0 -0
  33. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +0 -0
  34. data/app/views/json_ui/garage/forms/basic.json.jbuilder +0 -0
  35. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
  36. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +0 -0
  37. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +0 -0
  38. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
  39. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +0 -0
  40. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
  41. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
  42. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +0 -0
  43. data/app/views/json_ui/garage/forms/index.json.jbuilder +0 -0
  44. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +0 -0
  45. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +0 -0
  46. data/app/views/json_ui/garage/forms/selects.json.jbuilder +0 -0
  47. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
  48. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
  49. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
  50. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
  51. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +0 -0
  52. data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
  53. data/app/views/json_ui/garage/home/index.json.jbuilder +0 -0
  54. data/app/views/json_ui/garage/lists/_infinite_scroll_section.json.jbuilder +0 -0
  55. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +0 -0
  56. data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
  57. data/app/views/json_ui/garage/lists/index.json.jbuilder +0 -0
  58. data/app/views/json_ui/garage/lists/infinite_scroll.json.jbuilder +0 -0
  59. data/app/views/json_ui/garage/lists/templating.json.jbuilder +0 -0
  60. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
  61. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
  62. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
  63. data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
  64. data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
  65. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +0 -0
  66. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +0 -0
  67. data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
  68. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +0 -0
  69. data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
  70. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +0 -0
  71. data/app/views/json_ui/garage/panels/index.json.jbuilder +0 -0
  72. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +0 -0
  73. data/app/views/json_ui/garage/panels/split.json.jbuilder +0 -0
  74. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +0 -0
  75. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
  76. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
  77. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
  78. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +0 -0
  79. data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
  80. data/app/views/json_ui/garage/views/banners.json.jbuilder +0 -0
  81. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
  82. data/app/views/json_ui/garage/views/carousels.json.jbuilder +0 -0
  83. data/app/views/json_ui/garage/views/charts.json.jbuilder +0 -0
  84. data/app/views/json_ui/garage/views/images.json.jbuilder +0 -0
  85. data/app/views/json_ui/garage/views/index.json.jbuilder +0 -0
  86. data/app/views/json_ui/garage/views/links.json.jbuilder +0 -0
  87. data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
  88. data/app/views/json_ui/garage/views/misc.json.jbuilder +0 -0
  89. data/app/views/json_ui/garage/views/texts.json.jbuilder +0 -0
  90. data/config/routes.rb +0 -0
  91. data/lib/generators/glib/install_generator.rb +0 -0
  92. data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
  93. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
  94. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
  95. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
  96. data/lib/generators/templates/database.yml +0 -0
  97. data/lib/generators/templates/dynamic_text.rb +0 -0
  98. data/lib/glib-web.rb +0 -0
  99. data/lib/glib/engine.rb +0 -0
  100. data/lib/glib/json_crawler.rb +0 -0
  101. data/lib/glib/json_crawler/action_crawler.rb +0 -0
  102. data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
  103. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
  104. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
  105. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
  106. data/lib/glib/json_crawler/http.rb +0 -0
  107. data/lib/glib/json_crawler/router.rb +0 -0
  108. data/lib/glib/value.rb +0 -0
  109. data/lib/glib/version.rb +0 -0
  110. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: dbaa7e89ae8707efe39b3f950d4e4482cd4e651a7a48184f1600c6e948aa080f
4
- data.tar.gz: 734f9417b01c0e82d8eb2e2a96be0c778b0b6e28a042319e4a9167437b110032
2
+ SHA1:
3
+ metadata.gz: 8dc0677c6f29166100884d7d415d3f85a5caaef4
4
+ data.tar.gz: 1d9ab884a48db31bc4957d86b43370938bc5fefc
5
5
  SHA512:
6
- metadata.gz: f961b9bd3c3785356b4cd297340f8a3c77d5357840e34743597643f0af41bc5f6ad27376c2af80e511914da720ad15beaa697c002e93103833f38f352b91a600
7
- data.tar.gz: c95e65b6b889457228bd60c99015cac7d134e54008c9727fd7f352a5a0fdf401396f13f26c2a93add3eafdde82bfd32eceb167b5ecd99a84cc47c09ab95022b3
6
+ metadata.gz: 5f890e2878ee7d3ac12030008b81c703e3a2398b4ed22b829294ca33d28391a01e656fd7d5ae5362e81e50aeeaae80ab4ff2ea36bb4c101a85c83c77062c50d3
7
+ data.tar.gz: 3bb000732b8dcc373ee166cdd91bc0d6ef601ab9d74adc427d345e7daad9ca2a840026367059754178a4c2e1c22bda7ae9aa2bcdd09042ab96eced346f53334c
File without changes
File without changes
File without changes
@@ -36,6 +36,10 @@ module Glib::Json::Libs
36
36
  json_ui_app_device_os == 'web'
37
37
  end
38
38
 
39
+ def json_ui_render(template, args = {})
40
+ JSON.parse(render_to_string(template, locals: args))
41
+ end
42
+
39
43
 
40
44
 
41
45
  module ClassMethods
@@ -1,3 +1,4 @@
1
+ # TODO: Remove old DynamicText
1
2
  module Glib::Json::NewDynamicText
2
3
  def __json_traversal_register_dynamic_text
3
4
  @__specs = {}
@@ -30,6 +31,7 @@ module Glib::Json::NewDynamicText
30
31
  examples_translations = {
31
32
  'home.json_ui_garage.hello' => 'Hello {{name}}',
32
33
  'home.json_ui_garage.greeting' => 'Good day!',
34
+ 'home.json_ui_garage.greeting_with_image' => 'Good day! (with image)',
33
35
  }
34
36
 
35
37
  translated_texts = {}
@@ -105,6 +107,7 @@ module Glib::Json::NewDynamicText
105
107
  }
106
108
  end
107
109
 
110
+ # TODO: Reuse method from DynamicTextsHelper
108
111
  def image_server_url(blob_key, w: 100, h: 100)
109
112
  return unless blob_key.present?
110
113
 
@@ -64,10 +64,6 @@ module Glib::Json::Traversal
64
64
  # Generic view children
65
65
  traverse_multiple view['childViews'], block
66
66
 
67
- # panels/split
68
- # crawl_multiple view['leftViews'], block
69
- # crawl_multiple view['rightViews'], block
70
-
71
67
  # Split panel
72
68
  traverse_vertical_content view['left'], block
73
69
  traverse_vertical_content view['center'], block
File without changes
@@ -17,7 +17,7 @@ module Glib
17
17
  if text_object.images.attached?
18
18
  content = content.gsub(/\{\{image(\d)\}\}/) {
19
19
  if image = text_object.images[$1.to_i - 1]
20
- image_server_url(image.blob.key)
20
+ dt_image_server_url(image.blob.key)
21
21
  else
22
22
  "{{image#{$1}}}"
23
23
  end
@@ -39,9 +39,10 @@ module Glib
39
39
  }.merge(args)
40
40
  end
41
41
 
42
- def image_server_url(blob_key, w: 100, h: 100)
42
+ def dt_image_server_url(blob_key, w: 100, h: 100)
43
43
  return unless blob_key.present?
44
44
 
45
+ # TODO: This should probably be set as a parameter for json_libs
45
46
  uri = URI::HTTPS.build(
46
47
  host: 'imageserver-demo.herokuapp.com',
47
48
  path: "/image/#{ENV['AWS_S3_BUCKET']}/#{blob_key}",
File without changes
File without changes
File without changes
File without changes
@@ -2,7 +2,7 @@ module Glib
2
2
  module JsonUi
3
3
  module PageHelper
4
4
  def json_ui_garage_url(options = {})
5
- return Glib::Web::Engine.routes.url_helpers.json_ui_garage_url(options.merge(
5
+ Glib::Web::Engine.routes.url_helpers.json_ui_garage_url(options.merge(
6
6
  protocol: request.protocol,
7
7
  host: request.host,
8
8
  port: request.port,
@@ -10,10 +10,11 @@ module Glib
10
10
  )
11
11
  end
12
12
 
13
- def json_ui_page json, &block
14
- page = Page.new(json, self)
15
- block&.call page
16
- page
13
+ # TODO: Remove the block
14
+ def json_ui_page(json, &block)
15
+ @__json_ui_page ||= Page.new(json, self)
16
+ block&.call @__json_ui_page
17
+ @__json_ui_page
17
18
  end
18
19
 
19
20
  class Page
@@ -23,7 +24,7 @@ module Glib
23
24
  # See Panels::Form
24
25
  attr_accessor :current_form
25
26
 
26
- def initialize json, context
27
+ def initialize(json, context)
27
28
  @json = json
28
29
  @context = context
29
30
 
@@ -36,7 +37,7 @@ module Glib
36
37
  @table_section_builder = TableBuilders::Section.new(json, self, TableBuilders::Template.new(json, self))
37
38
  @split_content_builder = SplitBuilders::Content.new(json, self, @view_builder)
38
39
  end
39
-
40
+
40
41
  def rightNavButtons
41
42
  json.rightNavButtons do
42
43
  yield @menu_builder
@@ -48,18 +49,16 @@ module Glib
48
49
  end
49
50
 
50
51
  def leftDrawer(options = {})
51
- # json.leftDrawer do
52
- # json.title options[:title]
53
- # json.items do
54
- # yield @menu_builder
55
- # end
56
- # end
57
-
58
52
  json.leftDrawer do
53
+ [:styleClasses].each do |name|
54
+ if (value = options.delete(name))
55
+ json.set! name, value
56
+ end
57
+ end
59
58
  options[:content]&.call drawer_content_builder
60
59
  end
61
60
  end
62
-
61
+
63
62
  def navBar(options = {})
64
63
  json.navBar do
65
64
  json.rightItems do
@@ -85,7 +84,7 @@ module Glib
85
84
  vertical_content(options)
86
85
  end
87
86
  end
88
-
87
+
89
88
  def list(options = {})
90
89
  json.body do
91
90
  json.childViews do
@@ -93,7 +92,7 @@ module Glib
93
92
  end
94
93
  end
95
94
  end
96
-
95
+
97
96
  def table(options = {})
98
97
  json.body do
99
98
  json.childViews do
@@ -101,7 +100,7 @@ module Glib
101
100
  end
102
101
  end
103
102
  end
104
-
103
+
105
104
  def scroll(options = {})
106
105
  json.body do
107
106
  json.childViews do
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,148 +1,148 @@
1
- # The main purpose of this is for security. If it is important to display useful error message or to provide a "banana", then
2
- # it's better to perform an explicit check (e.g. as a validation in the model or using a before_action).
3
- module Glib
4
- class ApplicationPolicy
5
- attr_reader :user, :record, :controller, :request, :params
6
-
7
- private
8
- def initialize(user, record, controller, request, params)
9
- @user = user
10
- @record = record
11
- @controller = controller
12
- @request = request
13
- # Don't get params from request because we might not have a proper request object. This might execute in Sidekiq.
14
- # See Presenter::Model::inside_mock_controller()
15
- @params = params
16
- end
17
-
18
- class << self
19
- attr_reader :catch_all
20
-
21
- # This is to define the authorization logic for an action (or a group of actions). It's different from controller's
22
- # authorize().
23
- private # Used by child
24
- def authorize(*actions, &block)
25
- actions.each do |action|
26
- if action == :manage
27
- # Serve as a catch-all to all actions that have not been specified in the policy.
28
- @catch_all = block
29
- else
30
- method_name = "#{action}?"
31
- # Avoid accidentally redefining multiple times from child policies. But it's okay if the child policy
32
- # wants to override the parent's authorization method.
33
- raise "Action authorization has been declared: #{action}" if instance_methods(false).include?(method_name.to_sym)
34
- define_method method_name, &block
35
- end
36
- end
37
- end
38
- end
39
-
40
- private
41
- def catch_all
42
- self.class.catch_all
43
- end
44
-
45
- private
46
- # To ensure the block is called on the policy's instance instead class.
47
- def call_catch_all
48
- instance_eval(&catch_all)
49
- end
50
-
51
- authorize :index do
52
- # We need this line because in `index` action, this method will be called instead of method_missing().
53
- # Having this line ensures that the catch_all behaviour works according to the priority below:
54
- # - child_policy#index?
55
- # - child_policy#manage? -- catch_all
56
- # - application_policy@index?
57
- return call_catch_all if catch_all
58
-
59
- false
60
- end
61
-
62
- authorize :show do
63
- return call_catch_all if catch_all
64
-
65
- scope.where(id: record.id).exists?
66
- end
67
-
68
- authorize :create do
69
- return call_catch_all if catch_all
70
-
71
- false
72
- end
73
-
74
- authorize :new do
75
- return call_catch_all if catch_all
76
-
77
- create?
78
- end
79
-
80
- authorize :update do
81
- return call_catch_all if catch_all
82
-
83
- false
84
- end
85
-
86
- authorize :edit do
87
- return call_catch_all if catch_all
88
-
89
- update?
90
- end
91
-
92
- authorize :destroy do
93
- return call_catch_all if catch_all
94
-
95
- false
96
- end
97
-
98
- public
99
- def method_missing(name, *args, &block)
100
- if name.to_s.end_with?('?') && catch_all
101
- call_catch_all
102
- else
103
- super
104
- end
105
- end
106
-
107
- public
108
- def scope
109
- Pundit.policy_scope!(user, record.class)
110
- end
111
-
112
- private # Used by child
113
- def public?
114
- true
115
- end
116
-
117
- # # TODO: Revise because it seems there is no justification for allowing owner to see any of the deleted entities, which include User, Guild, and Post
118
- # private # Used by child
119
- # def not_deleted_unless_owner_or_moderator?(&block)
120
- # block ||= lambda { |unused_arg| @user.moderator? }
121
- # !@record.deleted? || (@user && (@user.id == @record.user_owner_id || block.call(@record)))
122
- # end
123
-
124
- # private # Used by child
125
- # def not_deleted_unless_moderator?(&block)
126
- # block ||= lambda { |unused_arg| @user.moderator? }
127
- # !@record.deleted? || (@user && block.call(@record))
128
- # end
129
-
130
- public
131
- def self.args_builder
132
- Proc.new { |controller| [] }
133
- end
134
-
135
- class Scope
136
- attr_reader :user, :scope
137
-
138
- def initialize(user, scope)
139
- @user = user
140
- @scope = scope
141
- end
142
-
143
- def resolve
144
- scope
145
- end
146
- end
147
- end
148
- end
1
+ # The main purpose of this is for security. If it is important to display useful error message or to provide a "banana", then
2
+ # it's better to perform an explicit check (e.g. as a validation in the model or using a before_action).
3
+ module Glib
4
+ class ApplicationPolicy
5
+ attr_reader :user, :record, :controller, :request, :params
6
+
7
+ private
8
+ def initialize(user, record, controller, request, params)
9
+ @user = user
10
+ @record = record
11
+ @controller = controller
12
+ @request = request
13
+ # Don't get params from request because we might not have a proper request object. This might execute in Sidekiq.
14
+ # See Presenter::Model::inside_mock_controller()
15
+ @params = params
16
+ end
17
+
18
+ class << self
19
+ attr_reader :catch_all
20
+
21
+ # This is to define the authorization logic for an action (or a group of actions). It's different from controller's
22
+ # authorize().
23
+ private # Used by child
24
+ def authorize(*actions, &block)
25
+ actions.each do |action|
26
+ if action == :manage
27
+ # Serve as a catch-all to all actions that have not been specified in the policy.
28
+ @catch_all = block
29
+ else
30
+ method_name = "#{action}?"
31
+ # Avoid accidentally redefining multiple times from child policies. But it's okay if the child policy
32
+ # wants to override the parent's authorization method.
33
+ raise "Action authorization has been declared: #{action}" if instance_methods(false).include?(method_name.to_sym)
34
+ define_method method_name, &block
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ private
41
+ def catch_all
42
+ self.class.catch_all
43
+ end
44
+
45
+ private
46
+ # To ensure the block is called on the policy's instance instead class.
47
+ def call_catch_all
48
+ instance_eval(&catch_all)
49
+ end
50
+
51
+ authorize :index do
52
+ # We need this line because in `index` action, this method will be called instead of method_missing().
53
+ # Having this line ensures that the catch_all behaviour works according to the priority below:
54
+ # - child_policy#index?
55
+ # - child_policy#manage? -- catch_all
56
+ # - application_policy@index?
57
+ return call_catch_all if catch_all
58
+
59
+ false
60
+ end
61
+
62
+ authorize :show do
63
+ return call_catch_all if catch_all
64
+
65
+ scope.where(id: record.id).exists?
66
+ end
67
+
68
+ authorize :create do
69
+ return call_catch_all if catch_all
70
+
71
+ false
72
+ end
73
+
74
+ authorize :new do
75
+ return call_catch_all if catch_all
76
+
77
+ create?
78
+ end
79
+
80
+ authorize :update do
81
+ return call_catch_all if catch_all
82
+
83
+ false
84
+ end
85
+
86
+ authorize :edit do
87
+ return call_catch_all if catch_all
88
+
89
+ update?
90
+ end
91
+
92
+ authorize :destroy do
93
+ return call_catch_all if catch_all
94
+
95
+ false
96
+ end
97
+
98
+ public
99
+ def method_missing(name, *args, &block)
100
+ if name.to_s.end_with?('?') && catch_all
101
+ call_catch_all
102
+ else
103
+ super
104
+ end
105
+ end
106
+
107
+ public
108
+ def scope
109
+ Pundit.policy_scope!(user, record.class)
110
+ end
111
+
112
+ private # Used by child
113
+ def public?
114
+ true
115
+ end
116
+
117
+ # # TODO: Revise because it seems there is no justification for allowing owner to see any of the deleted entities, which include User, Guild, and Post
118
+ # private # Used by child
119
+ # def not_deleted_unless_owner_or_moderator?(&block)
120
+ # block ||= lambda { |unused_arg| @user.moderator? }
121
+ # !@record.deleted? || (@user && (@user.id == @record.user_owner_id || block.call(@record)))
122
+ # end
123
+
124
+ # private # Used by child
125
+ # def not_deleted_unless_moderator?(&block)
126
+ # block ||= lambda { |unused_arg| @user.moderator? }
127
+ # !@record.deleted? || (@user && block.call(@record))
128
+ # end
129
+
130
+ public
131
+ def self.args_builder
132
+ Proc.new { |controller| [] }
133
+ end
134
+
135
+ class Scope
136
+ attr_reader :user, :scope
137
+
138
+ def initialize(user, scope)
139
+ @user = user
140
+ @scope = scope
141
+ end
142
+
143
+ def resolve
144
+ scope
145
+ end
146
+ end
147
+ end
148
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/config/routes.rb CHANGED
File without changes
File without changes
File without changes
File without changes
data/lib/glib-web.rb CHANGED
File without changes
data/lib/glib/engine.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/glib/value.rb CHANGED
File without changes
data/lib/glib/version.rb CHANGED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  version: '0'
202
202
  requirements: []
203
203
  rubyforge_project:
204
- rubygems_version: 2.7.6
204
+ rubygems_version: 2.6.8
205
205
  signing_key:
206
206
  specification_version: 4
207
207
  summary: ''