maglove 0.8.1 → 1.0.2

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +157 -0
  4. data/Gemfile.lock +59 -49
  5. data/bin/maglove +13 -13
  6. data/data/maglove/export.haml +11 -0
  7. data/data/maglove/index.haml +17 -0
  8. data/data/maglove/maglove.css +62 -0
  9. data/data/maglove/maglove.haml +18 -0
  10. data/data/maglove/maglove.js +68 -0
  11. data/lib/block_resolver.rb +6 -0
  12. data/lib/ext/thor/option.rb +43 -0
  13. data/lib/magloft/api.rb +39 -0
  14. data/lib/magloft/api_caller.rb +67 -0
  15. data/lib/magloft/remote_collection.rb +50 -0
  16. data/lib/magloft/remote_resource.rb +124 -0
  17. data/lib/magloft/transformable.rb +11 -0
  18. data/lib/magloft/typeloft_block.rb +18 -0
  19. data/lib/magloft/typeloft_image.rb +18 -0
  20. data/lib/magloft/typeloft_template.rb +18 -0
  21. data/lib/magloft/typeloft_theme.rb +41 -0
  22. data/lib/magloft.rb +3 -0
  23. data/lib/maglove/application.rb +10 -12
  24. data/lib/maglove/asset/theme.rb +37 -32
  25. data/lib/maglove/commands/assets.rb +85 -0
  26. data/lib/maglove/commands/base.rb +55 -0
  27. data/lib/maglove/commands/fonts.rb +69 -0
  28. data/lib/maglove/commands/main.rb +24 -0
  29. data/lib/maglove/commands/theme.rb +197 -0
  30. data/lib/maglove/helper/log_helper.rb +3 -18
  31. data/lib/maglove/middleware/live_reload.rb +97 -0
  32. data/lib/maglove/phantom_script.rb +9 -10
  33. data/lib/maglove/server.rb +46 -78
  34. data/lib/maglove/tilt/coffee_template.rb +7 -6
  35. data/lib/maglove/tilt/haml_template.rb +4 -4
  36. data/lib/maglove/tilt/js_template.rb +8 -8
  37. data/lib/maglove/tilt/less_template.rb +5 -4
  38. data/lib/maglove/tilt/scss_template.rb +17 -11
  39. data/lib/maglove/tilt/yaml_template.rb +3 -2
  40. data/lib/maglove/version.rb +1 -1
  41. data/lib/maglove/workspace.rb +41 -0
  42. data/lib/maglove.rb +38 -49
  43. data/lib/powersnap.rb +24 -0
  44. data/lib/workspace/workspace_dir/archive.rb +18 -0
  45. data/lib/workspace/workspace_dir.rb +98 -0
  46. data/lib/workspace/workspace_file/archive.rb +45 -0
  47. data/lib/workspace/workspace_file/media.rb +19 -0
  48. data/lib/workspace/workspace_file/net.rb +18 -0
  49. data/lib/workspace/workspace_file/parse.rb +21 -0
  50. data/lib/workspace/workspace_file.rb +99 -0
  51. data/lib/workspace.rb +11 -0
  52. data/maglove.gemspec +12 -12
  53. metadata +100 -86
  54. data/data/maglove/dump.haml +0 -58
  55. data/data/maglove/sdk.haml +0 -27
  56. data/lib/ext/commander/command.rb +0 -32
  57. data/lib/ext/commander/methods.rb +0 -8
  58. data/lib/maglove/asset/base_theme.rb +0 -17
  59. data/lib/maglove/command/compile.rb +0 -44
  60. data/lib/maglove/command/compress.rb +0 -28
  61. data/lib/maglove/command/copy.rb +0 -35
  62. data/lib/maglove/command/core.rb +0 -23
  63. data/lib/maglove/command/font.rb +0 -80
  64. data/lib/maglove/command/server.rb +0 -16
  65. data/lib/maglove/command/sync.rb +0 -17
  66. data/lib/maglove/command/theme.rb +0 -175
  67. data/lib/maglove/command/util.rb +0 -45
  68. data/lib/maglove/helper/asset_helper.rb +0 -24
  69. data/lib/maglove/helper/command_helper.rb +0 -67
  70. data/lib/maglove/helper/theme_helper.rb +0 -105
  71. data/lib/maglove/server/hpub.rb +0 -185
  72. data/lib/maglove/template/tumblr.rb +0 -81
  73. data/lib/maglove/tilt/twig_template.rb +0 -49
