hir 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/hir.rb +16 -5
  2. metadata +32 -50
data/lib/hir.rb CHANGED
@@ -5,13 +5,13 @@ class Hash
5
5
  end
6
6
 
7
7
  class HIR
8
- VERSION = "1.0.2"
8
+ VERSION = "1.1.0"
9
9
 
10
10
  module Tags
11
11
 
12
12
  def self.add_tag(tagname)
13
- define_method(tagname, lambda { |*args, &block| tag(tagname, *args, &block) })
14
- define_method("#{tagname}!", lambda { |*args, &block| tag_sc(tagname, *args) })
13
+ define_method(tagname) { |*args, &block| tag(tagname, *args, &block) }
14
+ define_method("#{tagname}!") { |*args, &block| tag_sc(tagname, *args) }
15
15
  end
16
16
 
17
17
  def self.add_tags(*tagnames)
@@ -42,6 +42,11 @@ class HIR
42
42
  handle_output content
43
43
  end
44
44
 
45
+ def sir(styles)
46
+ handle_output styles.map { |target, rules|
47
+ "#{target}{#{rules.map { |rule| "#{rule[0]}:#{rule[1]}" }.join(";")}}" }.join
48
+ end
49
+
45
50
  private
46
51
 
47
52
  def tag(tagname, content = "", options = {}, &children)
@@ -55,13 +60,15 @@ class HIR
55
60
  end
56
61
 
57
62
  def handle_output(output)
58
- self.class.eql?(HIR) ? (@tags << output).join : output
63
+ self.class.eql?(HIR) ? @tags << output : output
59
64
  end
60
65
 
61
66
  end
62
67
 
63
68
  def self.to_html(&content)
64
- HIR.new.instance_eval(&content)
69
+ html_page = HIR.new
70
+ html_page.instance_eval(&content)
71
+ html_page.to_s
65
72
  end
66
73
 
67
74
  include Tags
@@ -69,6 +76,10 @@ class HIR
69
76
  def initialize
70
77
  @tags = []
71
78
  end
79
+
80
+ def to_s
81
+ @tags.join
82
+ end
72
83
  end
73
84
 
74
85
  def hir(&content)
metadata CHANGED
@@ -1,80 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hir
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 2
10
- version: 1.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jack Willis
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-04-26 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 25
29
- segments:
30
- - 0
31
- - 9
32
- version: "0.9"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.9'
33
22
  type: :development
34
- version_requirements: *id001
35
- description: "hir: HTML in Ruby"
36
- email:
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.9'
30
+ description: ! 'hir: HTML in Ruby'
31
+ email:
37
32
  - jcwillis.school@gmail.com
38
33
  executables: []
39
-
40
34
  extensions: []
41
-
42
35
  extra_rdoc_files: []
43
-
44
- files:
36
+ files:
45
37
  - lib/hir.rb
46
38
  homepage: http://github.com/jacksonwillis/hir
47
39
  licenses: []
48
-
49
40
  post_install_message:
50
41
  rdoc_options: []
51
-
52
- require_paths:
42
+ require_paths:
53
43
  - lib
54
- required_ruby_version: !ruby/object:Gem::Requirement
44
+ required_ruby_version: !ruby/object:Gem::Requirement
55
45
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- required_rubygems_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 1.8.7
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
51
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- hash: 3
69
- segments:
70
- - 0
71
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
72
56
  requirements: []
73
-
74
57
  rubyforge_project:
75
58
  rubygems_version: 1.8.23
76
59
  signing_key:
77
60
  specification_version: 3
78
61
  summary: Write HTML as Ruby blocks
79
62
  test_files: []
80
-