inesita 0.3.5 β†’ 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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