global_assets 0.0.0

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.
Files changed (4) hide show
  1. checksums.yaml +15 -0
  2. data/Rakefile +7 -0
  3. data/lib/global_assets.rb +67 -0
  4. metadata +61 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YTk1ZTJlOTc3MGQ0NDk1NDUxMGNiMWM3MWU0ZTJhYjk3NDU0ZWFlMg==
5
+ data.tar.gz: !binary |-
6
+ ZmZjYjc2YzczNmZlNDQ4NzVhZThkYzhkMDkxMzVjMDlhNWM5ZmU2Ng==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ODQyY2VhMDVhNWMzMGE1NTBhM2YwNzg4OTZjYWQxYzZjYjk3ZWMyZTgxOTY0
10
+ ZGYzYjM0OTJhNmI5MWU2ZWY4Y2NhZDQxMzk4NTVkM2VlYzQ0YjllMmQ3MTI0
11
+ ZjBjNjYzNzQxYzZhZmZjZjBkY2I0OTIxMGRhMjllZTgzOTkwNTA=
12
+ data.tar.gz: !binary |-
13
+ ZDA4NWZmNjkwZmYzMDIxMzcxYTViZWFlMGNmOWViYzJmNGM4MTdmMmE1MWU0
14
+ NzBhZmI2NjBiMWNjMjBhY2FlMTE2OGM1NDUxMGU1YzAwZDU5ZmYyMmU1NzYx
15
+ NjIzODRlOWExOTdlNWQ2MmU5YWM2NjQ4NzYxYjZjYzE1NjgwNjQ=
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ namespace :global_assets do
2
+
3
+ desc "Place the global images/css/js in their respective places in the local project."
4
+ task :place do
5
+ GlobalAssets.move_global_files
6
+ end
7
+ end
@@ -0,0 +1,67 @@
1
+ require 'yaml'
2
+ require 'fileutils'
3
+ require 'erb'
4
+ require 'ostruct'
5
+
6
+ class GlobalAssets
7
+ class << self
8
+ def inherited(base)
9
+ configs = YAML.load_file("config/#{snake_case(base)}.yml")
10
+ if configs[snake_case(base)] && configs[snake_case(base)]["target_dirs"]
11
+ base.set(:target_js, configs[snake_case(base)]["target_dirs"]["js"])
12
+ base.set(:target_css, configs[snake_case(base)]["target_dirs"]["css"])
13
+ base.set(:target_img, configs[snake_case(base)]["target_dirs"]["img"])
14
+ end
15
+ super
16
+ end
17
+
18
+ def snippet(name, locals = {})
19
+ file_at = File.join(settings[:source_dir], "snippets", name.to_s + ".erb")
20
+ return erb(File.read(file_at), locals) if(File.exists?(file_at))
21
+ raise Exception, "Could not find Snippet: [#{name.to_s}]"
22
+ end
23
+
24
+ def erb(template, locals)
25
+ ERB.new(template).result(OpenStruct.new(locals).instance_eval { binding })
26
+ end
27
+
28
+ def move_global_files
29
+ # delete all 3 target directories
30
+ puts "Wiping old global directories..."
31
+ [settings[:target_js], settings[:target_js], settings[:target_js]].each do |dir|
32
+ FileUtils.rm_rf(dir)
33
+ FileUtils.mkdir_p(dir)
34
+ end
35
+ # copy over all 3 source directories to the target dirs
36
+ puts "Moving global JS..."
37
+ FileUtils.cp_r(File.join(settings[:source_dir], "js/."), settings[:target_js])
38
+ puts "Moving global CSS..."
39
+ FileUtils.cp_r(File.join(settings[:source_dir], "css/."), settings[:target_css])
40
+ puts "Moving global Images..."
41
+ FileUtils.cp_r(File.join(settings[:source_dir], "img/."), settings[:target_img])
42
+ end
43
+
44
+ def set(key, val)
45
+ settings[key] = val
46
+ end
47
+
48
+ def settings
49
+ @settings ||= {}
50
+ end
51
+
52
+ private
53
+ def snake_case(camel_cased_word)
54
+ camel_cased_word.to_s.gsub(/::/, '/').
55
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
56
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
57
+ tr("-", "_").
58
+ downcase
59
+ end
60
+ end
61
+ end
62
+
63
+ __END__
64
+
65
+ require './lib/global_assets'
66
+ class EMEGlobalAssets; include GlobalAssets; end
67
+ EMEGlobalAssets.snippet(:test)
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: global_assets
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Chris Reister
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Share all your assets between all your projects via personal gem/git
28
+ repo.
29
+ email:
30
+ - chris@chrisreister.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - Rakefile
36
+ - lib/global_assets.rb
37
+ homepage: https://github.com/chrisftw/global_assets
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 2.2.2
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: Global asset manager for Ruby projects that share assets.
61
+ test_files: []