amber_component 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -1
  5. data/CONTRIBUTING.md +87 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +16 -91
  8. data/README.md +25 -42
  9. data/Rakefile +17 -1
  10. data/amber_component.gemspec +4 -2
  11. data/banner.png +0 -0
  12. data/docs/.bundle/config +2 -0
  13. data/docs/.gitignore +5 -0
  14. data/docs/404.html +25 -0
  15. data/docs/Gemfile +37 -0
  16. data/docs/Gemfile.lock +89 -0
  17. data/docs/README.md +19 -0
  18. data/docs/_config.yml +148 -0
  19. data/docs/_data/amber_component.yml +3 -0
  20. data/docs/_sass/_variables.scss +2 -0
  21. data/docs/_sass/color_schemes/amber_component.scss +11 -0
  22. data/docs/_sass/custom/custom.scss +60 -0
  23. data/docs/api/index.md +8 -0
  24. data/docs/assets/images/logo_wide.png +0 -0
  25. data/docs/changelog/index.md +8 -0
  26. data/docs/favicon.ico +0 -0
  27. data/docs/getting_started/index.md +8 -0
  28. data/docs/getting_started/installation.md +7 -0
  29. data/docs/getting_started/ruby_support.md +7 -0
  30. data/docs/getting_started/wireframes.md +7 -0
  31. data/docs/index.md +17 -0
  32. data/docs/introduction/basic_usage.md +7 -0
  33. data/docs/introduction/index.md +8 -0
  34. data/docs/introduction/why_amber_component.md +7 -0
  35. data/docs/resources/index.md +8 -0
  36. data/docs/styles/index.md +8 -0
  37. data/docs/styles/usage.md +7 -0
  38. data/docs/views/index.md +8 -0
  39. data/docs/views/usage.md +7 -0
  40. data/icon.png +0 -0
  41. data/lib/amber_component/assets.rb +59 -0
  42. data/lib/amber_component/base.rb +66 -434
  43. data/lib/amber_component/helpers/class_helper.rb +22 -0
  44. data/lib/amber_component/helpers/component_helper.rb +18 -0
  45. data/lib/amber_component/helpers/css_helper.rb +25 -0
  46. data/lib/amber_component/helpers.rb +11 -0
  47. data/lib/amber_component/railtie.rb +21 -0
  48. data/lib/amber_component/rendering.rb +53 -0
  49. data/lib/amber_component/template_handler/erb.rb +17 -0
  50. data/lib/amber_component/template_handler.rb +26 -0
  51. data/lib/amber_component/version.rb +1 -1
  52. data/lib/amber_component/views.rb +198 -0
  53. data/lib/amber_component.rb +6 -2
  54. data/lib/generators/amber_component/install_generator.rb +23 -0
  55. data/lib/generators/amber_component/templates/application_component.rb +13 -0
  56. data/lib/generators/amber_component_generator.rb +24 -0
  57. data/lib/generators/templates/component.rb.erb +9 -0
  58. data/lib/generators/templates/component_test.rb.erb +9 -0
  59. data/lib/generators/templates/style.css.erb +3 -0
  60. data/lib/generators/templates/view.html.erb +3 -0
  61. metadata +85 -19
  62. data/.kanbn/index.md +0 -23
  63. data/.kanbn/tasks/add-instance-variables-to-view-when-block-given-markdown.md +0 -9
  64. data/.kanbn/tasks/bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method.md +0 -9
  65. data/.kanbn/tasks/bind-scoped-css-to-head-of-doc.md +0 -10
  66. data/.kanbn/tasks/check-if-we-need-full-rails-gem-pack.md +0 -9
  67. data/.kanbn/tasks/simple-proto.md +0 -10
  68. data/.kanbn/tasks/verify-if-template-is-haml-or-erb.md +0 -9
  69. data/PLANS.md +0 -17
  70. data/lib/amber_component/helper.rb +0 -8
  71. data/lib/amber_component/style_injector.rb +0 -52
  72. data/sig/amber_components.rbs +0 -4
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'action_view'
4
+ require 'ostruct'
5
+
6
+ module ::AmberComponent
7
+ module TemplateHandler
8
+ # Handles rendering ERB with Rails-like syntax
9
+ class ERB < ::ActionView::Template::Handlers::ERB::Erubi
10
+ def initialize(input, properties = {})
11
+ properties[:bufvar] ||= "@output_buffer"
12
+ properties[:preamble] = "#{properties[:bufvar]}=#{::ActionView::OutputBuffer}.new;"
13
+ super
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ::AmberComponent
4
+ # Provides code which handles rendering different
5
+ # template languages.
6
+ module TemplateHandler
7
+ class << self
8
+ # @param context [AmberComponent::Base]
9
+ # @param content [String]
10
+ # @param type [Symbol, String]
11
+ # @param block [Proc, nil]
12
+ # @return [String]
13
+ def render_from_string(context, content, type, block = nil)
14
+ options = if type.to_sym == :erb
15
+ { engine_class: ERB }
16
+ else
17
+ {}
18
+ end
19
+
20
+ ::Tilt[type].new(options) { content }.render(context, &block)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ require_relative 'template_handler/erb'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ::AmberComponent
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  end
@@ -0,0 +1,198 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ::AmberComponent
4
+ # Provides methods concerning view registering and rendering.
5
+ module Views
6
+ # View types with built-in embedded Ruby
7
+ #
8
+ # @return [Set<Symbol>]
9
+ VIEW_TYPES_WITH_RUBY = ::Set[:erb, :haml, :slim].freeze
10
+ # @return [Set<Symbol>]
11
+ ALLOWED_VIEW_TYPES = ::Set[:erb, :haml, :slim, :html, :md, :markdown].freeze
12
+ # @return [Regexp]
13
+ VIEW_FILE_REGEXP = /^view\./.freeze
14
+
15
+ # Class methods for views.
16
+ module ClassMethods
17
+ # Register an inline view by returning a String from the passed block.
18
+ #
19
+ # Usage:
20
+ #
21
+ # view do
22
+ # <<~ERB
23
+ # <h1>
24
+ # Hello <%= @name %>
25
+ # </h1>
26
+ # ERB
27
+ # end
28
+ #
29
+ # or:
30
+ #
31
+ # view :haml do
32
+ # <<~HAML
33
+ # %h1
34
+ # Hello
35
+ # = @name
36
+ # HAML
37
+ # end
38
+ #
39
+ # @param type [Symbol]
40
+ # @return [void]
41
+ def view(type = :erb, &block)
42
+ @method_view = TypedContent.new(type: type, content: block)
43
+ end
44
+
45
+ # ERB/Haml/Slim view registered through the `view` method.
46
+ #
47
+ # @return [TypedContent]
48
+ attr_reader :method_view
49
+
50
+ # @return [String]
51
+ def view_path
52
+ asset_path view_file_name
53
+ end
54
+
55
+ # @return [String, nil]
56
+ def view_file_name
57
+ files = asset_file_names(VIEW_FILE_REGEXP)
58
+ raise MultipleViews, "More than one view file for `#{name}` found!" if files.length > 1
59
+
60
+ files.first
61
+ end
62
+
63
+ # @return [Symbol]
64
+ def view_type
65
+ (view_file_name.split('.')[1..].grep_v(/erb/).last || 'erb')&.to_sym
66
+ end
67
+ end
68
+
69
+ # Instance methods for views.
70
+ module InstanceMethods
71
+ protected
72
+
73
+ # @return [String]
74
+ def render_view(&block)
75
+ view_from_file = render_view_from_file(&block)
76
+ view_from_method = render_class_method_view(&block)
77
+ view_from_inline = render_view_from_inline(&block)
78
+
79
+ view_content = view_from_file unless view_from_file.empty?
80
+ view_content = view_from_method unless view_from_method.empty?
81
+ view_content = view_from_inline unless view_from_inline.empty?
82
+
83
+ if view_content.nil? || view_content.empty?
84
+ raise ViewFileNotFound, "View for `#{self.class}` could not be found!"
85
+ end
86
+
87
+ view_content
88
+ end
89
+
90
+ # Helper method to render view from string or with other provided type.
91
+ #
92
+ # Usage:
93
+ #
94
+ # render_view_from_content('<h1>Hello World</h1>')
95
+ #
96
+ # or:
97
+ #
98
+ # render_view_from_content content: '**Hello World**', type: 'md'
99
+ #
100
+ # @param content [TypedContent, Hash{Symbol => String, Symbol, Proc}, String]
101
+ # @return [String, nil]
102
+ def render_view_from_content(content, &block)
103
+ return '' unless content
104
+ return content if content.is_a?(::String)
105
+
106
+ content = TypedContent.wrap(content)
107
+ type = content.type
108
+ content = content.to_s
109
+
110
+ if content.empty?
111
+ raise EmptyView, <<~ERR.squish
112
+ Custom view for `#{self.class}` from view method cannot be empty!
113
+ ERR
114
+ end
115
+
116
+ unless ALLOWED_VIEW_TYPES.include? type
117
+ raise UnknownViewType, <<~ERR.squish
118
+ Unknown view type for `#{self.class}` from view method!
119
+ Check return value of param type in `view :[type] do`
120
+ ERR
121
+ end
122
+
123
+ unless VIEW_TYPES_WITH_RUBY.include? type
124
+ # first render the content with ERB if the
125
+ # type does not support embedding Ruby by default
126
+ content = render_string(content, :erb, block)
127
+ end
128
+
129
+ render_string(content, type, block)
130
+ end
131
+
132
+ # @return [String]
133
+ def render_view_from_file(&block)
134
+ view_path = self.class.view_path
135
+ return '' if view_path.nil? || !::File.file?(view_path)
136
+
137
+ content = ::File.read(view_path)
138
+ type = self.class.view_type
139
+
140
+ unless VIEW_TYPES_WITH_RUBY.include? type
141
+ content = render_string(content, :erb, block)
142
+ end
143
+
144
+ render_string(content, type, block)
145
+ end
146
+
147
+ # Method returning view from method in class file.
148
+ # Usage:
149
+ #
150
+ # view do
151
+ # <<~HTML
152
+ # <h1>
153
+ # Hello <%= @name %>
154
+ # </h1>
155
+ # HTML
156
+ # end
157
+ #
158
+ # or:
159
+ #
160
+ # view :haml do
161
+ # <<~HAML
162
+ # %h1
163
+ # Hello
164
+ # = @name
165
+ # HAML
166
+ # end
167
+ #
168
+ # @return [String]
169
+ def render_class_method_view(&block)
170
+ render_view_from_content(self.class.method_view, &block)
171
+ end
172
+
173
+ # Method returning view from params in view.
174
+ # Usage:
175
+ #
176
+ # <%= ExampleComponent data: data, view: "<h1>Hello #{@name}</h1>" %>
177
+ #
178
+ # or:
179
+ #
180
+ # <%= ExampleComponent data: data, view: { content: "<h1>Hello #{@name}</h1>", type: 'erb' } %>
181
+ #
182
+ # @return [String]
183
+ def render_view_from_inline(&block)
184
+ data = \
185
+ if @view.is_a? ::String
186
+ TypedContent.new(
187
+ type: :erb,
188
+ content: @view
189
+ )
190
+ else
191
+ @view
192
+ end
193
+
194
+ render_view_from_content(data, &block)
195
+ end
196
+ end
197
+ end
198
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails'
4
3
  require 'active_support'