@@ -4,24 +4,22 @@ module MagLove
4
4
  self.default_mime_type = 'application/javascript'
5
5
 
6
6
  def prepare
7
-
8
7
  end
9
8
 
10
9
  def evaluate(scope, locals, &block)
11
-
12
10
  # handle includes
13
- @data = @data.gsub(/^\/\/=\srequire\s(.+)$/) do |match|
11
+ @data = @data.gsub(%r{^//=\srequire\s(.+)$}) do |match|
14
12
  path = Regexp.last_match[1]
15
13
  include_path = File.absolute_path(path, File.dirname(file))
16
-
14
+
17
15
  # check if base path exists
18
- if not File.exists?(include_path)
16
+ unless File.exist?(include_path)
19
17
  include_path = File.absolute_path(path, locals[:base_path])
20
18
  end
21
-
22
- if File.exists?(include_path)
19
+
20
+ if File.exist?(include_path)
23
21
  include_template = ::Tilt.new(include_path)
24
- include_contents = include_template.render(Object.new, locals)
22
+ include_template.render(Object.new, locals)
25
23
  else
26
24
  raise "Path not found: #{include_path}"
27
25
  end
@@ -36,3 +34,5 @@ module MagLove
36
34
  end
37
35
  end
38
36
  end
37
+
38
+ Tilt.mappings["js"] = [MagLove::Tilt::JsTemplate]
@@ -4,15 +4,16 @@ module MagLove
4
4
  self.default_mime_type = 'theme/html'
5
5
 
6
6
  def prepare
7
- @parser = ::Less::Parser.new(options.merge :filename => eval_file, :line => line, :relativeUrls => false)
7
+ @parser = ::Less::Parser.new(options.merge(filename: eval_file, line: line, relativeUrls: false))
8
8
  end
9
-
9
+
10
10
  def evaluate(scope, locals, &block)
11
- prepared_data = "@base: \"#{locals[:base_path].sub("src/", "../../")}\";\n#{data}"
11
+ prepared_data = "@base: \"#{locals[:base_path].sub('src/', '../../')}\";\n#{data}"
12
12
  @engine = @parser.parse(prepared_data)
13
13
  @output ||= @engine.to_css(options)
14
14
  end
15
-
16
15
  end
17
16
  end
18
17
  end
18
+
19
+ Tilt.mappings["less"] = [MagLove::Tilt::LessTemplate]
@@ -1,10 +1,13 @@
1
- module Sass::Script::Functions
1
+ module Sass::Script::Functions
2
2
  def asset(url)
3
3
  assert_type url, :String
4
- Sass::Script::Value::String.new("url(\"#{::Hamloft::Options.defaults[:asset_uri]}/#{url.value}\")")
4
+ Sass::Script::Value::String.new("url(\"#{asset_uri}/#{url.value}\")")
5
5
  end
6
- # declare(:asset, [:url])
7
-
6
+
7
+ def asset_uri
8
+ options[:locals][:asset_uri] || Hamloft.asset_uri
9
+ end
10
+
8
11
  def asset_data(url)
9
12
  assert_type url, :String
10
13
  theme = options[:locals][:theme]
@@ -23,20 +26,23 @@ module MagLove
23
26
  module Tilt
24
27
  class ScssTemplate < ::Tilt::SassTemplate
25
28
  self.default_mime_type = 'text/css'
26
-
29
+
27
30
  def prepare
28
31
  end
29
32
 
30
33
  def evaluate(scope, locals, &block)
31
- prepared_data = "@base: \"#{locals[:base_path].sub("src/", "../../")}\";\n#{data}"
32
- engine = Sass::Engine.new(prepared_data, sass_options.merge({locals: locals}))
34
+ prepared_data = "@base: \"#{locals[:base_path].sub('src/', '../../')}\";\n#{data}"
35
+ engine = Sass::Engine.new(prepared_data, sass_options.merge({ locals: locals }))
33
36
  @output ||= engine.render
34
37
  end
35
-
38
+
36
39
  private
37
- def sass_options
38
- options.merge(:filename => eval_file, :line => line, :syntax => :scss)
39
- end
40
+
41
+ def sass_options
42
+ options.merge(filename: eval_file, line: line, syntax: :scss)
43
+ end
40
44
  end
41
45
  end
42
46
  end
47
+
48
+ Tilt.mappings["scss"] = [MagLove::Tilt::ScssTemplate]
@@ -2,9 +2,8 @@ module MagLove
2
2
  module Tilt
3
3
  class YamlTemplate < ::Tilt::Template
4
4
  self.default_mime_type = 'application/json'
5
-
5
+
6
6
  def prepare
7
-
8
7
  end
9
8
 
10
9
  def evaluate(scope, locals, &block)
@@ -17,3 +16,5 @@ module MagLove
17
16
  end
18
17
  end
19
18
  end
19
+
20
+ Tilt.mappings["yml"] = [MagLove::Tilt::YamlTemplate]
@@ -1,3 +1,3 @@
1
1
  module MagLove
2
- VERSION = "0.8.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -0,0 +1,41 @@
1
+ module Workspace
2
+ def theme_dir(root: "src", theme: options[:theme])
3
+ workspace_dir("#{root}/themes/#{theme}")
4
+ end
5
+
6
+ def theme_file(path, root: "src", theme: options[:theme])
7
+ workspace_file("#{root}/themes/#{theme}", path)
8
+ end
9
+
10
+ def theme_base_file(path, theme: options[:theme])
11
+ theme_base_dir(theme: theme).file(path)
12
+ end
13
+
14
+ def theme_base_dir(theme: options[:theme])
15
+ base_version = theme_config(:base_version, theme: theme)
16
+ workspace_dir("src/base/#{base_version}")
17
+ end
18
+
19
+ def gem_dir
20
+ workspace_dir(Gem.datadir("maglove"))
21
+ end
22
+
23
+ def theme_config(key = nil, theme: options[:theme])
24
+ Maglove.theme_config(key, theme)
25
+ end
26
+
27
+ class WorkspaceFile
28
+ def asset(theme: workspace_theme, base: false, asset_uri: ".")
29
+ MagLove::Asset::Theme.new(path, { theme: theme, base: base, asset_uri: asset_uri })
30
+ end
31
+
32
+ def workspace_theme
33
+ match = self.workspace.match(%r{/themes/([^/]+)})
34
+ match ? match[1] : nil
35
+ end
36
+
37
+ def read_hamloft(options = {})
38
+ Hamloft.render(read, options)
39
+ end
40
+ end
41
+ end
data/lib/maglove.rb CHANGED
@@ -1,51 +1,40 @@
1
- require "tilt"
2
- require "hamloft"
1
+ require 'magloft'
2
+ require "maglove/workspace"
3
+ require "maglove/widgets"
4
+ require "maglove/commands/base"
5
+ require "maglove/commands/fonts"
6
+ require "maglove/commands/theme"
7
+ require "maglove/commands/assets"
8
+ require "maglove/commands/main"
9
+ require "block_resolver"
3
10
 
4
- require "rubygems"
5
- require "bundler"
6
- require "active_support/all"
7
- require "dotenv"
8
- require "webrick"
9
- require "filewatcher"
10
- require "logging"
11
- require "coffee_script"
12
- require "therubyracer"
13
- require "less"
14
- require "sass"
15
- require "action_dispatch/http/mime_type"
16
- require "commander"
17
- require "image_optim"
18
- require "zlib"
19
- require 'zip'
20
- require "archive/tar/minitar"
11
+ module Maglove
12
+ def self.theme_config(key = nil, theme)
13
+ @theme_config ||= {}
14
+ unless @theme_config[theme]
15
+ config_file = Workspace::WorkspaceFile.new("src/themes/#{theme}", "theme.yml")
16
+ @theme_config[theme] = config_file.read_yaml
17
+ end
18
+ if key.nil?
19
+ @theme_config[theme]
20
+ else
21
+ @theme_config[theme][key.to_s]
22
+ end
23
+ end
21
24
 
22
- require "maglove/version"
23
- require "maglove/tilt/twig_template"
24
- require "maglove/tilt/haml_template"
25
- require "maglove/tilt/less_template"
26
- require "maglove/tilt/scss_template"
27
- require "maglove/tilt/coffee_template"
28
- require "maglove/tilt/js_template"
29
- require "maglove/tilt/yaml_template"
30
- require "maglove/helper/log_helper"
31
- require "maglove/helper/theme_helper"
32
- require "maglove/helper/asset_helper"
33
- require "maglove/helper/command_helper"
34
- require "ext/commander/command"
35
- require "ext/commander/methods"
36
- require "maglove/command/theme"
37
- require "maglove/command/core"
38
- require "maglove/command/compile"
39
- require "maglove/command/compress"
40
- require "maglove/command/copy"
41
- require "maglove/command/util"
42
- require "maglove/command/font"
43
- require "maglove/command/sync"
44
- require "maglove/command/server"
45
- require "maglove/phantom_script"
46
- require "maglove/application"
47
- require "maglove/asset/theme"
48
- require "maglove/asset/base_theme"
49
- require "maglove/server/hpub"
50
- require "maglove/server"
51
- require "maglove/template/tumblr"
25
+ def self.logger
26
+ if @logger.nil?
27
+ Logging.color_scheme("bright",
28
+ levels: { debug: :blue, info: :green, warn: :yellow, error: :red, fatal: [:white, :on_red] },
29
+ date: :blue,
30
+ mdc: :cyan,
31
+ logger: :cyan,
32
+ message: :black)
33
+ Logging.appenders.stdout("stdout", layout: Logging.layouts.pattern(pattern: '[%d] %-5l %-18X{full_command} %x %m\n', color_scheme: 'bright'))
34
+ @logger = Logging::Logger.new(self.class.name)
35
+ @logger.level = :debug
36
+ @logger.add_appenders('stdout')
37
+ end
38
+ @logger
39
+ end
40
+ end
data/lib/powersnap.rb ADDED
@@ -0,0 +1,24 @@
1
+ class Powersnap
2
+ attr_accessor :urls, :prefix
3
+
4
+ def initialize(urls, prefix: nil)
5
+ @urls = urls.map { |url| URI.encode(url) }
6
+ @prefix = prefix
7
+ end
8
+
9
+ def generate(dir: ".", width: 768, height: 1024, pattern: "image-{index}.png", zoom: 1.0, page: false, quality: 100, css: nil)
10
+ extension = File.extname(pattern)
11
+ if extension == ".jpg"
12
+ format = "jpeg"
13
+ elsif extension == ".png"
14
+ format = "png"
15
+ else
16
+ raise "Invalid file extension: #{extension}"
17
+ end
18
+ cmd = "#{@prefix} powersnap -j -d \"#{dir}\" -t \"#{format}\" -q #{quality} -z #{zoom} #{page ? '--page' : ''} -w #{width.to_i} -h #{height.to_i} #{(css and "-c #{css}")} -f \"#{pattern}\" #{@urls.join(' ')}"
19
+ json_response = `#{cmd}`
20
+
21
+ response = JSON.parse(json_response)
22
+ return response["stats"] == "success"
23
+ end
24
+ end
@@ -0,0 +1,18 @@
1
+ module Workspace
2
+ class WorkspaceDir
3
+ module Archive
4
+ extend ActiveSupport::Concern
5
+
6
+ def compress_zip(target_file)
7
+ target_file.delete!
8
+ require "zip"
9
+ Zip::File.open(target_file.to_s, 'w') do |zipfile|
10
+ Dir["#{self}/**/**"].each do |file|
11
+ zipfile.add(file.sub("#{self}/", ''), file)
12
+ end
13
+ end
14
+ self
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,98 @@
1
+ require 'workspace/workspace_dir/archive'
2
+ module Workspace
3
+ class WorkspaceDir
4
+ include Workspace::WorkspaceDir::Archive
5
+
6
+ attr_accessor :workspace, :path
7
+
8
+ def initialize(workspace, path = "")
9
+ @workspace = workspace
10
+ @path = path
11
+ end
12
+
13
+ def to_s
14
+ File.join(@workspace, @path)
15
+ end
16
+
17
+ def name
18
+ File.basename(to_s)
19
+ end
20
+
21
+ def create
22
+ FileUtils.mkdir_p(to_s)
23
+ self
24
+ end
25
+
26
+ def exists?
27
+ File.directory?(to_s)
28
+ end
29
+
30
+ def copy(target_dir)
31
+ target_dir.parent_dir.create unless target_dir.parent_dir.exists?
32
+ FileUtils.cp_r(to_s, target_dir.to_s)
33
+ end
34
+
35
+ def delete!
36
+ FileUtils.rm_rf(to_s)
37
+ end
38
+
39
+ def reset!
40
+ delete!
41
+ create
42
+ end
43
+
44
+ def file(file_path)
45
+ WorkspaceFile.new(@workspace, File.join(@path, file_path))
46
+ end
47
+
48
+ def dir(dir_path)
49
+ self.class.new(@workspace, File.join(@path, dir_path))
50
+ end
51
+
52
+ def root_dir
53
+ self.class.new(@workspace, "")
54
+ end
55
+
56
+ def chdir(target_dir = nil)
57
+ if target_dir.nil?
58
+ self.class.new(to_s, "")
59
+ else
60
+ self.class.new(dir(target_dir).to_s, "")
61
+ end
62
+ end
63
+
64
+ def parent_dir
65
+ root_dir.dir(File.expand_path("..", @path))
66
+ end
67
+
68
+ def children
69
+ entries = []
70
+ Dir.chdir(to_s) do
71
+ Dir["*"].each do |path|
72
+ entries.push(dir(path))
73
+ end
74
+ end
75
+ entries
76
+ end
77
+
78
+ def files(glob = "*")
79
+ entries = []
80
+ Dir.chdir(to_s) do
81
+ Dir[glob].each do |path|
82
+ entries.push(file(path))
83
+ end
84
+ end
85
+ entries
86
+ end
87
+
88
+ def each_dir(&block)
89
+ children.each do |subdir|
90
+ yield(subdir)
91
+ end
92
+ end
93
+
94
+ def absolute_path
95
+ File.absolute_path(to_s)
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,45 @@
1
+ module Workspace
2
+ class WorkspaceFile
3
+ module Archive
4
+ extend ActiveSupport::Concern
5
+
6
+ def extract(target_dir)
7
+ target_dir.create
8
+ if extension == "zip"
9
+ extract_zip(target_dir)
10
+ elsif extension == "gz"
11
+ extract_gz(target_dir)
12
+ end
13
+ self
14
+ end
15
+
16
+ private
17
+
18
+ def extract_zip(target_dir)
19
+ require "zip"
20
+ Zip::File.open(to_s) do |archive|
21
+ archive.each do |entry|
22
+ entry.extract(File.join(target_dir.to_s, entry.name))
23
+ end
24
+ end
25
+ end
26
+
27
+ def extract_gz(target_dir)
28
+ require 'rubygems/package'
29
+ workspace_dir = target_dir.root_dir
30
+ archive = Gem::Package::TarReader.new(Zlib::GzipReader.open(to_s))
31
+ archive.rewind
32
+ archive.each do |entry|
33
+ if entry.directory?
34
+ archive_dir = workspace_dir.dir(entry.full_name)
35
+ archive_dir.create
36
+ elsif entry.file?
37
+ archive_file = workspace_dir.file(entry.full_name)
38
+ archive_file.write(entry.read)
39
+ end
40
+ end
41
+ archive.close
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ module Workspace
2
+ class WorkspaceFile
3
+ module Media
4
+ extend ActiveSupport::Concern
5
+
6
+ def image?
7
+ ["jpg", "jpeg", "gif", "png"].include?(extension)
8
+ end
9
+
10
+ def video?
11
+ ["mp4"].include?(extension)
12
+ end
13
+
14
+ def audio?
15
+ ["mp3"].include?(extension)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ require "open-uri"
2
+ require "open_uri_redirections"
3
+
4
+ module Workspace
5
+ class WorkspaceFile
6
+ module Net
7
+ extend ActiveSupport::Concern
8
+
9
+ def download(url)
10
+ url = "http:#{url}" if url[0..1] == "//"
11
+ contents = open(url, { ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE, allow_redirections: :safe }).read
12
+ dir.create unless dir.exists?
13
+ write(contents)
14
+ self
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ module Workspace
2
+ class WorkspaceFile
3
+ module Parse
4
+ extend ActiveSupport::Concern
5
+
6
+ def read_json
7
+ JSON.parse(read)
8
+ end
9
+
10
+ def read_yaml
11
+ Psych.load_file(to_s)
12
+ end
13
+
14
+ def read_haml(options)
15
+ require "haml"
16
+ engine = Haml::Engine.new(read)
17
+ engine.render(Object.new, options)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,99 @@
1
+ require 'workspace/workspace_file/archive'
2
+ require 'workspace/workspace_file/media'
3
+ require 'workspace/workspace_file/net'
4
+ require 'workspace/workspace_file/parse'
5
+
6
+ module Workspace
7
+ class WorkspaceFile
8
+ include Workspace::WorkspaceFile::Archive
9
+ include Workspace::WorkspaceFile::Media
10
+ include Workspace::WorkspaceFile::Net
11
+ include Workspace::WorkspaceFile::Parse
12
+
13
+ attr_accessor :workspace, :path
14
+
15
+ def initialize(workspace, path)
16
+ @workspace = workspace
17
+ @path = path
18
+ end
19
+
20
+ def set(data)
21
+ @contents = data
22
+ self
23
+ end
24
+
25
+ def contents
26
+ @contents ||= read
27
+ end
28
+
29
+ def replace(key, value)
30
+ contents.gsub!(key, value)
31
+ self
32
+ end
33
+
34
+ def write(data = nil)
35
+ data ||= @contents
36
+ dir.create unless dir.exists?
37
+ File.open(to_s, "wb") { |file| file << data }
38
+ self
39
+ end
40
+
41
+ def copy(target_file)
42
+ target_file.dir.create unless target_file.dir.exists?
43
+ FileUtils.cp(to_s, target_file.to_s)
44
+ end
45
+
46
+ def to_s
47
+ File.join(@workspace, @path)
48
+ end
49
+
50
+ def relative_path
51
+ @path.sub(%r{^/}, "")
52
+ end
53
+
54
+ def exists?
55
+ File.exist?(to_s) and !File.directory?(to_s)
56
+ end
57
+
58
+ def read
59
+ File.open(to_s).read
60
+ end
61
+
62
+ def dir
63
+ Workspace::WorkspaceDir.new(@workspace, File.dirname(@path))
64
+ end
65
+
66
+ def md5
67
+ Digest::MD5.hexdigest(read)
68
+ end
69
+
70
+ def url
71
+ "file://#{absolute_path}"
72
+ end
73
+
74
+ def delete!
75
+ FileUtils.rm_f(to_s)
76
+ end
77
+
78
+ def basename
79
+ File.basename(path, ".*")
80
+ end
81
+
82
+ def slug
83
+ relative_path.chomp(File.extname(self.relative_path))
84
+ end
85
+
86
+ def extension
87
+ File.extname(to_s).gsub(/^\./, "")
88
+ end
89
+
90
+ def rename!(filename)
91
+ FileUtils.mv(to_s, dir.file(filename).to_s) if exists?
92
+ @path = dir.file(filename).path
93
+ end
94
+
95
+ def absolute_path
96
+ File.absolute_path(to_s)
97
+ end
98
+ end
99
+ end
data/lib/workspace.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "workspace/workspace_dir"
2
+ require "workspace/workspace_file"
3
+ module Workspace
4
+ def workspace_dir(workspace, path = "")
5
+ Workspace::WorkspaceDir.new(workspace, path)
6
+ end
7
+
8
+ def workspace_file(workspace, path = "")
9
+ Workspace::WorkspaceFile.new(workspace, path)
10
+ end
11
+ end
data/maglove.gemspec CHANGED
@@ -14,26 +14,26 @@ Gem::Specification.new do |s|
14
14
  s.description = "This gem contains development and built tools for creating MagLoft themes."
15
15
  s.required_rubygems_version = '>= 2.4.7'
16
16
  s.add_runtime_dependency "bundler", "~> 1.10"
17
- s.add_runtime_dependency "dotenv", "~> 2.0"
18
17
  s.add_runtime_dependency 'haml', "~> 4.0"
19
- s.add_runtime_dependency 'hamloft', "~> 0.2.1"
20
- s.add_runtime_dependency "rubyzip", "~> 1.1"
21
- s.add_runtime_dependency "activesupport", "~> 5.0"
22
- s.add_runtime_dependency "actionpack", "~> 5.0"
18
+ s.add_runtime_dependency "thor", "~> 0.19"
19
+ s.add_runtime_dependency 'hamloft', "~> 0.2.4"
20
+ s.add_runtime_dependency "activesupport", ">= 4.0"
21
+ s.add_runtime_dependency "actionpack", ">= 4.0"
22
+ s.add_runtime_dependency "maglove-widgets", "~> 1.0"
23
+ s.add_runtime_dependency "open_uri_redirections", "~> 0.2"
23
24
  s.add_runtime_dependency "logging", "~> 2.0"
24
25
  s.add_runtime_dependency "tilt", "~> 1.4"
25
26
  s.add_runtime_dependency "coffee-script", "~> 2.4"
26
- s.add_runtime_dependency "minitar", "~> 0.5"
27
- s.add_runtime_dependency "therubyracer", "~> 0.12"
28
27
  s.add_runtime_dependency "less", "~> 2.6"
29
28
  s.add_runtime_dependency "sass", "~> 3.4"
30
- s.add_runtime_dependency "webrick", "~> 1.3"
31
- s.add_runtime_dependency "commander", "~> 4.3"
32
- s.add_runtime_dependency "filewatcher", "~> 0.5"
29
+ s.add_runtime_dependency "dialers", "~> 0.2"
30
+ s.add_runtime_dependency "rubyzip", "~> 1.1"
33
31
  s.add_runtime_dependency "image_optim", "~> 0.21"
34
32
  s.add_runtime_dependency "image_optim_pack", "~> 0.2"
35
- s.add_development_dependency "rspec", "~> 3.3"
36
- s.add_development_dependency "pry", "~> 0.10"
33
+ s.add_runtime_dependency "puma", "~> 3.6"
34
+ s.add_runtime_dependency "filewatcher", "~> 0.5"
35
+ s.add_runtime_dependency "faye", "~> 1.2"
36
+ s.add_runtime_dependency "faraday", "~> 0.9"
37
37
  s.add_development_dependency "rubocop", "~> 0.32"
38
38
  s.files = `git ls-files`.split("\n")
39
39
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }