inesita 0.3.5 β†’ 0.4.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: f91a4d1e673a6b2193f21bc02f314badc654850a
4
- data.tar.gz: dcc841d257a207e7a1d7f7fd7395ab9a4617ff88
3
+ metadata.gz: 907698ee4cdd30ecb71863c19293871ec5aa8570
4
+ data.tar.gz: 1c75da793084fd787162548f0bbc64a9feb28bcc
5
5
  SHA512:
6
- metadata.gz: 636404d836f94c733888575ed7660e4d80764b4c0d4d532309bee232f888c871b5d70f67e73eb7db48139c13bafbd5229257bcd5d0b4ebd62610268182239352
7
- data.tar.gz: 7e9b6bec1ab7f51753b67c267afbcc53b16cddd4d9c9c67cf6f29e37b0457cd16ec89bc8a19e83dd945ad8dab96f4d8e3fed73bd0f452517019637c192b64775
6
+ metadata.gz: 51f60911f8d1bf274582fd05a8a3fff9370c1a1a9655f28fa3eba8fdab7f4631eb79a2e72f57337cc2dcc14eeb81d4a259d8cde16b7eb81c40227ff81bacc46b
7
+ data.tar.gz: 4c05625318392fe448779a30026e585f7f3e9bd70de3df3a69b7260c4399694224edca312b2cb1e1a02d60dda1f9d98619b5554401efb6689c4db6fb2b01c794
@@ -1,3 +1,14 @@
1
+ ## 0.4.0 (02.05.2016)
2
+ * add `router` to `store`
3
+ * change `handle_link` to `go_to`
4
+ * add `init` callback to `store` and `component`
5
+ * `router` support `*param` to catch rest of url
6
+ * make `opal-browser` optional
7
+ * add `Inesita::Browser` minimal browser support
8
+ * extract livereload to `inesita-livereload`
9
+ * removed `after_render`
10
+ * add `virtual-dom` hooks (instead of `after_render`)
11
+
1
12
  ## 0.3.5 (10.03.2016)
2
13
  * add `inesita watch`
3
14
  * add `inesita build` dir parameters
data/Gemfile CHANGED
@@ -5,5 +5,4 @@ gemspec
5
5
  gem 'bundler', '~> 1.0'
6
6
  gem 'rspec', '~> 3.0'
7
7
  gem 'opal-rspec', '~> 0.5.0'