5
4
  require 'active_support/core_ext'
6
5
 
@@ -19,6 +18,11 @@ module ::AmberComponent
19
18
  end
20
19
 
21
20
  require_relative 'amber_component/version'
22
- require_relative 'amber_component/helper'
21
+ require_relative 'amber_component/helpers'
23
22
  require_relative 'amber_component/typed_content'
23
+ require_relative 'amber_component/template_handler'
24
+ require_relative 'amber_component/views'
25
+ require_relative 'amber_component/assets'
26
+ require_relative 'amber_component/rendering'
24
27
  require_relative 'amber_component/base'
28
+ require_relative 'amber_component/railtie' if defined?(::Rails::Railtie)
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+
5
+ module ::AmberComponent
6
+ module Generators
7
+ # A Rails generator which installs the `amber_component`
8
+ # library in a Rails project.
9
+ class InstallGenerator < ::Rails::Generators::Base
10
+ desc 'Install the AmberComponent gem'
11
+ source_root ::File.expand_path('templates', __dir__)
12
+
13
+ # copy rake tasks
14
+ def copy_tasks
15
+ copy_file 'application_component.rb', 'app/components/application_component.rb'
16
+
17
+ inject_into_file 'app/assets/stylesheets/application.css', after: "*= require_tree .\n" do
18
+ " *= require_tree ./../../components\n"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Abstract class which should serve as a superclass
4
+ # for all your custom components in this app.
5
+ #
6
+ # @abstract Subclass to create a new component.
7
+ class ::ApplicationComponent < ::AmberComponent::Base
8
+ # Include your global application helper.
9
+ include ::ApplicationHelper
10
+ # Include the helper methods for your application's
11
+ # routes.
12
+ include ::Rails.application.routes.url_helpers
13
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+
5
+ # A Rails generator which creates a new Amber component.
6
+ class AmberComponentGenerator < ::Rails::Generators::NamedBase
7
+ desc 'Generate a new component'
8
+ source_root ::File.expand_path('templates', __dir__)
9
+
10
+ # copy rake tasks
11
+ def copy_tasks
12
+ template 'component.rb.erb', "app/components/#{file_path}.rb"
13
+ template 'component_test.rb.erb', "test/components/#{file_path}_test.rb"
14
+ template 'view.html.erb', "app/components/#{file_path}/view.html.erb"
15
+ template 'style.css.erb', "app/components/#{file_path}/style.css"
16
+ end
17
+
18
+ def file_name
19
+ name = super
20
+ return name if name.end_with? '_component'
21
+
22
+ "#{name}_component"
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class <%= class_name %> < ::ApplicationComponent
4
+ # Your code goes here
5
+
6
+ after_initialize do
7
+ @time = ::Time.now
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class <%= class_name %>Test < ::ActiveSupport::TestCase
6
+ # test 'the truth' do
7
+ # assert true
8
+ # end
9
+ end
@@ -0,0 +1,3 @@
1
+ .<%= singular_table_name %> {
2
+ color: blue;
3
+ }
@@ -0,0 +1,3 @@
1
+ <h2 class='<%= singular_table_name %>'>
2
+ Hello from <b><%= class_name %></b>, initialized at: <%%= @time %>
3
+ </h2>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amber_component
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruby-Amber
@@ -10,24 +10,38 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-07-27 00:00:00.000000000 Z
13
+ date: 2022-09-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: memery
16
+ name: actionview
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 1.4.1
21
+ version: '6'
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: 1.4.1
28
+ version: '6'
29
+ - !ruby/object:Gem::Dependency
30
+ name: activemodel
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '6'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '6'
29
43
  - !ruby/object:Gem::Dependency
