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

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: 051a64b6432332f140d789d73c06ed6e52ef2097fed81a829b954bde093615ff
4
- data.tar.gz: 76618d14248a786073857cd9e6daf176fc45bfce9aadbafead2aabe80f055f6c
3
+ metadata.gz: 6fd614807627e6d4755d7f8b1ec6ad75f215a78a5a24c28724ea8847ff29d6c2
4
+ data.tar.gz: 747a388fc948a6f2c4c5a8496820a685f8c06ce846dbb0382ac9741b32c51823
5
5
  SHA512:
6
- metadata.gz: dfd81c6b0bc29ab154f35cefa8dbd7bf1968222dc1306af92796559550cf498d2b4ed250673df57302c45de1eb81f6d01ebf56a51124da179e468c526d8ef79e
7
- data.tar.gz: baadcde1c7bcc9662da50aa531aa4c5903685278c4432a70fb17c216f11b3adf88107fbb28ed08e08d2b00db56e2878087f46f00c10bb60472120f6d30e6629d
6
+ metadata.gz: 396f5481fb22ca11cc8e9d9cd50977aec7e07c37bb6fecdc741aa8edad13c825593b9338019047d500db98811559372814a258f8c5d5340d46cb13d06a747bda
7
+ data.tar.gz: 4d28ffeaed4cbd4df33f3f0a5c655daba4bc941ecaadeab85c0c21c20d1e5a844a00c7d08282eb0b3ea40ac0be0ad50605769272fb715b04517b707b8bf4b582
@@ -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-linux
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