amber_component 0.0.2 → 0.0.3
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 +4 -4
- data/.rubocop.yml +1 -1
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -1
- data/CONTRIBUTING.md +87 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +16 -91
- data/README.md +25 -42
- data/Rakefile +17 -1
- data/amber_component.gemspec +4 -2
- data/banner.png +0 -0
- data/docs/.bundle/config +2 -0
- data/docs/.gitignore +5 -0
- data/docs/404.html +25 -0
- data/docs/Gemfile +37 -0
- data/docs/Gemfile.lock +89 -0
- data/docs/README.md +19 -0
- data/docs/_config.yml +148 -0
- data/docs/_data/amber_component.yml +3 -0
- data/docs/_sass/_variables.scss +2 -0
- data/docs/_sass/color_schemes/amber_component.scss +11 -0
- data/docs/_sass/custom/custom.scss +60 -0
- data/docs/api/index.md +8 -0
- data/docs/assets/images/logo_wide.png +0 -0
- data/docs/changelog/index.md +8 -0
- data/docs/favicon.ico +0 -0
- data/docs/getting_started/index.md +8 -0
- data/docs/getting_started/installation.md +7 -0
- data/docs/getting_started/ruby_support.md +7 -0
- data/docs/getting_started/wireframes.md +7 -0
- data/docs/index.md +17 -0
- data/docs/introduction/basic_usage.md +7 -0
- data/docs/introduction/index.md +8 -0
- data/docs/introduction/why_amber_component.md +7 -0
- data/docs/resources/index.md +8 -0
- data/docs/styles/index.md +8 -0
- data/docs/styles/usage.md +7 -0
- data/docs/views/index.md +8 -0
- data/docs/views/usage.md +7 -0
- data/icon.png +0 -0
- data/lib/amber_component/assets.rb +59 -0
- data/lib/amber_component/base.rb +66 -434
- data/lib/amber_component/helpers/class_helper.rb +22 -0
- data/lib/amber_component/helpers/component_helper.rb +18 -0
- data/lib/amber_component/helpers/css_helper.rb +25 -0
- data/lib/amber_component/helpers.rb +11 -0
- data/lib/amber_component/railtie.rb +21 -0
- data/lib/amber_component/rendering.rb +53 -0
- data/lib/amber_component/template_handler/erb.rb +17 -0
- data/lib/amber_component/template_handler.rb +26 -0
- data/lib/amber_component/version.rb +1 -1
- data/lib/amber_component/views.rb +198 -0
- data/lib/amber_component.rb +6 -2
- data/lib/generators/amber_component/install_generator.rb +23 -0
- data/lib/generators/amber_component/templates/application_component.rb +13 -0
- data/lib/generators/amber_component_generator.rb +24 -0
- data/lib/generators/templates/component.rb.erb +9 -0
- data/lib/generators/templates/component_test.rb.erb +9 -0
- data/lib/generators/templates/style.css.erb +3 -0
- data/lib/generators/templates/view.html.erb +3 -0
- metadata +85 -19
- data/.kanbn/index.md +0 -23
- data/.kanbn/tasks/add-instance-variables-to-view-when-block-given-markdown.md +0 -9
- data/.kanbn/tasks/bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method.md +0 -9
- data/.kanbn/tasks/bind-scoped-css-to-head-of-doc.md +0 -10
- data/.kanbn/tasks/check-if-we-need-full-rails-gem-pack.md +0 -9
- data/.kanbn/tasks/simple-proto.md +0 -10
- data/.kanbn/tasks/verify-if-template-is-haml-or-erb.md +0 -9
- data/PLANS.md +0 -17
- data/lib/amber_component/helper.rb +0 -8
- data/lib/amber_component/style_injector.rb +0 -52
- 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'
|
@@ -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
|
data/lib/amber_component.rb
CHANGED
@@ -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/
|
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
|
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.
|
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-
|
13
|
+
date: 2022-09-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: actionview
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
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:
|
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:
|
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/
|
90
|
-
- lib/amber_component/
|
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
|
-
-
|
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.
|
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.
|
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)
|
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
|