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

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 777426aa0b313a8929c7960097ab90d837999611b4225f3fa0dde20a37c8266f
4
- data.tar.gz: df51b6365052138666827992b79d749a02f1c94aa3f0a0d308874cfd3914550a
3
+ metadata.gz: 066be499ae4e0c06812126df76e5f643ab6193d571aac9880f33c41d9a19ff1c
4
+ data.tar.gz: efdcbfe5aec97042c8c48ce80a53106a9ea0d5c3f59165985d9a2523f622d01b
5
5
  SHA512:
6
- metadata.gz: 859c73ab1b9fb1c2a0231d759d3eb8e0bd217be7855e785123818bf2d98a7690ab528a00b69bec329ed0043b35f68d6c82b634a6de7f1829b967a91d95f957f3
7
- data.tar.gz: 98339328e3f83dd854a636f27f0d44d4a8785673d230f90046c0c2be6b3ffe317e8a0b73491e6e1404d3d0b69e832ab459b0c5a67042ce25b96b12e5420ebe3b
6
+ metadata.gz: 9a5086309ef05694565f24502e9659d7af0e3ee7d2379e37d8d8f0cf19345a130f703d9021373eb1e1391ca6df79e70a14bbffa8350dc4d1a9d4aa4d3b0e0ef3
7
+ data.tar.gz: d456e80182f904957464bf37d09b050e652cdb116434dbda104543e15e73b68e4854bb72907aafcd40734a2cd1ad62822e8fd0e60c0615fbd45fe6d4944d27cc
@@ -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: arm64-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