30
- name: rails
44
+ name: activesupport
31
45
  requirement: !ruby/object:Gem::Requirement
32
46
  requirements:
33
47
  - - ">="
@@ -40,6 +54,20 @@ dependencies:
40
54
  - - ">="
41
55
  - !ruby/object:Gem::Version
42
56
  version: '6'
57
+ - !ruby/object:Gem::Dependency
58
+ name: memery
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.4.1
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.4.1
43
71
  - !ruby/object:Gem::Dependency
44
72
  name: tilt
45
73
  requirement: !ruby/object:Gem::Requirement
@@ -66,31 +94,69 @@ executables: []
66
94
  extensions: []
67
95
  extra_rdoc_files: []
68
96
  files:
69
- - ".kanbn/index.md"
70
- - ".kanbn/tasks/add-instance-variables-to-view-when-block-given-markdown.md"
71
- - ".kanbn/tasks/bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method.md"
72
- - ".kanbn/tasks/bind-scoped-css-to-head-of-doc.md"
73
- - ".kanbn/tasks/check-if-we-need-full-rails-gem-pack.md"
74
- - ".kanbn/tasks/simple-proto.md"
75
- - ".kanbn/tasks/verify-if-template-is-haml-or-erb.md"
76
97
  - ".rubocop.yml"
