rubyview 0.0.1 → 0.0.3

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
  SHA256:
3
- metadata.gz: 8c20ff50b4c8c40e065b5b1e7660b06611f2c6659a32ddd6338332ce7a4b687d
4
- data.tar.gz: a75ff4d216cbb2b9179f7eaf27610ef0e56440a844962813be9bfa1a60616e77
3
+ metadata.gz: d8e147d1518cb4ade884bc9c5c812db5e1789b04b44154109e6d3898afcce359
4
+ data.tar.gz: 5a1de6846d6d6edac9ef659e13d4df691fb9559346e5ca0fe32c9e7cfd08b1ab
5
5
  SHA512:
6
- metadata.gz: bb91c966c025a527fb3fcffb17d8944eb359e86021d3b329406e00bea4df0249421ea867b9a9f5e663106848fb1f6ef3860f84252df40375cfb67c849cb6e42d
7
- data.tar.gz: 6a75bf3bed066cc150fda873d4ea434b399d4f0be36cf3ea3825f9f7b9f0fb73c6693d9ef6d857562c1a6c3011f7eb0c4d37de9152d5901aa6c5bbb6551b7b5a
6
+ metadata.gz: 2b4c0247b7b74a3042dacf54ce401827957893e0c781167847df78fc19f7f1b6719663f69f3508f84ac40344ba58379f83b9d06b0cbf341c066ece152834a09b
7
+ data.tar.gz: 96c0040ff6cda11bc77f56e66c98daad10c359d1aafaa0420c42c5e2840a53a372466fa71bde324f190b7616bbf4a19cd98b5c57e227a573ecdd1202c347087d
data/bin/rubyview CHANGED
@@ -6,6 +6,11 @@ class RubyViewCLI < Thor
6
6
  def render(template_path)
7
7
  puts RubyView.render(template_path)
8
8
  end
9
+
10
+ desc "eval CODE", "evaluates rubyview code and converts to html"
11
+ def eval(code)
12
+ puts RubyView.evaluate(code)
13
+ end
9
14
  end
10
15
 
11
16
  RubyViewCLI.start(ARGV)
@@ -7,11 +7,17 @@ class RubyView
7
7
  def initialize
8
8
  end
9
9
 
10
- def call(path_to_template)
10
+ def call(file_path: nil, code: nil)
11
+ return puts 'you must pass in file path or code to func' if !file_path && !code
11
12
  @_rendered_content = ""
12
- template_path = File.join(Dir.pwd, path_to_template)
13
- template_content = File.read(template_path)
13
+ template_content = if file_path
14
+ template_path = File.join(Dir.pwd, path_to_template)
15
+ File.read(template_path)
16
+ else
17
+ code
18
+ end
14
19
  instance_eval(template_content)
20
+ @_rendered_content
15
21
  end
16
22
  end
17
23
  end
data/lib/rubyview/dsl.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  class RubyView
2
2
  module DSL
3
- def header(text, **html_opts)
4
- h1(text, **html_opts)
5
- end
3
+ def header(...); h1(...); end;
4
+ def text(...); p(...); end;
5
+ def container(...); div(...); end;
6
6
  end
7
7
  end
@@ -1,13 +1,16 @@
1
1
  class RubyView
2
2
  module Helpers
3
3
  module Tag
4
- def h1(text, **html_opts)
5
- generate_tag(:h1, text, **html_opts)
6
- end
4
+ def h1(...); render_tag(:h1, ...); end;
5
+ def p(...); render_tag(:p, ...); end;
6
+ def div(...); render_tag(:div, ...); end;
7
7
 
8
- def generate_tag(name, content, **html_opts)
9
- formatted_html_opts = format_html_opts(**html_opts)
10
- "<#{name}#{formatted_html_opts}>#{content}</#{name}>"
8
+ def render_tag(...) # for storing to rendered content variable.
9
+ @_rendered_content += generate_tag(...)
10
+ end
11
+
12
+ def generate_tag(name, content, **html_opts) # for assembling HTML tag
13
+ "<#{name}#{format_html_opts(**html_opts)}>#{content}</#{name}>"
11
14
  end
12
15
 
13
16
  def format_html_opts(**html_opts)
@@ -16,4 +19,5 @@ class RubyView
16
19
  end
17
20
  end
18
21
  end
19
- end
22
+ end
23
+
@@ -0,0 +1,10 @@
1
+ class RubyView
2
+ class RailsTemplate
3
+ def call(template, source = "")
4
+ source ||= template.source
5
+ _render = RubyView.evaluate(source)
6
+ _render.dump
7
+ end
8
+ end
9
+ ActionView::Template.register_template_handler(:view, RailsTemplate.new)
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'rails'
2
+
3
+ class RubyView
4
+ class Railtie < ::Rails::Railtie
5
+ initializer "rubyview.configure_rails_initialization" do |app|
6
+ require "rubyview/rails_template"
7
+ end
8
+ end
9
+ end
data/lib/rubyview.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'pry'
1
+ require "pry"
2
2
  require_relative './rubyview/helpers/tag'
3
3
  require_relative './rubyview/dsl'
4
4
  require_relative './rubyview/context'
@@ -6,6 +6,15 @@ require_relative './rubyview/context'
6
6
  class RubyView
7
7
  def self.render(path_to_template)
8
8
  context = RubyView::Context.new
9
- context.call(path_to_template)
9
+ context.call(file_path: path_to_template)
10
10
  end
11
- end
11
+
12
+ def self.evaluate(code)
13
+ context = RubyView::Context.new
14
+ context.call(code: code)
15
+ end
16
+ end
17
+
18
+ if File.basename($0) != 'rubyview'
19
+ require 'rubyview/railtie' if defined?(Rails::Railtie)
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Indigo Tech
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: pry
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
26
40
  description: Write your views with pure ruby
27
41
  email: indigo@tech.tut
28
42
  executables:
@@ -35,10 +49,13 @@ files:
35
49
  - lib/rubyview/context.rb
36
50
  - lib/rubyview/dsl.rb
37
51
  - lib/rubyview/helpers/tag.rb
52
+ - lib/rubyview/rails_template.rb
53
+ - lib/rubyview/railtie.rb
38
54
  homepage: https://rubygems.org/gems/rubyview
39
55
  licenses:
40
56
  - MIT
41
- metadata: {}
57
+ metadata:
58
+ source_code_uri: https://github.com/indigotechtutorials/rubyview
42
59
  rdoc_options: []
43
60
  require_paths:
44
61
  - lib