8
- gem 'rake', '~> 10.0'
9
- gem 'opal-browser', '~> 0.2'
8
+ gem 'rake', '~> 11.0'
data/README.md CHANGED
@@ -8,7 +8,7 @@ More detailed description [here](https://inesita-rb.github.io).
8
8
 
9
9
  ## Examples
10
10
 
11
- - [[DEMO](http://inesita-playground.netlify.com/)] [Example application source](https://github.com/inesita-rb/playground)
12
- - [[DEMO](http://inesita-todomvc.netlify.com/)] [TodoMVC application source](https://github.com/inesita-rb/todomvc)
13
- - [[DEMO](http://inesita-dbmonster.netlify.com/)] [DBMonster application source](https://github.com/inesita-rb/dbmonster)
14
- - [[DEMO](https://inesita-asciify-me.netlify.com/)] [Asciify Me application source](https://github.com/inesita-rb/asciify-me)
11
+ - Example application: [Live demo πŸ‘€](http://inesita-playground.netlify.com/) Β· [source code πŸ“–](https://github.com/inesita-rb/playground)
12
+ - TodoMVC: [Live demo πŸ‘€](http://inesita-todomvc.netlify.com/) Β· [source code πŸ“–](https://github.com/inesita-rb/todomvc)
13
+ - DBMonster: [Live demo πŸ‘€](http://inesita-dbmonster.netlify.com/) Β· [source code πŸ“–](https://github.com/inesita-rb/dbmonster)
14
+ - Asciify Me: [Live demo πŸ‘€](https://inesita-asciify-me.netlify.com/) Β· [source code πŸ“–](https://github.com/inesita-rb/asciify-me)
data/Rakefile CHANGED
@@ -4,7 +4,6 @@ Bundler::GemHelper.install_tasks
4
4
 
5
5
  require 'rspec/core/rake_task'
6
6
  require 'opal/rspec/rake_task'
7
- require 'opal/browser'
8
7
 
9
8
  ENV['SPEC_OPTS'] = '--color'
10
9
 
@@ -2,4 +2,4 @@
2
2
 
3
3
  require 'inesita/cli'
4
4
 
5
- InesitaCLI.start(ARGV)
5
+ Inesita::CLI.start(ARGV)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'inesita'
3
- s.version = '0.3.5'
3
+ s.version = '0.4.0'
4
4
  s.authors = ['MichaΕ‚ Kalbarczyk']
5
5
  s.email = 'fazibear@gmail.com'
6
6
  s.homepage = 'http://github.com/inesita-rb/inesita'
@@ -14,12 +14,10 @@ Gem::Specification.new do |s|
14
14
  s.require_paths = ['lib']
15
15
 
16
16
  s.add_dependency 'opal', '~> 0.9'
17
- s.add_dependency 'opal-browser', '~> 0.2'
18
- s.add_dependency 'opal-virtual-dom', '~> 0.3.0'
17
+ s.add_dependency 'opal-virtual-dom', '~> 0.4.0'
19
18
  s.add_dependency 'slim', '~> 3.0'
20
19
  s.add_dependency 'sass', '~> 3.4'
21
20
  s.add_dependency 'thor', '~> 0.19'
22
21
  s.add_dependency 'rack-rewrite', '~> 1.5'
23
22
  s.add_dependency 'listen', '~> 3.0'
24
- s.add_dependency 'websocket', '~> 1.0'
25
23
  end
@@ -2,17 +2,12 @@ require 'opal'
2
2
  Opal.append_path File.expand_path('../../opal', __FILE__)
3
3
 
4
4
  require 'opal-virtual-dom'
5
- require 'opal-browser'
6
5
  require 'slim'
7
6
  require 'sass'
8
7
 
9
- require 'singleton'
10
8
  require 'listen'
11
- require 'rubame'
12
9
 
13
10
  require 'inesita/config'
14
- require 'inesita/app_files_listener'
15
- require 'inesita/live_reload'
16
11
  require 'inesita/server'
17
12
 
18
13
  module Inesita
@@ -1,75 +1,77 @@
1
- class InesitaCLI < Thor
2
- include Thor::Actions
1
+ module Inesita
2
+ class CLI < Thor
3
+ include Thor::Actions
3
4
 
4
- check_unknown_options!
5
+ check_unknown_options!
5
6
 
6
- namespace :build
7
+ namespace :build
7
8
 
8
- desc 'build [OPTIONS]', 'Build Inesita app'
9
+ desc 'build [OPTIONS]', 'Build Inesita app'
9
10
 
10
- method_option :force,
11
- aliases: :f,
12
- default: false,
13
- desc: 'force overwrite'
11
+ method_option :force,
12
+ aliases: :f,
13
+ default: false,
14
+ desc: 'force overwrite'
14
15
 
15
- method_option :destination_dir,
16
- aliases: :d,
17
- default: Inesita::Config::BUILD_DIR,
18
- desc: 'destination directory'
16
+ method_option :destination_dir,
17
+ aliases: :d,
18
+ default: Inesita::Config::BUILD_DIR,
19
+ desc: 'destination directory'
19
20
 
20
- method_option :source_dir,
21
- aliases: :s,
22
- default: Inesita::Config::APP_DIR,
23
- desc: 'source (app) dir'
21
+ method_option :source_dir,
22
+ aliases: :s,
23
+ default: Inesita::Config::APP_DIR,
24
+ desc: 'source (app) dir'
24
25
 
25
- method_option :static_dir,
26
- aliases: :t,
27
- default: Inesita::Config::STATIC_DIR,
28
- desc: 'static dir'
26
+ method_option :static_dir,
27
+ aliases: :t,
28
+ default: Inesita::Config::STATIC_DIR,
29
+ desc: 'static dir'
29
30
 
30
- method_option :dist_source_dir,
31
- aliases: :b,
32
- default: Inesita::Config::APP_DIST_DIR,
33
- desc: 'source (app) dir for dist build'
31
+ method_option :dist_source_dir,
32
+ aliases: :b,
33
+ default: Inesita::Config::APP_DIST_DIR,
34
+ desc: 'source (app) dir for dist build'
34
35
 
35
- def build
36
- assets = assets_server
37
- empty_directory options[:destination_dir], force: options[:force]
36
+ def build
37
+ assets = assets_server
38
+ empty_directory options[:destination_dir], force: options[:force]
38
39
 
39
- copy_static
40
- create_asset(assets, 'index.html', ->(s) { Inesita::Minify.html(s) })
41
- create_asset(assets, 'application.js', ->(s) { Inesita::Minify.js(s) })
42
- create_asset(assets, 'stylesheet.css', ->(s) { Inesita::Minify.css(s) })
43
- end
44
-
45
- no_commands do
46
- def assets_server
47
- Inesita::Server.new({
48
- dist: true,
49
- static_dir: options[:static_dir],
50
- app_dir: options[:source_dir],
51
- app_dist_dir: options[:app_dist_dir]
52
- }).assets_app
40
+ copy_static
41
+ create_asset(assets, 'index.html', ->(s) { Inesita::Minify.html(s) })
42
+ create_asset(assets, 'application.js', ->(s) { Inesita::Minify.js(s) })
43
+ create_asset(assets, 'stylesheet.css', ->(s) { Inesita::Minify.css(s) })
53
44
  end
54
45
 
55
- def copy_static
56
- destination_dir = options[:destination_dir]
57
- force = options[:force]
58
- static_dir = options[:static_dir]
46
+ no_commands do
47
+ def assets_server
48
+ Inesita::Server.new({
49
+ dist: true,
50
+ static_dir: options[:static_dir],
51
+ app_dir: options[:source_dir],
52
+ app_dist_dir: options[:app_dist_dir]
53
+ }).assets_app
54
+ end
55
+
56
+ def copy_static
57
+ destination_dir = options[:destination_dir]
58
+ force = options[:force]
59
+ static_dir = options[:static_dir]
59
60
 
60
- Dir.glob("./#{static_dir}/**/*").each do |file|
61
- if File.directory?(file)
62
- empty_directory File.join(destination_dir, file), force: force
63
- else
64
- copy_file File.absolute_path(file), File.join(destination_dir, file.gsub(static_dir, 'static')), force: force
61
+ Dir.glob("./#{static_dir}/**/*").each do |file|
62
+ if File.directory?(file)
63
+ empty_directory File.join(destination_dir, file), force: force
64
+ else
65
+ copy_file File.absolute_path(file), File.join(destination_dir, file.gsub(static_dir, 'static')), force: force
66
+ end
65
67
  end
66
68
  end
67
- end
68
69
 
69
- def create_asset(assets, name, minify_proc)
70
- create_file File.join(options[:destination_dir], name),
71
- minify_proc.call(assets[name].source),
72
- force: options[:force]
70
+ def create_asset(assets, name, minify_proc)
71
+ create_file File.join(options[:destination_dir], name),
72
+ minify_proc.call(assets[name].source),
73
+ force: options[:force]
74
+ end
73
75
  end
74
76
  end
75
77
  end
@@ -1,26 +1,28 @@
1
- class InesitaCLI < Thor
2
- include Thor::Actions
1
+ module Inesita
2
+ class CLI < Thor
3
+ include Thor::Actions
3
4
 
4
- check_unknown_options!
5
+ check_unknown_options!
5
6
 
6
- namespace :new
7
+ namespace :new
7
8
 
8
- desc 'new PROJECT_NAME', 'Create Inesita app'
9
+ desc 'new PROJECT_NAME', 'Create Inesita app'
9
10
 
10
- method_option :force,
11
- aliases: :f,
12
- default: false,
13
- desc: 'force overwrite'
11
+ method_option :force,
12
+ aliases: :f,
13
+ default: false,
14
+ desc: 'force overwrite'
14
15
 
15
- def new(project_dir)
16
- directory('template', project_dir, project_name: project_dir, build_dir: Inesita::Config::BUILD_DIR)
16
+ def new(project_dir)
17
+ directory('template', project_dir, project_name: project_dir, build_dir: Inesita::Config::BUILD_DIR)
17
18
 
18
- inside project_dir do
19
- run 'bundle install'
19
+ inside project_dir do
20
+ run 'bundle install'
21
+ end
20
22
  end
21
- end
22
23
 
23
- def self.source_root
24
- File.dirname(__FILE__)
24
+ def self.source_root
25
+ File.dirname(__FILE__)
26
+ end
25
27
  end
26
28
  end
@@ -1,20 +1,22 @@
1
- class InesitaCLI < Thor
2
- check_unknown_options!
1
+ module Inesita
2
+ class CLI < Thor
3
+ check_unknown_options!
3
4
 
4
- namespace :server
5
+ namespace :server
5
6
 
6
- desc 'server [OPTIONS]', 'Starts Inesita server'
7
- method_option :port,
8
- aliases: :p,
9
- default: 9292,
10
- desc: 'The port Inesita will listen on'
7
+ desc 'server [OPTIONS]', 'Starts Inesita server'
8
+ method_option :port,
9
+ aliases: :p,
10
+ default: 9292,
11
+ desc: 'The port Inesita will listen on'
11
12
 
12
- method_option :host,
13
- aliases: :h,
14
- default: '127.0.0.1',
15
- desc: 'The host address Inesita will bind to'
13
+ method_option :host,
14
+ aliases: :h,
15
+ default: '127.0.0.1',
16
+ desc: 'The host address Inesita will bind to'
16
17
 
17
- def server
18
- Rack::Server.start config: 'config.ru', Port: options['port'], Host: options['host']
18
+ def server
19
+ Rack::Server.start config: 'config.ru', Port: options['port'], Host: options['host']
20
+ end
19
21
  end
20
22
  end
@@ -2,6 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  # inesita gem
4
4
  gem 'inesita', '~> 0.3.0'
5
+ gem 'inesita-livereload', '~> 0.1.0'
5
6
 
6
7
  # add this gems to minify files on build
7
8
  #
@@ -10,11 +10,11 @@ require 'layout'
10
10
  require_tree './components'
11
11
 
12
12
  # when document is ready render application to <body>
13
- $document.ready do
13
+ Inesita::Browser.ready? do
14
14
  # setup Inesita application
15
15
  Inesita::Application.new(
16
16
  router: Router,
17
17
  store: Store,
18
18
  layout: Layout
19
- ).mount_to($document.body)
19
+ ).mount_to(Inesita::Browser.body)
20
20
  end
@@ -1,46 +1,59 @@
1
- class InesitaCLI < Thor
2
- include Thor::Actions
3
-
4
- check_unknown_options!
5
-
6
- namespace :watch
7
-
8
- desc 'watch [OPTIONS]', 'Watch files and build Inesita app'
9
-
10
- method_option :force,
11
- aliases: :f,
12
- default: true,
13
- desc: 'force overwrite'
14
-
15
- method_option :destination_dir,
16
- aliases: :d,
17
- default: Inesita::Config::BUILD_DIR,
18
- desc: 'destination directory'
19
-
20
- method_option :source_dir,
21
- aliases: :s,
22
- default: Inesita::Config::APP_DIR,
23
- desc: 'source (app) dir'
24
-
25
- method_option :static_dir,
26
- aliases: :t,
27
- default: Inesita::Config::STATIC_DIR,
28
- desc: 'static dir'
29
-
30
- method_option :dist_source_dir,
31
- aliases: :b,
32
- default: Inesita::Config::APP_DIST_DIR,
33
- desc: 'source (app) dir for dist build'
34
-
35
- def watch
36
- puts 'building...'
37
- build
38
- puts 'done.'
39
- listener = Listen.to(options[:source_dir]) do |_modified, _added, _removed|
40
- puts "rebuilding..."
41
- build
42
- puts "done."
43
- end.start
44
- loop { sleep 1000 }
1
+ module Inesita
2
+ class CLI < Thor
3
+ include Thor::Actions
4
+
5
+ check_unknown_options!
6
+
7
+ namespace :watch
8
+
9
+ desc 'watch [OPTIONS]', 'Watch files and build Inesita app'
10
+
11
+ method_option :force,
12
+ aliases: :f,
13
+ default: true,
14
+ desc: 'force overwrite'
15
+
16
+ method_option :destination_dir,
17
+ aliases: :d,
18
+ default: Inesita::Config::BUILD_DIR,
19
+ desc: 'destination directory'
20
+
21
+ method_option :source_dir,
22
+ aliases: :s,
23
+ default: Inesita::Config::APP_DIR,
24
+ desc: 'source (app) dir'
25
+
26
+ method_option :static_dir,
27
+ aliases: :t,
28
+ default: Inesita::Config::STATIC_DIR,
29
+ desc: 'static dir'
30
+
31
+ method_option :dist_source_dir,
32
+ aliases: :b,
33
+ default: Inesita::Config::APP_DIST_DIR,
34
+ desc: 'source (app) dir for dist build'
35
+
36
+ def watch
37
+ puts 'building...'
38
+ safe_build
39
+ puts 'done.'
40
+ Listen.to(options[:source_dir]) do |_modified, _added, _removed|
41
+ puts "rebuilding..."
42
+ safe_build
43
+ puts "done."
44
+ end.start
45
+ loop { sleep 1000 }
46
+ end
47
+
48
+ no_commands do
49
+ def safe_build
50
+ begin
51
+ build
52
+ rescue => e
53
+ puts 'build error:'
54
+ puts e
55
+ end
56
+ end
57
+ end
45
58
  end
46
59
  end