98
+ - ".ruby-gemset"
77
99
  - ".ruby-version"
78
100
  - ".solargraph.yml"
79
101
  - CHANGELOG.md
102
+ - CONTRIBUTING.md
80
103
  - Gemfile
81
104
  - Gemfile.lock
82
105
  - LICENSE
83
- - PLANS.md
84
106
  - README.md
85
107
  - Rakefile
86
108
  - amber_component.gemspec
109
+ - banner.png
110
+ - docs/.bundle/config
111
+ - docs/.gitignore
112
+ - docs/404.html
113
+ - docs/Gemfile
114
+ - docs/Gemfile.lock
115
+ - docs/README.md
116
+ - docs/_config.yml
117
+ - docs/_data/amber_component.yml
118
+ - docs/_sass/_variables.scss
119
+ - docs/_sass/color_schemes/amber_component.scss
120
+ - docs/_sass/custom/custom.scss
121
+ - docs/api/index.md
122
+ - docs/assets/images/logo_wide.png
123
+ - docs/changelog/index.md
124
+ - docs/favicon.ico
125
+ - docs/getting_started/index.md
126
+ - docs/getting_started/installation.md
127
+ - docs/getting_started/ruby_support.md
128
+ - docs/getting_started/wireframes.md
129
+ - docs/index.md
130
+ - docs/introduction/basic_usage.md
131
+ - docs/introduction/index.md
132
+ - docs/introduction/why_amber_component.md
133
+ - docs/resources/index.md
134
+ - docs/styles/index.md
135
+ - docs/styles/usage.md
136
+ - docs/views/index.md
137
+ - docs/views/usage.md
138
+ - icon.png
87
139
  - lib/amber_component.rb
