reactive_rails_generator 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c670c4b33f14daa908bb101784813d83d513adc8
4
+ data.tar.gz: 52b100d8fd125f8aaaa761d622b543a6ddaec17e
5
+ SHA512:
6
+ metadata.gz: 9e23abb5ea7e1f92ff1e0c40ec90e0b0efda77f6f145baeb8a0bc885c42e91336913d0927a52622edf74b97134463f70635e6fef4c368182d9f5d0d40aa91fe2
7
+ data.tar.gz: 733070925fcd826ef5680d7abbec2edb840810922ac153a4f75bac303f2ced0f5beba299440ff7ed958b939b16aef5e2aeeb7f7685c85e79aa234c33aa3a300e
@@ -0,0 +1,21 @@
1
+ require "rails/generators"
2
+ module Reactrb
3
+ class Component < Rails::Generators::Base
4
+ source_root File.expand_path("../templates", __FILE__)
5
+
6
+ argument :components, :type => :array
7
+ def create_component_file()
8
+ self.components.each do |component|
9
+ component_array = component.split("::")
10
+ @modules = component_array[0..-2]
11
+ @file_name = component_array.last
12
+ @indet = 1
13
+ template "component_template.rb", File.join('app/react/components', @modules.join("/"), "#{@file_name.underscore}.rb")
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+
20
+
21
+
@@ -0,0 +1,67 @@
1
+ require "rails/generators"
2
+ module Reactrb
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :"reactive-record", :type => :boolean
5
+ class_option :"opal-jquery", :type => :boolean
6
+ class_option :"reactive-router", :type => :boolean
7
+ class_option :all, :type => :boolean
8
+
9
+ def inject_react_file_js
10
+ inject_into_file 'app/assets/javascripts/application.js', after: "// about supported directives.\n" do <<-'RUBY'
11
+ //= require 'components'
12
+ //= require 'react_ujs'
13
+ RUBY
14
+ end
15
+
16
+ if options[:"opal-jquery"] || options[:all]
17
+ inject_into_file 'app/assets/javascripts/application.js', after: "//= require jquery_ujs\n" do <<-'RUBY'
18
+ //= require 'opal-jquery'
19
+ RUBY
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ def inject_engine_to_routes
26
+ if options[:"reactive-record"] || options[:all]
27
+ route "mount ReactiveRecord::Engine => \"/rr\""
28
+ end
29
+ end
30
+
31
+ def create_components_directory
32
+ create_file "app/react/components/.keep", ""
33
+ create_file "app/react/models/.keep", "" if options[:"reactive-record"] || options[:all]
34
+ end
35
+
36
+ def create_manifests
37
+ create_file "app/react/components.rb", <<-FILE
38
+ # app/react/components.rb
39
+ require 'opal'
40
+ require 'reactive-ruby'
41
+ #{"require 'reactive-router'" if options[:"reactive-router"] || options[:all]}
42
+ #{"require 'reactive-record'" if options[:"reactive-record"] || options[:all]}
43
+ #{"require 'models'" if options[:"reactive-record"] || options[:all]}
44
+ require_tree './components'
45
+ FILE
46
+
47
+ if options[:"reactive-record"] || options[:all]
48
+ create_file "app/react/models.rb", <<-FILE
49
+ # app/react/components.rb
50
+ require_tree './models'
51
+ FILE
52
+ end
53
+ end
54
+
55
+ def add_gems
56
+ gem 'reactive-ruby'
57
+ gem 'react-rails', '~> 1.3.0'
58
+ gem 'opal-rails', '>= 0.8.1'
59
+ gem 'therubyracer', platforms: :ruby
60
+
61
+ # optional gems
62
+ gem 'opal-jquery' if options[:"opal-jquery"] || options[:all]
63
+ gem 'reactive-router' if options[:"reactive-router"] || options[:all]
64
+ gem 'reactive-record' if options[:"reactive-record"] || options[:all]
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,13 @@
1
+ module Components
2
+ <%- @modules.each do |module_name| %><%= " "* @indet %>module <%= module_name.camelize %><%- @indet += 1 %>
3
+ <%- end %><%=" "* @indet %>class <%= @file_name %> < React::Component::Base
4
+ <%=" "* @indet %># param :my_param
5
+
6
+ <%=" "* @indet %>def render
7
+ <%=" "* @indet %> # div do
8
+ <%=" "* @indet %> # "Some display code"
9
+ <%=" "* @indet %> # end
10
+ <%=" "* @indet %>end
11
+ <%=" "* @indet %>end
12
+ <%- @modules.each do %><%- @indet -= 1 %><%=" "* @indet %>end
13
+ <%- end %>end
@@ -0,0 +1,3 @@
1
+ require 'rails/generators'
2
+ require "generators/reactrb/install_generator"
3
+ require "generators/reactrb/component_generator"
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reactive_rails_generator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Loic Boutet
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.0
27
+ description: This gem provide rails generators for react.rb
28
+ email: loic@boutet.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/generators/reactrb/component_generator.rb
34
+ - lib/generators/reactrb/install_generator.rb
35
+ - lib/generators/reactrb/templates/component_template.rb
36
+ - lib/reactive_rails_generator.rb
37
+ homepage: http://rubygems.org/gems/hola
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 2.4.6
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: React.rb generators for rails
61
+ test_files: []