proscenium 0.15.0.beta.1-x86_64-darwin → 0.15.0.beta.2-x86_64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7929040e00f84812706b3c5b644cef6b850e2be1a6305a02c4b85e1926e00a67
4
- data.tar.gz: '067892643a5fdb9fccddf8312146f8c1c900ef308153fb74bd25277457f2b29c'
3
+ metadata.gz: 6051f0c0a8867125f4a6059bd11e76b332236051450a6207e5d402d8977ec58f
4
+ data.tar.gz: 32f1a4325433c459a4cfc839e6f0ef4453f3bc2f8c1e044f1f0ca6ce2c828fc0
5
5
  SHA512:
6
- metadata.gz: fc3f3b4b1ee7e052f0bd15a5fb4cf3321ad7cb3ab19d694778a67c38ba851543dc03b0599e47f1690382eac3fedf6c4cce76c7e8244f320f38dcd9015a5b2eb4
7
- data.tar.gz: 1f8892a2bc18ed763437e0981eb0ef43ffdb0fe03d415acbdd2598881bc635c4db603792a9aecfc31fbcd6bf05dd2a4a5e998b5f8eec2338cd7f8e816820d4cb
6
+ metadata.gz: 6df4aa018bf1cf70184d680a56cda8a25ebf03745266a434fe947f2f251e399a593a722c62efeadb0f281168ebc8f6c431fe71df8bb57e73a80edd2d7a67ccc9
7
+ data.tar.gz: '002806890da6f9387db8af353b52afe4ae709a1dec76181f81e9ec58802114fe5559bd6abddd65403ad0549193748d36830c9c55bbdd4911167cb6a0dc7f72e4'
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Object
4
+ def instance_variable_get(name)
5
+ name.is_a?(::Proscenium::CssModule::Name) ? super(name.to_sym) : super
6
+ end
7
+
8
+ def instance_variable_set(name, obj)
9
+ name.is_a?(::Proscenium::CssModule::Name) ? super(name.to_sym, obj) : super
10
+ end
11
+
12
+ def instance_variable_defined?(name)
13
+ name.is_a?(::Proscenium::CssModule::Name) ? super(name.to_sym) : super
14
+ end
15
+
16
+ def remove_instance_variable(name)
17
+ name.is_a?(::Proscenium::CssModule::Name) ? super(name.to_sym) : super
18
+ end
19
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby-next/language'
4
+ require 'proscenium/core_ext/object/css_module_ivars'
5
+
6
+ module Proscenium
7
+ module CssModule
8
+ class Rewriter < RubyNext::Language::Rewriters::Text
9
+ NAME = 'proscenium-css-module'
10
+
11
+ def safe_rewrite(source)
12
+ source.gsub(/:@([\w_]+)/) do |_|
13
+ context.track! self
14
+
15
+ match = ::Regexp.last_match(1)
16
+ "Proscenium::CssModule::Name.new(:@#{match}, css_module(:#{match}))"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ RubyNext::Language.send :include_patterns=, []
24
+ RubyNext::Language.include_patterns << "#{Rails.root.join('app', 'components')}/*.rb"
25
+ RubyNext::Language.include_patterns << "#{Rails.root.join('app', 'views')}/*.rb"
26
+ RubyNext::Language.rewriters = [Proscenium::CssModule::Rewriter]
27
+
28
+ require 'ruby-next/language/runtime'
@@ -11,7 +11,22 @@ module Proscenium::CssModule
11
11
  msg = "Failed to transform CSS module `#{name}`"
12
12
  msg << ' - ' << additional_msg if additional_msg
13
13
 
14
- super msg
14
+ super(msg)
15
+ end
16
+ end
17
+
18
+ class Name
19
+ def initialize(name, transform)
20
+ @name = name
21
+ @transform = transform
22
+ end
23
+
24
+ def to_s
25
+ @transform
26
+ end
27
+
28
+ def to_sym
29
+ @name
15
30
  end
16
31
  end
17
32
 
Binary file
@@ -16,11 +16,7 @@ module Proscenium
16
16
 
17
17
  # Cache asset paths when building to path. Enabled by default in production.
18
18
  # @see Proscenium::Builder#build_to_path
19
- config.proscenium.cache = if Rails.env.local?
20
- ActiveSupport::Cache::NullStore.new
21
- else
22
- ActiveSupport::Cache::MemoryStore.new
23
- end
19
+ config.proscenium.cache = ActiveSupport::Cache::MemoryStore.new if Rails.env.production?
24
20
 
25
21
  # TODO: implement!
26
22
  config.proscenium.cache_query_string = Rails.env.production? && ENV.fetch('REVISION', nil)
@@ -20,7 +20,7 @@ module Proscenium
20
20
  end
21
21
  end
22
22
 
23
- def capture_and_replace_proscenium_stylesheets # rubocop:disable Metrics/AbcSize
23
+ def capture_and_replace_proscenium_stylesheets # rubocop:disable Metrics/*
24
24
  return if response_body.first.blank? || !Proscenium::Importer.css_imported?
25
25
  return unless response_body.first.include? '<!-- [PROSCENIUM_STYLESHEETS] -->'
26
26
 
@@ -43,13 +43,15 @@ module Proscenium
43
43
 
44
44
  import = imports[inpath]
45
45
  opts = import[:css].is_a?(Hash) ? import[:css] : {}
46
+ opts[:data] ||= {}
47
+ opts[:data][:original_href] = inpath
46
48
  out << helpers.stylesheet_link_tag(outpath, extname: false, **opts)
47
49
  end
48
50
 
49
51
  response_body.first.gsub! '<!-- [PROSCENIUM_STYLESHEETS] -->', out.join.html_safe
50
52
  end
51
53
 
52
- def capture_and_replace_proscenium_javascripts # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/PerceivedComplexity
54
+ def capture_and_replace_proscenium_javascripts # rubocop:disable Metrics/*
53
55
  return if response_body.first.blank? || !Proscenium::Importer.js_imported?
54
56
 
55
57
  imports = Proscenium::Importer.imported.dup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Proscenium
4
- VERSION = '0.15.0.beta.1'
4
+ VERSION = '0.15.0.beta.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proscenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0.beta.1
4
+ version: 0.15.0.beta.2
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Joel Moss
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-29 00:00:00.000000000 Z
11
+ date: 2024-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - "<"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '8.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: ruby-next
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.1
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: 1.0.1
81
95
  description:
82
96
  email:
83
97
  - joel@developwithstyle.com
@@ -90,8 +104,10 @@ files:
90
104
  - README.md
91
105
  - lib/proscenium.rb
92
106
  - lib/proscenium/builder.rb
107
+ - lib/proscenium/core_ext/object/css_module_ivars.rb
93
108
  - lib/proscenium/css_module.rb
94
109
  - lib/proscenium/css_module/path.rb
110
+ - lib/proscenium/css_module/rewriter.rb
95
111
  - lib/proscenium/css_module/transformer.rb
96
112
  - lib/proscenium/ensure_loaded.rb
97
113
  - lib/proscenium/ext/proscenium