140
+ - lib/amber_component/assets.rb
88
141
  - lib/amber_component/base.rb
89
- - lib/amber_component/helper.rb
90
- - lib/amber_component/style_injector.rb
142
+ - lib/amber_component/helpers.rb
143
+ - lib/amber_component/helpers/class_helper.rb
144
+ - lib/amber_component/helpers/component_helper.rb
145
+ - lib/amber_component/helpers/css_helper.rb
146
+ - lib/amber_component/railtie.rb
147
+ - lib/amber_component/rendering.rb
148
+ - lib/amber_component/template_handler.rb
149
+ - lib/amber_component/template_handler/erb.rb
91
150
  - lib/amber_component/typed_content.rb
92
151
  - lib/amber_component/version.rb
93
- - sig/amber_components.rbs
152
+ - lib/amber_component/views.rb
153
+ - lib/generators/amber_component/install_generator.rb
154
+ - lib/generators/amber_component/templates/application_component.rb
155
+ - lib/generators/amber_component_generator.rb
156
+ - lib/generators/templates/component.rb.erb
157
+ - lib/generators/templates/component_test.rb.erb
158
+ - lib/generators/templates/style.css.erb
159
+ - lib/generators/templates/view.html.erb
94
160
  homepage: https://github.com/amber-ruby/amber_component
95
161
  licenses:
96
162
  - MIT
