tailwind_theme-rails 0.1.0 → 0.1.1

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: af4a596650d11be93a96ed08a70b8155b5865c1ff40c3053b3b4a39ee6585fc3
4
- data.tar.gz: 787ff82ef8f220ec9bdd71c880bf50ead8775e2e41727c0237d88244aea6a3be
3
+ metadata.gz: 81918734df2afa400433d070a33e054a7ecff27278ed8cb332a5d0d5b5ad6ff3
4
+ data.tar.gz: 49e9fe555c24497dfa90cf99e4273f4dea35e159a49f3b034bde5887cd0e78e5
5
5
  SHA512:
6
- metadata.gz: bdfa4e58b4079e6204b90a6476cb6e5b87e8b636781ef3efbaca6947eb742fb998be868d08bed4b76f9019d84bcb9f8d869cbf7ed4691bc34619d18759603602
7
- data.tar.gz: cfc8b8ea25b3a6997b16e2423ff7ddf9eb88f223712dbd36543424098b6af585524251935e1560d21a19a0520dfd02018c736b8354dc8cbb93276baa6c725231
6
+ metadata.gz: e3658df7908d3cdd4904a7ae09da72bb3a6417d629f5db329a0ceeebb175378429422e87de7ff10d6f9007b0a6491b0c33d29dd847891cc4d764a83fea32544f
7
+ data.tar.gz: 016f4f1e791243164e404d1cf803849137bdd0be245828415589df9a08fa8c3fbe673e75de7cdbb99a61f82ead4180dc455c5bebcfa5c084ee5bc9c94c4a95b5
@@ -12,8 +12,7 @@ module TailwindTheme
12
12
  # TailwindTheme::Factory.new.theme :admin
13
13
  #
14
14
  class Factory
15
- def initialize(config_dir = nil)
16
- @config_dir = config_dir || ::Rails.root.join("config").to_s
15
+ def initialize
17
16
  @themes = {}
18
17
  end
19
18
 
@@ -28,43 +27,44 @@ module TailwindTheme
28
27
  # @return [TailwindTheme::Theme, NilClass] returns the theme or nil if the theme cannot be found.
29
28
  def theme(name = nil)
30
29
  if name.nil? || name.to_s == "default"
31
- default_theme
30
+ @themes[:default] ||= load_default_theme
32
31
  else
33
- theme_by_name name
32
+ @themes[name.to_sym] = load_by_name name.to_sym
34
33
  end
35
34
  end
36
35
 
37
36
  private
38
37
 
39
- def default_theme
40
- return @themes[:default] if @themes[:default]
41
-
42
- files = Dir[
43
- File.expand_path("themes/default.{yml,yml.erb}"),
44
- File.expand_path("theme.{yml,yml.erb}", @config_dir)
45
- ]
38
+ def load_default_theme
39
+ load_theme :default, %w[themes/default.{yml,yml.erb} theme.{yml,yml.erb}]
40
+ end
46
41
 
47
- load_theme :default, files
42
+ def load_by_name(name)
43
+ load_theme name, %W[themes/#{name}.{yml,yml.erb}]
48
44
  end
49
45
 
50
- def theme_by_name(name)
51
- return @themes[name.to_sym] if @themes[name.to_sym]
46
+ def find_theme(paths)
47
+ patterns = TailwindTheme.load_paths.each_with_object([]) do |dir, patterns|
48
+ paths.each do |path|
49
+ patterns << File.expand_path(path, dir)
50
+ end
51
+ end
52
52
 
53
- files = Dir[File.expand_path("themes/#{name}.{yml,yml.erb}", @config_dir)]
54
- load_theme name, files
53
+ Dir.glob(patterns, 0).first
55
54
  end
56
55
 
57
56
  def load_theme(name, files)
58
- return if files.empty?
57
+ file = find_theme files
58
+ return unless file
59
59
 
60
- theme = TailwindTheme.load_file files.first.to_s
60
+ theme = TailwindTheme.load_file file.to_s
61
61
  theme.instance_eval <<-RUBY
62
62
  def name
63
63
  "#{name}"
64
64
  end
65
65
  RUBY
66
66
 
67
- @themes[name.to_sym] = theme
67
+ theme
68
68
  end
69
69
  end
70
70
  end
@@ -1,5 +1,5 @@
1
1
  module TailwindTheme
2
2
  module Rails
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -6,3 +6,11 @@ require "tailwind_theme/rails/version"
6
6
  require "tailwind_theme/factory"
7
7
  require "tailwind_theme/controller_concern"
8
8
  require "tailwind_theme/engine"
9
+
10
+ module TailwindTheme
11
+ mattr_writer :load_paths
12
+
13
+ def self.load_paths
14
+ @@load_paths ||= [::Rails.root.join("config")]
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tailwind_theme-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Fawks