pageify 0.0.0 → 0.0.1

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: 82d2f3e44dbfadf7b8640a187885357ae79ce322
4
- data.tar.gz: 27bc30ca2116dd301d9a78d42b2982d522ce50a2
3
+ metadata.gz: 933c60d9aac4b48163f95855260d2a4ea1c4a7fe
4
+ data.tar.gz: 5e1ca4a1d6b4d376aec9ec70bbcebe47df7997cc
5
5
  SHA512:
6
- metadata.gz: fb61913d902f4827b2033cb8e4d7fda4101149a6a5f0bb14b213e9fc3708478f8b68975403b223609997a930a9e9850a86957a2611569e664ed96f2dc6811988
7
- data.tar.gz: b27b8129da8904c5049d60ea940720a300a9c464df4b711752f41ad9a5a091a53a4926717a293eca9fe52836cefd2529bfccd9463ed4383d64b36793d05566bf
6
+ metadata.gz: a3a6bb19df51a1951882782c93acdb25b2fccc7bd2a3c8138d1d95a97c12e6ce9f1cc0f93b4e55a3fd6035b0ffbafb87c3835fc2c30b7ffd591b14c2cef92c06
7
+ data.tar.gz: adbdce79e62ac5bb94323db6a590d715673ea2974ad651be493a11c5cab12cad740e296cccd876baa3e46cfdbe0c6e26a1389061e0a1579e574aa4e7043079c2
data/lib/pageify.rb CHANGED
@@ -1,5 +1,13 @@
1
+ require "pageify/parse"
2
+
1
3
  class Pageify
2
- def self.load
3
- p "hi"
4
+ def self.load(base_dir)
5
+ base_dir.chomp! '/'
6
+ all_pages = []
7
+ Dir["#{base_dir}/**/"].each do |dir|
8
+ Dir["#{dir}/*.page"].each do |file|
9
+ all_pages << file
10
+ end
11
+ end
4
12
  end
5
13
  end
@@ -0,0 +1,17 @@
1
+ $selector
2
+ class BaseElement
3
+ attr_accessor :name,:parent
4
+ def createChild (name,selector)
5
+ child = Element.new(name,selector,self)
6
+ define_singleton_method(name) do
7
+ $selector += selector
8
+ child
9
+ end
10
+ return child
11
+ end
12
+
13
+ def build
14
+ $selector.gsub("\"","")
15
+ end
16
+ end
17
+
@@ -0,0 +1,11 @@
1
+ require_relative "base_element"
2
+
3
+ class Element < BaseElement
4
+ attr_accessor :parent
5
+
6
+ def initialize (name,selector,parent)
7
+ @name = name
8
+ @selector = selector
9
+ @parent = parent
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ require_relative "base_element"
2
+
3
+ class Page < BaseElement
4
+ def initialize(name)
5
+ @name = name
6
+ $selector = ""
7
+ end
8
+
9
+ end
@@ -0,0 +1,32 @@
1
+ require 'pry'
2
+ require_relative "string"
3
+ require_relative "page"
4
+ require_relative "element"
5
+
6
+ def createPage(name)
7
+ page = Page.new(name)
8
+ define_method(name) do
9
+ $selector = ""
10
+ page
11
+ end
12
+ page
13
+ end
14
+
15
+ class Parse
16
+ def self.to_page_objects(file)
17
+ rawArray = IO.read(file).split("\n").map{|x| x.rstrip}
18
+ rawArray -= [""]
19
+ page = createPage(rawArray.shift.name)
20
+ parent = [page]
21
+ until rawArray.empty? do
22
+ thisElement = rawArray.first
23
+ nextElement = rawArray[1]
24
+ until parent.last.name().lspace < thisElement.lspace do
25
+ parent.pop
26
+ end
27
+ element = parent.last.createChild(thisElement.name,thisElement.selector)
28
+ rawArray.shift
29
+ parent << element if rawArray.any? &&thisElement.lspace < nextElement.lspace
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,17 @@
1
+ class String
2
+ def lspace
3
+ self[/\A */].size
4
+ end
5
+
6
+ def name
7
+ self.lstrip.split(":").first
8
+ end
9
+
10
+ def selector
11
+ self.split(":").last
12
+ end
13
+ end
14
+
15
+
16
+
17
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deepak
@@ -16,6 +16,11 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/pageify/page.rb
20
+ - lib/pageify/base_element.rb
21
+ - lib/pageify/element.rb
22
+ - lib/pageify/parse.rb
23
+ - lib/pageify/string.rb
19
24
  - lib/pageify.rb
20
25
  homepage: https://github.com/paramadeep/pageify
21
26
  licenses: