pieces 0.4.5 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f0c78f26ae344a81c5411d901d551640d01f82f
4
- data.tar.gz: d152e4834db8415e043ff06dcb7209a58529d556
3
+ metadata.gz: 73782cbe81a03c730a6f900907002e7c3c340291
4
+ data.tar.gz: 053135ed7030f75e618145944d21abddcc308865
5
5
  SHA512:
6
- metadata.gz: 7f29b7ed87aa9b7e673a84496ba7b67167da61db87119fd22c0879be2124633310c2ed5ca3ab50a5699c3b53534cb8fe2fc1964fbd89a609b3217bbfe58fb95c
7
- data.tar.gz: fe0bc48abc9d6bdee5746af430a56d33f7ec16b7ec7d68afcd8f6bed5b8e44502c97082d29783c1cab24877df0b199aa90583220fb3c8dec321aa6dfcc6416a7
6
+ metadata.gz: 2cb0ed6e93620de4ead6eb5cb31ed936b434b672a41ed5234c4dc6daf47242a8f59bc2bd205ab2386b00b2333f5a743d7f26c6872958f893b95f59615a511a38
7
+ data.tar.gz: 116bd25ff96679c855ad792786a1e6df4bb8ec0b5f0913062998b2660dbf6debbdedb4400ab7c5d82e35c4e838eb7194cccdcb105f438bb8676032d43c4bb26a
data/README.md CHANGED
@@ -51,8 +51,8 @@ same places rails does.
51
51
  </article>
52
52
  ```
53
53
 
54
- You should have a one to one relationship between components, and stylesheets.
55
- For example, `.article` should be defined like so.
54
+ Ideally you should have a one to one relationship between components, and
55
+ stylesheets. For example, `.article` should be defined like so.
56
56
 
57
57
  **`app/assets/stylesheets/components/article.css`:**
58
58
 
@@ -66,17 +66,20 @@ For example, `.article` should be defined like so.
66
66
  }
67
67
  ```
68
68
 