@@ -106,14 +172,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
172
  requirements:
107
173
  - - ">="
108
174
  - !ruby/object:Gem::Version
109
- version: 2.6.0
175
+ version: 2.7.0
110
176
  required_rubygems_version: !ruby/object:Gem::Requirement
111
177
  requirements:
112
178
  - - ">="
113
179
  - !ruby/object:Gem::Version
114
180
  version: '0'
115
181
  requirements: []
116
- rubygems_version: 3.3.3
182
+ rubygems_version: 3.3.7
117
183
  signing_key:
118
184
  specification_version: 4
119
185
  summary: A simple component library which seamlessly hooks into your Rails project.
data/.kanbn/index.md DELETED
@@ -1,23 +0,0 @@
1
- ---
2
- startedColumns:
3
- - 'In Progress'
4
- completedColumns:
5
- - Done
6
- ---
7
-
8
- # Amber Components
9
-
10
- ## Backlog
11
-
12
- - [check-if-we-need-full-rails-gem-pack](tasks/check-if-we-need-full-rails-gem-pack.md)
13
- - [verify-if-template-is-haml-or-erb](tasks/verify-if-template-is-haml-or-erb.md)
14
- - [bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method](tasks/bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method.md)
15
- - [add-instance-variables-to-view-when-block-given-markdown](tasks/add-instance-variables-to-view-when-block-given-markdown.md)
16
-
17
- ## In Progress
18
-
19
- - [bind-scoped-css-to-head-of-doc](tasks/bind-scoped-css-to-head-of-doc.md)
20
-
21
- ## Done
22
-
23
- - [simple-proto](tasks/simple-proto.md)
@@ -1,9 +0,0 @@
1
- ---
2
- created: 2022-07-24T21:05:00.209Z
3
- updated: 2022-07-24T21:05:00.205Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- ---
8
-
9
- # Add instance variables to view when block given - markdown
@@ -1,9 +0,0 @@
1
- ---
2
- created: 2022-07-24T09:34:44.925Z
3
- updated: 2022-07-24T09:35:24.434Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- ---
8
-
9
- # bind clas to ActionView method (call ExampleComponent data: data - without calling any method)
@@ -1,10 +0,0 @@
1
- ---
2
- created: 2022-07-23T15:24:49.521Z
3
- updated: 2022-07-24T12:09:45.281Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- started: 2022-07-24T12:09:45.282Z
8
- ---
9
-
10
- # bind scoped css to head of doc
@@ -1,9 +0,0 @@
1
- ---
2
- created: 2022-07-23T15:23:43.278Z
3
- updated: 2022-07-23T15:23:43.275Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- ---
8
-
9
- # check if we need full rails gem pack
@@ -1,10 +0,0 @@
1
- ---
2
- created: 2022-07-23T15:23:22.133Z
3
- updated: 2022-07-24T09:34:38.629Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- completed: 2022-07-24T09:34:38.629Z
8
- ---
9
-
10
- # simple proto
@@ -1,9 +0,0 @@
1
- ---
2
- created: 2022-07-23T15:24:25.486Z
3
- updated: 2022-07-23T15:24:25.484Z
4
- assigned: ""
5
- progress: 0
6
- tags: []
7
- ---
8
-
9
- # verify if template is HAML or ERB
data/PLANS.md DELETED
@@ -1,17 +0,0 @@
1
- app
2
- |
3
- +-- components
4
- |
5
- +-- example_component.rb
6
- |
7
- +-- example_component
8
- |
9
- +-- view.(haml|erb)
10
- |
11
- +-- style.(scss|css)
12
- |
13
- +-- script.(coffee|js)
14
-
15
- 1.0 - actions, scoped styling views, js
16
- 0.5 - components libraries
17
- 0.1 - MVP - actions, views + nesting
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ::AmberComponent
4
- # Contains methods for quickly rendering
5
- # components defined under the root namespace `Object`.
6
- module Helper
7
- end
8
- end