middleman-core 3.1.0.beta.1 → 3.1.0.beta.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.
- checksums.yaml +7 -0
- data/lib/middleman-core/core_extensions/data.rb +5 -0
- data/lib/middleman-core/core_extensions/extensions.rb +33 -13
- data/lib/middleman-core/core_extensions/rendering.rb +11 -6
- data/lib/middleman-core/extensions.rb +39 -6
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +1 -1
- data/lib/middleman-core/renderers/slim.rb +3 -1
- data/lib/middleman-core/sitemap/extensions/traversal.rb +3 -0
- data/lib/middleman-core/templates/extension/Gemfile +6 -6
- data/lib/middleman-core/templates/extension/gitignore +4 -1
- data/lib/middleman-core/templates/extension/lib/lib.rb +11 -12
- data/lib/middleman-core/templates/shared/Gemfile.tt +3 -0
- data/lib/middleman-core/templates/shared/config.tt +0 -9
- data/lib/middleman-core/version.rb +1 -1
- data/middleman-core.gemspec +3 -5
- metadata +15 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 162338185650a24dbf63fc3f9e937c325696e8a4
|
4
|
+
data.tar.gz: 4127281186efb590b13ffcbcab498ece1db4b418
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a3e4a7d833d68f8e60a518db42e581a765197fa2904fbaaade630abdd69cdb2143e4dc058a7724fce4e022251ebd108d98e5ab94186e9ab0bffb61e7b8c31cf7
|
7
|
+
data.tar.gz: 26736224cbb3f390c8be6877e357f6cc83daa09bdbcca78c8e9276b1bdfd25acf0a5cf5c215d793cb43be00320627119230b0a70dddbe6f4de40fb7cd5b997e5
|
@@ -177,6 +177,11 @@ module Middleman
|
|
177
177
|
super
|
178
178
|
end
|
179
179
|
|
180
|
+
# Needed so that method_missing makes sense
|
181
|
+
def respond_to?(method, include_private = false)
|
182
|
+
super || @local_data.has_key?(method.to_s) || !!(data_for_path(method))
|
183
|
+
end
|
184
|
+
|
180
185
|
# Convert all the data into a static hash
|
181
186
|
#
|
182
187
|
# @return [Hash]
|
@@ -37,6 +37,7 @@ module Middleman
|
|
37
37
|
class << self
|
38
38
|
# @private
|
39
39
|
def registered(app)
|
40
|
+
app.define_hook :initialized
|
40
41
|
app.define_hook :after_configuration
|
41
42
|
app.define_hook :before_configuration
|
42
43
|
app.define_hook :build_config
|
@@ -68,19 +69,15 @@ module Middleman
|
|
68
69
|
# @param [Hash] options Per-extension options hash
|
69
70
|
# @return [void]
|
70
71
|
def register(extension, options={}, &block)
|
71
|
-
|
72
|
-
|
73
|
-
if extension.
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
extension.registered(self, options, &block)
|
78
|
-
end
|
72
|
+
extend extension
|
73
|
+
if extension.respond_to?(:registered)
|
74
|
+
if extension.method(:registered).arity === 1
|
75
|
+
extension.registered(self, &block)
|
76
|
+
else
|
77
|
+
extension.registered(self, options, &block)
|
79
78
|
end
|
80
|
-
extension
|
81
|
-
elsif extension.instance_of?(Class) && extension.ancestors.include?(::Middleman::Extension)
|
82
|
-
extension.new(self, options, &block)
|
83
79
|
end
|
80
|
+
extension
|
84
81
|
end
|
85
82
|
end
|
86
83
|
|
@@ -105,7 +102,22 @@ module Middleman
|
|
105
102
|
logger.error "== Unknown Extension: #{ext}"
|
106
103
|
else
|
107
104
|
logger.debug "== Activating: #{ext}"
|
108
|
-
|
105
|
+
|
106
|
+
if ext_module.instance_of? Module
|
107
|
+
extensions[ext] = self.class.register(ext_module, options, &block)
|
108
|
+
elsif ext_module.instance_of?(Class) && ext_module.ancestors.include?(::Middleman::Extension)
|
109
|
+
if ext_module.supports_multiple_instances?
|
110
|
+
extensions[ext] ||= {}
|
111
|
+
key = "instance_#{extensions[ext].keys.length}"
|
112
|
+
extensions[ext][key] = ext_module.new(self.class, options, &block)
|
113
|
+
else
|
114
|
+
if extensions[ext]
|
115
|
+
logger.error "== #{ext} already activated."
|
116
|
+
else
|
117
|
+
extensions[ext] = ext_module.new(self.class, options, &block)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
109
121
|
end
|
110
122
|
end
|
111
123
|
|
@@ -144,11 +156,19 @@ module Middleman
|
|
144
156
|
run_hook :build_config if build?
|
145
157
|
run_hook :development_config if development?
|
146
158
|
|
159
|
+
run_hook :initialized
|
160
|
+
|
147
161
|
run_hook :after_configuration
|
148
162
|
|
149
163
|
logger.debug "Loaded extensions:"
|
150
164
|
self.extensions.each do |ext,_|
|
151
|
-
|
165
|
+
if ext.is_a?(Hash)
|
166
|
+
ext.each do |k,_|
|
167
|
+
logger.debug "== Extension: #{k}"
|
168
|
+
end
|
169
|
+
else
|
170
|
+
logger.debug "== Extension: #{ext}"
|
171
|
+
end
|
152
172
|
end
|
153
173
|
end
|
154
174
|
end
|
@@ -25,6 +25,8 @@ module Middleman
|
|
25
25
|
::Tilt.mappings.delete('html') # WTF, Tilt?
|
26
26
|
::Tilt.mappings.delete('csv')
|
27
27
|
|
28
|
+
require 'active_support/core_ext/string/output_safety'
|
29
|
+
|
28
30
|
# Activate custom renderers
|
29
31
|
require "middleman-core/renderers/erb"
|
30
32
|
app.register Middleman::Renderers::ERb
|
@@ -127,9 +129,10 @@ module Middleman
|
|
127
129
|
|
128
130
|
# Store last engine for later (could be inside nested renders)
|
129
131
|
@current_engine, engine_was = engine, @current_engine
|
130
|
-
|
131
|
-
|
132
|
-
|
132
|
+
if defined?(::I18n)
|
133
|
+
old_locale = ::I18n.locale
|
134
|
+
::I18n.locale = opts[:lang] if opts[:lang]
|
135
|
+
end
|
133
136
|
|
134
137
|
# Use a dup of self as a context so that instance variables set within
|
135
138
|
# the template don't persist for other templates.
|
@@ -167,7 +170,7 @@ module Middleman
|
|
167
170
|
ensure
|
168
171
|
# Pop all the saved variables from earlier as we may be returning to a
|
169
172
|
# previous render (layouts, partials, nested layouts).
|
170
|
-
::I18n.locale = old_locale
|
173
|
+
::I18n.locale = old_locale if defined?(::I18n)
|
171
174
|
@current_engine = engine_was
|
172
175
|
@content_blocks = nil
|
173
176
|
@current_locs = nil
|
@@ -274,7 +277,9 @@ module Middleman
|
|
274
277
|
content = callback.call(content, path, locs, template_class)
|
275
278
|
end
|
276
279
|
|
277
|
-
|
280
|
+
output = ::ActiveSupport::SafeBuffer.new
|
281
|
+
output.safe_concat content
|
282
|
+
output
|
278
283
|
ensure
|
279
284
|
# Reset stored buffer
|
280
285
|
@_out_buf = _buf_was
|
@@ -408,7 +413,7 @@ module Middleman
|
|
408
413
|
@_out_buf = _buf_was
|
409
414
|
end
|
410
415
|
|
411
|
-
|
416
|
+
concat_safe_content render_individual_file(layout_path, @current_locs || {}, @current_opts || {}, self) { content }
|
412
417
|
ensure
|
413
418
|
@current_engine = engine_was
|
414
419
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "active_support/core_ext/class/attribute"
|
2
|
+
|
1
3
|
module Middleman
|
2
4
|
|
3
5
|
module Extensions
|
@@ -82,7 +84,7 @@ module Middleman
|
|
82
84
|
def rubygems_latest_specs
|
83
85
|
# If newer Rubygems
|
84
86
|
if ::Gem::Specification.respond_to? :latest_specs
|
85
|
-
::Gem::Specification.latest_specs
|
87
|
+
::Gem::Specification.latest_specs(true)
|
86
88
|
else
|
87
89
|
::Gem.source_index.latest_specs
|
88
90
|
end
|
@@ -102,6 +104,10 @@ module Middleman
|
|
102
104
|
end
|
103
105
|
|
104
106
|
class Extension
|
107
|
+
class_attribute :supports_multiple_instances, :instance_reader => false, :instance_writer => false
|
108
|
+
class_attribute :defined_helpers, :instance_reader => false, :instance_writer => false
|
109
|
+
class_attribute :ext_name, :instance_reader => false, :instance_writer => false
|
110
|
+
|
105
111
|
class << self
|
106
112
|
def config
|
107
113
|
@_config ||= ::Middleman::Configuration::ConfigurationManager.new
|
@@ -110,11 +116,29 @@ module Middleman
|
|
110
116
|
def option(key, default=nil, description=nil)
|
111
117
|
config.define_setting(key, default, description)
|
112
118
|
end
|
119
|
+
|
120
|
+
def helpers(&block)
|
121
|
+
self.defined_helpers ||= []
|
122
|
+
|
123
|
+
m = Module.new
|
124
|
+
m.module_eval(&block)
|
125
|
+
self.defined_helpers << m
|
126
|
+
end
|
127
|
+
|
128
|
+
def extension_name
|
129
|
+
self.ext_name || self.name.underscore.split("/").last.to_sym
|
130
|
+
end
|
131
|
+
|
132
|
+
def register(n=self.extension_name)
|
133
|
+
::Middleman::Extensions.register(n, self)
|
134
|
+
end
|
113
135
|
end
|
114
136
|
|
115
137
|
attr_accessor :app, :options
|
116
138
|
|
117
139
|
def initialize(klass, options_hash={})
|
140
|
+
@_helpers = []
|
141
|
+
|
118
142
|
@options = self.class.config.dup
|
119
143
|
@options.finalize!
|
120
144
|
|
@@ -125,14 +149,23 @@ module Middleman
|
|
125
149
|
yield @options if block_given?
|
126
150
|
|
127
151
|
ext = self
|
128
|
-
klass.
|
152
|
+
klass.initialized do
|
129
153
|
ext.app = self
|
130
|
-
|
154
|
+
|
155
|
+
(ext.class.defined_helpers || []).each do |m|
|
156
|
+
ext.app.class.send(:include, m)
|
157
|
+
end
|
131
158
|
end
|
132
|
-
end
|
133
159
|
|
134
|
-
|
135
|
-
|
160
|
+
klass.after_configuration do
|
161
|
+
if ext.respond_to?(:after_configuration)
|
162
|
+
ext.after_configuration
|
163
|
+
end
|
164
|
+
|
165
|
+
if ext.respond_to?(:manipulate_resource_list)
|
166
|
+
ext.app.sitemap.register_resource_list_manipulator(ext.class.extension_name, ext)
|
167
|
+
end
|
168
|
+
end
|
136
169
|
end
|
137
170
|
end
|
138
171
|
end
|
@@ -32,7 +32,7 @@ module Middleman
|
|
32
32
|
'Path' => @resource.path,
|
33
33
|
'Build Path' => @resource.destination_path,
|
34
34
|
'URL' => content_tag(:a, @resource.url, :href => @resource.url),
|
35
|
-
'
|
35
|
+
'Source File' => @resource.source_file,
|
36
36
|
}
|
37
37
|
|
38
38
|
data = @resource.data
|
@@ -19,7 +19,9 @@ module Middleman
|
|
19
19
|
# Setup Slim options to work with partials
|
20
20
|
::Slim::Engine.set_default_options(
|
21
21
|
:buffer => '@_out_buf',
|
22
|
-
:
|
22
|
+
:use_html_safe => true,
|
23
|
+
:generator => ::Temple::Generators::RailsOutputBuffer,
|
24
|
+
:disable_escape => true
|
23
25
|
)
|
24
26
|
|
25
27
|
app.after_configuration do
|
@@ -68,6 +68,9 @@ module Middleman
|
|
68
68
|
# (e.g., if the resource is named 'gallery.html' and a path exists named 'gallery/', this would return true)
|
69
69
|
# @return [Boolean]
|
70
70
|
def eponymous_directory?
|
71
|
+
if !path.end_with?("/#{app.index_file}") && destination_path.end_with?("/#{app.index_file}")
|
72
|
+
return true
|
73
|
+
end
|
71
74
|
full_path = File.join(app.source_dir, eponymous_directory_path)
|
72
75
|
!!(File.exists?(full_path) && File.directory?(full_path))
|
73
76
|
end
|
@@ -6,14 +6,14 @@ source 'http://rubygems.org'
|
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
group :development do
|
9
|
-
gem "rake"
|
10
|
-
gem "rdoc"
|
11
|
-
gem "yard"
|
9
|
+
gem "rake"
|
10
|
+
gem "rdoc"
|
11
|
+
gem "yard"
|
12
12
|
end
|
13
13
|
|
14
14
|
group :test do
|
15
|
-
gem "cucumber"
|
15
|
+
gem "cucumber"
|
16
16
|
gem "fivemat"
|
17
|
-
gem "aruba"
|
18
|
-
gem "rspec"
|
17
|
+
gem "aruba"
|
18
|
+
gem "rspec"
|
19
19
|
end
|
@@ -2,19 +2,16 @@
|
|
2
2
|
require "middleman-core"
|
3
3
|
|
4
4
|
# Extension namespace
|
5
|
-
|
5
|
+
class MyExtension < ::Middleman::Extension
|
6
6
|
option :my_option, "default", "An example option"
|
7
7
|
|
8
|
-
def initialize(app, options_hash={})
|
8
|
+
def initialize(app, options_hash={}, &block)
|
9
9
|
# Call super to build options from the options_hash
|
10
10
|
super
|
11
11
|
|
12
12
|
# Require libraries only when activated
|
13
13
|
# require 'necessary/library'
|
14
14
|
|
15
|
-
# Include helpers or instance methods for the Middleman app
|
16
|
-
# app.send :include, Helpers
|
17
|
-
|
18
15
|
# set up your extension
|
19
16
|
# puts options.my_option
|
20
17
|
end
|
@@ -23,7 +20,11 @@ module MyExtension < Middleman::Extension
|
|
23
20
|
# Do something
|
24
21
|
end
|
25
22
|
|
26
|
-
#
|
23
|
+
# A Sitemap Manipulator
|
24
|
+
# def manipulate_resource_list(resources)
|
25
|
+
# end
|
26
|
+
|
27
|
+
# module do
|
27
28
|
# def a_helper
|
28
29
|
# end
|
29
30
|
# end
|
@@ -32,9 +33,7 @@ end
|
|
32
33
|
|
33
34
|
# Register extensions which can be activated
|
34
35
|
# Make sure we have the version of Middleman we expect
|
35
|
-
#
|
36
|
-
#
|
37
|
-
|
38
|
-
#
|
39
|
-
#
|
40
|
-
# end
|
36
|
+
# Name param may be omited, it will default to underscored
|
37
|
+
# version of class name
|
38
|
+
|
39
|
+
# MyExtension.register(:my_extension)
|
@@ -2,10 +2,6 @@
|
|
2
2
|
# Compass
|
3
3
|
###
|
4
4
|
|
5
|
-
# Susy grids in Compass
|
6
|
-
# First: gem install susy
|
7
|
-
# require 'susy'
|
8
|
-
|
9
5
|
# Change Compass configuration
|
10
6
|
# compass_config do |config|
|
11
7
|
# config.output_style = :compact
|
@@ -82,11 +78,6 @@ configure :build do
|
|
82
78
|
# Use relative URLs
|
83
79
|
# activate :relative_assets
|
84
80
|
|
85
|
-
# Compress PNGs after build
|
86
|
-
# First: gem install middleman-smusher
|
87
|
-
# require "middleman-smusher"
|
88
|
-
# activate :smusher
|
89
|
-
|
90
81
|
# Or use a different image path
|
91
82
|
# set :http_path, "/Content/images/"
|
92
83
|
end
|
data/middleman-core.gemspec
CHANGED
@@ -19,20 +19,18 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
# Core
|
21
21
|
s.add_dependency("bundler", ["~> 1.1"])
|
22
|
-
s.add_dependency("rack", ["
|
22
|
+
s.add_dependency("rack", [">= 1.4.5"])
|
23
23
|
s.add_dependency("tilt", ["~> 1.3.6"])
|
24
24
|
|
25
25
|
# Builder
|
26
26
|
s.add_dependency("rack-test", ["~> 0.6.1"])
|
27
27
|
|
28
28
|
# CLI
|
29
|
-
s.add_dependency("thor", ["~> 0.
|
29
|
+
s.add_dependency("thor", ["~> 0.17.0"])
|
30
30
|
|
31
31
|
# Helpers
|
32
32
|
s.add_dependency("activesupport", ["~> 3.2.6"])
|
33
33
|
|
34
34
|
# Watcher
|
35
|
-
s.add_dependency("listen", ["~> 0.
|
36
|
-
# s.add_dependency("rb-fsevent", ["~> 0.9.3"]) # OS X
|
37
|
-
# s.add_dependency("rb-inotify", ["~> 0.9.0"]) # Linux
|
35
|
+
s.add_dependency("listen", ["~> 1.0.2"])
|
38
36
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.0.beta.
|
5
|
-
prerelease: 6
|
4
|
+
version: 3.1.0.beta.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Thomas Reynolds
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-05-01 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,23 +28,20 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rack
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
|
-
version: 1.4.
|
34
|
+
version: 1.4.5
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
|
-
version: 1.4.
|
41
|
+
version: 1.4.5
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: tilt
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: rack-test
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,23 +70,20 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: thor
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ~>
|
85
75
|
- !ruby/object:Gem::Version
|
86
|
-
version: 0.
|
76
|
+
version: 0.17.0
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ~>
|
93
82
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
83
|
+
version: 0.17.0
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: activesupport
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,19 +98,17 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: listen
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ~>
|
117
103
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
104
|
+
version: 1.0.2
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ~>
|
125
110
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.
|
111
|
+
version: 1.0.2
|
127
112
|
description: A static site generator. Provides dozens of templating languages (Haml,
|
128
113
|
Sass, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache
|
129
114
|
busting, Yaml data (and more) an easy part of your development cycle.
|
@@ -638,30 +623,26 @@ files:
|
|
638
623
|
homepage: http://middlemanapp.com
|
639
624
|
licenses:
|
640
625
|
- MIT
|
626
|
+
metadata: {}
|
641
627
|
post_install_message:
|
642
628
|
rdoc_options: []
|
643
629
|
require_paths:
|
644
630
|
- lib
|
645
631
|
required_ruby_version: !ruby/object:Gem::Requirement
|
646
|
-
none: false
|
647
632
|
requirements:
|
648
|
-
- -
|
633
|
+
- - '>='
|
649
634
|
- !ruby/object:Gem::Version
|
650
635
|
version: '0'
|
651
|
-
segments:
|
652
|
-
- 0
|
653
|
-
hash: 4098219803529430260
|
654
636
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
655
|
-
none: false
|
656
637
|
requirements:
|
657
|
-
- -
|
638
|
+
- - '>'
|
658
639
|
- !ruby/object:Gem::Version
|
659
640
|
version: 1.3.1
|
660
641
|
requirements: []
|
661
642
|
rubyforge_project:
|
662
|
-
rubygems_version:
|
643
|
+
rubygems_version: 2.0.0
|
663
644
|
signing_key:
|
664
|
-
specification_version:
|
645
|
+
specification_version: 4
|
665
646
|
summary: Hand-crafted frontend development
|
666
647
|
test_files:
|
667
648
|
- features/3rd_party_cli.feature
|