69
- You can use `.css`, `.scss`, `.sass` and `.less` with Pieces.
69
+ You can use `.css`, `.scss`, `.sass` and `.less` with Pieces. In fact anything
70
+ supports by [Sprockets](https://github.com/rails/sprockets) since that is what
71
+ we use under the hood.
70
72
 
71
- We also need to pull this stylesheet into main one for your styleguide.
73
+ We also need to pull this stylesheet into your styleguide. By default pieces
74
+ will look for `pieces.css`.
72
75
 
73
- **`app/assets/stylesheets/components/article.css`:**
76
+ **`app/assets/stylesheets/pieces.css`:**
74
77
 
75
78
  ```css
76
79
  /*= require_tree ./components */
77
80
  ```
78
81
 
79
- And a layout to pull it together.
82
+ And we need a layout to pull the components together.
80
83
 
81
84
  **`app/views/layouts/pieces.html.erb`:**
82
85
 
@@ -165,7 +168,7 @@ And then visit [http://localhost:8080](http://localhost:8080)
165
168
  If you do you should update Pieces::Rails in your `config/routes.rb` as follows:
166
169
 
167
170
  ``` ruby
168
- mount Pieces::Rails.new(force_polling: true).mount, at: '/styleguide' unless Rails.env.production?
171
+ mount Pieces::Rails.mount(force_polling: true), at: '/styleguide' unless Rails.env.production?
169
172
  ```
170
173
 
171
174
  This will tell `listen`, the gem that watches for changes, to poll your app
@@ -2,45 +2,16 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'pieces'
4
4
 
5
- # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
6
5
  gem 'rails', '4.2.1'
7
- # Use sqlite3 as the database for Active Record
8
6
  gem 'sqlite3'
9
- # Use SCSS for stylesheets
10
7
  gem 'sass-rails', '~> 5.0'
11
- # Use Uglifier as compressor for JavaScript assets
12
8
  gem 'uglifier', '>= 1.3.0'
13
- # Use CoffeeScript for .coffee assets and views
14
- gem 'coffee-rails', '~> 4.1.0'
15
- # See https://github.com/rails/execjs#readme for more supported runtimes
16
- # gem 'therubyracer', platforms: :ruby
17
-
18
- # Use jquery as the JavaScript library
19
9
  gem 'jquery-rails'
20
- # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
21
10
  gem 'turbolinks'
22
- # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
23
- gem 'jbuilder', '~> 2.0'
24
- # bundle exec rake doc:rails generates the API under doc/api.
25
- gem 'sdoc', '~> 0.4.0', group: :doc
26
-
27
- # Use ActiveModel has_secure_password
28
- # gem 'bcrypt', '~> 3.1.7'
29
-
30
- # Use Unicorn as the app server
31
- # gem 'unicorn'
32
-
33
- # Use Capistrano for deployment
34
- # gem 'capistrano-rails', group: :development
35
11
 
36
12
  group :development, :test do
37
- # Call 'byebug' anywhere in the code to stop execution and get a debugger console
38
- gem 'byebug'
39
-
40
- # Access an IRB console on exception pages or by using <%= console %> in views
13
+ gem 'pry-byebug'
41
14
  gem 'web-console', '~> 2.0'
42
-
43
- # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
44
15
  gem 'spring'
45
16
  end
46
17
 
@@ -0,0 +1 @@
1
+ console.log('hello world')
@@ -0,0 +1 @@
1
+ //= require_tree ./components
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <title><%= title %></title>
5
5
  <%= stylesheet_link_tag 'pieces' %>
6
+ <%= javascript_include_tag 'pieces' %>
6
7
  </head>
7
8
  <body>
8
9
  <%= yield %>
@@ -2,6 +2,10 @@ _global:
2
2
  title: 'Your Site!!'
3
3
  footer: 'Hey'
4
4
 
5
+ _publish:
6
+ - type: github
7
+ remote: https://github.com/drpheltright/pieces.git
8
+
5
9
  index:
6
10
  _pieces:
7
11
  - layouts/pieces:
@@ -11,7 +15,7 @@ index:
11
15
  - _branding: {}
12
16
  - articles/_summary:
13
17
  article:
14
- title: 'A standard artile summary'
18
+ title: 'A standard article summary'
15
19
  excerpt: 'This summary does not deserve any special attention.'
16
20
  - articles/_summary:
17
21
  modifier: '--latest'
@@ -1,3 +1,3 @@
1
1
  Rails.application.routes.draw do
2
- mount Pieces::Rails.new.mount, at: '/styleguide'
2
+ mount Pieces::Rails.mount, at: '/styleguide'
3
3
  end
data/lib/pieces.rb CHANGED
@@ -1,4 +1,7 @@
1
+ require 'pieces/config'
2
+ require 'pieces/configurable'
1
3
  require 'pieces/builder'
4
+ require 'pieces/publisher'
2
5
  require 'pieces/rails' if defined?(Rails)
3
6
  require 'pieces/version'
4
7
 
@@ -0,0 +1,21 @@
1
+ module Pieces
2
+ class BacktraceFormatter
3
+ include Configurable
4
+
5
+ def format(exception)
6
+ output = ["Exception<#{exception.class.name}>: #{exception.message}"]
7
+ output << ''
8
+
9
+ begin
10
+ require 'rails'
11
+ trace = ::Rails.backtrace_cleaner.clean(exception.backtrace)
12
+ rescue LoadError => e
13
+ trace = exception.backtrace
14
+ # .delete_if { |line| !line.include?(config.path) }
15
+ # .map { |line| line.sub("#{config.path}/", '') }
16
+ end
17
+
18
+ output.concat(trace.map { |line| " #{line}" }).join("\n")
19
+ end
20
+ end
21
+ end
@@ -1,64 +1,49 @@
1
1
  require 'ostruct'
2
2
  require 'yaml'
3
3
  require 'sprockets'
4
- require 'pieces/compilers/route_compiler'
4
+ require 'pieces/route_compiler'
5
+ require 'pieces/config'
5
6
  require 'pieces/server'
6
7
  require 'pieces/tilt_extension'
7
8
 
8
9
  module Pieces
9
10
  class Builder
10
- def self.build(config)
11
- new(config).build
11
+ def self.build(config = {})
12
+ new(Config.new(config)).build
12
13
  end
13
14
 
14
- attr_reader :path
15
- attr_reader :route_config
15
+ include Configurable
16
16
 
17
17
  def initialize(config)
18
- @path = config[:path]
19
-
20
- unless File.exists?("#{path}/config/pieces.yml")
21
- puts "We could not find pieces.yml in #{path}/config/"
22
- puts 'Sorry about that!'
23
- exit(1)
24
- end
25
-
26
- @route_config ||= YAML.load_file("#{path}/config/pieces.yml")
18
+ super
19
+ config.env = env
27
20
  end
28
21
 
29
22
  def build
30
- save_files(build_routes(build_styles))
23
+ save_files(build_routes(build_assets))
31
24
  end
32
25
 
33
26
  private
34
27
 
35
28
  def env
36
- @env ||= Server.new(path: path).sprockets_env
29
+ @env ||= Server.new(config).sprockets_env
37
30
  end
38
31
 
39
- def build_styles(files = {})
40
- files.merge('assets/pieces.css' => { type: 'css', contents: env['pieces.css'] })
32
+ def build_assets(files = {})
33
+ files.merge('assets/pieces.css' => { type: 'css', contents: env['pieces.css'] },
34
+ 'assets/pieces.js' => { type: 'js', contents: env['pieces.js'] })
41
35
  end
42
36
 
43
37
  def build_routes(files = {})
44
- route_compiler = RouteCompiler.new(path: path,
45
- globals: route_config['_global'],
46
- env: env)
38
+ route_compiler = RouteCompiler.new(config)
47
39
 
48
- routes.reduce(files) do |files, (name, route)|
40
+ config.routes.reduce(files) do |files, (name, route)|
49
41
  route_compiler.compile(files, name, route)
50
42
  end
51
43
  end
52
44
 
53
- def routes
54
- route_config.reject { |key, _| key =~ /^_/ }
55
- end
56
-
57
45
  def save_files(files)
58
- Dir.chdir(path) do
59
- FileUtils.rm_rf('build')
60
- Dir.mkdir('build')
61
-
46
+ Dir.chdir(config.path) do
62
47
  files.each do |name, file|
63
48
  save_file(name, file)
64
49
  end
data/lib/pieces/cli.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'thor'
2
+ require 'pieces/config'
3
+ require 'pieces/configurable'
2
4
  require 'pieces/builder'
3
5
  require 'pieces/generator'
4
6
 
@@ -0,0 +1,52 @@
1
+ module Pieces
2
+ class ConfigNotFound < RuntimeError; end
3
+ class PublisherConfigNotFound < RuntimeError; end
4
+
5
+ class Config < Hash
6
+ attr_reader :path
7
+ attr_accessor :env
8
+
9
+ def initialize(config = {})
10
+ @path = config[:path] || Dir.pwd
11
+ load_config! unless config[:load] == false
12
+ end
13
+
14
+ def routes
15
+ reject { |key, _| key =~ /^_/ }
16
+ end
17
+
18
+ def globals
19
+ self['_global'] || {}
20
+ end
21
+
22
+ def publish_endpoint
23
+ if has_key?('_publish')
24
+ self['_publish'].first
25
+ else
26
+ raise PublisherConfigNotFound
27
+ end
28
+ end
29
+
30
+ def force_polling?
31
+ self['_force_polling']
32
+ end
33
+
34
+ def asset_prefix
35
+ self['_asset_prefix']
36
+ end
37
+
38
+ def reload!
39
+ load_config!
40
+ end
41
+
42
+ private
43
+
44
+ def load_config!
45
+ if File.exists?("#{path}/config/pieces.yml")
46
+ merge!(YAML.load_file("#{path}/config/pieces.yml"))
47
+ else
48
+ raise ConfigNotFound.new("We could not find pieces.yml in #{path}/config/")
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,9 @@
1
+ module Pieces
2
+ module Configurable
3
+ attr_reader :config
4
+
5
+ def initialize(config)
6
+ @config = config
7
+ end
8
+ end
9
+ end
@@ -3,7 +3,7 @@ require 'thor'
3
3
  module Pieces
4
4
  class Generator
5
5
  def self.init(config = {})
6
- new(config).init
6
+ new(Pieces::Config.new(config.merge(load: false))).init
7
7
  end
8
8
 
9
9
  def self.from_superclass(method, default)
@@ -12,15 +12,16 @@ module Pieces
12
12
 
13
13
  include Thor::Actions
14
14
  include Thor::Shell
15
+ include Configurable
15
16
 
16
17
  source_root File.expand_path('../../../examples/boilerplate', __FILE__)
17
18
 
18
- attr_reader :path, :options
19
+ attr_reader :options
19
20
 
20
- def initialize(config = {})
21
- @path = config[:path] || Dir.pwd
21
+ def initialize(config)
22
+ super
22
23
  @options = {}
23
- self.destination_root = config[:path]
24
+ self.destination_root = config.path
24
25
  end
25
26
 
26
27
  def init
@@ -1,54 +1,50 @@
1
+ require 'pieces/backtrace_formatter'
2
+
1
3
  module Pieces
2
4
  class Listener
3
- attr_reader :path
4
- attr_reader :build_method
5
- attr_reader :force_polling
5
+ def self.listen(config = {})
6
+ new(Config.new(config)).listen
7
+ end
8
+
9
+ include Configurable
6
10
 
7
11
  def initialize(config = {})
8
- @path = config[:path] || Dir.pwd
9
- @build_method = config[:build_method] || :build
10
- @force_polling = config[:force_polling] || false
12
+ super
11
13
  build_pieces
12
14
  end
13
15
 
14
16
  def listen
15
- Listen.to("#{path}/config/", "#{path}/app/views", force_polling: force_polling) do
17
+ Listen.to(*paths, force_polling: config.force_polling?) do
16
18
  rebuild_pieces
17
19
  end.tap(&:start)
18
20
  end
19
21
 
20
22
  private
21
23
 
24
+ def paths
25
+ ["#{config.path}/config", "#{config.path}/app/views"]
26
+ end
27
+
28
+ def backtrace_formatter
29
+ @backtrace_formatter ||= Pieces::BacktraceFormatter.new(config)
30
+ end
31
+
22
32
  def build_pieces
23
- Pieces::Builder.new(path: path).send(build_method)
33
+ Pieces::Builder.new(config).build
24
34
  rescue => e
25
- output_backtrace(e)
35
+ puts backtrace_formatter.format(e)
26
36
  exit(1)
27
37
  end
28
38
 
29
39
  def rebuild_pieces
30
- print "\nRebuilding #{File.basename(path)}... "
31
- Pieces::Builder.new(path: path).send(build_method)
40
+ print "\nRebuilding #{File.basename(config.path)}... "
41
+ config.reload!
42
+ Pieces::Builder.new(config).build
32
43
  puts 'done.'
33
44
  rescue => e
34
45
  puts 'an error occurred.'
35
46
  puts ''
36
- output_backtrace(e)
37
- end
38
-
39
- def output_backtrace(exception)
40
- puts "Exception<#{exception.class.name}>: #{exception.message}"
41
- puts ''
42
-
43
- if defined?(::Rails)
44
- trace = ::Rails.backtrace_cleaner.clean(exception.backtrace)
45
- else
46
- trace = exception.backtrace
47
- .delete_if { |line| !line.include?(path) }
48
- .map { |line| line.sub("#{path}/", '') }
49
- end
50
-
51
- puts trace.map { |line| " #{line}" }
47
+ puts backtrace_formatter.format(e)
52
48
  end
53
49
  end
54
50
  end
@@ -0,0 +1,70 @@
1
+ require 'open3'
2
+
3
+ module Pieces
4
+ class Publisher
5
+ def self.publish(config)
6
+ new(Pieces::Config.new(config)).publish
7
+ end
8
+
9
+ include Configurable
10
+
11
+ def publish
12
+ publisher_class.new(config).publish
13
+ end
14
+
15
+ private
16
+
17
+ def publisher_class
18
+ self.class.const_get(config.publish_endpoint['type'].capitalize)
19
+ end
20
+
21
+ class Adapter
22
+ include Configurable
23
+
24
+ protected
25
+
26
+ def asset_prefix
27
+ end
28
+
29
+ def builder
30
+ config['_asset_prefix'] = asset_prefix
31
+ Pieces::Builder.new(config)
32
+ end
33
+ end
34
+
35
+ class Github < Adapter
36
+ def publish
37
+ FileUtils.rm_rf("#{config.path}/build/")
38
+ FileUtils.mkdir("#{config.path}/build/")
39
+ clone_into_build_dir
40
+ builder.build
41
+ commit_and_push_changes
42
+ end
43
+
44
+ protected
45
+
46
+ def asset_prefix
47
+ _, username, repo = URI(config.publish_endpoint['remote']).path.split('/')
48
+ repo = File.basename(repo, '.git')
49
+ "http://#{username}.github.io/#{repo}/assets"
50
+ end
51
+
52
+ private
53
+
54
+ def exec(*commands)
55
+ system(commands.join(' && '), chdir: "#{config.path}/build/")
56
+ end
57
+
58
+ def clone_into_build_dir
59
+ exec("git clone -o pieces_github_pages #{config.publish_endpoint['remote']} .",
60
+ "git checkout gh-pages")
61
+ end
62
+
63
+ def commit_and_push_changes
64
+ exec("git add .",
65
+ "git commit -m 'Commit all the things'",
66
+ "git push pieces_github_pages gh-pages")
67
+ end
68
+ end
69
+ end
70
+ end
data/lib/pieces/rails.rb CHANGED
@@ -3,16 +3,17 @@ require 'pieces/server'
3
3
 
4
4
  module Pieces
5
5
  class Rails
6
- attr_reader :path, :force_polling
7
-
8
- def initialize(options = {})
9
- @path = path || Dir.pwd
10
- @force_polling = options[:force_polling]
6
+ def self.mount(config = {})
7
+ config = Config.new(config.merge(path: config[:path] || ::Rails.root,
8
+ 'force_polling' => config[:force_polling]))
9
+ new(config).mount
11
10
  end
12
11
 
12
+ include Configurable
13
+
13
14
  def mount
14
- Pieces::Listener.new(path: path, force_polling: force_polling).listen
15
- Pieces::Server.new(path: path).app
15
+ Listener.new(config).listen
16
+ Server.new(config).app
16
17
  end
17
18
  end
18
19
  end
@@ -1,3 +1,5 @@
1
+ require 'rails/railtie'
2
+
1
3
  module Pieces
2
4
  class Rails
3
5
  class Railtie < ::Rails::Railtie
@@ -2,14 +2,10 @@ require 'ostruct'
2
2
 
3
3
  module Pieces
4
4
  class RouteCompiler
5
- attr_reader :path
6
- attr_reader :env
7
- attr_reader :globals
5
+ include Configurable
8
6
 
9
7
  def initialize(config)
10
- @path = config[:path] || Dir.pwd
11
- @env = config[:env]
12
- @globals = config[:globals] || {}
8
+ @config = config
13
9
  end
14
10
 
15
11
  def compile(files, name, route)
@@ -19,11 +15,11 @@ module Pieces
19
15
  private
20
16
 
21
17
  def piece_path(piece)
22
- Dir["#{path}/app/views/{#{piece},#{piece}/#{piece},application/#{piece}}.html.*"].first
18
+ Dir["#{config.path}/app/views/{#{piece},#{piece}/#{piece},application/#{piece}}.html.*"].first
23
19
  end
24
20
 
25
21
  def route_globals(route)
26
- globals.merge(route['_global'] || {})
22
+ config.globals.merge(route['_global'] || {})
27
23
  end
28
24
 
29
25
  def merge_globals(data, route)
@@ -38,7 +34,8 @@ module Pieces
38
34
 
39
35
  def compile_piece(piece, data)
40
36
  view_model = ViewModel.new(data['_global'].merge(data))
41
- view_model.env = env
37
+ view_model.env = config.env
38
+ view_model.asset_prefix = config.asset_prefix
42
39
  ::Tilt.new(piece_path(piece)).render(view_model) { yield_pieces(data) }
43
40
  end
44
41
 
@@ -50,6 +47,7 @@ module Pieces
50
47
 
51
48
  class ViewModel < OpenStruct
52
49
  attr_accessor :env
50
+ attr_accessor :asset_prefix
53
51
 
54
52
  begin
55
53
  require 'action_view'
@@ -65,7 +63,7 @@ module Pieces
65
63
 
66
64
  def compute_asset_path(path, options = {})
67
65
  if env.resolve!(path)
68
- File.join('/assets', path)
66
+ File.join(asset_prefix || '/assets', path)
69
67
  else
70
68
  super
71
69
  end
data/lib/pieces/server.rb CHANGED
@@ -5,20 +5,24 @@ require 'pieces/listener'
5
5
 
6
6
  module Pieces
7
7
  class Server < Rack::Server
8
- attr_reader :path
8
+ def self.start(config = {})
9
+ new(Config.new(config)).start
10
+ end
9
11
 
10
- def initialize(options = {})
11
- @path = options[:path] || Dir.pwd
12
- super
12
+ attr_reader :config
13
+
14
+ def initialize(config)
15
+ @config = config
16
+ super({})
13
17
  end
14
18
 
15
19
  def start
16
- Pieces::Listener.new(path: path).listen
20
+ Pieces::Listener.new(config).listen
17
21
  super
18
22
  end
19
23
 
20
24
  def sprockets_env
21
- Sprockets::Environment.new.tap do |env|
25
+ Sprockets::Environment.new(config.path).tap do |env|
22
26
  env.append_path 'app/assets/javascripts'
23
27
  env.append_path 'app/assets/stylesheets'
24
28
  env.append_path 'app/views'
@@ -26,13 +30,13 @@ module Pieces
26
30
  end
27
31
 
28
32
  def app
29
- urls = files_to_serve(path)
30
- build_path = "#{path}/build"
33
+ urls = files_to_serve(config.path)
34
+ build_path = "#{config.path}/build"
31
35
  assets_app = sprockets_env
32
36
 
33
37
  Rack::Builder.app do
34
38
  use Rack::Reloader
35
- use Rack::Static, urls: urls, root: build_path, index: 'index.html'
39
+ use Rack::Static, urls: [''], root: build_path, index: 'index.html'
36
40
  map('/assets') { run assets_app } unless defined? ::Rails
37
41
  run Proc.new { |env| [404, {}, ['Not found']] }
38
42
  end
@@ -41,7 +45,7 @@ module Pieces
41
45
  private
42
46
 
43
47
  def files_to_serve(path)
44
- Dir["#{path}/build/**/*"].map { |file| file.sub("#{path}/build", '') }
48
+ Dir["#{config.path}/build/**/*"].map { |file| file.sub("#{config.path}/build", '') }
45
49
  end
46
50
  end
47
51
  end
@@ -1,3 +1,3 @@
1
1
  module Pieces
2
- VERSION = '0.4.5'
2
+ VERSION = '0.5.0'
3
3
  end
data/pieces.gemspec CHANGED
@@ -28,4 +28,10 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'pry'
29
29
  spec.add_development_dependency 'rake'
30
30
  spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'rails'
32
+ spec.add_development_dependency 'rspec-rails'
33
+ spec.add_development_dependency 'capybara'
34
+ spec.add_development_dependency 'sass'
35
+ spec.add_development_dependency 'sqlite3'
36
+ spec.add_development_dependency 'pry-byebug'
31
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pieces
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Morton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-15 00:00:00.000000000 Z
11
+ date: 2015-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tilt
@@ -164,6 +164,90 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec-rails
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: capybara
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: sass
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: sqlite3
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: pry-byebug
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
167
251
  description:
168
252
  email:
169
253
  - lukemorton.dev@gmail.com
@@ -204,6 +288,8 @@ files:
204
288
  - examples/rails_app/Rakefile
205
289
  - examples/rails_app/app/assets/images/.keep
206
290
  - examples/rails_app/app/assets/javascripts/application.js
291
+ - examples/rails_app/app/assets/javascripts/components/article_summary.coffee
292
+ - examples/rails_app/app/assets/javascripts/pieces.js
207
293
  - examples/rails_app/app/assets/stylesheets/application.css
208
294
  - examples/rails_app/app/assets/stylesheets/components/article_summary.scss
209
295
  - examples/rails_app/app/assets/stylesheets/components/branding.scss
@@ -256,14 +342,18 @@ files:
256
342
  - examples/rails_app/public/favicon.ico
257
343
  - examples/rails_app/public/robots.txt
258
344
  - lib/pieces.rb
345
+ - lib/pieces/backtrace_formatter.rb
259
346
  - lib/pieces/builder.rb
260
347
  - lib/pieces/cli.rb
261
- - lib/pieces/compilers/route_compiler.rb
348
+ - lib/pieces/config.rb
349
+ - lib/pieces/configurable.rb
262
350
  - lib/pieces/generator.rb
263
351
  - lib/pieces/listener.rb
352
+ - lib/pieces/publisher.rb
264
353
  - lib/pieces/rails.rb
265
354
  - lib/pieces/rails/install_generator.rb
266
355
  - lib/pieces/rails/railtie.rb
356
+ - lib/pieces/route_compiler.rb
267
357
  - lib/pieces/server.rb
268
358
  - lib/pieces/tilt/mustache.rb
269
359
  - lib/pieces/tilt_extension.rb