hir 1.0.2 → 1.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.
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
-