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